A Janus Exploit segítségével a támadók az aláírások befolyásolása nélkül módosíthatják az alkalmazásokat

click fraud protection

A Janus sebezhetősége lehetővé teszi a támadók számára, hogy az aláírásaik befolyásolása nélkül módosítsák az alkalmazásokat. A GuardSquare fedezte fel, és a Google javította ki.

Az Android nagyon sok eszközre van telepítve, és ez a rosszindulatú támadók célpontjává teszi. A Google mobil operációs rendszerének sebezhetőségét továbbra is minden hónapban fedezik fel, de a jó hír az, hogy a Google rendszerint szorgalmasan kijavítja ezeket a rendszeres biztonsági javításokban, amelyeket aztán felajánlanak az OEM-eknek, akik aztán szállítják eszközöket.

A közelmúltban a biztonsági kutatók egy sebezhetőséget fedeztek fel amely rávette a felhasználókat, hogy lehetővé tegyék a támadóknak, hogy rögzítsék eszközük képernyőjét. Ezt a bizonyos kizsákmányolást az Android Oreo rendszerben javították, de az elemzők a GuardSquare a közelmúltban egy másik súlyos sebezhetőségről számolt be, amely a régebbi aláírási sémákkal aláírt Android-alkalmazásokat érinti.

GuardSquarejelentése szerint a Janussebezhetőség

(CVE-2017-13156) az Androidban lehetővé teszi a támadók számára, hogy az aláírásaik befolyásolása nélkül módosítsák a kódot az alkalmazásokban. A jelentés kitér arra, hogy a sérülékenység gyökere az, hogy egy fájl egyszerre lehet érvényes APK-fájl és érvényes DEX-fájl is.

Janus kihasználja azt a tényt, hogy az extra bájtok észrevétlenek maradnak az APK- és DEX-fájlokban. A GuardSquare jelentés elmagyarázza, hogy az APK-fájl egy ZIP-archívum, amely tetszőleges bájtokat tartalmazhat a ZIP-bejegyzések elején, előtt és között. A JAR aláírási séma csak a ZIP-bejegyzéseket veszi figyelembe, figyelmen kívül hagyva a plusz bájtokat az alkalmazás aláírásának kiszámításakor vagy ellenőrzésekor.

A továbbiakban kifejti, hogy egy DEX-fájl viszont tetszőleges bájtokat tartalmazhat a végén - a karakterláncok, osztályok, metódusdefiníciók stb. szabályos szakaszai után. Ezért egy fájl lehet érvényes APK-fájl és érvényes DEX-fájl egyszerre.

GuardSquare megemlíti azt is, hogy a sérülékenység kulcseleme a Dalvik/ART virtuális gép "ártalmatlan" funkciója. A jelentés azt állítja, hogy elméletileg az Android futtatókörnyezete betölti az APK-fájlt, kibontja a DEX-fájlt, majd futtatja a kódját. A gyakorlatban azonban a virtuális gép (VM) képes betölteni és végrehajtani mind az APK-, mind a DEX-fájlokat. A probléma az, hogy amikor a virtuális gép megkap egy APK-fájlt, továbbra is a fejlécben lévő varázsbájtokat nézi, hogy eldöntse, melyik fájltípusról van szó: DEX vagy APK. A DEX-fejléc megtalálásakor a fájlt DEX-fájlként tölti be. Ha nem talál fejlécet, akkor APK-fájlként tölti be a fájlt, amely egy zip-bejegyzést és egy DEX-fájlt tartalmaz. Így félreértelmezheti a kettős DEX/APK fájlokat.

GuardSquare azt mondja, hogy a támadó kihasználhatja a virtuális gép kettős funkcióját, hogy rosszindulatú DEX-fájlt adjon egy normál APK-fájlhoz anélkül, hogy az aláírást érintené. Az Android futtatókörnyezete elfogadja az APK-fájlt, mint érvényes frissítést egy legitim korábbi alkalmazásverzióhoz, de a Dalvik VM a DEX-fájlból tölti be a kódot, amelybe rosszindulatú kód került.

Általában minden alkalommal, amikor a felhasználó telepíti egy alkalmazás frissített verzióját, az Android futtatókörnyezete ellenőrzi az alkalmazás aláírását, hogy megbizonyosodjon arról, hogy az megfelel a régebbi verziónak. Ha az ellenőrzés pozitív, a frissített alkalmazás megkapja az eredeti alkalmazás számára biztosított engedélyeket. Ily módon a támadók a Janus sebezhetőségét felhasználva megkerülhetik az aláírás-ellenőrzési folyamatot, és ellenőrizetlen kódot telepíthetnek a gyanútlan felhasználók eszközeire.

Ami még rosszabb, hogy ez az ellenőrizetlen kód erőteljes engedélyekhez juthat. Ez komoly lehetőségeket vet fel. GuardSquare Államok:

"A támadó lecserélheti a magas jogosultságokkal rendelkező megbízható alkalmazásokat (például rendszeralkalmazásokat) egy módosított frissítéssel, hogy visszaéljen az engedélyeivel. A megcélzott alkalmazástól függően ez lehetővé teheti a hacker számára, hogy hozzáférjen az eszközön tárolt érzékeny információkhoz, vagy akár teljesen átvegye az eszközt. Alternatív megoldásként a támadó átadhatja egy kényes alkalmazás módosított klónját legitim frissítésként [amely] az eredeti alkalmazáshoz hasonlóan néz ki és úgy viselkedhet, de rosszindulatú viselkedést indukál."

A cég hozzátette, hogy a mai napig nem láttak olyan alkalmazást, amely a vadonban kihasználná Janust. A másik jó hír az, hogy a sebezhetőség miatt a felhasználónak rosszindulatú frissítést kell telepítenie a Google Play Áruházon kívüli forrásból. Ezért védelmet élveznek azok a felhasználók, akik az alkalmazástelepítéseket a Play Áruházra korlátozzák.

A Janus sebezhetősége az Android 5.0 vagy újabb rendszert futtató eszközöket érinti. Az APK v1 aláírási sémájával aláírt alkalmazásokat érinti. A v2 aláírási sémával aláírt APK-k védettek a biztonsági rés ellen. Ehhez az szükséges, hogy az APK-k a legújabb aláírási sémát (Android 7.0 és újabb) támogató eszközökön futjanak. A v2 séma védett, mert a v1 sémával ellentétben az APK-fájl összes bájtját figyelembe veszi.

"Az alkalmazások régebbi verziói és a régebbi eszközökön futó újabb alkalmazások továbbra is érzékenyek. A fejlesztőknek legalább mindig a 2-es aláírási sémát kell alkalmazniuk." GuardSquare Államok.

GuardSquare 2017. július 31-én jelentette ezt a problémát a Google-nak, és ugyanazon a napon kapott visszaigazolást. A vállalat jelentése szerint a Google novemberben kiadott egy javítást partnereinek, és 2017. december 4-én közzétette a hibát (CVE-2017-13156) az Android Security Bulletin-ben. A sebezhetőség megvan javítva lett a 2017. decemberi Android biztonsági javításban. Külön megerősítették, hogy a hivatalos tárolójukból származó F-Droid alkalmazások biztonságosak. Végül megerősítést nyert, hogy a sérülékenységet kijavították APKMirror.


Forrás: GuardSquare