Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Jak można bez wiedzy ofiary bezprzewodowo zdumpować pamięć iPhone?! Ano tak…
Dzisiejszy vulnz to całkiem świeża podatność CVE-2020-3843. Zobaczmy:
Attached is a work-in-progress exploit for CVE-2020-3843, a buffer overflow in AWDL (…) Currently this poc demonstrates the ability to remotely dump device physical memory regions over the air with no user interaction on iPhone 11 Pro running iOS 13.3.
Dość ostre, prawda? Słowo wyjaśnienia czym jest AWDL, bo w nim kryje się problem. Rozwiązanie akronimu to: Apple Wireless Direct Link, nieco bardziej po ludzku – to specyficzny protokół od Apple, umożliwiający bezpośrednią komunikację pomiędzy urządzeniami producenta (jeśli ktoś kojarzy np. AirDrop to wie o czym mowa). Sam nasz bohater od jakiegoś czasu wykazywał pewne ułomności, a teraz mamy po prostu ordynarny buffer overflow, który da się wykorzystać bezprzewodowo. Tzn. mamy sprawdzanie długości ciągu, który ma być kopiowany do bufora, ale nie ma znaczenia, że ciąg zostanie wykryty jako zbyt długi:
IO80211AWDLPeer::parseAwdlSyncTreeTLV has a curious code path where it checks whether the length is the maximum expected size. If the TLV length is above this limit, it logs a message via IO80211Peer::logDebug, then continues to use the invalid length anyway…
Czy podatność można wykorzystać w domyślnej konfiguracji? (czy może np. trzeba włączyć AirDrop?). W opisie buga nie ma o tym wprost przekazanej informacji, choć niektórzy piszą jest na to szansa:
If I’m reading this right, It turns out that at least the photos app enables at least part of the receiving code silently in the background.
Hm… ok, ale jak to się ma do modelu kryptograficznego zastosowanego w iOS? W teorii (jeśli wierzyć Mamie Apple), podstawową przewagą iOS nad Androidem jest to, że szyfrowanie danych na urządzeniu nie jest wykonywane na takich zasadach, na jakich działa LUKS w Linuksie – czyli dobrych dla laptopa, czy stacji roboczej, ale słanych w przypadku ciągle włączonego smartfona, czy tabletu. Słowem, iOS odszyfrowuje wyłącznie dane wykorzystywane przez aktualnie uruchomione apki (czyli te, których użytkownik nie zamknął), a więc.. cała reszta powinna, po zdumpowaniu być… bezużyteczna. Chyba, że w takim dumpie będzie się znajdował także klucz, umożliwiający odkodowanie reszty? Ktoś, coś więcej na ten temat?