Exploit celuje w tryb EDL firmy Qualcomm i wpływa na niektóre urządzenia Xiaomi, OnePlus, Nokia i inne

Urządzenia Qualcomma mają tryb EDL, który, jak się okazuje, wydaje się możliwy do wykorzystania, jeśli masz odpowiednie narzędzia wydane przez producentów OEM.

Urządzenia z chipsetami Qualcomm mają Pbrzegowe Botloader (PBL), który zazwyczaj uruchamia system Android, ale zawiera także alternatywny tryb rozruchu znany jako tryb EDL. Tryb EDL to Qualcomm mipołączenie Dwłasny ładunek Moda i pozwala Ooryginalny miwyposażenie Mproducenta (OEM), aby wymusić flashowanie oprogramowania na urządzeniu. Nie można tego modyfikować (tryb tylko do odczytu) i ma pełną kontrolę nad pamięcią urządzenia. Wielu producentów OEM, w tym OnePlus i Xiaomi, wypuściło narzędzia (znane jako programiści), które wykorzystują tryb EDL i protokół znany jako Firehose służący do odblokowania urządzenia, podczas gdy wyciekły inne narzędzia takich firm jak Nokia. Firehose może wykorzystywać wiele poleceń do flashowania urządzeń, a także możliwość sprawdzania danych w pamięci urządzenia. Badacze bezpieczeństwa Roee Hay (@roeehay

) I Noama Hadada z Badania Alepha odkryli krytyczne luki w zabezpieczeniach urządzenia, korzystając z tego trybu, który skutecznie zapewnia atakującemu pełny dostęp do urządzenia.

Ważne jest, aby o tym pamiętać exploit ten wymaga fizycznego dostępu do urządzenia, ale nadal jest niezwykle niebezpieczny i prawdopodobnie nie można go załatać. Osoby atakujące wykorzystały poziom dostępu przyznany trybowi EDL do ominięcia bezpiecznego rozruchu w telefonie Nokia 6, pokonując w ten sposób łańcucha zaufania i uzyskanie pełnego wykonania kodu w każdej części sekwencji rozruchowej, w tym w systemie operacyjnym Android samo. Teoretycznie działa w ten sam sposób na innych urządzeniach, a naukowcom udało się także odblokować i zrootować wiele urządzeń Xiaomi bez utraty danych.

Na jakie urządzenia wpływa ten exploit?

Po pierwsze, urządzenia, których to dotyczy.

Lista urządzeń, których to dotyczy.

  • LG G4
  • Nokia 6 (d1c)
  • Nokii 5
  • Nexus 6 (shamu)
  • Nexus 6P (wędkarz)
  • Moto G4 Plus
  • OnePlus 5 (cheesburger)
  • OnePlusa 3T
  • OnePlusa 3
  • OnePlusa 2
  • OnePlus X
  • Jeden dodać jeden
  • ZTE Akson 7
  • ZUK Z1
  • ZUK Z2
  • Xiaomi Note 5A (ugglite)
  • Xiaomi Note 5 Prime (ugg)
  • Xiaomi Note 4 (mido)
  • Xiaomi Uwaga 3 (jason)
  • Xiaomi Note 2 (skorpion)
  • Xiaomi Mix (lit)
  • Xiaomi Mix 2 (chiron)
  • Xiaomi Mi 6 (skręt)
  • Xiaomi Mi 5s (Koziorożec)
  • Xiaomi Mi 5s Plus (sód)
  • Xiaomi Mi 5x (tiffany)
  • Xiaomi Mi 5 (Bliźnięta)
  • Xiaomi Mi 3 (cancro)
  • Xiaomi Mi A1 (tissot)
  • Xiaomi Mi Max2 (tlen)
  • Xiaomi Redmi Note 3 (kenzo)
  • Xiaomi Redmi 5A (riva)
  • Xiaomi Redmi 4A (różowy)

Czytaj więcej

Wykorzystanie telefonu z Androidem

Sekwencja rozruchowa typowego telefonu Qualcomm z Androidem

Ważne jest, aby najpierw zrozumieć sekwencję rozruchową typowego urządzenia z systemem Android, zanim wyjaśnisz, w jaki sposób można je wykorzystać. The Sczęsto Botloader (SBL) to program ładujący z podpisem cyfrowym, który jest sprawdzany pod kątem autentyczności przed załadowaniem do imem. imem to pamięć typu fast-on-chip używana do debugowania i DMA (Dbezpośrednio Memocje Adostęp) transakcji i jest własnością chipsetów Qualcomm.

Niektóre urządzenia mają złącze eXrozciągliwy Botloader (XBL) zamiast SBL, ale proces uruchamiania jest prawie taki sam. Następnie SBL lub XBL uruchamia ABOOT, który implementuje fastboot. Następnie ładowane jest również TrustZone (zabezpieczenia sprzętowe). TrustZone sprawdza autentyczność ABOOT za pomocą sprzętowego certyfikatu głównego. SBL (lub w niektórych przypadkach XBL) ma na celu odrzucenie niepoprawnie podpisanego (lub niepodpisanego) ABOOT.

Po uwierzytelnieniu ABOOT sprawdza autentyczność plików /boot i /recovery przed uruchomieniem jądra Linuksa. Zakończono pewne przygotowania systemu, a następnie wykonanie kodu jest przekazywane do jądra. ABOOT jest powszechnie znany jako „program ładujący Androida”, a kiedy odblokujemy program ładujący urządzenia, wyłączamy tę kontrolę autentyczności w ABOOT.

Wizualizacja sekwencji rozruchowej standardowego urządzenia z systemem Android. // Źródło: Badania Alepha

Dostęp do trybu EDL

Chociaż niektóre urządzenia mają prostą kombinację sprzętu (lub, co gorsza, proste, zastrzeżone polecenie fastboot obecne w wielu urządzenia Xiaomi), inne, takie jak urządzenia Nokia, wymagają zwarcia pinów zwanych „punktami testowymi” obecnymi na głównej płycie urządzenia tablica. Przed łatką bezpieczeństwa z grudnia 2017 r. można było również po prostu uruchomić „adb restart edl” na wielu urządzeniach (w tym Nexusie 6 i 6P) i przejść do trybu EDL. Od tego czasu zostało to naprawione.

Punkty testowe pokazane są w narysowanej żółtej ramce na dole płyty głównej urządzenia. // Źródło: Badania Alepha

Inne urządzenia mogą również używać tak zwanego kabla „deep flash”, czyli specjalnego kabla ze zwartymi niektórymi stykami, aby poinformować system, aby zamiast tego uruchomił się w trybie EDL. Stare urządzenia Xiaomi mogą korzystać z tej metody, podobnie jak Nokia 5 i Nokia 6. Inne urządzenia również uruchomią się w trybie EDL, jeśli nie uda im się zweryfikować SBL.

Głęboki kabel flash

Wykorzystanie trybu EDL w celu uzyskania pełnego dostępu do OnePlus 3/3T

Trybu EDL można używać na urządzeniu na wiele sposobów, głównie do odblokowania urządzeń poprzez wymuszenie ich flashowania. Jak wyjaśniono powyżej, teoretycznie dostęp do tego trybu powinien być bezpieczny dla każdego, ponieważ najgorszy scenariusz jest taki, że ABOOT odrzuci oprogramowanie, które nie jest oficjalnie podpisane przez producenta. Chociaż jest to prawdą, w rzeczywistości możliwe jest uzyskanie pełnej kontroli nad OnePlus 3 lub 3T i jego plikami w ramach exploita weryfikującego koncepcję pokazanego przez badaczy.

Zostanie to zrobione za pomocą dwóch bardzo niebezpiecznych poleceń, które OnePlus udostępnił w starszej wersji ABOOT (Android bootloader), aby odblokować bootloader urządzenia (bez wyświetlania ostrzeżenia użytkownikowi podczas uruchamiania) i wyłączyć dm_verity. dm_verity jest również znany jako zweryfikowany rozruch i stanowi część bezpiecznej sekwencji rozruchu na urządzeniu z systemem Android. Obydwa polecenia są następujące.

fastboot oem disable_dm_verity
fastboot oem 4F500301/2

Poniżej znajduje się prosty, czteroetapowy proces, w którym wykorzystuje się protokół Firehose.

  1. Najpierw uruchom urządzenie w trybie EDL. Można to zrobić za pomocą adb w OxygenOS 5.0 lub starszej wersji lub za pomocą prostej kombinacji klawiszy sprzętowych.
  2. Pobierz stary obraz systemu poniżej OxygenOS 4.0.2.
  3. Flash aboot.bin przez firehose (pamiętaj, że aboot.bin implementuje fastboot, jak wspomnieliśmy wcześniej)
  4. Będziesz teraz mógł wyłączyć bezpieczny rozruch i odblokować program ładujący bez wycierania urządzenia po prostu używając dwóch powyższych poleceń fastboot.

Jeśli pamiętasz, wcześniej odkryto, że OnePlus pozostawił dwa niebezpieczne polecenia fastboot prawie rok temu, jedno odblokowujące moduł ładujący i drugie, które wyłączało bezpieczny rozruch. Chociaż prawdą jest, że napastnik nie można zainstalować złośliwego oprogramowania na urządzeniu, mogą zdegradować urządzenie mieć starsze, podatne na ataki oprogramowanie. Osoba atakująca może to zrobić po prostu uruchamiając powyższe polecenia fastboot pełny dostęp do urządzenia.

I to wszystko, bootloader jest odblokowany, bezpieczny rozruch jest wyłączony i nie ma absolutnie żadnej utraty danych. Jeśli osoba atakująca chciałaby pójść o krok dalej, mogłaby przesłać złośliwe, niestandardowe jądro, które umożliwia rootowi dostęp do urządzenia, o którym użytkownik nigdy by się nie dowiedział.

Firehose działa poprzez protokół Qualcomm Sahara, który akceptuje programistę podpisanego przez OEM i w ten sposób zostanie przeprowadzony powyższy atak. Po podłączeniu do urządzenia działa jak SBL przez USB. Większość programistów używa Wąż pożarowy do komunikacji z telefonem w trybie EDL, co badacze wykorzystali do uzyskania pełnej kontroli nad urządzeniem. Naukowcy również to wykorzystali odblokuj urządzenie Xiaomi po prostu poprzez flashowanie zmodyfikowanego obrazu który odblokował bootloader. Następnie sflashowali niestandardowe jądro, które dało dostęp rootowi i uruchomili SELinux w trybie permisywnym, a także wyodrębnili zaszyfrowany obraz danych użytkownika z urządzenia.

Wniosek

Nie wiadomo, dlaczego producenci OEM wypuszczają tych programistów od Qualcomm. Programiści Nokii, LG, Motoroli i Google zamiast ujawnić, ujawnili informacje, a mimo to badaczom się to udało przełamać cały łańcuch zaufania w telefonie Nokia 6 i uzyskać pełny dostęp do urządzenia za pomocą podobnych metod eksploatacja. Są przekonani, że atak można przenieść na dowolne urządzenie obsługujące tych programistów. Jeśli to możliwe, producenci OEM powinni korzystać ze sprzętowych bezpieczników q, które zapobiegają cofaniu się oprogramowania, uruchamiając dmuchanie w przypadku wycofania sprzętu urządzenia i mogą ostrzec użytkownika, że ​​tak się stało. Zainteresowani mogą zapoznać się z pełnym artykułem badawczym poniżej, a także zapoznać się z pełnym opisem wykorzystania Nokii.


Źródło: badania Aleph