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.
Cena: bezmaksas.
4.
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.
Cena: bezmaksas.
4.2.
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 |
Jā |
BlackBerry |
KEY2 |
Android 8.0 Oreo |
Nē |
Būtiski |
PH-1 |
Android 9 Pie |
Nē |
Pixel 2 |
Android 9 Pie |
Nē |
|
Pixel 3 |
Android 9 Pie |
Nē |
|
Pixel 3 XL |
Android 9 Pie |
Nē |
|
Gods |
Maģija 2 |
Android 9 Pie |
Jā |
HTC |
U12+ |
Android 8.0 Oreo |
Jā |
Huawei |
Mate 20 X |
Android 9 Pie |
Jā |
LG |
G7 ThinQ |
Android 8.0 Oreo |
Jā |
LG |
V40 ThinQ |
Android 8.1 Oreo |
Jā |
Motorola |
Moto G4 |
Android 8.1 Oreo |
Nē |
Nokia |
7.1 |
Android 8.1 Oreo |
Nē |
OnePlus |
6 |
Android 8.1 Oreo/Android 9 Pie |
Jā |
OnePlus |
6T |
Android 9 Pie |
Jā |
Razer |
Tālrunis 2 |
Android 8.1 Oreo |
Jā |
Samsung |
Galaxy Note 8 |
Android 8.0 Oreo |
Nē |
Samsung |
Galaxy Note 9 |
Android 8.1 Oreo/Android 9 Pie |
Nē |
Samsung |
Galaxy S7 |
Android 8.0 Oreo |
Nē |
Samsung |
Galaxy S8 |
Android 8.0 Oreo |
Nē |
Samsung |
Galaxy S9 |
Android 9 Pie |
Nē |
Samsung |
Galaxy S9+ (Exynos) |
Android 8.0 Oreo |
Jā |
Sony |
Xperia XZ1 |
Android 9 Pie |
Nē |
Xiaomi |
Mi Mix 2S |
Android 9 Pie |
Jā |
Xiaomi |
POCO F1 |
Android 8.1 Oreo |
Jā |
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š.