Qualcomm-enheter har ett EDL-läge, vilket som det visar sig verkar kunna utnyttjas om du har rätt verktyg släppta av OEM: erna.
Enheter med Qualcomm-kretsuppsättningar har en Primary Bootloader (PBL) som vanligtvis startar Android-systemet, men som också innehåller ett alternativt startläge som kallas EDL-läge. EDL-läget är Qualcomms Emergency Degenlast Mode och tillåter en Original Eutrustning Men tillverkare (OEM) för att tvinga flashprogramvara på en enhet. Detta kan inte ändras (skrivskyddat läge) och har full kontroll över enhetens lagring. Många OEM-tillverkare inklusive OnePlus och Xiaomi har släppt verktyg (kända som programmerare) som använder EDL-läge och ett protokoll som kallas Firehose för att lösa upp en enhet, medan andra verktyg från företag som Nokia har läckt ut. Firehose kan använda ett antal kommandon för att flasha enheter, tillsammans med möjligheten att undersöka data i en enhets minne. Säkerhetsforskare Roee Hay (@roeehay) och Noam Hadad från Aleph Research har upptäckt kritiska enhetssårbarheter med detta läge, vilket effektivt ger en angripare
fullständig åtkomst till enheten.Det är viktigt att notera det detta utnyttjande kräver fysisk åtkomst till enheten, men det är fortfarande otroligt farligt och kan troligen inte korrigeras. Angriparna använde den åtkomstnivå som beviljats till EDL-läget för att kringgå säker start på en Nokia 6, och besegrade kedja av förtroende och få fullständig kodexekvering över alla delar av startsekvensen inklusive Android OS sig. Det är teoretiserat att det fungerar på samma sätt på andra enheter, och forskarna lyckades också låsa upp och rota flera Xiaomi-enheter utan någon dataförlust.
Vilka enheter påverkas av detta utnyttjande?
För det första de enheter som påverkas.
Lista över berörda enheter.
- LG G4
- Nokia 6 (d1c)
- Nokia 5
- Nexus 6 (shamu)
- Nexus 6P (fiskare)
- Moto G4 Plus
- OnePlus 5 (ostburgare)
- OnePlus 3T
- OnePlus 3
- OnePlus 2
- OnePlus X
- Ett plus ett
- ZTE Axon 7
- ZUK Z1
- ZUK Z2
- Xiaomi Note 5A (ugglite)
- Xiaomi Note 5 Prime (ugg)
- Xiaomi Note 4 (mido)
- Xiaomi Note 3 (jason)
- Xiaomi Note 2 (skorpion)
- Xiaomi Mix (litium)
- Xiaomi Mix 2 (chiron)
- Xiaomi Mi 6 (sagit)
- Xiaomi Mi 5s (stenbocken)
- Xiaomi Mi 5s Plus (natrium)
- Xiaomi Mi 5x (tiffany)
- Xiaomi Mi 5 (tvilling)
- Xiaomi Mi 3 (cancro)
- Xiaomi Mi A1 (tissot)
- Xiaomi Mi Max2 (syre)
- Xiaomi Redmi Note 3 (kenzo)
- Xiaomi Redmi 5A (riva)
- Xiaomi Redmi 4A (rosa)
Läs mer
Utnyttja en Android-telefon
Startsekvensen för en typisk Android Qualcomm-telefon
Det är viktigt att först förstå startsekvensen för en typisk Android-enhet innan du förklarar hur den kan utnyttjas. De Softa Bootloader (SBL) är en digitalt signerad bootloader som kontrolleras för äkthet innan den laddas in i imem. imem är ett fast-on-chip-minne som används för felsökning och DMA (ddirekt mminne access) transaktioner och ägs av Qualcomm-chipset.
Vissa enheter har ett eXspännbar Bootloader (XBL) istället för en SBL, men startprocessen är i stort sett densamma. SBL eller XBL startar sedan ABOOT, som implementerar fastboot. Efter detta laddas även TrustZone (hårdvarubaserad säkerhet). TrustZone kontrollerar äktheten av ABOOT med hjälp av ett hårdvarubaserat rotcertifikat. SBL (eller XBL, i vissa fall) är utformad för att avvisa en felaktigt signerad (eller osignerad) ABOOT.
När det har autentiserats kontrollerar ABOOT sedan /boot och /recovery för autenticitet innan Linux-kärnan startas. Vissa systemförberedelser görs och sedan överförs kodexekveringen till kärnan. ABOOT är allmänt känd som "Android Bootloader", och när vi låser upp starthanteraren för en enhet inaktiverar vi denna autenticitetskontroll i ABOOT.
Åtkomst till EDL-läge
Medan vissa enheter har en enkel hårdvarukombination (eller ännu värre, ett enkelt proprietärt fastboot-kommando som finns i många Xiaomi-enheter), andra, såsom Nokia-enheter, behöver korta stift som kallas "testpunkter" som finns på enhetens huvud styrelse. Det brukade också vara möjligt, innan säkerhetskorrigeringen från december 2017, att helt enkelt köra "adb reboot edl" på många enheter (inklusive Nexus 6 och 6P) och gå in i EDL-läge. Detta har sedan åtgärdats.
Andra enheter kan också använda vad som kallas en "deep flash"-kabel, vilket är en speciell kabel med vissa stift kortslutna för att tala om för systemet att istället starta upp i EDL-läge. Gamla Xiaomi-enheter kan använda denna metod, tillsammans med Nokia 5 och Nokia 6. Andra enheter kommer också att starta upp i EDL-läge när de inte kan verifiera SBL.
Använder EDL-läge för att få full åtkomst på en OnePlus 3/3T
EDL-läge kan användas på ett antal sätt på en enhet, mestadels för att ta bort enheter genom att tvinga dem att blinka. Som förklarats ovan borde det teoretiskt sett vara säkert för vem som helst att komma åt detta läge, eftersom det värsta scenariot är att ABOOT kommer att avvisa programvara som inte är officiellt signerad av tillverkaren. Även om detta är sant, är det faktiskt möjligt att få fullständig kontroll över en OnePlus 3 eller 3T och dess filer i en proof of concept-exploatering som forskarna visar.
Detta kommer att göras genom två mycket farliga kommandon som OnePlus lämnade tillgängliga i en äldre version av ABOOT (Android bootloader), för att låsa upp enhetens bootloader (utan att en varning visas för användaren vid start) och inaktivera dm_verity. dm_verity är också känd som verifierad start och är en del av en säker uppstartssekvens på en Android-enhet. De två kommandona är som följer.
fastboot oem disable_dm_verity
fastboot oem 4F500301/2
Observera den enkla 4-stegsprocessen nedan som använder Firehose-protokollet.
- Starta först enheten i EDL-läge. Detta kan antingen göras genom adb på OxygenOS 5.0 eller lägre eller genom att använda en enkel hårdvaruknappkombination.
- Ladda ner en gammal systembild av nedanstående OxygenOS 4.0.2.
- Flasha aboot.bin genom brandslang (kom ihåg att aboot.bin implementerar fastboot, som vi nämnde tidigare)
- Du kommer nu att kunna inaktivera säker start och låsa upp starthanteraren utan att torka av enheten helt enkelt genom att använda de två fastboot-kommandona ovan.
Om du kommer ihåg, visade sig OnePlus tidigare ha lämnat två farliga snabbstartkommandon för nästan ett år sedan, ett som låste upp starthanteraren och ett som inaktiverade säker start. Även om det är sant att en angripare kan inte installera skadlig programvara på enheten, Dom kan nedgradera enheten att ha äldre, sårbara för attackprogramvara. Helt enkelt genom att köra ovanstående fastboot-kommandon kan en angripare ha full tillgång till enheten.
Och det är det, starthanteraren är upplåst, säker start är avstängd och det sker absolut ingen dataförlust. Om en angripare ville ta detta ett steg längre, kunde de flasha en skadlig anpassad kärna som möjliggör root-åtkomst till enheten som användaren aldrig skulle veta om.
Firehose arbetar genom Qualcomm Sahara-protokollet, som accepterar en OEM-signerad programmerare och är hur ovanstående attack skulle utföras. När den är ansluten till en enhet fungerar den som en SBL över USB. De flesta programmerare använder Brandslang att kommunicera med en telefon i EDL-läge, vilket är vad forskarna utnyttjade för att få full enhetskontroll. Det använde forskarna också till låsa upp en Xiaomi-enhet helt enkelt genom att blinka en modifierad bild som låste upp starthanteraren. De flashade sedan en anpassad kärna som gav root-åtkomst och startade SELinux i tillåtande och extraherade även den krypterade användardatabilden från enheten.
Slutsats
Det är okänt varför OEM-tillverkare släpper dessa programmerare från Qualcomm. Nokia, LG, Motorola och Googles programmerare läckte snarare än att släppas, men forskarna lyckades ändå bryt hela förtroendekedjan på Nokia 6 och få full tillgång till enheten genom liknande metoder utnyttjande. De är övertygade om att attacken kan porteras till vilken enhet som helst som stöder dessa programmerare. Om möjligt bör OEM-tillverkare använda hårdvara qFuses som förhindrar återställning av mjukvara, genom att blåsa när enhetens hårdvara rullas tillbaka och kan varna en användare att det har ägt rum. De som är intresserade kan ta en titt på hela forskningsartikeln nedan och kan också läsa hela Nokias utnyttjande.
Källa: Aleph Research