Kaip anime žaidimo šaknų aptikimas paskatino aptikti LG, OnePlus, Huawei, Xiaomi ir kitų telefonų saugos pažeidžiamumą

Nustatyta, kad kelių gamintojų, tokių kaip LG, OnePlus, Huawei, Xiaomi, išmanieji telefonai nutekina programėlių proceso informaciją. Štai ką tai reiškia.

Naudojama mobilioji Android operacinė sistema daugiau nei 2 milijardai įrenginių kiekvieną mėnesį tiek nuolatiniai vartotojai, tiek technologijų entuziastai. Nors žmonių, kurie atrakina įkrovos tvarkyklę ir išleidžia savo išmaniuosius telefonus, skaičius yra palyginti mažas, kai palyginti su bendra „Android“ naudotojų populiacija, mūsų vis dar yra daug forumuose, tokiuose kaip XDA ir Reddit. „Magisk“ yra nepakeičiamas įrankis meistrų bendruomenei. Ji suteikia sisteminę root prieigą ir turi tokius įrankius kaip MagiskHide, leidžiančius įsišaknijusius naudotojus be apribojimų naudoti programėles, žaidimus ir paslaugas, kuriomis jie naudojasi. Tačiau populiarus Anime žaidimas sumaniai piktnaudžiauja sistemos saugumo pažeidžiamumu, kad apeitų Magisk anti-root aptikimą. Štai kaip tai veikia ir kuriuos įrenginius paveikė šis saugos pažeidžiamumas.

  • Žaidimas naudojo klaidą, kad nustatytų, ar įrenginys buvo įsišaknijęs. Jei įrenginys yra įsišaknijęs, žaidimas blokuoja vartotoją nuo žaidimo.
  • Dėl šios klaidos programa gali nuskaityti kitų atmintyje esančių programų būseną, nereikalaujant jokių specialių leidimų. Ši klaida neleidžia programoms pavogti jokių duomenų iš kitų programų. Klaida nėra sunki ir yra gana nekenksminga.
  • „Google“ jau žino ir atnaujino savo testavimo įrankius, kad įsitikintų, jog visi įrenginiai yra apsaugoti.

Fonas

Populiarus anime žaidimas, pavadintas Fate/Grand Order, neleidžia įsišaknintiems vartotojams bandyti žaisti žaidimą. XDA pripažintas kūrėjas topjohnwu, anksčiau buvo pagrindinis Magisk kūrėjas atrado būdą apeiti Likimo / Didžiojo Ordino šaknies aptikimą, tačiau jo sprendimas neveikė „OnePlus 6“, nepaisant visų jo pastangų. Nusprendęs nepasiduoti, kūrėjas išanalizavo „Fate/Grand Order“, kad išsiaiškintų, kaip jis vis dar aptinka šaknį jo „OnePlus“ įrenginyje. Kaip jis paaiškina savo Vidutinis įrašas, tai paskatino jį aptikti saugos spragą, kuria „Fate/Grand Order“, regis, piktnaudžiauja, siekdama toliau aptikti pagrindinę prieigą „OnePlus“ įrenginiuose.

Likimas / Didysis ordinas (anglų k.)Programuotojas: Aniplex Inc.

Kaina: Nemokama.

4.

parsisiųsti

„Procfs“ ir „Android“.

„Unix“ pagrindu veikiančiose operacinėse sistemose yra speciali failų sistema, vadinama „procfs“, kurioje yra informacijos apie procesai (galvokite apie programas), pvz., jų atminties naudojimas (pagalvokite RAM), būsena (ar procesas vyksta, miegas ir pan.). Daugumoje „Unix“ pagrįstų operacinių sistemų vartotojas ir programos turi lengvą prieigą prie procfs, kad pamatytų, kokių tipų programos ir paslaugos veikia jų sistemoje (pagalvokite apie tai kaip „Windows“ užduočių tvarkytuvę). Tačiau „Google“. pradėjo užrakinti prieigą prie procf pradedant „Android 7.0 Nougat“. Prieš „Android Nougat“ tokios programos kaip „SystemPanel“ galėjo rinkti duomenis apie veikiančias programas, nereikalaujant jokių specialių leidimų. Po Android Nougat programos turi naudoti API, pvz UsageStats arba Prieinamumo paslauga, kurie abu yra apriboti leidimais, kuriuos turi suteikti vartotojas.

2 sistemos skydelisProgramuotojas: NextApp, Inc.

Kaina: Nemokama.

4.2.

parsisiųsti

„Google“ neleidžia programoms nuskaityti kitų programų būsenos per procfs, prijungdama /proc su vėliavėle „hidepid=2“. Sumontavus procfs su hidepid=2, programos gali matyti tik savo proceso būseną. Taigi, norint gauti informacijos apie tai, kokios programos ir paslaugos veikia įrenginyje, programa turi naudoti priimtas API, pvz., „UsageStats“ arba „AccessibilityService“.

Pažeidžiamumas

Ką daryti, jei procfs nėra prijungtas su hidepid=2? Na, tada programos galėtų laisvai skaityti kitų sistemoje veikiančių programų (ir prijungimo taškų) būseną, nereikalaujant jokių papildomų leidimų*. „Google“ montuoja procfs su hidepid=2 savo įrenginiuose, tačiau šio reikalavimo neįgyvendina kitų gamintojų įrenginiuose. Kai kuriuose LG, OnePlus, Huawei/Honor, Xiaomi ir kitų įrenginiuose procfs nebuvo montuojamas hidepid=2, kuriuo pasinaudoja tokios programos kaip „Fate/Grand Order“, kad nustatytų, ar „Magisk“ yra įrenginys.

* „Android 9 Pie“ saugos pakeitimas neleidžia programoms skaityti informacijos už savo „SELinux“ konteksto ribų, nes dabar kiekviena programa yra atskirta atskirai. SELinux yra branduolio modulis, kuris veikia kaip vartų sargas, blokuodamas programoms ir paslaugoms pasiekti failus, kurių jie neturi. SELinux kontekstas yra tarsi failo etiketė, kurioje yra tokia informacija kaip vartotojas ir vaidmuo. Programos su tuo pačiu SELinux kontekstu gali skaityti informaciją apie kitas programas tame pačiame kontekste, jei hidepid=2 vėliavėlė neįjungta procfs. Įrenginiuose, kuriuose veikia „Android 9 Pie“, nauji „Android Pie“ SELinux pakeitimai bus taikomi tik toms programoms, kurios sukurtos pagal „Android Pie“. Programos, skirtos „Android 8.1 Oreo“ ar senesnei versijai, naudos senas „SELinux“ taisykles, leisdamos joms pasiekti informacija apie procesus tame pačiame SELinux kontekste, kol procfs yra prijungtas be hidepid=2. Daugelis jūsų įrenginyje veikiančių programų turėtų būti taikomos bent jau „Android 8.0 Oreo“, nes nauji „Google Play“ reikalavimai, tačiau daugelis dar nebuvo atnaujintos, kad būtų taikomos „Android Pie“.

Šiose ekrano kopijose parodytos pasekmės, kai neįdiegsite procfs su hidepid=2.

Kaip tai blogai?

Jei palygintume šios sistemos pažeidžiamumą su tokiais išnaudojimais kaip Fusée Gelée, Blueborne, KRACK, ir Meltdown/Spectre, tada ši klaida nublanksta prieš akis. Programos negali to naudoti, kad įgytų root prieigą arba pavogtų jūsų slaptažodžius. Jūsų banko sąskaitos yra saugios, taip pat ir kredito kortelės. Blogiausia, ką gali padaryti programa, tai sužinoti, ar jūsų įrenginyje veikia kita programa, kurios naudojimas yra labai ribotas. Atminkite, kad tai yra įprastas daugelio GNU/Linux paskirstymų elgesys ir kad „Google“ tik neseniai pradėjo blokuoti prieigą prie procfs su Android Nougat. Ši klaida leidžia programoms apeiti, kai reikia tam tikrų leidimų, kad galėtų stebėti kitus procesus, tačiau jos vis tiek negali pažeisti „Android“ smėlio dėžės ir pavogti duomenų iš kitų programų. Nepaisant to, tai yra nenumatytas elgesys ir pažeidžia „Android“ privatumo funkciją, todėl ją reikia ištaisyti.

Ar mano įrenginys paveiktas?

Čia yra sąrašas įrenginių, kurie, kaip nustatėme, neprijungia procfs su hidepid=2:

OĮG

Įrenginys

Android versija

procfs Leaks

Asus

ZenFone 5Z

Android 8.0 Oreo

Taip

BlackBerry

2 RAKTAS

Android 8.0 Oreo

Nr

Esminis

PH-1

Android 9 Pie

Nr

Google

Pixel 2

Android 9 Pie

Nr

Google

Pixel 3

Android 9 Pie

Nr

Google

Pixel 3 XL

Android 9 Pie

Nr

Garbė

Magija 2

Android 9 Pie

Taip

HTC

U12+

Android 8.0 Oreo

Taip

Huawei

Mate 20 X

Android 9 Pie

Taip

LG

G7 ThinQ

Android 8.0 Oreo

Taip

LG

V40 ThinQ

Android 8.1 Oreo

Taip

Motorola

Moto G4

Android 8.1 Oreo

Nr

Nokia

7.1

Android 8.1 Oreo

Nr

„OnePlus“.

6

Android 8.1 Oreo / Android 9 Pie

Taip

„OnePlus“.

6T

Android 9 Pie

Taip

Razeris

2 telefonas

Android 8.1 Oreo

Taip

Samsung

Galaxy Note 8

Android 8.0 Oreo

Nr

Samsung

Galaxy Note 9

Android 8.1 Oreo / Android 9 Pie

Nr

Samsung

Galaxy S7

Android 8.0 Oreo

Nr

Samsung

Galaxy S8

Android 8.0 Oreo

Nr

Samsung

Galaxy S9

Android 9 Pie

Nr

Samsung

„Galaxy S9+“ („Exynos“)

Android 8.0 Oreo

Taip

Sony

Xperia XZ1

Android 9 Pie

Nr

Xiaomi

Mi Mix 2S

Android 9 Pie

Taip

Xiaomi

POCO F1

Android 8.1 Oreo

Taip

Kaip patikrinti, ar jūsų įrenginys yra paveiktas

Gana lengva patikrinti, ar jūsų įrenginys nenutekina proceso informacijos į kitas programas (kitaip tariant, procfs nėra prijungtas su hidepid=2). Nors galite naudoti apvalkalo komandas, kaip mes, taip pat galite patikrinti naudodami programą, kurią sukūrė topjohnwu. Jo programa taip pat leidžia iš naujo prijungti procfs su hidepid=2, jei jūsų telefonas yra įsišaknijęs.

Atsisiųskite „ProcGate“.

Ar bus taisymas?

Taip, tai bus pataisyta. „Google“ dabar reikalaus, kad visi įrenginiai prijungtų procfs su hidepid=2. Jie tai įgyvendins atnaujinimas suderinamumo testų komplektą (CTS) – testų rinkinį, kurį turi išlaikyti visi įrenginiai, kad galėtų naudoti „Google Play“ programas ir paslaugas. Visi originalios įrangos gamintojai (kurie nori parduoti įrenginius su iš anksto įdiegta „Google Play“ parduotuve) galiausiai turi išleisti naujinį, kad artimiausiu metu vėl prijungtų procfs su hidepid=2. Kadangi „OnePlus“ įrenginiai buvo pirmieji, kuriems buvo nustatyta ši problema, „OnePlus“ jau buvo informuota ir dirba, kad pataisytų. Atnaujinsime šį straipsnį, jei kiti OĮG pakomentuos šią klaidą, tačiau nereikia svarstyti, ar jūsų įrenginio OĮG paskelbs naujinį. Jei jie nori, kad jų naujinimas išlaikytų CTS, jie turi ištaisyti šią klaidą.