Jakiś czas temu dni opublikowania badaczy Checkpoint wiadomość, że zidentyfikowali trzy luki (CVE-2021-0661, CVE-2021-0662, CVE-2021-0663) w oprogramowaniu układów MediaTek DSP, jak również luka w warstwie przetwarzania dźwięku MediaTek Audio HAL (CVE-2021-0673). W przypadku udanego wykorzystania luk, atakujący może zorganizować podsłuchiwanie użytkownika z nieuprzywilejowanej aplikacji na platformę Android.
S 2021, MediaTek stanowi około 37% wysyłek chipów specjalistycznych do smartfony i SoC (Według innych danych, w II kwartale 2021 r. udział MediaTeka wśród producentów chipów DSP do smartfonów wyniósł 43%).
Między innymi chipy MediaTek DSP Znajdują zastosowanie we flagowych smartfonach Xiaomi, Oppo, Realme i Vivo. Chipy MediaTek, oparte na mikroprocesorze Tensilica Xtensa, są wykorzystywane w smartfonach do wykonywania takich operacji, jak przetwarzanie dźwięku, obrazu i wideo, w obliczeniach dla systemów rzeczywistości rozszerzonej, wizji komputerowej i uczeniu maszynowym, a także do szybkiego ładowania.
Oprogramowanie układowe do inżynierii odwrotnej dla układów DSP od MediaTek na platformie FreeRTOS ujawnił różne sposoby uruchamiania kodu po stronie oprogramowania i przejmowania kontroli nad operacjami DSP wysyłając specjalnie spreparowane żądania z nieuprzywilejowanych aplikacji na platformę Android.
Praktyczne przykłady ataków zostały zademonstrowane na Xiaomi Redmi Note 9 5G wyposażonym w MediaTek MT6853 SoC (Dimensity 800U). Należy zauważyć, że producenci OEM otrzymali już poprawki luk w październikowej aktualizacji oprogramowania układowego MediaTek.
Celem naszych badań jest znalezienie sposobu na zaatakowanie DSP Android Audio. Najpierw musimy zrozumieć, w jaki sposób system Android działający na procesorze aplikacji (AP) komunikuje się z procesorem dźwięku. Oczywiście musi istnieć kontroler, który czeka na żądania z przestrzeni użytkownika Androida, a następnie za pomocą pewnego rodzaju komunikacji międzyprocesorowej (IPC) przekazuje te żądania do DSP w celu przetworzenia.
Jako urządzenia testowego użyliśmy zrootowanego smartfona Xiaomi Redmi Note 9 5G opartego na chipsecie MT6853 (Dimensity 800U). System operacyjny to MIUI Global 12.5.2.0 (Android 11 RP1A.200720.011).
Ponieważ w urządzeniu dostępnych jest tylko kilka sterowników związanych z mediami, nie było trudno znaleźć sterownik odpowiedzialny za komunikację między punktem dostępowym a DSP.
Wśród ataków, które można przeprowadzić, wykonując jego kod na poziomie oprogramowania układowego chipa DSP:
- Obejście systemu kontroli dostępu i eskalacja uprawnień: niewidoczne przechwytywanie danych, takich jak zdjęcia, filmy, nagrania rozmów, dane z mikrofonu, GPS itp.
- Odmowa usługi i złośliwe działania: blokuj dostęp do informacji, wyłączaj ochronę przed przegrzaniem podczas szybkiego ładowania.
- Ukryj złośliwą aktywność — Twórz całkowicie niewidoczne i nieusuwalne złośliwe komponenty, które działają na poziomie oprogramowania układowego.
- Dołącz tagi, aby szpiegować użytkownika, na przykład dodaj subtelne tagi do obrazu lub wideo, a następnie połącz opublikowane dane z użytkownikiem.
Szczegóły luki w MediaTek Audio HAL nie zostały jeszcze ujawnione, ale jajako trzy inne podatności w oprogramowaniu DSP są spowodowane nieprawidłowym sprawdzaniem krawędzi podczas przetwarzania komunikatów IPI (Inter-Processor Interrupt) wysyłane przez sterownik audio audio_ipi do procesora DSP.
Problemy te pozwalają na wywołanie kontrolowanego przepełnienia bufora w handlerach dostarczanych przez firmware, w których informacja o rozmiarze przesyłanych danych była pobierana z pola w pakiecie IPI, bez weryfikacji rzeczywistego rozmiaru przydzielonego w pamięci współdzielonej .
Aby uzyskać dostęp do kontrolera podczas eksperymentów, używamy bezpośrednich wywołań ioctls lub biblioteki /vendor/lib/hw/audio.primary.mt6853.so, które są niedostępne dla zwykłych aplikacji na Androida. Jednak naukowcy znaleźli rozwiązanie umożliwiające wysyłanie poleceń w oparciu o opcje debugowania dostępne dla aplikacji innych firm.
Określone parametry można zmienić, wywołując usługę Android AudioManager w celu zaatakowania bibliotek HAL MediaTek Aurisys (libfvaudio.so), które zapewniają wywołania interakcji z DSP. Aby zablokować to rozwiązanie, MediaTek usunął możliwość korzystania z polecenia PARAM_FILE przez AudioManager.
W końcu jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły W poniższym linku.