Malware na telefonach od producenta i jak się zabezpieczyć

Wstęp:

Na polskim rynku smartfonowym mamy ogromną ilość producentów smartfonów i urządzeń opartych o system Android. Niektóre urządzenia są produkowane przez znane, światowe marki, które oferują produkt klasy premium, za premium cenę. Drugą opcją są markowe telefony z klasy ekonomicznej – czyli nieco gorsze parametry, ale nadal od znanego producenta, który gwarantuje pewną jakość produktu. Trzecią klasą są chińskie urządzenia, często obrandowane europejskim logotypem, oferujące podobne parametry do tych markowych, tylko za ½ ceny. Właśnie o tych tańszych telefonach mowa.

Warto zauważyć, że naprawdę mało producentów urządzeń Android faktycznie wgrywa czysty OEM Android na swoje smartfony. Producenci tacy jak Samsung, Asus, czy Lenovo często inwestują we własne oprogramowanie, które jest dodawane do systemu Android: są to powłoki, motowy, oprogramowanie obsługujące aktualizaje, dodatkowe funkcjonalności, itp. Takie oprogramowanie, mimo tego, że dość często ma dostęp do szerokiej gamy naszych danych, niemniej jest markową usługą od producenta. Żaden racjonalny producent nie pozwoli sobie na uszczerbek w opinii, celowo lub z zaniedbiania wypuszczając malware. Można stwierdzić, że praktyki dobrego biznesu z zasady dają nam pewną gwarancję: dbając o swoje dobre imię, producent również dba o nas. 

Po drugiej stronie są przedsiębiorstwa, które masowo importują smartfony zaprojektowane w Azji i dodają swój brand na rynek lokalny. Są to przedsiębiorstwa czysto importujące – nie posiadają własnych inżynierów, programistów lub działu R&D. Jeżeli nawet, to w bardzo ograniczonym zakresie. Modus operandi jest prosty: azjatyckie firmy wysyłają im pełne katalogi, z których mogą sobie wybrać gotowy produkt. Wystarczy tylko dodać swój logotyp, przetłumaczyć instrukcję obsługi, opłacić cło i sprzedać.

Fakt, że niektóre azjatyckie firmy sprzedają urządzenia poniżej kosztu produkcji jest dobrze znany.¹ Stąd mamy telefony “markowe” i off-brandowe za niemal połowę ceny. Powody na sprzedawanie urządzeń w takich cenach z zasady są dwa: strategia market dumping¹, lub zarabianie na użytkowniku podczas używania produktu, a nie przy jego sprzedaży.²  

Problem:

Historia zaczęła się od telefonu od znajomego, który zwrócił się do mnie z prośbą o zresetowanie mu telefonu, lub przynajmniej usunięcie malwareu, który losowo zarzucał ekran reklamami gier i usług. Smartfon typowo off-brandowy, czyli średnio-rozpoznawalna marka sprzedająca w polskich sklepach azjatycki import pod własnym brandem za połowę ceny.

Aplikacje, które użytkownik zainstalował pochodziły z Google Play, więc teoretycznie były przeskanowane przez Google. Reklamy natomiast nie pochodziły ze ściągniętych aplikacji – przy odinstalowaniu nadal się wyświetlały. Co więcej, łatwo można zauważyć, że używały technologię WebView – czyli w uproszczeniu były zwykłą przeglądarką otwierającą dany URL, bez interfejsu przeglądarki (np. przycisków dla użytkownika).

Po usunięciu i wyłączeniu niemal wszystkich usług, namierzyłem przyczynę reklam w aplikacjach systemowych. (!) Aby zauważyć aplikacje systemowe, trzeba wejść w Ustawienia > Aplikacje > Menu > Pokaż systemowe.

Przyczyną reklam i dziwnych pakietów danych okazał się com.android.snap. Wpisując tą nazwę w dowolną wyszukiwarkę łatwo możemy zauważyć, że aplikacja jest powszechnie uważana za malware. Co więcej, niektóre programy antywirusowe zaznaczają tą aplikację dokładnie jako malware lub wirus.³

Naturalnie, zecyzja zapadła o resetowaniu urządzenia.  

Resetowanie chińskiego telefonu:

Resetowanie chińskiego smartfona jest proste, nawet bez wchodzenia w system Android. Przyciskając Power + Vol Down przy starcie smartfona można przejść do Firmware, czyli menu, które pozwoli na wyczyszczenie urządzenia do zera i przywrócenie ustawień fabrycznych.

Na większości chińskich telefonów jest to 3. opcja, opisana jako 擦除 eMMC.

Jeżeli użytkownik osobiście ściągnął malware/wirusa, usunięcie kart SIM/SD i fabryczne przywrócenie do systemu wgranego przez producenta powinno zaowocować nowym, czystym Androidem i bezproblemowym działaniem. Jednak po resecie urządzenia, com.android.snap wrócił na swoje miejsce. Czyżby malware ściągnięty przez użytkownia wgrał się w firmware? Jest to praktycznie niewykonywalne, ale warto sprawdzić.

Udając się do najbliższego sklepu i sprawdzając inne smartfony tej marki w sklepie, zauważyłem, że każdy smartfon posiadał tą ukrytą aplikację. Wnioski, do których doszedłem są proste – producent nie wykonał audytu oprogramowania przed wypuszczeniem produktu na rynek polski i sprzedaje smartfony z … malwarem.

Jeżeli posiadają Państwo off-brandowy telefon, warto w tym momencie sprawdzić swoje urządzenie. Reklamy może nie stwarzają wielkiego problemu, ale malware nie kończy się na reklamach. Mówimy tutaj o wykradaniu danych, przesyłaniu haseł, ransomware i wielu innych nieprzyjemnościach.

Jak sprawdzić, czy smartfon ma wgrane niepożądane aplikacje? 

Opcji jest kilka.

  1. Dla niezaawansownych użytkoników istnieje oprogramowanie antymalwareowe/antywirusowe dostępne w sklepie Google Play.
  2. Dla tych, którzy chcą się dowiedzieć więcej o swoim urządzeniu, sugeruję przeczytać w internecie o każdej aplikacji znajdującej się w Ustawienia > Aplikacje, szczególnie po zaznaczeniu Ustawienia > Aplikacje > Menu > Pokaż systemowe.

Proszę pamiętać, że większość aplikacji może być odinstalowana lub przynajmniej posiada opcję wyłączenia w systemie Android.

Co zrobić, jeżeli mój smartfon posiada aplikację uważaną za malwareową, ale nie chcę kupować kolejnego?

Najprostszą odpowiedzią jest firewall – czyli zapora. Niestety, większość smartfonów Android nie ma dostępu do użytkownika root, co znaczy, że użytkownik nie posiada możliwości zarządzania zaporą (ip tables) wbudowaną w systemy oparte na Linuxie (w tym Android). Rootowanie telefonu też nie zawsze się udaje na modelach off-brandowych, więc ta opcja może zakończyć się permanentnym uszkodzeniem telefonu.

Jednak istnieją rozwiązania typu firewall, które używają techologię VPN i nie potrzebują uprawnień użytkownika root (czyli administratora). Takie aplikacje tworzą wewnętrzne połączenie VPN (na localhost) i takim sposobem wymuszają na smartfonie, aby wszystkie połączenia przechodziły wyłącznie przez to połączenie. W rezultacie możemy otrzymać sposób na zarządzanie przepływem danych i zablokować niektóre aplikacje – co teoretycznie jest zaporą.

Na internecie takich rozwiązań jest naprawdę wiele, a szczególnie w sklepie Google Play. Niemniej, warto jest pamiętać, że aplikacja tworząca połączenie VPN z natury ma dostęp do pełnego przepływu danych i właśnie dlatego powinniśmy wybrać rozwiązanie/aplikację, której w 100% wierzymy. 

Dla potrzeb bezpieczeństwa możemy mówić o dwóch filozofiach i rodzajach oprogramowania: z zamkniętym kodem źródłowym (closed-source) i open-source.  

  • Closed-source to oprogramowanie, którego kod źródłowy jest w większości lub w pełni ukryty. Oprogramowanie spełnia swoje zadania i producent gwarantuje zakres działalności i bezpieczeństwo oprogramowania. Niestety, nie mamy potwierdzenia co dokładnie dzieje się w środku i musimy zaufać producentowi.
  • Oprogramowanie open-source jest otwarte i w pełni przejrzyste na audyt. Każdy programista, informatyk lub nawet użytkownik ma pełny dostęp do wewnętrznego kodu. Z jednej strony taka filozofia naraża użytkowników na fakt, że hacker mógłby znaleźć lukę w oprogramowaniu i ją wykorzystać, ale z drugiej strony możemy mieć pewność, że wiemy dokładnie co i jak się dzieje wewnątrz aplikacji. Co więcej, w aplikacjach open-source kod źródłowy przechodzi przez nieustanny audyt, gdy jedni programości sprawdzają pracę drugich i rozbudowują aplikację.

Ocenę, który model bezpieczeństwa jest lepszy zostawiam dla Państwa. W dziedzinie bezpieczeństwa osobiście jestem przekonany do modelu open-source, więc biorąc to pod uwagę, chciałbym zwrócić Państwa uwagę na aplikację NetGuard, która jest open-sourcową zaporą typu VPN dla systemów Android.

Aplikację NetGuard można ściągnąć ze sklepu Google Play: https://play.google.com/store/apps/details?id=eu.faircode.netguard i alternatywnie (dla osób bardziej chroniących swoją prywatność) ze sklepu F-Droid: https://f-droid.org/en/packages/eu.faircode.netguard/

(!) Dla użytkowników F-droid przypominam o włączeniu opcji Ustawienia > Zabezpieczenia > Nieznane źródła.

Po zainstalowaniu aplikacji będziemy proszeni po pozwolenie aplikacji na storzenie połączenia VPN. Tutaj musimy zgodzić się na prośbę.

Interfejs oprogramowania jest dość prosty: dostajemy listę wszystkich aplikacji (włącznie z systemowymi) i mamy dwie ikony z prawej strony: jedną zarządzającą dostępem do sieci Wifi i drugą zarządzającą dostępem do przesyłania danych przez połączenia mobilne (4G, 3G, EDGE, itp). Przyciskając w ikonki WiFi i Internetu Mobilnego możemy zaznaczyć, które aplikacje mogą wysyłać/pobierać dane z/do internetu.

W przypadku mojego znajomego, com.android.snap zostało zablokowane i problemy z reklamami już nigdy nie wróciły.

Uwagi końcowe:

  • Pierwotnie planowałem napisać ten artykuł w jęz. angielskim, aby dodać go do swojego bloga o prywatności i bezpieczeństwie danych, ale doszedłem do wniosku, że skoro problem zauważyłem u jednego z producentów na rynku polskim, informacja prawdopodobnie będzie bardziej przydatna dla osób kupujących smartfony w naszym kraju.
  • Miałem też zamiar określić dokładnie o którym producencie mowa, ale prawnik bardzo stanowczo odadził mi takiego przedsięwzięcia. Po kilku nieudanych próbach nawiązania kontaktu z producentem telefonu postanowiłem opublikować ten artykuł. Mam nadzieję, że ten tekst i spostrzeżenia będą dla Państwa przydatne.
  • Jeżeli posiadają Państwo jakiekolwiek pytania dt bezpieczeństwa w sieci lub tego wpisu na blogu, zapraszam do kontaktu.

  1. https://en.wikipedia.org/wiki/Dumping_%28pricing_policy%29
  2. https://techcrunch.com/2016/11/25/xiaomi-admits-it-doesnt-make-money-on-smartphone-hardware-sales/
  3. Teoretycznie com.android.snap jest aplikacją wspomagającą redagowanie zdjęć i taką funkcjonalność posiada. Niemniej, jest kwalifikowany jako malware/trojan. Dla przykładu: https://www.techcrises.com/android/com-android-snap-error-virus/

Tagged: Tags