Tweets by @buherablog
profile for buherator at IT Security Stack Exchange, Q&A for IT security professionals

A BitBetyár Blog

Túljártál a nagyokosok eszén? Küldd be a mutatványodat! (e-mail a buherator gmailkomra jöhet)

Full-Disclosure / Névjegy / Coming out


Promó

H.A.C.K.

Címkék

0day (110) adobe (87) adobe reader (21) anonymous (26) apple (60) az olvasó ír (49) blackhat (20) botnet (22) bug (200) buherablog (44) buhera sörözés (39) bukta (49) deface (38) dns (22) dos (29) esemény (82) facebook (26) firefox (64) flash (33) gondolat (31) google (59) google chrome (36) hacktivity (37) hírek (117) incidens (224) internet explorer (88) iphone (35) java (50) jog (22) kína (21) kriptográfia (68) kultúra (21) linux (24) malware (43) microsoft (142) móka (48) mozilla (23) office (26) oracle (40) os x (43) patch (197) php (20) politika (31) privacy (58) programozás (22) safari (34) sql injection (62) windows (85) xss (77) Címkefelhő

Licensz

Creative Commons Licenc

Hogyan jósolható meg a DNS tranzakciós ID?

2008.04.10. 10:32 | buherator | Szólj hozzá!

Kedden kijött a Microsoft rendszeres frissítőcsomagja, amely több kritikus és kavésbé súlyos hibát javít. Az egyik ilyen javított hibajegy az MS08-020, melyről kedvenc MS blogom, a Security Vulnerability Research & Defense kimerítő értekezést készített.

A legutóbb javítással befoltozott hiba gyakorlatilag az összes elterjedt Windows verzió* DNS kliensének TXID generáló algoritmusát érintette. A TXID egy 16-bites entitás, amit a DNS kliens és szerver közti szinkronizációra használnak. Ennek az értéknek véletlennek, vagy legalábbis nehezen megjósolhatónak kellene lennie, ellenkező esetben egy támadó a lekérdezésre kerülő hosztnév ismeretében olyan válaszokat tud küldeni egy kliensnek, melyről az elhiszi, hogy a valódi DNS szervertől érkezett.

A problémát az eredetileg használt PRNG (pszeudo-véletlenszám-generátor) hibálja okozta, melyet kihasználva az n., n+1. és n+2. TXID értékét ismerve következtetni lehetett a generátor állapotára, és így megjósolhatóvá vált az n+3., n+4., stb. TXID. Ez eredeti algoritmus így működött:

GlobalSeed++;
SomeNumber = (WORD)GetTickCount()+(SomeRandomAddress>>6)+GlobalSeed;
XID = (SomeNumber%487)+1+GlobalLastTXID)^SomeNumber;
GlobalLastTXID = XID;
Egy ebből származó TXID dump pedig valahogyígy néz ki, kiemelten látható a 4., 5., 6., 7. és 8. bitekben található ismétlődés:



A következő TXID-k tehát nem válnak teljes mértékben megjósolhatóvá még ezzel a gyengeséggel sem, de a lehetséges értékek tere jelentősen lecsökken. Ha tehát detektálni akarunk egy ilyen támadást a hálózaton, érdemes a nagy mennyiségben érkező, különböző TXID-val ellátott DNS válaszokra figyelnünk.

A hibát a PRNG algoritmus lecserélésével korrigálták, az új algoritmusról bővebben itt olvashatunk.

*32 és 64-bites Vista, valamint a Windows 2000, Windows XP, and Windows Server 2003 összes támogatott verziója

Címkék: windows bug dns kriptográfia spoofing

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.