Bezpieczeństwo  / Artykuł

Aplikacje na Androida kradną twoje dane i nie przejmują się uprawnieniami

220 interakcji
dołącz do dyskusji

Smartfony to urządzenia, które nosimy stale przy sobie i które mają dostęp do wyjątkowo dużej ilości informacji o nas. Prywatnych informacji: kontaktów, zdjęć, rozmów, SMS-ów, wiedzy o odwiedzanych stronach, sklepach internetowych i kartach kredytowych, I na dodatek o naszym położeniu.

Gdy dotarło to do powszechnej świadomości, twórcy systemów operacyjnych tych urządzeń zaczęli wbudowywać różne ograniczenia zabezpieczające dane. Nastąpił ruch zupełnie nieznaczący i jedynie symulujący dobrą wolę tych firm. Jaki? Zrzucono odpowiedzialność za decyzję na użytkownika.

To użytkownik od pewnego momentu rozwoju iOS-a i Androida musi decydować, czy pozwolić danej aplikacji na dostęp do konkretnej informacji i komponentu. Wyobraźmy sobie, że ściągamy aplikację sklepową - pyta ona o pozwolenie o dostęp do naszych kontaktów i aparatu. Pozwalamy? Nie mamy pojęcia, co aplikacja z tym zrobi. Może pozwolić na wysyłanie naszym znajomym prezentów i np. dodanie karty kredytowej przez jej sfotografowanie - co jest całkowicie bezpiecznym rozwiązaniem. Może też wysyłać nasze kontakty i zdjęcia na tajemnicze serwery w Chinach - użytkownik nie ma żadnej możliwości zweryfikować prawdziwej intencji twórców aplikacji.

Użytkownicy smartfonów mają dwa skrajne podejścia.

Pierwsze podejście to pozwalanie na wszystko. Zależy mi na szybkim skonfigurowaniu aplikacji, której potrzebuję, i nie zastanawiam się nad tym, do czego potrzebuje ona moich danych. Tak działa większość użytkowników. I poniekąd słusznie, bo zakładają oni, że miliony dolarów włożone w przegląd aplikacji, i bariery stawiane ich twórcom powinny ich chronić, szczególnie w zamkniętym sandboksowym środowisku jakim są systemy operacyjne przenośnych urządzeń.

Drugie zaś podejście to paranoiczny lęk przed udzieleniem jakiegokolwiek pozwolenia. W ten sposób aplikacje są nie w pełni funkcjonalna lub w ogóle odmawiają działania. Tym użytkownikom również trudno się dziwić - media i internet są pełne ostrzeżeń przed złośliwymi aplikacjami, a pytania o zezwolenie na dostęp często wyglądają stresująco.

Brak zezwolenia na dostęp dla aplikacji wcale nie eliminuje zagrożenia.

W przypadku wielu aplikacji ich twórcy wyspecjalizowali się w skrytym uzyskiwaniu nawet takich informacji, do których użytkownik nie udzielił dostępu. Często dzieje się to w sposób tak sprytny, że nawet trudno zakwalifikować go jako naruszenie kontraktu z użytkownikiem. Wiele takich aplikacji zidentyfikowali badacze z International Computer Science Institute (Międzynarodowego Instytutu Informatycznego), po przebadaniu ponad 88 tysięcy aplikacji z androidowego sklepu z oprogramowaniem.

Badacze zdecydowali się na połączenie statycznej analizy kodu aplikacji z dynamiczną analizą (czyli połączyli badanie kodu aplikacji i badanie zachowania uruchomionej aplikacji). W trakcie badania obserwowali oni jakie dane przesyła oprogramowanie za pośrednictwem sieci i do jakich plików próbuje uzyskać dostęp.

Do jakich wniosków doszli naukowcy z ICSI?

Delikatnie mówiąc, do zatrważających.

Dla przykładu, wiele z aplikacji używa biblioteki Salmonads - pochodzącej z Chin platformy służącej do analityki aplikacji oraz ich monetyzacji. Okazało się, że wszystkie aplikacje używające Salmonads współdzielą swoje dane poprzez ukryty plik na karcie pamięci. Przykładowo, wystarczyło aby jedna z aplikacji używających Salmonads uzyskała od użytkownika dostępu do IMEI (unikalnego numeru urządzenia) telefonu, a inne aplikacje, nawet te, którym dostęp został zabrany, mogły odczytać ten numer z ukrytego pliku. Aplikacje te wysyłały IMEI wraz z unikalnym identyfikatorem reklamobiorcy - co umożliwia m.in. dokładnie „celowanie“ reklam dla konkretnego użytkownika.

Kolejną chińską biblioteką używaną przez wiele aplikacji (w tym takich jak np. oficjalna appka parku Disneyland w Hong Kongu), jest biblioteka Baidu SDK. Bardzo podobna metoda współdzielenia informacji pomiędzy wszystkimi używającymi tej biblioteki aplikacjami została zastosowana i w tym przypadku. Biblioteki tej używa m.in. popularny program Samsung Health.

Kolejne SDK nielegalnie uzyskujący i rozsyłający nasze informacje to popularna biblioteka do budowania gier Unity. W tym przypadku metoda działania jest nieco inna. Unity dzięki skomplikowanej procedurze sieciowej i uzyskuje adres MAC urządzenia, do którego nie powinno mieć dostępu bez akcesu do parametrów stanu sieci ACCESS_NETWORK_STATE. Następnie wysyła dane na serwery Unity jako identyfikator użytkownika.

Z kolei biblioteka „budojąca rynek służący do monetyzacji aplikacji“ o nazwie OpenX była w stanie różnymi sprytnymi kanałami uzyskać nawet adres MAC routera, do którego podłączone było urządzenie. Twórcy tej popularnej biblioteki tak bardzo nie kryli się ze swoimi zamiarami, że odpowiednia funkcja nazwana została po prostu getDeviceMacAddressFromArp. Zawarty w kodzie funkcji algorytm najpierw próbuje uzyskać te dane legalnie - za pomocą funkcji systemowych przykrytych odpowiednimi uprawnieniami. Jeśli takich uprawnień nie dostanie, używa „bocznej furtki“ polegającej między innymi na odczytywaniu odpowiednich pamięci podręcznych.

Dałeś aplikacji dostęp do zdjęć? W takim razie nie ukryjesz lokalizacji

Kolejną ciekawostką odkrytą przez badaczy jest sprytna metoda uzyskiwania lokalizacji urządzenia nawet jeśli aplikacja nie otrzymała pozwolenia na geolokalizację. Metoda ta jest genialna w swej prostocie. Wystarczy dostęp do zdjęć. W większości przypadków w danych EXIF w fotografiach wykonanych za pomocą urządzenia odnaleźć można dokładną lokalizację wykonania zdjęcia.

Co jeszcze bardziej niepokojące, dane o lokalizacji w badanych aplikacjach były rozsyłane aż do 45 różnych domen internetowych, gdzie znajdowały się serwery procesujące informacje o użytkownikach. To wszystko oczywiście beż żadnej oficjalnej zgody użytkownika na przetwarzanie danych o jego lokalizacji.

Jakie można wysnuć wnioski z tego i podobnych badań dotyczących różnych sprytnych metod uzyskiwania danych przez aplikacje? Być może cały model zezwoleń, jaki wbudowano w Androida (ale też bardzo podobny, który znajduje się w iOS), jest źle przemyślany? Być może konsumenci i użytkownicy aplikacji zasługują na o wiele lepsze traktowanie ich danych, nawet jeśli odbędzie się to kosztem mniejszego dostępu do aplikacji na ich urządzeniach.

Mam przeczucie, że nie obędzie się bez dużych zmian w tym zakresie.

przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst