Apki to pułapki 6 – śledzenie lokalizacji

ciemnastrona.com.pl 9 miesięcy temu

Witam w kolejnym – po dłuższej przerwie – wpisie z serii „Apki to pułapki”!

Tradycyjnie omówię różne informacje, jakie wścibskie firmy mogą odczytać z naszego telefonu, głównie przez zanstalowane na nim aplikacje.

Tym razem skupimy się na różnorodnych czujnikach, które mogą – z osobna albo we współpracy ze sobą – pokazać z dużą dokładnością, w jakim miejscu się znajdujemy. I śledzić na tej podstawie nasze wędrówki.

Spojrzymy na rzeczy oczywiste, takie jak wbudowany GPS. A także nieco bardziej zaskakujące, jak mikrofon czy choćby akcelerometr.

Zapraszam!

Źródła: Ziemia i lupa od Wikimedia Commons, ikona mikrofonu autorstwa kliwir art ze strony Flaticon, ikonki systemu Huawei, manga Battle Angel Alita: Last Order. Przeróbki moje.

Spis treści

  • GPS
  • Śledzenie przez inne moduły
    • Wi-Fi
    • Bluetooth
    • Mikrofon
    • Akcelerometr
  • Śledzenie przez sieć komórkową
  • Jak się chronić

GPS

To najprostsza sprawa. Aplikacja mająca uprawnienia do danych z GPS-a (Global Positioning System) może tak po prostu zapytać systemu: „Gdzie jest ten użytkownik?”. W odpowiedzi dostanie komplet współrzędnych.

Jeśli w ciągu dnia nie wyłączamy GPS-a, to apka może cały czas żłopać te dane i dokładnie poznać różne informacje:

  • nasze miejsce zamieszkania
    (tam, gdzie w godzinach nocnych zwykle przestają się zmieniać wspołrzędne);
  • miejsce pracy
    (o ile nie mamy zdalnej, to będzie to miejsce, które regularnie odwiedzamy w tygodniu);
  • preferencje komunikacyjne
    (samochód czy komunikacja miejska – odczyt na podstawie szybkości ruchu oraz miejsca startu);
  • udział w zgromadzeniach
    (kiedy z jednego miejsca przybywa więcej danych o lokalizacji);
  • osoby, u których nocowaliśmy
    (najpierw wyłapanie nocy, kiedy nie jesteśmy tam gdzie zwykle; następnie wyszukanie tego miejsca w bazie wszystkich użytkowników. Zadziała choćby wtedy, gdy osoba, która nas gości, zwykle wyłącza GPS-a).

I tak dalej, opcji jest multum. Niektóre informacje może pozyskać każda apka. Te dotyczące zgromadzeń i korelacji międzyludzkich to raczej domena apek popularniejszych. Taki na przykład Google zdobyłby je bez problemu.

GPS działa niezależnie od sieci komórkowej. Jak najbardziej może się zdarzyć, iż nie mamy zasięgu, ale geolokalizacja śmiga całkiem nieźle. Nie zadzwonimy, nie zajrzymy do internetu… Ale wiemy, gdzie jesteśmy. Wiedzą to również apki mające dostęp do odczytów GPS-a.

Losowe miejsce w Beskidzie Żywieckim, gdzie nie ma łączności telefonicznej. Ale GPS śmiga.
Mapka wyświetla się tylko dlatego, iż to Mapy.cz w wersji offline, pobrane na zapas.

Dokładność GPS-a miewa swoje wahania. Przykład z życia? W niektórych górskich i zalesionych okolicach potrafiło pokazać, iż jestem kilkanaście kilometrów dalej niż w rzeczywistości.
Ale nie ma co polegać na niedokładnościach. Dla aplikacji byłoby całkiem łatwe wykrycie takich anomalii i usunięcie ich ze zbioru danych.

Warto pamiętać, iż GPS może być dla nas groźny również w sposób pośredni – przez geotagowanie zdjęć.

To funkcja dostępna zwykle w systemowej apce Aparat. jeżeli ją włączymy, to do każdego zrobionego zdjęcia zostaną dodane nasze współrzędne w momencie jego robienia.

I tak – trafią one bezpośrednio do pliku ze zdjęciem, nie do jakiejś wewnętrznej bazy telefonu. Co oznacza, iż każda apka mająca dostęp do plików (nawet jeżeli nie ma dostępu do GPS-a) może sobie te koordynaty łatwo odczytać.

Ciekawostka

Choć śledzenie konkretnych osób najbardziej narusza prywatność, czasem choćby informacje zanonimizowane i uśrednione mogą ujawniać sekrety.
Przykład? Aplikacja Strava (od statystyk dotyczących aktywności fizycznej) tworzyła na podstawie anonimowych statystyk mapy cieplne pokazujące, jak często różni ludzie trenują na danej trasie.
Użytkownicy wypatrzyli dziwne ślady treningów pośrodku pustyni. Jak się okazało – były to trasy patroli w bazie wojskowej.

Śledzenie przez inne moduły

Skoro już mamy z głowy najprostszego GPS-a, to czas na mniej oczywiste metody, polegające na innych modułach naszego telefonu. Jak modem, mikrofon, Bluetooth. Każda z tych metod śledzenia zadziała choćby wtedy, gdy mamy wyłączony GPS.

Wi-Fi

Czasem nie chcemy płacić za zużycie danych mobilnych. Wyświetlamy sobie zatem listę hotspotów, punktów dostępu do internetu. Znajdujemy jakiś publicznie dostępny, łączymy się z nim.

Ta czytelna, widoczna dla nas nazwa (jak Hostel Guest, Uczelnia Free, McD Hotspot) to według oficjalnego nazewnictwa SSID. Oprócz niej routery wysyłają również BSSID – mniej czytelny, za to (teoretycznie) unikalny numer. Zwykle nie pokazuje się nam, ale nasz telefon go widzi.

Jeśli hotspot nie jest czymś tymczasowym, tylko fizycznym routerem, to jest spora szansa, iż nie ruszy się z miejsca. Zarówno jego fizyczne położenie, jak i cyfrowy identyfikator, długo pozostaną niezmienne.

A ta stałość otwiera furtkę do śledzenia – można tworzyć wielkie bazy danych łączące numery hotspotów z ich konkretnymi położeniami w świecie fizycznym. Zbieranie tych danych określa się jako wardriving.

I takie bazy hulają w najlepsze:

  • Wozy Google’a jeździły po świecie, robiąc zdjęcia ulic na potrzeby projektu StreetView. Ale nie każdy wie, iż jednocześnie budowały wielkie bazy łączące identyfikatory hostspotów z ich fizycznymi lokalizacjami.
  • Telefony innych firm (np. Huawei) same oferują funkcję dokładniejszego lokalizowania na podstawie danych o Wi-Fi. Opiera się ona właśnie o takie bazy.
  • Nawet hobbyści zebrali całkiem pokaźne ilości danych, chociażby w bazie Wigle.

    Hotspoty nad polskim morzem. Może nieco ich mniej niż parawanów, ale nieznacznie.
    Mapkę można zbliżać, uzyskując dokładność do pojedynczych punktów.

Jeśli autorzy apki-szpiega z naszego telefonu mają dostęp do takiej bazy, a my mamy włączone Wi-Fi i nie jesteśmy w kompletnej dziczy (czytaj: mamy w zasięgu hotspoty), to nas zlokalizują. choćby jeżeli mamy wyłączonego GPS-a.

Nasz telefon wykona skan, szukając hotspotów w okolicy. Zbierze ich identyfikatory. Apka sięgnie do tej listy i wyśle ją autorom. A ich serwery sprawdzą, jakiej lokalizacji odpowiadają te identyfikatory. Dowiedzą się, gdzie jesteśmy. Nawet jeżeli ostatecznie nie połączymy się z żadnym z tych hotspotów.

Czasem apka mogłaby choćby odgadywać miejsce na podstawie samych nazw, nie mając dostępu do bazy geograficznej. jeżeli wśród nazw hotspotów wokół nas powtarza się nazwa znanego parku rozrywki… No to gdzie my możemy być? :wink:

Bluetooth

Bluetooth, czyli wszechstronny protokół od przesyłania danych. Dzięki niemu możemy na przykład wysłać komuś plik bez użycia internetu albo puszczać muzykę przez głośnik bezprzewodowy.

Kiedy urządzenia chcą się skomunikować przez Bluetooth, to każde z nich wysyła w eter swój unikalny identyfikator. Inne mogą je znaleźć i poprosić o połączenie. Trochę jak w przypadku hotspotów.

Różnica polega na tym, iż Bluetooth nie jest tak publiczny i stały jak Wi-Fi. Śledzenie nie opiera się zatem na odpytywaniu jakiejś wielkiej bazy.
Zamiast tego firma chcąca śledzić użytkowników kupuje zestaw małych nadajników, tak zwanych beaconów. Każdy ustawia w innym miejscu. Każdy emituje swój unikalny identyfikator.

Aplikacja na naszym telefonie, należąca do właściciela beaconów (albo innej, współpracującej z nią firmy), prowadzi z kolei nasłuch. jeżeli wyłapie któryś z charakterystycznych identyfikatorów, to może zapytać swojej wewnętrznej bazy, gdzie jesteśmy.

Pytanie: Telefon użytkownika X wykrył sygnał Beacona 7778. Gdzie to jest?
Odpowiedź: Galeria Invigilada, drugie piętro, toaleta męska. Kabina po lewej.

Żeby skuteczenie używać beaconów, firmy musiałyby w jakiś sposób kontrolować przestrzeń, w której je rozmieszczą. Dlatego szczególnie narażone na śledzenie będą osoby w miejscach takich jak galerie handlowe, parki rozrywki, kampusy i tym podobne.

Raczej żadna firma nie jest na tyle potężna, żeby poustawiać swoje beacony po całym świecie. Co nie znaczy, iż kiedyś nie spróbują.

Aplikacje wykorzystujące tę metodę śledzenia znajdziemy w świecie rzeczywistym. Aplikacja AccuWeather (od aktualnej prognozy pogody) wysyłała współrzędne GPS oraz numery hotspotów firmie analitycznej. Wprost chwalili się również, iż wspierają beacony Bluetooth i również wykorzystują dane z nich do dokładniejszego śledzenia.

Mikrofon

Tutaj sprawa jest bardzo podobna jak z Bluetoothem. Autor wścibskiej apki (albo jego partner biznesowy) nabywa beacony – małe nadajniki, tylko iż wysyłające dźwięk na skraju słyszalności.

Każdy z tych dźwięków jest nieco inny. Mikrofon, czulszy niż ludzkie ucho, powinien być w stanie to wyłapać. A wtedy apka dostanie jednoznaczną informację – jesteśmy w pobliżu konkretnego nadajnika, a zatem w konkretnym miejscu.

[ LOGI APLIKACJI „NASŁUCH” OD BIG BRO SP. Z O.O. ]
Konto podpięte – Dawid M. (27 lat, dużo innych danych).
Sprawdzanie mikrofonu…
Wykryto sygnał znanego czujnika (nr 37293).
Sprawdzanie czujnika w bazie…
Ustalona lokalizacja – Galeria Invigilada, drugie piętro, placówka okulistyczna.
Wstępna analiza – „Dawid M. może mieć problemy ze wzrokiem.”
Wyniki analizy wysłano do Big Bro Sp. z o.o.

Z punktu widzenia śledzących firm ta opcja może być mniej wygodna niż Bluetooth. Nowsze wersje systemów wyświetlają ostrzegawczą kropkę, gdy działa nam mikrofon.

Poza tym wszystko mocno zależy od czułości naszego mikrofonu. Zapcha się okruchami po ciastkach albo zatonie między warstwami ciuchów w plecaku? Peszek, śledzenie nie zadziała. Tym niemniej warto wiedzieć o istnieniu tej metody.

Akcelerometr

To może być dla niektórych największym szokiem, ale tak – najzwyklejszy akcelerometr (przyspieszeniomierz) może działać przeciwko nam. To moduł bardzo wyczulony na ruch, informujący o zmianie położenia w przestrzeni.

Jest wykorzystywany chociażby do liczenia naszych kroków albo wykrywania, czy się przewróciliśmy. Jest na tyle dokładny, iż może choćby wyłapywać drgania powietrza i działać w roli ubogiego mikrofonu (nie na tyle dokładny, żeby nagrywać; ale może np. odgadnąć płeć rozmówcy na podstawie barwy głosu).

Poświęcę mu jeszcze osobny wpis, ale póki co skupmy się na śledzeniu lokalizacji. Akcelerometr gromadzi i analizuje dane o przyspieszeniach, jakie oddziaływały na telefon. Na tej podstawie może wyłapać, skąd i dokąd się przemieściliśmy oraz jakiego użyliśmy środka transportu.

Akcelerometr nie ujawni naszego dokładnego położenia sam z siebie. Ale jeżeli apka-szpieg znajdzie jakiś punkt zaczepienia, to może użyć danych z niego do uzupełnienia obrazu naszej lokalizacji.

Wyobraźmy sobie przykład z życia. Wyjeżdżamy w Bieszczady, skuszeni opowieściami o tamtejszej dziczy, wolności od spraw biznesowych i tym podobnego syfu. Planujemy nocować w bazie namiotowej. Na naszym telefonie jest apka, która nie szanuje prywatności.

  • Wysiadamy w Wetlinie. Nigdy tu nie byliśmy, więc dla pewności odpalamy GPS-a. Albo może siadamy w którejś z pobliskich knajp i łapiemy tam ostatni haust Wi-Fi przed planowanym cyfrowym detoksem?

    W każdym razie – aplikacja zapisuje sobie naszą lokalizację. Ma punkt odniesienia.

  • Wiemy już, dokąd iść. Wyłączamy wszystkie czujniki (w tym Wi-Fi i GPS-a). Drepczemy do bazy.

    Na tym etapie pałeczkę przejmuje akcelerometr. Zapisuje sobie naszą prawdopodobną trasę od ostatniej znanej lokalizacji. Najpierw żwawy ruch pieszy, potem tylko minimalne drgania.
    Do tego, pytając system o godzinę, apka ustala, iż brak ruchu koreluje z nocną porą. Wniosek? Dotarliśmy do noclegu. A po połączeniu danych odczyta, iż była nim baza PTTK.

  • Mamy wyłączony internet, więc na razie zapisuje to wszystko offline, do plików. Ale kiedy odzyskamy łączność, to komplet danych poleci do autorów aplikacji.

    Algorytmy zdiagnozują nas jako turystów. Zaczną nam się wyświetlać reklamy promujące drogie, komercyjne wyjazdy namiotowe i glampingowe. Tyle z naszego detoksu.

Źródło map: OpenStreetMap.

Ta metoda ma oczywiście niedoskonałości, ale na krótszą metę może być zadziwiająco trafna. Zwłaszcza jeżeli będą powstawały coraz dokładniejsze akcelerometry.
Jest też o tyle wredna, iż aplikacje nie muszą pytać o pozwolenie na dostęp do akcelerometru. To dane, do których mogą sobie tak po prostu sięgnąć.

Śledzenie przez sieć komórkową

Przy tylu sposobach na ustalanie lokalizacji można zwątpić w telefony.
I załóżmy, iż zwątpiliśmy. Wyłączamy wszystkie dodatkowe moduły, cofamy pozwolenia wszystkim aplikacjom.

Albo w ogóle nie używamy telefona, tylko oldschoolowego telefonu komórkowego. Jak te z wielkimi klawiszami, przeznaczone dla osób starszych (miałem, polecam; dało się choćby robić zdjęcia w jakości tostera i wysyłać znajomym przez wiadomości MMS).

Klasyczna Nokia 3310. Niezniszczalna, ale choćby ona nas nie ocali przed śledzeniem.
Źródło: Wikimedia Commons. Zdjęcie autorstwa Rainera Knäppera.

Czy nasza prywatność jest chroniona? Przed większością firm – tak. Ale nie do końca.

Istnieje bowiem metoda ustalania lokalizacji przez sieć komórkową. Nie wymaga żadnej apki i żaden telefon nie będzie na nią odporny. Przez sam fakt, iż jest telefonem.

Cała metoda działania jest z grubsza podobna do tego, co widzieliśmy wcześniej przy hotspotach. Cały świat jest obstawiony jakimiś punktami wejścia do sieci – tyle iż tym razem komórkowej. Stacje bazowe, nadajniki GSM, jak zwał.

Gdybyśmy chcieli lepiej sobie wyobrazić zagęszczenie nadajników, to proponuję zerknąć do otwartej bazy OpenCelliD.

Nasz telefon, łącząc się z taką stacją, wysyła swój unikalny numer. Zaś operatorzy telekomunikacyjni (jak Orange, Play…) posiadają listę lokalizacji odpowiadających poszczególnym stacjom. Mogą skorelować dane z kilku nadajników naraz i całkiem dokładnie ustalić nasze położenie.

A czy do danych o nadajnikach w naszym sąsiedztwie mogą sięgnąć cudze aplikacje? Przetestowałem to z użyciem apki Termux (komenda termux-telephony-cellinfo) i mam mieszane wieści.

  1. Aplikacja musi mieć dostęp do GPS-a, żeby sięgnąć po te dane.

    To mocne ograniczenie dla wścibskich apek. A gdyby miały dostęp do GPS-a, to i tak lepiej by znały nasze położenie niż przez jakieś nadajniki.

  2. Ale jest tak od wersji 8 Androida, co może sugerować, iż poprzednie wersje systemu tak po prostu udzielały tej informacji na życzenie.

    Nie zagłębiałem się w temat. Ale gdyby tak było, to wścibska aplikacja (dowolnej firmy, niekoniecznie telekomunikacyjnej) mogłaby pewnie wyciągnąć dane o stacjach wokół nas, sprawdzić je w bazie i ustalić, gdzie jesteśmy. Analogicznie jak przy hotspotach.

Załóżmy natomiast, iż aplikacje nie dostaną tych danych, iż będzie je miał tylko operator telekomunikacyjny. Czy w takim wypadku powinniśmy się obawiać? Niestety tak.

Po pierwsze, nie wszędzie mamy Europę i przepisy chroniące prywatność danych. Znani amerykańscy operatorzy telekomunikacyjni wprost sprzedawali dane o lokalizacji swoich użytkowników. Uzyskane właśnie przez sieć komórkową, bez udziału żadnych aplikacji.

Informacje trafiały najpierw do mniej znanej firmy, a następnie były kupowane przez oficjalne rządowe agencje (aby obejść zakaz bezpośredniego kupowania przez rząd od telekomów).
Telekomy oberwały za cały proceder wielomilionowymi karami.

A choćby jeżeli same telekomy będą niegroźne, to mogą istnieć prywatne firmy wykorzystujące słabości ich infrastruktury do lokalizowania konkretnych telefonów.

Jak się chronić

Żeby aplikacje nie mogły tak łatwo się dowiedzieć, gdzie jesteśmy, przyda się wyrobienie paru dobrych nawyków. Przede wszystkim minimalizacja.

Po pierwsze – ograniczamy się tylko do kilku zaufanych aplikacji. I nie mam tutaj na myśli „bierzemy tylko z oficjalnego źródła, PlayStore’a”. Całkiem przydatne i minimalistyczne aplikacje open source możemy na przykład znaleźć w alternatywnym F-Droidzie.

Warto patrzeć na informacje o twórcach i zachować szczególną podejrzliwość wobec aplikacji stworzonych przez amerykańskie startupy z Doliny Krzemowej. Tam jest inna mentalność i mniej szanuje się dane użytkowników niż w Europie.

Po drugie – ograniczamy liczbę pozwoleń, jakie mają przyznane aplikacje. jeżeli już jakiegoś udzielamy, to najlepiej w trybie Tylko podczas korzystania, żeby nie hulało cały czas w tle.

Z tych modułów, które omówiłem w tym wpisie, poprzez system pozwoleń możemy regulować dwa – mikrofon oraz GPS-a.
Osobiście daję dostęp do tego pierwszego tylko oficjalnej, systemowej apce do nagrywania wideo. Z kolei do GPS-a może zerkać tylko aplikacja Mapy.cz.

Aby chronić się przed lokalizowaniem przez Bluetooth i Wi-Fi, warto mieć je wyłączone, kiedy z nich nie korzystamy (czyli raczej przez większość czasu). Włączajmy tylko na krótki czas – gdy trzeba coś przesłać albo zerknąć do sieci.
Dodatkowa zaleta: pomijając kwestie prywatnościowe, w ten sposób oszczędzimy nieco baterii.

Na systemie Android można łatwo włączać i wyłączać niektóre funkcje przez główne menu. W tym celu przykładamy palece do górnej części ekranu i kilka razy ciągniemy w dół.

Wszystkie powyższe rzeczy nie ocalą nas przed akcelerometrem. Nie wymaga on żadnych pozwoleń i nie ma pstryczka, który by go wyłączył. Ale pamiętajmy, iż w odosobnieniu nie jest aż taki groźny. Dbajmy o inne sprawy wskazane powyżej, a powinno być w porządku.

Jeśli mamy czas, kiedy akurat nie potrzebujemy telefona (bo na przykład śpimy albo mamy długi przejazd pociągiem)… To możemy po prostu wyłączać całe urządzenie.
Nawet jeżeli siedzi u nas wścibska apka gapiąca się w akcelerometr, to z wyłączonego telefona nic nie odczyta.

A jeżeli chcemy prywatności przed operatorem telekomunikacyjnym, to pomóc nam może tryb samolotowy – jeżeli działa prawidłowo, to na czas jego aktywacji wyłączają nam się wszelkie formy łączności bezprzewodowej.

To moim zdaniem wszystko, co potrzebne zwykłemu człowiekowi przeciw śledzeniu korporacyjnemu. Jakieś ruchy oporu we wrogich reżimach mogłyby zamiast tego postawić na telefony jednorazowe (burner phone’y) oraz torebki Faradaya, blokujące wszelkie wychodzące sygnały. Ale ta seria nie skupia się na takich tematach.

I z tym zestawem porad Was zostawiam. Życzę, żebyście przez te wakacje poznali jakieś fajne miejsca. I oby nie poznały ich szpiegujące aplikacje :smile:

Idź do oryginalnego materiału