:

Szerző: Gálffy Csaba

2013. július 16. 12:08

Újabb hiba az androidos alkalmazások ellenőrzésében

Újra felbukkant egy sebezhetőség az androidos telepítőcsomagok validációjában. A banális hibát a rossz változótípus okozta, a javítást a CyanogenMod már ki is adta - a gyártókra szokás szerint várhatunk még.

Újabb biztonsági sebezhetőséget találtak az Android alkalmazásvalidációs algoritmusában. A hiba a korábban felmerült (műszakilag gyökeresen eltérő) sérülékenységhez hasonlóan lehetővé teszi, hogy az androidos alkalmazások telepítőcsomagjait módosítani lehessen anélkül, hogy az aláírás érvénytelenné válna. Ezzel a módszerrel tetszőleges kód futtatható egy sérülékeny telefonon, a támadók teljes kontrollt szerezhetnek a rendszer felett, minden adatot elérve.

Az új, kínai biztonsági szakemberek által felfedezett támadás azt használja ki, hogy a fájl ujjlenyomatát készítő algoritmus és a tulajdonképpeni futtató algoritmus egy paramétert eltérően értelmez, emiatt más kódról készül ujjlenyomat, mint ami tulajdonképp le is fut majd. Az h-online leírása szerint a hiba banális, az egyik kód short, a másik int típusként értelmez egy változót, amelynek ráadásul tetszőleges érték adható, így kijátszható a rendszer.

Az androidos telepítőcsomagokban a classes.dex állomány tartalmazza az alkalmazás Dalvik bájtkódját. A fájl szerkezete a helyi fejlécből, a fájlnévből, tetszőleges hosszúságú extra mezőből és a tulajdonképpeni kódból áll. A hiba megtalálói szerint ha az extra mező hosszának 0xFFFD-t adunk meg, akkor azt a validációs algoritmus -3-nak értelmezi, vagyis a kód kezdetét a fájlnév "dex" mezőjével kezdi - ami történetesen a classes.dex első három karaktere is. Futás esetén azonban az 0xFFFD átugorja az eredeti kódot tartalmazó extra mezőt és a módosított kódra ugrik és azt hajtja végre.

Ezért veszélyes

Az Androidon minden alkalmazást aláírás véd, amely elvileg szavatolja, hogy a telepítőcsomag (APK) kódját nem módosították, valóban az kerül fel a készülékre, amit a fejlesztő az alkalmazás-piactérre feltöltött. A kriptográfiai aláírásellenőrzés azonban hibás, ennek kiaknázása lehetővé teszi támadók számára, hogy a rendszer számára láthatatlan módon, az eredeti, érvényes aláírás megtartása mellett módosítsák egy alkalmazás kódját, tetszőlegesen. Magyarul az aláírás és az APK tartalma közötti kötelék megbontható, így adott elfogadott aláírás mellett tetszőleges kód futtatható a rendszeren.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig

Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

A biztonsági problémát súlyosbítja, hogy ilyen módon nem csak a felhasználói alkalmazások, de a beépített rendszerprogramok is támadhatóak-felülírhatóak, vagyis akár "system" szintű jogosultsággal is lefuthat az idegen kód, ami néhány bevett fogással egészen root jogig bővíthető, ennek birtokában pedig a támadó már a telefonon tárolt összes adathoz, a készülék összes funkciójához hozzáfér.

A gyorsan mozgó Cyanogen fejlesztői közösség már mindkét biztonsági hibára elkészítette a javítást, amelyek a szabad rendszer 10.1.2 telepítésével érhetőek el. A csapat most a rendszer két korábbi kiadása, a CM9 és CM7 számára is visszaportolja a javítást, így a felhasználók szélesebb köre lesz védve a potenciális hibától. A nagy gyártók egyelőre meglehetősen lassan mozognak, nincs információnk egyelőre olyan készülékről, amelyben gyártó már javította volna ezeket a sebezhetőségeket.

a címlapról