Połowa nawiązywanych połączeń nie służy użytkownikowi

| Technologia
pasukaru76, CC

Połowa połączeń nawiązywanych przez 500 najpopularniejszych aplikacji na Androida nie ma nic wspólnego z potrzebami użytkownika. Naukowcy z MIT-u odkryli, że aż 50% połączeń z i do aplikacji jest inicjalizowanych przez moduły analizy danych, które służą nie użytkownikom, a twórcom oprogramowania. Może istnieć bardzo ważna przyczyna, dla której te ukryte przed użytkownikiem połączenia są rozpoczynane. Nie twierdzimy, że należy z tym skończyć. Uważamy jednak, że użytkownicy powinni o tym wiedzieć, mówi doktor Julia Rubin z Computer Science and Artificial Intelligence Laboratory (CSAIL) MIT-u. W pracach zespołu Rubin brali udział profesor Martin Rinard, doktor Michael Gordon oraz Nguyen Nguyen z firmy UWin Software.

Specjaliści zauważyli, że różne działania podejmowane przez konkretną aplikację mogą wymagać nawiązania łączności na zewnątrz. Aplikacje otwierają wówczas nowe kanały połączenia dla każdej operacji. Uczeni przeanalizowali kanały otwierane przez 500 najpopularniejszych aplikacji i odkryli, że połowa z nich nie ma związku z tym, czego potrzebuje użytkownik. Nie musi to jednak oznaczać, że w każdej chwili połowa wysyłanych danych to informacje, o których użytkownik nie ma pojęcia. Jeśli mamy otwartą długą sesję wysyłania danych, na przykład transferujemy jakiś duży plik, to stosunek danych wysyłanych przez aplikację do danych, które wysyłamy świadomie, jest bardzo mały. Z czasem aplikacja przestaje wysyłać swoje dane, ale kanał komunikacji pozostaje otwarty.

Co prawda większość oprogramowania ma zamknięty kod i nie można go swobodnie analizować, jednak muszą one korzystać ze standardowych interfejsów umożliwiających współpracę z systemem operacyjnym. To właśnie dzięki temu specjaliści są w stanie stwierdzić, jaka część aplikacji zajmuje się np. wyświetlaniem użytkownikowi informacji, o jakie prosił, jaka odtwarza pożądany przez użytkownika dźwięk, a jaka zajmuje się przesyłaniem danych, o których użytkownik nie ma pojęcia. Szczegółowa analiza przepływu danych pozwala na stwierdzenie, z jak wielu informacji korzysta użytkownik, a z ilu - twórca aplikacji.

Specjaliści z MIT-u przeprowadzili tez interesujący eksperyment. Zmodyfikowali 47 ze 100 najpopularniejszych aplikacji tak, by nie wysyłały one żadnych informacji, które nie służą użytkownikowi. Następnie przetestowali te programy pod kątem ich użyteczności oraz wydajności i porównali z niezmodyfikowanymi wersjami programów. Okazało się, że w przypadku 30 z 47 aplikacji nie było żadnej różnicy w działaniu pomiędzy wersją zmodyfikowaną a niezmodyfikowaną. W dziewięciu przypadkach z programów zniknęły reklamy, ale aplikacje działały bez zarzutu. W trzech przypadkach zauważono niewielkie różnice, na przykład ze zmodyfikowanej wersji zniknęła ikona aktualizacji programu. Z kolei w pięciu przypadkach aplikacje w ogóle przestały działać, z tym, że jeden z tych przypadków był związany z zabezpieczeniami przed odsprzedażą oprogramowania stronie trzeciej. Nie ustalono, dlaczego w pozostałych czterech przypadkach programy nie działały.

Naukowcy przeanalizowali też dane z niektórych aplikacji, starając się ustalić, do jakich celów ich autorzy wykorzystują otrzymywane informacje. Dowiedzieli się, na przykład, że aplikacja pozwalająca skanować kody paskowe i poznać ceny produktów w Wal-Marcie wysyła na firmowy serwer informacje, które wydają się powiązane z serwisem eBay. Zablokowanie wysyłania tych informacji nie wpłynęło na pracę programu. Z kolei gra Candy Crush Saga, którą przed kilku laty oskarżano o naruszenia prywatności, nie wysyłała nigdzie żadnych danych.

Narzędzia analityczne wykorzystane przez uczonych z MIT-u bazowały na wcześniejszym projekcie grupy Rinard, która brała udział w zawodach zorganizowanych przez DARPA. W ramach czteroletnich badań dziewięć uczelni rozwijało techniki wykrywania złośliwego kodu w programach tworzonych przez firmy trzecie na zlecenie Pentagonu.

Android aplikacja połączenie dane