Kā anime spēles saknes noteikšanas rezultātā tika atklāta drošības ievainojamība LG, OnePlus, Huawei, Xiaomi un citu tālruņu tālruņos

Ir konstatēts, ka viedtālruņi no vairākiem ražotājiem, piemēram, LG, OnePlus, Huawei, Xiaomi, nopludina lietotņu procesa informāciju. Lūk, ko tas nozīmē.

Tiek izmantota mobilā Android operētājsistēma vairāk nekā 2 miljardi ierīču katru mēnesi gan regulāri patērētāji, gan tehnoloģiju entuziasti. Lai gan to cilvēku skaits, kuri atbloķē sāknēšanas programmu un sakņo savus viedtālruņus, ir salīdzinoši neliels, kad salīdzinot ar kopējo Android lietotāju skaitu, joprojām ir daudz mūsu forumos, piemēram, XDA un Reddit. Magisk ir neaizstājams rīks lāpīšanas kopienai. Tas nodrošina bezsistēmu root piekļuvi un ietver tādus rīkus kā MagiskHide, kas ļauj lietotājiem, kuriem ir saknes tiesības, bez ierobežojumiem turpināt izmantot lietotnes, spēles un pakalpojumus. Tomēr populāra Anime spēle ir gudri ļaunprātīgi izmantojusi sistēmas drošības ievainojamību, lai apietu Magisk pretsakņu noteikšanu. Lūk, kā tas darbojas un kuras ierīces ietekmē šī drošības ievainojamība.

  • Spēle ir izmantojusi kļūdu, lai noteiktu, vai ierīcei ir saknes tiesības. Ja ierīce ir iesakņojusies, spēle neļauj lietotājam spēlēt.
  • Kļūda ļauj lietotnei nolasīt citu atmiņā esošo lietotņu statusu, neprasot īpašas atļaujas. Kļūda neļauj lietotnēm nozagt datus no citām lietotnēm. Kļūda nav smaga un ir diezgan nekaitīga.
  • Google jau zina problēmu un ir atjauninājis savus testēšanas rīkus, lai pārliecinātos, ka visas ierīces ir aizsargātas.

Fons

Populāra Anime spēle ar nosaukumu Fate/Grand Order neļauj lietotājiem ar sakņotiem lietotājiem mēģināt spēlēt spēli. XDA atzītais izstrādātājs topjohnwu, kas iepriekš bija Magisk vadošais izstrādātājs atklāja veidu lai apietu Likteņa/Grand Order saknes noteikšanu, taču viņa risinājums nedarbojās ar OnePlus 6, neskatoties uz viņa centieniem. Apņēmies nepadoties, izstrādātājs analizēja Liktenis/Grand Order, lai noskaidrotu, kā tas joprojām atklāj sakni viņa OnePlus ierīcē. Kā viņš paskaidro savā Vidēja ziņa, tas lika viņam atklāt drošības ievainojamību, ko Liktenis/Grand Order šķietami ļaunprātīgi izmantoja, lai turpinātu OnePlus ierīču root piekļuves noteikšanu.

Liktenis/Lielais pasūtījums (angļu valodā)Izstrādātājs: Aniplex Inc.

Cena: bezmaksas.

4.

Lejupielādēt

Procfs un Android

Operētājsistēmās, kuru pamatā ir Unix, ir īpaša failu sistēma, ko sauc par "procfs", kas satur informāciju par procesi (domājiet par lietotnēm), piemēram, to atmiņas lietojums (domājiet par RAM), statuss (vai process darbojas, gulēšana utt.). Lielākajā daļā operētājsistēmu, kuru pamatā ir Unix, lietotājs un lietotnes var viegli piekļūt procfs, lai redzētu, kāda veida lietotnes un pakalpojumi darbojas viņu sistēmā (domājiet par to kā Window's Task Manager.) Tomēr Google sāka bloķēt piekļuvi procf sākot ar operētājsistēmu Android 7.0 Nougat. Pirms Android Nougat tādas lietotnes kā SystemPanel varēja vākt datus par to, kuras lietotnes darbojas, neprasot nekādas īpašas atļaujas. Pēc Android Nougat lietotnēm ir jāizmanto API, piemēram UsageStats vai Pieejamības pakalpojums, kuras abas ir ierobežotas ar atļaujām, kas jāpiešķir lietotājam.

SystemPanel 2Izstrādātājs: NextApp, Inc.

Cena: bezmaksas.

4.2.

Lejupielādēt

Google neļauj lietotnēm nolasīt citu lietotņu statusu, izmantojot procfs, pievienojot /proc ar karogu "hidepid=2". Instalējot procfs ar hidepid=2, lietotnes var redzēt tikai sava procesa statusu. Tādējādi lietotnei ir jāizmanto pieņemtās API, piemēram, UsageStats vai AccessibilityService, lai iegūtu informāciju par to, kuras lietotnes un pakalpojumi darbojas ierīcē.

Neaizsargātība

Ko darīt, ja procfs nav pievienots ar hidepid=2? Tad lietotnes varētu brīvi lasīt citu sistēmā darbojošos lietotņu (un pievienošanas punktu) statusu, neprasot nekādas papildu atļaujas*. Google savās ierīcēs pievieno procfs ar hidepid=2, taču citu ražotāju ierīcēs šī prasība netiek piemērota. Vairākas LG, OnePlus, Huawei/Honor, Xiaomi un citu ierīču ierīces nav montējušas procfs ar hidepid=2, ko izmanto tādas lietotnes kā Fate/Grand Order, lai noteiktu, vai Magisk ir pieejams ierīce.

* Drošības izmaiņas operētājsistēmā Android 9 Pie neļauj lietotnēm nolasīt informāciju ārpus to "SELinux konteksta", jo tagad katra lietotne ir izolēta atsevišķi. SELinux ir kodola modulis, kas darbojas kā sava veida vārtsargs, bloķējot lietotnēm un pakalpojumiem piekļuvi failiem, kuriem tiem nav jābūt. SELinux konteksts ir kā faila etiķete, kurā ir informācija, piemēram, lietotājs un loma. Lietojumprogrammas ar tādu pašu SELinux kontekstu var lasīt informāciju par citām lietotnēm tajā pašā kontekstā, ja procfs nav iespējots karogs hidepid=2. Ierīcēs, kurās darbojas operētājsistēma Android 9 Pie, Android Pie jaunās SELinux izmaiņas attieksies tikai uz tām lietotnēm, kas ir izstrādātas mērķauditorijas atlasei Android Pie. Lietotnēs, kuru mērķauditorija ir Android 8.1 Oreo vai vecāka versija, tiks izmantoti vecie SELinux noteikumi, ļaujot tām piekļūt informācija par procesiem tajā pašā SELinux kontekstā, ja vien procfs ir pievienots bez hidepid=2. Pateicoties lielākajai daļai lietotņu, kas darbojas jūsu ierīcē, mērķauditorijai vajadzētu būt vismaz operētājsistēmai Android 8.0 Oreo jaunās Google Play prasības, taču daudzi vēl nebūs atjaunināti, lai mērķētu uz Android Pie.

Šajos ekrānuzņēmumos parādītas sekas, ja procfs netiek uzstādīts ar hidepid=2.

Cik tas ir slikti?

Ja mēs šo sistēmas ievainojamību salīdzinātu ar tādiem ekspluatācijas veidiem kā Fusée Gelée, Blueborne, KRACK, un Meltdown/Spectre, tad šī kļūda nobāl salīdzinājumā. Lietotnes nevar to izmantot, lai iegūtu root piekļuvi vai nozagtu jūsu paroles. Jūsu bankas konti un kredītkartes ir droši. Sliktākais, ko lietotne var darīt, ir noskaidrot, vai jūsu ierīcē darbojas cita lietotne, kuras lietojums ir ļoti ierobežots. Atcerieties, ka tā ir standarta darbība daudzos GNU/Linux izplatījumos un ka Google tikai nesen sāka bloķēt piekļuvi procfs, izmantojot Android Nougat. Šī kļūda ļauj lietotnēm apiet, ja ir nepieciešamas noteiktas atļaujas, lai pārraudzītu citus procesus, taču tās joprojām nevar uzlauzt Android smilškaste un nozagt datus no citām lietotnēm. Tomēr tā ir neparedzēta rīcība un pārkāpj Android konfidencialitātes funkciju, tāpēc tā ir jānovērš.

Vai mana ierīce tiek ietekmēta?

Šeit ir to ierīču saraksts, kurās mēs esam atklājuši, ka tās nepievieno procfs ar hidepid=2:

OEM

Ierīce

Android versija

procfs Noplūdes

Asus

ZenFone 5Z

Android 8.0 Oreo

BlackBerry

KEY2

Android 8.0 Oreo

Būtiski

PH-1

Android 9 Pie

Google

Pixel 2

Android 9 Pie

Google

Pixel 3

Android 9 Pie

Google

Pixel 3 XL

Android 9 Pie

Gods

Maģija 2

Android 9 Pie

HTC

U12+

Android 8.0 Oreo

Huawei

Mate 20 X

Android 9 Pie

LG

G7 ThinQ

Android 8.0 Oreo

LG

V40 ThinQ

Android 8.1 Oreo

Motorola

Moto G4

Android 8.1 Oreo

Nokia

7.1

Android 8.1 Oreo

OnePlus

6

Android 8.1 Oreo/Android 9 Pie

OnePlus

6T

Android 9 Pie

Razer

Tālrunis 2

Android 8.1 Oreo

Samsung

Galaxy Note 8

Android 8.0 Oreo

Samsung

Galaxy Note 9

Android 8.1 Oreo/Android 9 Pie

Samsung

Galaxy S7

Android 8.0 Oreo

Samsung

Galaxy S8

Android 8.0 Oreo

Samsung

Galaxy S9

Android 9 Pie

Samsung

Galaxy S9+ (Exynos)

Android 8.0 Oreo

Sony

Xperia XZ1

Android 9 Pie

Xiaomi

Mi Mix 2S

Android 9 Pie

Xiaomi

POCO F1

Android 8.1 Oreo

Kā pārbaudīt, vai jūsu ierīce ir ietekmēta

Ir diezgan viegli pārbaudīt, vai jūsu ierīce nenoplūst procesa informācija citām lietotnēm (citiem vārdiem sakot, procfs nav pievienots ar hidepid=2). Lai gan varat izmantot čaulas komandas, kā mēs to darījām, varat arī pārbaudīt, izmantojot topjohnwu izstrādāto lietotni. Viņa lietotne arī ļauj atkārtoti pievienot procfs ar hidepid=2, ja jūsu tālrunis ir saknes.

Lejupielādēt ProcGate

Vai būs kāds labojums?

Jā, tas tiks labots. Google tagad pieprasīs, lai visās ierīcēs būtu jāpievieno procfs ar hidepid=2. Viņi to ieviesīs līdz atjaunināšana saderības testa komplekts (CTS) — pārbaužu kopums, kas jāiztur visām ierīcēm, lai tās varētu izmantot Google Play lietotnes un pakalpojumus. Visiem oriģinālā aprīkojuma ražotājiem (kas vēlas pārdot ierīces ar iepriekš instalētu Google Play veikalu) ir jāizdod atjauninājums, lai tuvākajā nākotnē atkārtoti pievienotu procfs ar hidepid=2. Tā kā OnePlus ierīces bija pirmās, kas tika atklātas ar šo problēmu, OnePlus jau ir informēts un strādā pie labojuma. Mēs atjaunināsim šo rakstu, ja citi OEM komentēs šo kļūdu, taču nav jādomā, vai jūsu ierīces OEM izdos atjauninājumu. Ja viņi vēlas, lai viņu atjauninājums tiktu nodots CTS, viņiem šī kļūda ir jānovērš.