Mihal Zalewski közzétette cross_fuzz nevű böngésző fuzzerét, mellyel állítása szerint eddig kürölbelül száz hibát talált az Internet Explorer, a Firefox, az Opera és gyakorlatilag az összes WebKit alapú böngészőkben. A szoftver működéséről a kutató a következő rövid összefoglalót adja:
Nyissunk két, tetszőleges típusú dokumentummal töltött [böngésző]ablakot. Egyszerű HTML, XHTML, és SVG dokumentumokat választunk véletlenszerűen, de bármely más, akár plugin által feldolgozott tartalom is felhasználható.
Járjuk be az első dokumentum DOM hierarchiáját, és gyűjtsük össze a meglátogatott objektumok referenciáit későbbi használatra. A meglátogatott objektumokat egy tulajdonság [property] beszúrásával jelöljük, a végtelen rekurzió elkerülése érdekében, egy másodlagos feketelista pedig a dokumentumból kifelé, vagy a leszármazottakból a gyökér felé történő vándorlást akadályozza. Végül véletlen ugrások és a rekurzió terjedésének szabályozása biztosítja a jó lefedettséget
Ismételjük meg a bejárást, és váletlenszerűen átállítgatva az objektumok adattagjait a letárolt referenciák valamelyikére (vagy esetenként az előre definiált "érdekes" értékek egyikére)
Ismételjük meg a bejárást, és hívogassuk a megismert metódusokat. A hívások paramétereit a tárolt referenciákból és az "érdekes" értékekből állítjuk össze. Ha egy hívás objektummal tér vissza, arra is elvégezzük ezt a műveletet
A lehetséges módszerek egyikével töröljük az első dokumentumot, szemétgyűjtést indítva.
Ismételjük meg a fenti bejárásokat a második dokumentumon, de az első dokumentum referenciáinak felhasználásával.
Váletlenszerűen zárjuk be az ablakokat, és a gyűjtött referenciák egy bizonyos százalékát tartsuk meg a következő fuzz iterációra.
A történet azonban nem áll meg az agyafúrt eszköznél, Zalewskinek ugyanis sikerült összeakasztania a bajszát a Microsofttal, amit tovább tetéz, hogy a kutató egyébként a Google-nek dolgozik. Történt ugyanis, hogy a szakember júliusban felvette a kapcsolatot a Microsofttal, és eljuttatta hozzájuk a fuzzer akkori változatát. Válasz a cégtől ezután nem érkezett, ezért Zalewski december végén újra próbálkozott, ezúttal a cross_fuzz egy újabb változatával. A Microsoft ekkor már reagált, elismerve a hibák létezését, egyúttal megkérve a kutatót, hogy ne hozza nyilvánosságra a felfedezést lehetővé tevő eszközt - mint látjuk, ez a kívánság nem teljesült.
A Microsoft szerint a júliusban hozzájuk eljuttatott szoftver még nem produkált értékelhető eredményeket (azt Zalewski is elismeri, hogy a tesztesetek néha igen nehezen reprodukálhatóak), Zalewksi viszont egyrészt a lassú reakciót hozza fel indokként, másrészt pedig azt, hogy a jelek szerint az egyik 0day sebezhetőséget Kínában már ismerik.
Egy WebKit fejlesztő ugyanis a hozzájuk bejelentett hibák kivizsgálásakor véletlenül kiszivárogtatta a fuzzer URL-jét (security by obscurity?), amelyet a Google keresője annak rendje és módja szerint beindexelt. Ettől a világ persze nem dőlt össze, de később Zalewski észrevette, hogy éppen egy kínai hosztról böngészik a szerverét, melyet pont azokra az IE függvényekre való kereséssel találtak meg, amelyekkel a 0day kapcsolatos - micsoda különös egybeesés!
Ezek után mindenki gondoljon amit szeretne, én csak Narancs híres mondátát tudom idézni: "Na, látjátok, így kell a szart megkavarni!"
Frissítés:
A VUPEN szerint a kiszivárgott probléma az mshtml.dll-ben jelentkezik, mikor az körbehivatkozó JScript és DOM objektumokat kezel. A probléma kihasználhatóságát megerősítették Internet Explorer 8 és XP SP3 használata esetén.
mindentkapni · http://www.mindentkapni.hu 2011.01.11. 16:11:45
summoner · http://my.opera.com/summoner1/blog/ 2012.07.28. 09:17:59
WebKit-et pedig csak a Chrome és a Firefox használ, ha jól emlékszem. Explorer-ben nem vagyok biztos, de ha azt használna, akkor lehet jobb böngésző lenne ...
Javítsatok ki nyugodtan ha hülyeséget mondanék...
buherator · http://buhera.blog.hu 2012.07.28. 10:57:56
summoner · http://my.opera.com/summoner1/blog/ 2012.08.13. 16:21:19
Félreértettem bocsánat!