A Google Chrome biztonsági csapata ígéretüknek megfelelően közzétették a Pwnium egyik díjnyertes exploitjának leírását. Pinkie Pie kis remekműve összesen hat(!) biztonsági hiba összekapcsolásával tört ki a Chrome homokozójából:
Pinkie a szép kilátásokkal kecsegtető Native Clientből indult ki a böngésző prerendering lehetőségének egy hibáját kihasználva. A prerendering lehetővé teszi, hogy a böngésző előre feldolgozza a weboldal külső hivatkozásait, így azok várakozás nélkül betöltődhetnek, amint a felhasználó meglátogatja valamelyik linket. A bökkenő ott volt, hogy egy prerenderelt oldal meglátogatásakor az összes ott lévő plug-in automatikusan lefutott, ide értve a Native Client beépülőket is, melyeket egyébként csak a telepített kiegészítők illetve alkalmazások használhatnának.
A Native Client sandbox-a azonban még a HTML megjelenítőénél is szigorúbb, ez a lépés tehát akár kontraproduktívnak is tűnhetne, ha nem lenne lehetőség hozzáférni az alacsony szintű GPU parancspufferekhez. A GPU parancsok feldolgozásában lévő integer underflow hiba lehetővé tette 8 byte felülírását a parancspuffer utáni memóriaterületen. Mivel a Native Clienten keresztül viszonylag jól lehetett kontrollálni az írás helyét, Pinkie képes volt felülírni egy mutatópárt a GPU folyamat egyik IPC-re használt fa struktúrájában, ezzel lecserélve az egyik részfát egy saját maga által meghatározottra. Ennek segítségével tetszőlege írás és olvasás vált lehetővé a GPU folyamatban, így létre lehetett hozni egy ROP láncot.
Ez azonban csak egy újabb (kevésbé) sandboxolt folyamatba helyezte a támadót. Ebből a folyamatból elérhetővé váltak a Chrome IPC-re használt named pipe-jai, Pinkie pedig talált egy időzítésen alapuló hibát, melyen keresztül a GPU folyamatból megszemélyesíthetett egy renderer folyamatot.
A renderer folyamat azonban megint egy szigorúbb sandboxban fut, kivéve ha speciális erőforrásokat, például a beállítások vagy a kiterjesztések kezelőjét böngésszük. Egy újabb hiba lehetővé tette, hogy egy normál jogosulatlan renderer elindítsa a kiterjesztéskezelőt, és még két további sérülékenység kihasználása kellett ahhoz, hogy Pinkie Pie végül egy NPAPI kiterjesztés figyelmeztetés nélküli felinstallálásával kiterjessze hatalmát a böngésző felhasználó jogosultsági szintjére.
Bár technikai szempontból ez a leírás még mindig csak a felszínt kapargatja, az véleményem szerint jól érzékelhető, hogy a jól kigondolt biztonsági architektúra mennyire meg tudja nehezíteni egy támadó dolgát. A részletes technikai információkat tartalmazó hibajegyek egy része már nyilvános, a hivatkozásokat megtaláljátok az eredeti posztban.
A Pwinumon elsőként sikert arató Sergey Glazunov 10 hibát felvonultató exploitjának részleteire még várni kell egy kicsit, az ugyanis olyan sérülékenységre is rávilágított, ami a Google mellett számos más gyártó termékeit is érzékenyen érinti, ezért a publikációval megvárják, mire mindenki lép az ügyben.
synapse · http://www.synsecblog.com 2012.05.28. 14:23:22
Kivancsi vagyok azert ket dologra:
1) mennyi idot toltott ezzel
2) mennyi az IQja