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.
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.
Komentarze
Jeżeli jednak zaszyfruje telefon nawet prostym hasłem np. (1234) to czy w przypadku przywracania telefonu do danych fabrycznych tracimy całkowicie dane? (Gdyż wystarczy jedynie wymazać klucz w pamięci telefonu)
tak ..
jesli zaszyfrujesz telefon po czym zrobisz przywracanie do ustawien fabrycznych plik klucza a w sumie jego hash zostanie usuniety i nie bedzie mozliwosci odczytania danych (prosto)
Mam komputer ARM z Androidem 4.2.2 wczytywanym z karty microSD.
Kilka miesięcy temu chciałem anonimizować system zapisany na karcie microSD 8 GB, żeby móc udostępnić jej obraz. Okazało się to niemożliwe nawet po przywróceniu ustawień fabrycznych, mój email, nazwisko i inne prywatne dane konta Google (zakładki, historia, cache etc.) były zapisane w tylu miejscach i na tylu partycjach łącznie z systemową, że musiałem stworzyć obraz systemu od nowa, na podstawie oryginalnej karty 4GB.
Wynika z tego że użytkownik telefonu lub tabletu z Androidem 4.2.2. umieszczonym w niedostępnej wewnętrznej pamięci Flash praktycznie nie jest w stanie całkowicie zanonimizować urządzenia inaczej niż nadpisując firmware (zakładając że program do flashowania rzeczywiście wyzeruje i przeprogramuje wszystkie komórki pamięci Flash urządzenia).
dobrą opcją jest podanie międzyfazowego 400V na styki USB.
Ale dopiero po pobraniu pieniędzy od kupującego :P
Problem może dotyczyć każdego telefonu z pamięcia flash, nawet takiego sprzed 15 lat. W zrzucie pamięci rzekomo wyczyszczonego Siemensa ME45 znalazłem wszystkie notatki, wpisy kalendarza itp.
Cholera właśnie sprzedałem Xperię Z. Niby zanim odpaliłem Androidowe przywracanie do ustawień fabrycznych to z FS wywaliłem wszystko co moje ręcznie, ale i tak teraz w to nie wierzę już :D
A gdyby tak najpierw skasowac dane z poziomu androida, a potem wgrac jakies smieci, tak zeby zapelnic cale wolne miejsce? Czy takie dzialanie nadpisze wszystkie poprzednie dane, czyli je usunie?
Masz rację, ale jest jedno „ale” – dane zostaną na pewno w miejscach które zostały uznane przez kontroler pamięci za zbyt stare aby je używać do zapisu, patrz: „fizyczne możliwości przechowywania danych znacznie przekraczają deklarowaną pojemność”. To jak badblocki – zostały oznaczone jako uszkodzone i nie są używane, prawdopodobnie nie są także kasowane, nadpisywane itd. bo po co skoro są „uszkodzone”…
No ale jest jakieś API by odzyskać dane z tych zdychających bloków (które zostają uznane przez układ pamięci za słabe) czy nie?
Obok mnie leży walnięta karta microSD i jak tu się do tego zabrać gdy walnie jej kontroler bo takowy musi mieć adresując gigabajty kilkoma stykami. Może bardzo cieniutkie pilniki i szlifierki, pewnie wszystko kwestia kasy ale logarytmicznie nie wykładniczo bo wszystkiego się nie da w każdym przypadku.
„złośliwe ręce” !!!
Potwierdzam, takie są najgorsze :D
Można szyfrować cały dysk, ale w wielu modelach pamięci flash szyfrowanie zamula system.
Nikt nie każe Ci szyfrować urządzenia jak z niego korzystasz, chociaż zwięka to bezpieczeństwo. Przed sprzedażą szyfrujesz, robisz wipe i najlepiej wgrywasz nowego roma :). Profit
A po co mnie sprzedawać sprzęt? Raz, że stać mnie n nowy bez pozbywania się wcześniejszego. Natomiast dwa, u mnie po roku-dwóch sprzęt nadaje się tylko na szrot ;p
dd if=/dev/zero of=/dev/sdXXX bs=1M
powodzenia ;)
Jak w takim razie radzi sobie BlackBerry z pamięcią flash montowaną w telefonach?
Po wipe nie ma możliwości nic odzyskać. Co z „bad sektorami” zawierającymi dane?
Widziałem gdzieś w sieci testy odzyskiwania danych zakończone niepowodzeniem.
Nie ma dobrej metody, jedynym skutecznym sposobem jest metoda SPAM, czyli nadpisanie danych śmieciowymi treściami.
Sądzę, że najlepiej jest wgrać od nowa oprogramowanie i wtedy nie będzie problemu z odzyskaniem danych przez niepowołane osoby.
jeżeli wyczyścisz dane z poziomu wiersza poleceń
Od dawna stosuję najprostszą metodę czyszczenia pamięci – bez znaczenia czy karty SD czy flash wbudowanej:
– „Metoda dla zwykłego Kowalskiego” –
1 – reset factory
2 – odpalam w słuchawce nagrywanie video z widokiem np. na sufit i głośnym dźwiękiem np. typu „unc unc” lub podobnym aż do zapełnienia pamięci
3 – ponownie reset factory
4 – „S’il vous plaît – voilà”
Oczywiście po pierwszym „reset factory” nie wolno konfigurować żadnego konta czy wpisywać jakichkolwiek poufnych danych.
Po tych zabiegach nie udało mi się odzyskać niczego pierwotnego z pamięci (może robiłem to mało udolnie lub nie właściwymi narzędziami :P ale zwykłymi narzędziami typu „recovery” nic nie odzyskałem oprócz lipnego video.
Uparty i złośliwy pewnie jeszcze coś tam by wykopał z ukrytych partycji ale jeżeli na fonie posiada się tak ważne dane, że „strach się bać” to lepiej go zamienić w cegłę i nie sprzedawać.
Najlepiej zostawic troche zdjec, wtedy nikt nie odzyskuje