HWSW

Komoly biztonsági hiányosságai vannak a WebGL-nek

Súlyos biztonsági kockázatot jelent a WebGL használata, állítja a német Context Internet Security: mivel a böngészőben futó kód követlenül hozzáfér a grafikus chiphez, szinte akármit megtehet. A cég a szabvány teljes átdolgozását javasolja.

Az OpenGL-en alapuló, a böngészőben a GPU által gyorsított 3D tartalmak megjelenítését lehetővé tevő WebGL API biztonsági hiányosságaira hívja fel a figyelmet a Context Internet Security [1]. A technológiát a Google Chrome a 9-es verzió óta támogatja, de része a Firefox 4-nek, a Safari 5-nek és a legújabb Opera előzetesnek is. A német vállalat munkatársai olyan kártékony kódokat is létrehoztak, amelyek segítségével a támadó weboldalra irányított áldozat gépe válaszképtelenné tehető vagy kifagyasztható.

A böngészők által megjelenített tartalmak esetében egyáltalán nem jellemző, hogy azok közvetlenül hozzáférjenek a hardverhez, a WebGL azonban épp ezt teszi lehetővé. A problémát az jelenti, hogy a mai operációs rendszereken és böngészőkben a WebGL és az alatta levő szoftverrétegek a biztonsági aspektusok szinte teljes figyelmen kívül hagyásával születtek, ez pedig támadhatóvá teszi őket. A Context szerint létrehozható olyan WebGL kód, amely a végletekig terheli a GPU-t és teljesen válaszképtelenné teszi az operációs rendszert, vagy akár ki is fagyaszthatja azt. Szélsőséges esetben olyan támadás is elképzelhető, amely valamilyen kártékony kódot futtat, vagyis például adatokat lop vagy más módon tesz kárt.

A Windows Vista és a Windows 7 már tud védekezni a GPU túlterhelése ellen, mégpedig a grafikus stack újraindításával. A Context azonban kiderítette, hogy a Microsoft operációs rendszerei bizonyos számú újraindítást követően feladják a harcot és kék halállal elszállnak. A WebGL specifikáció felett őrködő Khronos Group egyébként maga is dokumentálta, hogyan lehet szolgáltatásmegtagadásos támadást indítani - és nyilvánosságra is hozott [2] egy olyan shader kódot, amely a Context tesztjei szerint teljesen használhatatlanná teszi a Mac OS X-et, kifagyasztja a Windows XP-t és kék halálba kergeti a Windows 7-et és a Vistát.

xNoha létezik, és a Firefoxnak és a Chrome-nak is része olyan funkció, amely a shader kódokat validálja végtelen ciklusok és más banális hibák után kutatva, ez nem tud minden olyan kódot megtalálni, amely a GPU végzetes túlterhelését okozza. Másfelől pedig - állítja a Context -, elképzelhető egy annyira nagy és összetett 3D objektumot is létrehozni, amelynek WebGL kódja ciklusok nélkül is ugyanúgy "kiakasztja" a GPU-t, vagy legalábbis irreálisan sokáig fut.

A GPU túlterhelése mellett egy másik biztonsági résre is felhívja a figyelmet a német cég. A WebGL a HTML5 canvas elemét használja és lehetővé teszi ügyes shader kódokkal a canvas elemen levő más objektumok, például képek "letapogatását", ellopását. Ehhez egy igen ügyes trükköt alkalmaz a Context: a shader kód futását a képpontok színéhez vagy fényességéhez lehet igazítani és az időt JavaScript segítségével mérni - a biztonsági cég készített is egy weboldalt [3] ennek demonstrálására, valamint videón is bemutatja a trükk működését [4].

A fentiek alapján a Context azt javasolja, a rendszergazdák és a felhasználók inkább kapcsolják ki a WebGL-t azokban a böngészőkben, amelyekben ez alapértelmezetten engedélyezett, a specifikáció létrehozóinak pedig, hogy alkossanak egy új, biztonságos szabványt.

A cikkben hivatkozott linkek:
[1] http://www.contextis.com/resources/blog/webgl/
[2] https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/extra/lots-of-polys-example.html
[3] http://www.contextis.com/resources/blog/webgl/poc/index.html
[4] http://www.contextis.com/resources/blog/webgl/webgl.avi
A cikk adatai:
//www.hwsw.hu/hirek/46677/webgl-biztonsag-context-security-gpu-bongeszo.html
Író: Bodnár Ádám (bodnar.adam kukac hwsw.hu)
Dátum: 2011. május 11. 14:07
Rovat: web