Akik az utóbbi időben frissítették a keresőjüket, és feltelepítették az Opera 7.22 verzióját, néhány szokatlan dolgot tapasztaltak. Kifejezetten azon felhasználók, akiknek a megszokott puritánság nem felelt meg, és Operájuk új „ruhát – skint – kapott. A szakemberek, a termék gyártói is felfigyeltek erre, és észrevették, hogy a skinek d váltása során sérülékennyé válik a böngésző, vagy lelassul.

Elkezdték kutatni a jelenségek okát, majd november 12-én a gyártó nevében S.G Masood beszámolt arról, hogy hibát találtak az Opera skinletöltő és változtató rendszerébe. Ennek okaként először úgy vélték, hogy ezek a „ruhák” nem megfelelő kiterjesztésű fájlokban vannak, ezért csak a .zip kiterjesztésűek letöltését engedélyezték.

Az addig tapasztal jelenségek nem szűntek meg ezzel, ezért a kutatás tovább folyt. Nem csak a gyártó, hanem szakértő alkalmazók körében egyaránt. Közéjük tartozott a finn Jouko Pynnönen, aki a „jelenség okát”, a 7.22 Opera sebezhetőségeit elemezte, és közölte a gyártóval. Talán ez volt az oka annak, hogy a megszokottól eltérően már nov. 21-én elérhető, letölthető volt a böngésző új változata, melynek használatát javasolták elődje helyett.

J. Pynnönen igen eredményes kutatását, annak eredményét szeretnénk megismertetni az olvasóval. A vizsgálat kezdetén már azonnal ismerté vált, hogy a böngészőben két alapvető hiba van – és mindkettő a „ruhákhoz” a skinekhez kötődik. Az egyik hiba oka, ami miatt egy támadó könnyedén feltölthetett a böngészőkre olyan állományokat, melyeket később futtatva, az egész rendszer irányítását is átvehette – az Opera „directory transversal” (a „ruhacsere” könyvtára) volt

A másik hiba a skinek letöltésekor, kezelésekor alakult ki. Ez egy tipikus „buffer overflow” – adattúlcsordulási hiba volt. Ezek igenrészletes feltérképezése, a gyártó együttműködése, hozzáállása miatt jelenhetett meg már nov. 21-én a kijavított, eddig hibát nem mutató Opera 7.23.

Részletek
Az Opera a skineket automatikusan is képes volt letölteni, MIME formátumot használva a %USERPROFILE%Application DataOperaOpera7profileSkin.könyvárba. Ezt tudva, és azt is, hogy a hiba forrása ezen a ponton keresendő, nyilatkozott nov. 12-én S. G. Masood – beszámolva arról, hogy valamilyen fájltípus képes arra, hogy az említett mappába jusson. Ez volt az oka, hogy első, gyors javításként csak a .zip kiterjesztésű állományt fogadta a rendszer. Ezzel kapcsolatban tárták fel az első hibát, ami a transversal dyrectoriban volt. A skinek kezeléséért, cseréjéért felelős mappa a változtatás után is engedélyezte, hogy a skinek mellett egy támadó a későbbiekben futtatható, maliciózus állományt is feltöltsön az áldozata rendszerére.

Megtehette ezt azután is, hogy csak .zip állományt fogadott a böngésző. Minden skin letöltésekor egy alkalmazás, a Content-disposition HTTP header – ha nem ismert URL-ről történt – meghatározta a forrást. Ismeretlen URL esetében a leöltött fájl nevének utolsó eleme volt ez. Ha egy támadó azonban ezt megváltoztatta, a valós hely nevét egy hexa-kódra cserélte ki, akkor a letöltött állomány … .5c..5c..5c ” néven került az Opera mappájába.

A forrást tehát ennek alapján a következőképpen határozta meg az alkalmazás:

http://szerver/./.5c..5c..5c..5c..5c..5c..5..5c..5ccskin.zip

amit Windows rendszer esetén tipikusan a C: meghajtóra telepítettek..

Akkor vált a hiba kihasználása bonyolultabbá, akkor kellett bonyolultabb exploitot írni, amikor az Opera 7.22 skin cseréje, frissítése csak olyan állománnyal történhetett, mely .zip kiterjesztésű volt. Miután a kiterjesztést az Opera ellenőrizte, a támadónak egy olyan állományt kellett bejuttatni a böngészőbe, mely becsapva azt, valóságos .zip tömörítésnek tűnt. Ezt egy olyan exploittal lehetett végrehajtani, kihasználni a hibát, mely segítségével a .zip-hez hasonló fájl a Windows Startup mappájába került. Viszonylag könnyű olyan állomány elkészítése, melyet .zip tömörítésként ismer fel a rendszer, de ha az állomány valódi kiterjesztése pl.. .bat, akkor az a Windows már úgy nyitja meg, mint egy batch állományt. Kinézetre tehát .zip, de alkalmazását tekintve a kibontás után .batch funkciót lát el. Lehet, hogy a bejuttatott fájlok miatt megjelenik valamilyen indifferens hibaüzenet, de akkor az ártó szándékú alkalmazás már régen a parancs sorba került, és „végzi feladatát”. Kellően kialakított futtatható fájl esetén e miatt a támadó igen könnyedén, mint root jogosultságú felhasználó férhet a rendszerhez.

Az, hogy a káros állomány a Startup mappába kerüljön könnyű megoldani, mert az Opera „skin” mappája a %USREPROFILE% – könyvtárra mutat, ahonnan a parancssor (command line) könnyen elérhető.

A .zip állományok kódját feldolgozó alkalmazásban is van a 7.22 Opera esetében hiba. Ez egy „egyszerű” adattúlcsordulási, „buffer overflow” hiba, amit a tesztelés során lehetett észlelni. Abban az esetben, ha az alkalmazás olyan valós .zip állományt dolgoz fel mely a kiterjesztés után túl sok többletadatot tartalmaz, akkor jöhet létre az adat túlcsordulás jelensége. Ez, ha a támadó olyan preparált fájlt juttat be, mely bejegyzést tesz az EIP tartalmába, akkor az adattúlcsordulás, a buffer overflow robbanásszerűen bekövetkezik.

Megjegyzendő, hogy a sérülékenység miatt, ha e felhasználó olyan lapot néz meg, melyre a támadó irányíthatja, és előtte minimálisan megváltoztatta – egy iframe taget helyezett el – ami automatikusan elindítja a hiba, a sebezhetőség miatt lehetővé tett skin állományok kihasználásának valamelyik ismertetett módját.

A directory traversal probléma nem érinti a Linux rendszereket azok „” rendszeresen alkalmazott pl. cím elválasztó karaktere miatt, ellenben a „buffer overflow” ellen már nem védettek ezek a rendszerek sem.

A hibát a gyártó felismerte, és megfogadva a szakmai tanácsokat mát 8 nap múlva ki tudta adni a javított, ilyen hibát nem tartalmazó 7.23 verziót – ami nov. 21. óta az Opera publikus ftp lapjáról már minden rendszerhez letölthetővé vált.

Megjegyzés
A CommonVulnerabilities and Exposures (CVE) információ: lapon található, a CAN-2003-0870 Opera HREF escaped server name overflow – néven.

Kapcsolódó linkek: