Sprzedajesz telefon z Androidem? Skasowanie danych nie jest takie proste

dodał 21 maja 2015 o 21:30 w kategorii Mobilne, Prywatność  z tagami:
Sprzedajesz telefon z Androidem? Skasowanie danych nie jest takie proste

Korzystaliście kiedyś z funkcji przywracania ustawień fabrycznych w telefonie z Androidem, który trafił następnie w cudze ręce? Wierzyliście, że procedura skasuje Wasze prywatne dane? Niestety jest spora szansa, że byliście w błędzie.

Badacze z Uniwersytetu Cambridge przyjrzeli się dokładnie procedurom kasowania danych w różnych telefonach z różnymi wersjami systemu Android. Wnioski płynące z ich analizy nie są pocieszające – ok. 60% urządzeń znajdujących się w obrocie ma poważny problem z rzetelnym skasowaniem danych w momencie, gdy zażąda tego użytkownik.

Problemy z pamięcią

Za czasów prostych w konstrukcji pamięci dyskowych kasowanie danych nie było dużym problemem. System operacyjny mógł sam decydować, co i gdzie na dysku zapisze. Jeśli użytkownik chciał coś skasować to system mógł to dla niego zrobić poprzez nadpisanie kasowanych danych. Z pamięciami flash, stosowanymi w telefonach komórkowych, sprawa nie jest już taka prosta. Po pierwsze są one dużo bardziej podatne na zużycie, co wymusza ich inną architekturę. W większości przypadków ich fizyczne możliwości przechowywania danych znacznie przekraczają deklarowaną pojemność. Nadwyżka wykorzystywana jest do zastępowania uszkodzonych bloków w miarę ich postępującego zużycia. Po drugie pamięć flash ma istotnie ograniczoną ilość cykli odczytu i zapisu, co powoduje, że system sterujący tymi procesami musi minimalizować obciążenie poszczególnych bloków. Z tego powodu na przykład operacja modyfikacji pliku może oznaczać jego zapisanie w nowej kopii w zupełnie innej lokalizacji, ponieważ tego akurat wymaga algorytm optymalizacji zużycia.

By dodatkowo utrudnić sprawę Android na różnych etapach swojego rozwoju korzystał z różnych systemów plików. Do wersji 2.2.x był to yaffs2, który został później zastąpiony przez ext4. O ile jeszcze yaffs2 dawał pewien poziom bezpośredniej kontroli nad obsługą pamięci, o tyle praktycznie wszystkie nowe telefony (od 2.3.x) wyposażone są już w pamięci typu eMMC. Pamięć ta wyposażona jest w interfejs udostępniający funkcje zapisu i odczytu systemowi operacyjnemu, lecz sama decyduje o tym, co, gdzie i kiedy zostanie zapisane. Oczywiście wyposażona jest w polecenia umożliwiające kasowanie danych (a nawet cały zestaw takich poleceń), jednak stopień złożoności tej architektury sprawia, że pojawiają się problemy.

Jak kasuje się dane

Na potrzeby tego badania naukowcy przyjęli, że atakujący dysponuje „normalnymi” możliwościami odzyskiwania danych, czyli może w sposób programowy wykonać obraz wszystkich partycji urządzenia. Opisywane problemy nie dotyczą kwestii kasowania na poziomie analogowym (czyli takiego, by dane były fizycznie niedostępne bez względu na zastosowane środki techniczne) czy też kasowania na poziomie cyfrowym (czyli takiego, by dane były niedostępne w przypadku metod odczytu cyfrowego pomijającego oficjalne sterowniki, w oparciu o źródłową dokumentację producenta). W tym badaniu skupiono się na analizie możliwości kasowania logicznego – czyli takiego, gdzie danych nie da się odzyskać za pośrednictwem standardowych procedur odczytu z użyciem przewidzianych do tego interfejsów.

Badacze kupili 26 używanych telefonów z Androidem i spróbowali odzyskać z nich dane. Interesowały ich przede wszystkim trzy partycje: /data (tam, gdzie swoje dane przechowują aplikacje), /sdcard (czyli wirtualna karta pamięci głównie przeznaczona na multimedia) oraz zewnętrzna karta pamięci. By uniknąć problemów etycznych, badacze najpierw nadpisali wspomniane wyżej obszary określonym wzorem danych, by następnie poddać telefony procesowi przywracania do ustawień fabrycznych (zarówno z poziomu systemu operacyjnego jak i z poziomu trybu Recovery) i próbowali odzyskać zapisane dane.

Opcja czyszczenia telefonu

Opcja czyszczenia telefonu

Wyniki testów

Urządzenia z system plików yaffs2 (Android 2.2.x) dobrze poradziły sobie z czyszczeniem partycji /data. Gorzej poszło nowszym telefonom. 90% urządzeń w wersji 2.3.x miało problem z kompletnym wyczyszczeniem partycji (proces zatrzymywał się zbyt wcześnie). Problem ten miał być rozwiązany w wersji 4.0.x, ale… Okazało się, że 60% telefonów z 4.0.x dalej ma problem z wyczyszczeniem całej partycji. Problem znaleziono w procesie aktualizacji systemu operacyjnego. Jego nowe wersje często nie były dostarczane wraz z nowymi sterownikami dla pamięci flash, przez co mimo aktualizacji do 4.0.x ciągle korzystały z przestarzałych procedur czyszczenia wersji 2.3.x. CO ciekawe, na podobny problem narażone były także niektóre telefony fabrycznie wyposażane w system 4.0.x lub 4.1-4.3 – niektórzy producenci zapominali o aktualizacji sterowników.

Z kolei wewnętrzna karta pamięci nie jest prawidłowo czyszczona w telefonach z wersją oprogramowania 2.2.x oraz 2.3.x. Formatowanie partycji zatrzymuje się po kilku megabajtach. W wersji oprogramowania 4.0 – 4.3 około 40% telefonów nie poradziła sobie prawidłowo z wyczyszczeniem wewnętrznej karty pamięci. To i tak niezły wynik, ponieważ zewnętrzna karta pamięci w ogóle nie jest domyślnie czyszczona w żadnym z badanych urządzeń.

Jakie dane wyciekają i co z tym robić

W 80% przypadków naukowcy byli w stanie odczytać z nieprawidłowo skasowanych urządzeń główne ciasteczko usług Google. Jego posiadacz może bez problemu zdobyć powiązaną z nim pocztę czy kontakty. Z urządzeń można także bez większych problemów odczytywać wiadomości SMS lub komunikatorów internetowych, historię przeglądania czy zapisane hasła do sieci WiFi lub zapisane na urządzeniu pliki multimedialne. Choć wydobywanie danych nie zawsze jest technicznie proste z uwagi na rozproszenie części plików w różnych blokach pamięci, to szczególnie dla mniejszych plików nie rodzi istotnych problemów technicznych.

Czy można w takim razie skutecznie usunąć dane z telefonu? Na pewno warto osobno sformatować zewnętrzną kartę pamięci i wykorzystać oba tryby kasowania danych – z poziomu systemu operacyjnego oraz trybu Recovery. Jeśli podejrzewacie, że sprzedawany telefon może wpaść z złośliwe ręce, można po przywróceniu do ustawień fabrycznych wgrać na telefon aplikację nadpisującą partycje (trzeba wcześniej przygotować plik APK, by nie musieć znowu konfigurować swojego konta Google na telefonie). Oczywiście korzystanie z aplikacji nie daje żadnej gwarancji sukcesu – warto także zrootować telefon i wykonać proces nadpisywania na poziomie systemu operacyjnego.

Powyższe rozwiązania mają jednak swoje wady. Najlepszym pomysłem jest użycie szyfrowania całego dysku – najlepiej w momencie pierwszego konfigurowania telefonu. Pamiętajcie jednak, że by szyfrowanie mogło obronić się przed atakiem offline, 4-cyfrowy PIN nie wystarczy.