OnePlus efterlod en Qualcomm ingeniørtest-app, der fungerer som en bagdør for at give root-adgang på OnePlus 3, 3T og 5.
Opdatering: OnePlus har udsendt en officielt svar til sagen. De vil fjerne ADB-rodfunktionen fra EngineerMode i en kommende opdatering.
Det er lidt over en måned siden, at OnePlus blev fundet at samle personligt identificerbare oplysninger til analyse. Virksomheden vendte hurtigt kursen, og i en opdatering lovede virksomheden at være mere gennemsigtig ved klart at give brugerne mulighed for at fravælge OxygenOS-analyse. Selvom den debacle siden er løst, rejser en anden sit grimme hoved i aften. En bruger på Twitter, der går under navnet "Elliot Alderson" (opkaldt efter hovedpersonen i den populære Mr. Robot tv-serie) har opdaget, at OnePlus ved et uheld efterladt en diagnostisk testapplikation lavet af Qualcomm. Efter at have dekompileret denne applikation opdagede han, at det kan være det udnyttet til at give root-adgang – fungerer effektivt som en bagdør.
Applikationen kaldes "EngineerMode", og det er i bund og grund en systemapplikation lavet af Qualcomm og leveres til OEM'er som OnePlus, for at OEM'er nemt kan teste alle hardwarekomponenter i enhed. Applikationen er forudinstalleret på alle OnePlus 3-, OnePlus 3T- og OnePlus 5-enheder og kan være let tilgængelig gennem enhver aktivitetsstarter, da alle appens aktiviteter eksporteres.
Vi faktisk dækkede eksistensen af denne ansøgning for flere måneder siden, men på det tidspunkt anede vi ikke, hvad det kunne bruges til. Twitter-brugeren dekompilerede applikationen (dens kilde er blevet offentliggjort online her) og fandt en interessant aktivitet kaldet DiagEnabled. Især én metode skilte sig ud inden for aktiviteten: escalatedUp. Denne metode accepterer en boolesk værdi (sand/falsk) og en streng. Strengen er en adgangskode, der kontrolleres af metoden, før den indstiller systemegenskaberne persist.sys.adbroot
og oem.selinux.reload_policy
til 1.
Den første systemegenskab er særlig interessant, da den giver brugeren mulighed for at køre ADB som root. Dette åbner straks muligheden for at få fuld root-adgang på telefonen – alt sammen uden at låse bootloaderen op. Så hvordan får du EngineerMode-appen til at indstille disse systemegenskaber til at være '1'?
@fs0c131y var nødvendig for at finde den korrekte adgangskode for at sende hensigten for at kunne videregive logikken i metoden ovenfor. At finde denne adgangskode er dog ikke en nem opgave. Han dekompilerede biblioteket, der var ansvarligt for at generere adgangskoden (kaldet libdoor.so) og fandt, hvor adgangskodehashen var placeret: /data/backup/fpwd
. Adgangskoden er genereret fra forskellige build-egenskaber som f.eks ro.product.model
og ro.product.brand
og ville ikke være let at reverse engineering.
Heldigvis med hjælpen David Weinstein og Nu sikker på Twitter opdagede han den adgangskode, EngineerMode krævede for at eskalere ADB til root-privilegier.
Alt man skal gøre er at sende en hensigt i dette format:
adb shell am start -n com.android.engineeringmode/.qualcomm.DiagEnabled --es "code""angela"
hvor com.android.engineeringmode/.qualcomm. DiagEnabled er komponentnavnet på den DiagEnabled-aktivitet, vi udnytter, og "kode" er strengnavnet og "angela" er den relevante adgangskodeværdi.
@fs0c131y siger, at han vil offentliggøre en ansøgning snart vil det sende denne hensigt om at ophøje ADB til root-privilegier, patch boot-imaget for at deaktivere dm-verity og installere su-binære filer. Hold øje med XDA-foraene for, hvornår denne rodapplikation bliver udgivet.
Hvad dette betyder for slutbrugerne er, at du kan root nemt din OnePlus 3, OnePlus 3T og OnePlus 5 uden nogensinde at låse din bootloader op. Denne udnyttelse tillader dog ikke, at en ondsindet app giver sig selv root-adgang, så medmindre nogen har fysisk adgang til din enhed for at konfigurere ADB, så er du sikker mod udnyttelse.
Hvis du vil beskytte dig selv mod denne udnyttelse uanset, kan du det afinstaller appen fra den aktuelle bruger hvilket vil forhindre hensigten i at blive sendt til EngineerMode-appen. Bare brug følgende kommando i ADB:
adbshellpmuninstall-k--user 0 com.android.engineermode
Selvfølgelig betragtes dette stadig som en udnyttelse, og vi håber, at OnePlus retter dette snart. Alt, hvad de virkelig behøver at gøre, er at fjerne denne applikation fra fremtidige builds.
Opdatering 1: Adgangskoden er 'angela'
Brugeren @fs0c131y postede en opdatering på sin Twitter-side med den adgangskode, som du skal bruge for at komme ind i en rodfæstet ADB-skal. Det kodeord er...angela. For dem af jer, der ikke ser Mr. Robot, er Angela navnet på en af hovedpersonerne. Jeg gætter på, at der må være mange Mr. Robot-fans hos Qualcomm.
Hvis du indtaster kommandoen, jeg postede ovenfor i ADB, vil du bemærke, at ADB straks afbryder forbindelsen, og serveren genstarter. Indtast ADB igen, og du vil bemærke, at det nu er en rooted shell.
Opdatering 2: Hvordan adgangskoden blev afledt
Sikkerhedsfirmaet Now Secure har udgivet et blogindlæg, der beskriver, hvordan de udledte den adgangskode, der er nødvendig for, at denne root-udnyttelse kan opstå. Du kan læse hele deres indlæg her.
Opdatering 3: Flere enheder er berørt
Denne seneste nyhed burde ikke komme som en overraskelse, men flere enheder ser ud til at være påvirket af denne udnyttelse. Det skyldes, at EngineerMode-appen er en Qualcomm-app, så det er muligt, at andre OEM'er har ladet den være forudinstalleret på deres enheder. Indtil videre har brugere kontaktet @fs0c131y på Twitter for at bekræfte, at applikationen er installeret på nogle Asus Zenfone- og Xiaomi-enheder. Du kan nemt kontrollere, om din enhed har denne applikation, ved at gå ind i Indstillinger og se, hvilke apps der er installeret.
Opdatering 4: Rooting af din enhed
Ved at bruge nogle få kommandoer gennem den rodfæstede ADB-skal, er det nu muligt at skub su-binæren ind på din enhed. Ved at bruge det kan du derefter installere en root manager-app som SuperSU og derefter frit give root-adgang til andre apps. Alt sammen uden at låse din bootloader op!
Opdatering 5: OnePlus svarer
OnePlus har officielt reageret på situationen. I en blogindlæg, gentager virksomheden, at denne udnyttelse kun kan bruges, hvis en hacker har fysisk adgang til enheden og har aktiveret USB-fejlretning. For at aktivere USB-fejlretning skal angriberen også bruge din enheds pinkode/adgangskode. Således er rodbagdøren ikke let at udnytte af nogen app eller person, men ikke desto mindre vil OnePlus adressere brugernes bekymringer ved at fjerne denne funktionalitet fra EngineerMode-appen.