Hogyan vezetett egy animejáték gyökérészlelése egy biztonsági rés felfedezéséhez az LG, OnePlus, Huawei, Xiaomi és mások telefonjaiban

Számos gyártó, például LG, OnePlus, Huawei, Xiaomi okostelefonjairól kiderült, hogy kiszivárogtatják az alkalmazások folyamatinformációit. Íme, ez mit jelent.

A mobil Android operációs rendszert használják több mint 2 milliárd eszköz minden hónapban a rendszeres fogyasztók és a technológia szerelmesei. Bár viszonylag kicsi azoknak a száma, akik feloldják a rendszerbetöltőt és rootolják okostelefonjukat, amikor Összehasonlítva az Android-felhasználók teljes populációjával, még mindig sokan vagyunk az olyan fórumokon, mint az XDA és Reddit. A Magisk nélkülözhetetlen eszköz a bütykös közösség számára. Rendszer nélküli root hozzáférést biztosít, és olyan eszközökkel rendelkezik, mint a MagiskHide, amelyek lehetővé teszik a root felhasználók számára, hogy korlátozások nélkül használják az általuk élvezett alkalmazásokat, játékokat és szolgáltatásokat. Egy népszerű Anime-játék azonban ügyesen visszaél a rendszer biztonsági résével, hogy megkerülje a Magisk gyökérellenes észlelését. Íme, hogyan működik ez, és mely eszközöket érinti ez a biztonsági rés.

  • Egy játék hibát használt annak észlelésére, hogy az eszköz rootolt-e. Ha az eszköz rootolt, a játék letiltja a felhasználót a játékban.
  • A hiba lehetővé teszi az alkalmazás számára, hogy külön engedélyek nélkül beolvassa a memóriában lévő többi alkalmazás állapotát. A hiba nem teszi lehetővé az alkalmazások számára, hogy adatokat lopjanak el más alkalmazásoktól. A hiba nem súlyos, és meglehetősen ártalmatlan.
  • A Google már tudja és frissítette tesztelőeszközeit, hogy megbizonyosodjon arról, hogy minden eszköz védett.

Háttér

A Fate/Grand Order nevű népszerű animejáték megakadályozza, hogy a gyökeres felhasználók megpróbáljanak játszani a játékkal. XDA elismert fejlesztő topjohnwu, a Magisk vezető fejlesztője, korábban utat fedezett fel hogy megkerülje a Fate/Grand Order gyökérérzékelését, de megoldása minden igyekezete ellenére sem működött a OnePlus 6-on. A fejlesztő elhatározta, hogy nem adja fel, elemezte a Fate/Grand Ordert, hogy kiderítse, hogyan észleli még mindig a root OnePlus eszközén. Ahogy a sajátjában kifejti Közepes poszt, ez egy biztonsági rés felfedezéséhez vezetett, amellyel a Fate/Grand Order látszólag visszaélt, hogy továbbra is root hozzáférést észleljen a OnePlus eszközökön.

Sors/Grand Order (angol)Fejlesztő: Aniplex Inc.

Ár: Ingyenes.

4.

Letöltés

Procfs és Android

A Unix alapú operációs rendszereken van egy speciális fájlrendszer, az úgynevezett "procfs", amely információkat tartalmaz folyamatok (gondoljunk az alkalmazásokra), például memóriahasználatuk (gondolom a RAM-ra), állapotuk (fut-e a folyamat, alvás stb.). A legtöbb Unix-alapú operációs rendszeren a felhasználó és az alkalmazások könnyen hozzáférhetnek a procf-okhoz, hogy megnézzék, milyen típusúak alkalmazások és szolgáltatások futnak a rendszerükön (gondoljunk úgy, mint a Windows Feladatkezelője.) A Google azonban elkezdett zárolja a hozzáférést a procf-hoz Android 7.0 Nougat rendszerrel kezdődően. Az Android Nougat előtt az olyan alkalmazások, mint a SystemPanel, külön engedélyek nélkül tudtak adatokat gyűjteni arról, hogy milyen alkalmazások futnak. Az Android Nougat után az alkalmazásoknak olyan API-kat kell használniuk, mint pl UsageStats vagy AccessibilityService, mindkettőt a felhasználónak meg kell adnia az engedélyekkel.

SystemPanel 2Fejlesztő: NextApp, Inc.

Ár: Ingyenes.

4.2.

Letöltés

A Google megakadályozza, hogy az alkalmazások beolvassák más alkalmazások állapotát a procfs-on keresztül, ha a /proc „hidepid=2” jelzővel együtt felcsatolják. Ha a procf-okat hidepid=2-vel csatlakoztatja, az alkalmazások csak a saját folyamatuk állapotát láthatják. Így az alkalmazásnak az elfogadott API-kat, például a UsageStats-t vagy az AccessibilityService-t kell használnia ahhoz, hogy információt szerezzen arról, milyen alkalmazások és szolgáltatások futnak az eszközön.

Sebezhetőség

Mi van, ha a procfs nem a hidepid=2-vel van csatlakoztatva? Nos, akkor az alkalmazások szabadon olvashatják a rendszeren futó egyéb alkalmazások (és csatlakozási pontok) állapotát, anélkül, hogy további engedélyekre lenne szükségük*. A Google a hidepid=2-vel rendelkező procf-okat a saját eszközeire csatlakoztatja, de ezt a követelményt nem kényszerítik más gyártók eszközeire. Az LG, a OnePlus, a Huawei/Honor, a Xiaomi és mások számos eszköze nem szerelt fel procf-t hidepid=2, amit az olyan alkalmazások, mint a Fate/Grand Order kihasználnak annak észlelésére, hogy a Magisk jelen van-e az eszköz.

*Az Android 9 Pie biztonsági módosítása megakadályozza, hogy az alkalmazások a saját „SELinux környezetükön” kívül olvassanak információkat, mivel mostantól minden alkalmazás külön-külön van elkülönítve. A SELinux egy kernelmodul, amely bizonyosfajta kapuőrként működik, megakadályozva, hogy az alkalmazások és szolgáltatások hozzáférjenek olyan fájlokhoz, amelyekhez nem kellene. A SELinux környezet olyan, mint egy fájl címkéje, amely olyan információkat tartalmaz, mint a felhasználó és a szerep. Az azonos SELinux környezettel rendelkező alkalmazások információkat olvashatnak más alkalmazásokról ugyanabban a környezetben, ha a hidepid=2 jelző nincs engedélyezve a procfs-hoz. Az Android 9 Pie rendszert futtató eszközökön csak az Android Pie-t célzó alkalmazásokra vonatkoznak az Android Pie új SELinux módosításai. Az Android 8.1 Oreo vagy régebbi verziót célzó alkalmazások a régi SELinux szabályokat fogják használni, lehetővé téve számukra a hozzáférést információ a folyamatokról ugyanabban a SELinux kontextusban, mindaddig, amíg a procfs anélkül van csatlakoztatva hidepid=2. Az eszközön futó legtöbb alkalmazásnak legalább az Android 8.0 Oreót kell céloznia, köszönhetően új Google Play követelmények, de sokukat még nem frissítették az Android Pie céljára.

A következő képernyőképek azt mutatják be, hogy milyen következményekkel járhat, ha a hidepid=2-vel nem csatlakoztatja a procfs-t.

Mennyire rossz ez?

Ha összehasonlítjuk ezt a rendszer sebezhetőségét olyan kihasználásokkal, mint pl Fusée Gelée, Blueborne, KRACK, és Meltdown/Spectre, akkor ez a hiba elhalványul ehhez képest. Az alkalmazások ezt nem használhatják root hozzáférésre vagy jelszavak ellopására. Bankszámlái biztonságban vannak, és hitelkártyái is biztonságban vannak. A legrosszabb, amit egy alkalmazás tehet, hogy megtudja, fut-e másik alkalmazás az eszközén, amely nagyon korlátozottan használható. Ne feledje, hogy ez a szokásos viselkedés sok GNU/Linux disztribúción, és hogy a Google csak nemrég kezdte el blokkolni a procfs-hoz való hozzáférést az Android Nougat segítségével. Ez a hiba lehetővé teszi az alkalmazások számára, hogy kikerüljenek bizonyos engedélyeket más folyamatok figyeléséhez, de továbbra sem tudják feltörni az Android homokozóját és ellopni az adatokat más alkalmazásokból. Ettől függetlenül ez nem szándékos viselkedés, és megsérti az Android adatvédelmi funkcióját, ezért ki kell javítani.

A készülékem érintett?

Itt van azoknak az eszközöknek a listája, amelyekről megállapítottuk, hogy nem csatlakoztatják a procfs-t hidepid=2-vel:

OEM

Eszköz

Android verzió

procfs Leaks

Asus

ZenFone 5Z

Android 8.0 Oreo

Igen

Földi szeder

KEY2

Android 8.0 Oreo

Nem

Alapvető

PH-1

Android 9 Pie

Nem

Google

Pixel 2

Android 9 Pie

Nem

Google

Pixel 3

Android 9 Pie

Nem

Google

Pixel 3 XL

Android 9 Pie

Nem

Becsület

Varázslat 2

Android 9 Pie

Igen

HTC

U12+

Android 8.0 Oreo

Igen

Huawei

Mate 20 X

Android 9 Pie

Igen

LG

G7 ThinQ

Android 8.0 Oreo

Igen

LG

V40 ThinQ

Android 8.1 Oreo

Igen

Motorola

Moto G4

Android 8.1 Oreo

Nem

Nokia

7.1

Android 8.1 Oreo

Nem

OnePlus

6

Android 8.1 Oreo/Android 9 Pie

Igen

OnePlus

6T

Android 9 Pie

Igen

Razer

Telefon 2

Android 8.1 Oreo

Igen

Samsung

Galaxy Note 8

Android 8.0 Oreo

Nem

Samsung

Galaxy Note 9

Android 8.1 Oreo/Android 9 Pie

Nem

Samsung

Galaxy S7

Android 8.0 Oreo

Nem

Samsung

Galaxy S8

Android 8.0 Oreo

Nem

Samsung

Galaxy S9

Android 9 Pie

Nem

Samsung

Galaxy S9+ (Exynos)

Android 8.0 Oreo

Igen

Sony

Xperia XZ1

Android 9 Pie

Nem

Xiaomi

Mi Mix 2S

Android 9 Pie

Igen

Xiaomi

POCO F1

Android 8.1 Oreo

Igen

Hogyan ellenőrizhető, hogy az eszköz érintett-e

Nagyon könnyű ellenőrizni, hogy az eszközöd nem szivárog-e ki folyamatinformációkat más alkalmazásokba (más szóval, a procfs nincs beillesztve a hidepid=2-vel). Bár használhatod a shell-parancsokat, ahogy mi tettük, ellenőrizheted a topjohnwu által kifejlesztett alkalmazással is. Alkalmazása lehetővé teszi a procfs újracsatlakoztatását a hidepid=2-vel, ha a telefon rootolt.

Töltse le a ProcGate-et

Lesz valami javítás?

Igen, ez megoldódik. A Google ezentúl megköveteli, hogy minden eszköz csatolja a procfs-t a hidepid=2-vel. Ezzel érvényesíteni fogják ezt frissítése a Compatibility Test Suite (CTS), egy olyan tesztkészlet, amelyen minden eszköznek át kell mennie ahhoz, hogy használni tudja a Google Play alkalmazásokat és szolgáltatásokat. Minden OEM-nek (amelyek előre telepített Google Play Áruházzal akarnak eladni) frissítést kell kiadniuk a procfs hidepid=2-vel történő újracsatlakoztatásához a közeljövőben. Mivel a OnePlus eszközöket fedezték fel először ezzel a problémával, A OnePlus már értesült róla, és dolgozik a javításon. Frissítjük ezt a cikket, ha más OEM-ek megjegyzést fűznek ehhez a hibához, de nem kell azon töprengeni, hogy az eszköz OEM-je kiad-e frissítést. Ha azt akarják, hogy a frissítésük átmenjen a CTS-en, ki kell javítaniuk ezt a hibát.