Az Android jogosultság emelés forradalma és a KernelSU biztonsági kockázatai

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

kami911 képe

Az Android rendszerek jogosultság emelése az utóbbi években jelentős átalakuláson ment keresztül, amit elsősorban az olyan fejlett rootolási keretrendszerek tették lehetővé, mint a KernelSU, az APatch és az SKRoot. Ezek az eszközök haladó kernel patch-elési technikákat alkalmaznak, hogy a felhasználói térből jogosulatlan kódvégrehajtást engedélyezzenek a kernel szintjén, lehetővé téve ezzel a root jogosultságok megszerzését és különböző biztonsági korlátozások megkerülését.

Kernel patching és a rendszerhívások kihasználása

Ezek a keretrendszerek kulcsfontosságú rendszerhívásokat, például a prctl hívást módosítják úgy, hogy rejtett kommunikációs csatornákat hozzanak létre a felhasználói térben futó menedzser alkalmazások és a kernel között. Ezáltal olyan műveletek válnak elérhetővé, mint például a SELinux biztonsági szabályzat módosítása vagy root jogosultságok engedélyezése.

Azonban a kernel mélyreható módosítása jelentős biztonsági kockázatokat hordoz magában. Ezt többek között a Zimperium zLabs kutatói is igazolták, akik 2023 közepén egy súlyos sérülékenységet fedeztek fel a KernelSU 0.5.7-es verziójában. Ez a hiba lehetővé tette, hogy egy támadó álcázza magát a legitim menedzser alkalmazásként, és így teljes hozzáférést szerezzen az eszközhöz.

A KernelSU sérülékenység részletei

A KernelSU keretrendszer a menedzser alkalmazás hitelesítését úgy valósítja meg, hogy a kernel a megadott /data/data/ elérési út alapján ellenőrzi az alkalmazás tulajdonjogát és a folyamat fájlleíró tábláját (file descriptor, fd), majd megkeresi az első /data/app/*/base[.]apk fájlt, hogy annak aláírási tanúsítványát összevesse a jogosultságok érvényesítéséhez.

Ez a módszer azonban versenyhelyzethez (race condition) vezetett, mivel a támadók manipulálhatták a fájlleírók sorrendjét úgy, hogy a kernel először a hivatalos KernelSU APK aláírását „látta” a saját hamis APK-juk helyett.

A támadás menete

Egy támadó létrehoz egy rosszindulatú alkalmazást, például com[.]attacker[.]manager néven, amely tartalmazza a valódi KernelSU base[.]apk fájlt a lib könyvtárában. Ezután úgy manipulálja a fájlleírókat, hogy bezárja a standard bemenetet (fd 0), majd megnyitja a csatolt, jogos aláírású APK-t, így az előrébb kerül a kernel által vizsgált sorrendben.

Ezt követően a támadó meghívja a prctl rendszerhívást a megfelelő adatokkal (prctl(0xDEADBEEF, CMD_BECOME_MANAGER, data_path)), ami lehetővé teszi számára a menedzser jogosultság megszerzését. Ezután végrehajthat parancsokat, mint a CMD_GRANT_ROOT (root jogosultság kiadása) vagy a CMD_SET_SEPOLICY (SELinux szabályzat módosítása), ami teljes körű rendszerhozzáférést jelent.

A bizonyíték

Egy proof-of-concept támadás igazolta, hogy ez a módszer még a hivatalos menedzser alkalmazás hitelesítése előtt root hozzáférést képes biztosítani, különösen akkor, ha a támadó a rendszerindulás után, a RECEIVE_BOOT_COMPLETED engedély birtokában lép működésbe.

A Kernel patching alapvető veszélyei

Az ilyen keretrendszerek alapja a hitelesítési mechanizmus, amelynek célja a kernel interfészek védelme. Azonban a gyakorlati megvalósítások rendszerint gyengék: az APatch és SKRoot például jelszó-alapú rendszereket használnak, amelyek könnyen támadhatók erőszakos vagy mellékcsatornás módszerekkel, ha a hitelesítés nem kellően szigorú.

Ezzel szemben a KernelSU csomag-alapú ellenőrzést alkalmaz, amely a hívó azonosítását a UID, csomagnév és APK aláírás alapján végzi, de mint láttuk, az ellenőrzés hiányosságai miatt itt is komoly kockázatok adódtak.

A rooting eszközök ökoszisztémájának általános problémái

A zLabs elemzései szerint szinte az összes ismert rooting keretrendszerben visszatérő hibák vannak, mint például a nem megfelelő hitelesítés, a nem szűrt felhasználói bemenetek kezelése vagy a bizonytalan kernel-felhasználói tér közötti kapcsolatok. Például az APatch korábbi verzióiban a gyenge jelszóvédelem miatt lehetőség nyílt jogosulatlan jogosultság-emelésre, míg a Magisk CVE-2024-48336 sérülékenysége révén a GMS (Google Mobile Services) álcázásával történt root jogosultságszerzés.

Következtetések és ajánlások

A leírt sebezhetőségek jól mutatják, hogy a közösségi fejlesztésű rootolási eszközök biztonsági auditja gyakran hiányos, ami jelentős kockázatot jelent mind a privát, mind a vállalati felhasználók számára. Az ilyen sérülékenységek miatt a mobil eszközök fenyegetettsége folyamatosan nő, hiszen a támadók egyre inkább a kernel szintjén keresik a kitartó hozzáférési lehetőségeket és a rosszindulatú kód telepítésének módjait.

(forrásforrás)