- Door
- Arnout Veenman
- geplaatst op
- 10 juli 2008 07:59 uur
Er zit een zeer ernstig lek in vrijwel alle DNS-servers die het mogelijk maakt om de cache van DNS servers te vervuilen (cache poisoning), DNS-servers die (ook) gegevens bij andere DNS-servers opvragen en die weer doorgeven aan een DNS-client. Gisteren hebben meerdere vendors tegelijkertijd een patch beschikbaar gemaakt om het lek te dichten.
Het lek zou ontstaan door een design fout in de implementatie van het DNS protocol, die voorkomt bij in vrijwel alle DNS-servers. Als gevolg van de fout is het voor (kwaadaardige) derden mogelijk om de transactie nummers die worden gebruikt al vooraf te raden, waardoor het bijvoorbeeld mogelijk wordt om een verkeerde authorative DNS-server door te geven, waardoor Man-in-the-Middlle en phishing aanvallen mogelijk worden.
De ontdekker van het lek Dan Kaminsky, director of penetration testing services van IOActive, wil verder nog geen technische details over het lek openbaar maken en heeft het bestaan van het lek ook geheim gehouden tot dat gisteren de verschillende vendors met patches voor het lek kwamen. Pas over 30 dagen zal Kaminsky dat tijdens de Black Hat conferentie doen.
De US-CERT is scheutiger met informatie en meldt dat het lek een combinatie van drie verschillende DNS cache poisoning technieken die al reeds bekent waren is, die samen tot een zeer succesvolle methode leiden om de cache te poisonen. Het zou daarbij gaan om:
- Insufficient transaction ID space
The DNS protocol specification includes a transaction ID field of 16 bits. If the specification is correctly implemented and the transaction ID is randomly selected with a strong random number generator, an attacker will require, on average, 32,768 attempts to successfully predict the ID. Some flawed implementations may use a smaller number of bits for this transaction ID, meaning that fewer attempts will be needed. Furthermore, there are known errors with the randomness of transaction IDs that are generated by a number of implementations. Amit Klein researched several affected implementations in 2007. These vulnerabilities are described in the following vulnerability notes: - Multiple outstanding requests
Some implementations of DNS services contain a vulnerability in which multiple identical queries for the same resource record (RR) will generate multiple outstanding queries for that RR. This condition leads to the feasibility of a ‘birthday attack,’ which significantly raises an attacker’s chance of success. This problem was previously described in VU#457875. A number of vendors and implementations have already added mitigations to address this issue. - Fixed source port for generating queries
Some current implementations allocate an arbitrary port at startup (sometimes selected at random) and reuse this source port for all outgoing queries. In some implementations, the source port for outgoing queries is fixed at the traditional assigned DNS server port number, 53/udp.
Ondanks dat zullen hackers op basis van reverse engineering van de patches vast al eerder ontdekken en zullen cybercriminelen daar binnen zeer korte tijd werkende exploits voor het lek maken. Het is daarom van groot belang dat alle ISP’s hun DNS-servers zo snel mogelijk patchen! Op DoxPara.com kan worden gecontroleerd of jouw DNS-server(s) kwetsbaar zijn!
Patchen dus! Al zullen de patches een zwaardere belasting voor systemen betekenen. Dus test zorgvuldig alvorens de patches (massaal) uit te rollen!