Zařízení Qualcomm mají režim EDL, který, jak se ukázalo, se zdá být zneužitelný, pokud máte správné nástroje vydané výrobci OEM.
Zařízení s čipsety Qualcomm mají a Primary Bootloader (PBL), který obvykle spouští systém Android, ale také obsahuje alternativní režim spouštění známý jako režim EDL. Režim EDL je od společnosti Qualcomm Enouze Dvlastní náklad Móda a umožňuje an Ópůvodní Evybavení Mvýrobce (OEM), aby vynutil flash software na zařízení. Toto nelze upravit (režim pouze pro čtení) a má plnou kontrolu nad úložištěm zařízení. Mnoho výrobců OEM včetně OnePlus a Xiaomi vydalo nástroje (známé jako programátoři), které využívají režim EDL a protokol známý jako Firehose pro odblokování zařízení, zatímco jiné nástroje od společností, jako je Nokia, unikly. Firehose může využívat řadu příkazů k flashování zařízení spolu s možností prozkoumat data v paměti zařízení. Bezpečnostní výzkumníci Roee Hay (@roeehay) a Noam Hadad z Výzkum Aleph objevili kritické zranitelnosti zařízení pomocí tohoto režimu, který účinně poskytuje útočníkovi povolení plný přístup k zařízení.
Je důležité si toho uvědomit tento exploit vyžaduje fyzický přístup k zařízení, ale stále je neuvěřitelně nebezpečný a pravděpodobně jej nelze opravit. Útočníci využili úrovně přístupu uděleného režimu EDL k obejití bezpečného spouštění na Nokii 6, čímž porazili řetěz důvěry a získání úplného spuštění kódu ve všech částech zaváděcí sekvence včetně operačního systému Android sám. Teoreticky by to fungovalo stejně na jiných zařízeních a výzkumníkům se také podařilo odemknout a rootnout více zařízení Xiaomi bez ztráty dat.
Jaká zařízení jsou tímto exploitem ovlivněna?
Za prvé, zařízení, kterých se to týká.
Seznam dotčených zařízení.
- LG G4
- Nokia 6 (d1c)
- Nokia 5
- Nexus 6 (shamu)
- Nexus 6P (rybář)
- Moto G4 Plus
- OnePlus 5 (cheeseburger)
- OnePlus 3T
- OnePlus 3
- OnePlus 2
- OnePlus X
- Jedna plus jedna
- 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 (scorpion)
- Xiaomi Mix (lithium)
- Xiaomi Mix 2 (chiron)
- Xiaomi Mi 6 (sagit)
- Xiaomi Mi 5s (kozoroh)
- Xiaomi Mi 5s Plus (natrium)
- Xiaomi Mi 5x (tiffany)
- Xiaomi Mi 5 (gemini)
- Xiaomi Mi 3 (cancro)
- Xiaomi Mi A1 (Tissot)
- Xiaomi Mi Max2 (kyslík)
- Xiaomi Redmi Note 3 (kenzo)
- Xiaomi Redmi 5A (riva)
- Xiaomi Redmi 4A (růžový)
Přečtěte si více
Využití telefonu Android
Spouštěcí sekvence typického telefonu Android Qualcomm
Je důležité nejprve porozumět spouštěcí sekvenci typického zařízení Android, než vysvětlíte, jak jej lze zneužít. The Software Bootloader (SBL) je digitálně podepsaný bootloader, který je před nahráním do imem zkontrolován na pravost. imem je rychlá paměť na čipu používaná pro ladění a DMA (dpřímý memory Access) a je majetkem čipových sad Qualcomm.
Některá zařízení mají eXnapínatelný Bootloader (XBL) místo SBL, ale proces spouštění je v podstatě stejný. SBL nebo XBL pak spustí ABOOT, který implementuje rychlé spuštění. Následně se také načte TrustZone (hardwarové zabezpečení). TrustZone kontroluje pravost ABOOT pomocí hardwarového kořenového certifikátu. SBL (nebo XBL, v některých případech) je navržen tak, aby odmítl nesprávně podepsaný (nebo nepodepsaný) ABOOT.
Po ověření ABOOT zkontroluje autentičnost /boot a /recovery před spuštěním linuxového jádra. Provedou se některé systémové přípravy a pak se spuštění kódu přenese do jádra. ABOOT je běžně známý jako „Android Bootloader“ a když odemkneme bootloader zařízení, deaktivujeme tuto kontrolu pravosti v ABOOT.
Přístup do režimu EDL
Zatímco některá zařízení mají jednoduchou hardwarovou kombinaci (nebo ještě hůře, jednoduchý proprietární příkaz rychlého spuštění, který se vyskytuje v mnoha zařízení Xiaomi), ostatní, například zařízení Nokia, potřebují zkrátit kolíky známé jako „testovací body“ přítomné na hlavním zařízení deska. Před opravou zabezpečení z prosince 2017 bylo také možné jednoduše spustit „adb reboot edl“ na mnoha zařízeních (včetně Nexus 6 a 6P) a vstoupit do režimu EDL. To bylo od té doby opraveno.
Jiná zařízení mohou také používat to, co je známo jako „deep flash“ kabel, což je speciální kabel s určitými zkratovanými kolíky, který říká systému, aby se místo toho zavedl do režimu EDL. Stará zařízení Xiaomi mohou tuto metodu využívat spolu s Nokia 5 a Nokia 6. Ostatní zařízení se také zavedou do režimu EDL, když se jim nepodaří ověřit SBL.
Využití režimu EDL k získání plného přístupu na OnePlus 3/3T
Režim EDL lze na zařízení využít mnoha způsoby, většinou k odblokování zařízení jejich vynuceným blikáním. Jak je vysvětleno výše, teoreticky by měl být pro kohokoli bezpečný přístup k tomuto režimu, protože horším scénářem je, že ABOOT odmítne software, který není oficiálně podepsán výrobcem. I když je to pravda, ve skutečnosti je možné získat úplnou kontrolu nad OnePlus 3 nebo 3T a jejich soubory v důkazu o využití konceptu, který výzkumníci ukázali.
To bude provedeno pomocí dvou velmi nebezpečných příkazů, které OnePlus nechal dostupné ve starší verzi ABOOT (Android bootloader), abyste odemkli zavaděč zařízení (aniž by se uživateli zobrazilo varování při spouštění) a deaktivovali dm_verity. dm_verity je také známý jako ověřené spouštění a je součástí bezpečné spouštěcí sekvence na zařízení Android. Tyto dva příkazy jsou následující.
fastboot oem disable_dm_verity
fastboot oem 4F500301/2
Sledujte níže uvedený jednoduchý, 4krokový proces, který využívá protokol Firehose.
- Nejprve spusťte zařízení do režimu EDL. To lze provést buď prostřednictvím adb na OxygenOS 5.0 nebo nižším, nebo pomocí jednoduché kombinace hardwarových kláves.
- Stáhněte si starý systémový obraz níže OxygenOS 4.0.2.
- Flash aboot.bin přes firehose (nezapomeňte, že aboot.bin implementuje fastboot, jak jsme zmínili dříve)
- Nyní budete moci deaktivovat zabezpečené spouštění a odemknout bootloader aniž byste zařízení otírali jednoduše pomocí dvou výše uvedených příkazů rychlého spuštění.
Pokud si vzpomínáte, bylo dříve zjištěno, že OnePlus před téměř rokem zanechal dva nebezpečné příkazy rychlého spouštění, jeden, který odemkl bootloader a jeden, který deaktivoval bezpečné spouštění. I když je pravda, že útočník nelze do zařízení nainstalovat škodlivý software, oni mohou downgrade zařízení mít starší software náchylný k útokům. Útočník může mít jednoduše spuštěním výše uvedených příkazů rychlého spuštění plný přístup k zařízení.
A je to, bootloader je odemčený, secure boot vypnutý a absolutně nedochází ke ztrátě dat. Pokud by útočník chtěl udělat krok dále, mohl by flashovat škodlivé vlastní jádro, které umožňuje root přístup k zařízení, o kterém by se uživatel nikdy nedozvěděl.
Firehose funguje prostřednictvím protokolu Qualcomm Sahara, který přijímá programátora podepsaného OEM a podle toho by byl proveden výše uvedený útok. Po připojení k zařízení se chová jako SBL přes USB. Většina programátorů používá Požární hadice komunikovat s telefonem v režimu EDL, což je to, co výzkumníci využili k získání plné kontroly nad zařízením. Výzkumníci toho také využili odemkněte zařízení Xiaomi jednoduše probliknutím upraveného obrázku která odemkla bootloader. Poté vytvořili vlastní jádro, které poskytlo root přístup a spustilo SELinux v permisivním přístupu a také extrahovalo zašifrovaný obraz uživatelských dat ze zařízení.
Závěr
Není známo, proč OEM uvolňují tyto programátory od Qualcommu. Programátoři Nokie, LG, Motoroly a Google spíše unikli, než aby byli zveřejněni, ale výzkumníci to dokázali přerušte celý řetězec důvěry v telefon Nokia 6 a získejte plný přístup k zařízení pomocí podobných metod vykořisťování. Jsou přesvědčeni, že útok lze přenést na jakékoli zařízení, které podporuje tyto programátory. Je-li to možné, měli by výrobci OEM používat hardwarové pojistky qFuse, které zabraňují vrácení softwaru tím, že se sfouknou při vrácení hardwaru zařízení a mohou uživatele upozornit, že k tomu došlo. Zájemci se mohou podívat na celý výzkumný dokument níže a mohou si také přečíst úplné využití Nokie.
Zdroj: Aleph Research