Smartphones fra flere producenter som LG, OnePlus, Huawei, Xiaomi har vist sig at lække procesinformationen fra apps. Her er hvad det betyder.
Det mobile Android-operativsystem bruges på over 2 milliarder enheder hver måned af både almindelige forbrugere og tech-entusiaster. Selvom antallet af mennesker, der låser bootloaderen op og rooter deres smartphones, er relativt lille, hvornår sammenlignet med den samlede befolkning af Android-brugere, er der stadig mange af os derude på fora som XDA og Reddit. Magisk er et uundværligt værktøj for tinker-fællesskabet. Det giver systemløs root-adgang og har værktøjer som MagiskHide, der gør det muligt for rootede brugere at fortsætte med at bruge de apps, spil og tjenester, de nyder godt af uden begrænsninger. Et populært Anime-spil har dog på snedigt vis misbrugt en sikkerhedssårbarhed i systemet til at omgå Magisks anti-root-detektion. Her er, hvordan det fungerer, og hvilke enheder der er påvirket af denne sikkerhedssårbarhed.
- Et spil har brugt en fejl til at opdage, om en enhed er blevet rootet. Hvis enheden er rootet, blokerer spillet brugeren i at spille.
- Fejlen gør det muligt for en app at læse status for andre apps i hukommelsen uden at skulle have særlige tilladelser. Fejlen tillader ikke apps at stjæle data fra andre apps. Fejlen er ikke alvorlig og er ret harmløs.
- Google er allerede klar over det af problemet og har opdateret deres testværktøjer for at sikre, at alle enheder er beskyttet.
Baggrund
Et populært Anime-spil kaldet Fate/Grand Order blokerer rodfæstede brugere fra at forsøge at spille spillet. XDA anerkendt udvikler topjohnwu, den ledende udvikler af Magisk, tidligere opdaget en måde at omgå Fate/Grand Orders roddetektion, men hans løsning virkede ikke på hans OnePlus 6 på trods af hans bedste indsats. Fast besluttet på ikke at give op, analyserede udvikleren Fate/Grand Order for at finde ud af, hvordan den stadig opdagede rod på hans OnePlus-enhed. Som han forklarer i sit Medium indlæg, førte dette ham til opdagelsen af en sikkerhedssårbarhed, som Fate/Grand Order tilsyneladende misbrugte for at fortsætte med at opdage root-adgang på OnePlus-enheder.
Pris: Gratis.
4.
Procfs og Android
På Unix-baserede operativsystemer er der et særligt filsystem kaldet "procfs", der indeholder information om processer (tænk apps) såsom deres hukommelsesforbrug (tænk RAM), status (om processen kører, sove osv.). På de fleste Unix-baserede operativsystemer har brugeren og apps nem adgang til procfs for at se, hvilke slags apps og tjenester kører på deres system (tænk på det som Window's Task Manager.) Men Google begyndte at låse adgang til procfs starter i Android 7.0 Nougat. Før Android Nougat var apps som SystemPanel i stand til at indsamle data om, hvilke apps der kørte uden at have brug for særlige tilladelser. Efter Android Nougat skal apps bruge API'er som f.eks UsageStats eller Tilgængelighedsservice, som begge er lukket af tilladelser, der skal gives af brugeren.
Pris: Gratis.
4.2.
Google forhindrer apps i at læse status for andre apps via procfs ved at montere /proc med flaget "hidepid=2." Ved at montere procfs med hidepid=2 kan apps kun se status for deres egen proces. En app skal således bruge de accepterede API'er som UsageStats eller AccessibilityService for at få information om, hvilke apps og tjenester der kører på enheden.
Sårbarhed
Hvad hvis procfs ikke er monteret med hidepid=2? Nå, så ville apps frit kunne læse status for andre apps (og monteringspunkter), der kører på systemet uden at skulle have ekstra tilladelser*. Google monterer procfs med hidepid=2 på deres egne enheder, men de håndhæver ikke dette krav på enheder fra andre producenter. Flere enheder fra LG, OnePlus, Huawei/Honor, Xiaomi og andre har ikke monteret procfs med hidepid=2, hvilket er, hvad apps som Fate/Grand Order udnytter til at registrere, om Magisk er til stede på enheden.
*En sikkerhedsændring i Android 9 Pie forhindrer apps i at læse information uden for deres egen "SELinux-kontekst", fordi hver app nu er isoleret individuelt. SELinux er et kernemodul, der fungerer som en slags gatekeeper, der blokerer apps og tjenester i at få adgang til filer, de ikke skal. En SELinux-kontekst er som en etiket for en fil, der har information som brugeren og rollen. Apps med samme SELinux-kontekst kan læse information om andre apps i samme kontekst, hvis flaget hidepid=2 ikke er aktiveret for procfs. På enheder, der kører Android 9 Pie, er det kun apps, der er bygget målrettet mod Android Pie, der vil have Android Pies nye SELinux-ændringer gældende for dem. Apps, der er målrettet mod Android 8.1 Oreo eller derunder, vil bruge de gamle SELinux-regler, hvilket giver dem adgang til information om processer i samme SELinux-kontekst, så længe procfs er monteret uden hidepid=2. De fleste apps, der kører på din enhed, burde i det mindste være målrettet mod Android 8.0 Oreo takket være nye krav til Google Play, men mange vil ikke være blevet opdateret til at målrette mod Android Pie endnu.
Følgende skærmbilleder viser konsekvenserne af ikke at montere procfs med hidepid=2.
Hvor slemt er det her?
Hvis vi skulle sammenligne denne systemsårbarhed med udnyttelser som Fusée Gelée, Blueborne, KRACK, og Nedsmeltning/Spectre, så blegner denne fejl i sammenligning. Apps kan ikke bruge dette til at få root-adgang eller stjæle dine adgangskoder. Dine bankkonti er sikre, og det er dine kreditkort også. Det værste, en app kan gøre, er at fortælle, om en anden app kører på din enhed, som har meget begrænset anvendelse. Husk, at dette er standardadfærd på mange GNU/Linux-distributioner, og at Google først for nylig begyndte at blokere adgang til procfs med Android Nougat. Denne fejl gør det muligt for apps at omgå behovet for visse tilladelser til at overvåge andre processer, men de kan stadig ikke bryde Androids sandkasse og stjæle data fra andre apps. Uanset hvad er dette utilsigtet adfærd og bryder en privatlivsfunktion i Android, så det skal rettes.
Er min enhed påvirket?
Her er en liste over enheder, som vi har fundet til ikke at montere procfs med hidepid=2:
OEM |
Enhed |
Android version |
procfs Lækager |
---|---|---|---|
Asus |
ZenFone 5Z |
Android 8.0 Oreo |
Ja |
Brombær |
NØGLE2 |
Android 8.0 Oreo |
Ingen |
Vigtig |
PH-1 |
Android 9 Pie |
Ingen |
Pixel 2 |
Android 9 Pie |
Ingen |
|
Pixel 3 |
Android 9 Pie |
Ingen |
|
Pixel 3 XL |
Android 9 Pie |
Ingen |
|
Ære |
Magi 2 |
Android 9 Pie |
Ja |
HTC |
U12+ |
Android 8.0 Oreo |
Ja |
Huawei |
Mate 20 X |
Android 9 Pie |
Ja |
LG |
G7 ThinQ |
Android 8.0 Oreo |
Ja |
LG |
V40 ThinQ |
Android 8.1 Oreo |
Ja |
Motorola |
Moto G4 |
Android 8.1 Oreo |
Ingen |
Nokia |
7.1 |
Android 8.1 Oreo |
Ingen |
OnePlus |
6 |
Android 8.1 Oreo/Android 9 Pie |
Ja |
OnePlus |
6T |
Android 9 Pie |
Ja |
Razer |
Telefon 2 |
Android 8.1 Oreo |
Ja |
Samsung |
Galaxy Note 8 |
Android 8.0 Oreo |
Ingen |
Samsung |
Galaxy Note 9 |
Android 8.1 Oreo/Android 9 Pie |
Ingen |
Samsung |
Galaxy S7 |
Android 8.0 Oreo |
Ingen |
Samsung |
Galaxy S8 |
Android 8.0 Oreo |
Ingen |
Samsung |
Galaxy S9 |
Android 9 Pie |
Ingen |
Samsung |
Galaxy S9+ (Exynos) |
Android 8.0 Oreo |
Ja |
Sony |
Xperia XZ1 |
Android 9 Pie |
Ingen |
Xiaomi |
Mi Mix 2S |
Android 9 Pie |
Ja |
Xiaomi |
POCO F1 |
Android 8.1 Oreo |
Ja |
Sådan kontrollerer du, om din enhed er påvirket
Det er ret nemt at tjekke, om din enhed lækker procesinformation til andre apps (med andre ord er procfs ikke monteret med hidepid=2). Mens du kan bruge shell-kommandoer, som vi gjorde, kan du også tjekke ved hjælp af en app, som topjohnwu har udviklet. Hans app giver dig også mulighed for at genmontere procfs med hidepid=2, hvis din telefon er rootet.
Download ProcGate
Vil der være en rettelse?
Ja, dette vil blive rettet. Google vil nu kræve, at alle enheder monterer procfs med hidepid=2. De vil håndhæve dette pr opdatering Compatibility Test Suite (CTS), et sæt tests, som alle enheder skal bestå for at kunne bruge Google Play-apps og -tjenester. Alle OEM'er (der ønsker at sælge enheder med Google Play Butik forudinstalleret) skal til sidst udstede en opdatering for at genmontere procfs med hidepid=2 i den nærmeste fremtid. Da OnePlus-enheder var de første, der blev opdaget med dette problem, OnePlus er allerede blevet gjort opmærksom på og arbejder på en rettelse. Vi opdaterer denne artikel, hvis andre OEM'er kommenterer denne fejl, men der er ingen grund til at spekulere på, om din enheds OEM vil udstede en opdatering. Hvis de vil have deres opdatering til at bestå CTS, så skal de rette denne fejl.