Apki to pułapki 3 – historia SMS-ów

ciemnastrona.com.pl 1 rok temu
Zdjęcie: Przerobiona grafika w stylu clipart, pokazująca włamywacza w pasiastym stroju biegnącego z workiem na plecach. Na worek nałożono trzy koperty.


SMS­y są stałą częścią życia prawie wszystkich posiadaczy telefonów.

Choć ich pisanie może być coraz rzadsze – są wypierane przez komunikatory internetowe – przez cały czas całkiem często je otrzymujemy.
Potwierdzenia odbioru, alerty RCB, kody uwierzytelniające… SMS­y dostajemy od różnych firm i instytucji, którym podaliśmy swój numer telefonu.

I tutaj pojawia się problem. Wszystkie te wiadomości są zapisywane na naszym telefonie bezterminowo (z tego co wiem). Żeby się ich pozbyć, musielibyśmy sami je usunąć z historii. A mało komu się chce.
Co by się stało, gdyby zajrzał do nich ktoś niepowołany, ktoś wścibski? Jakie informacje by z nich odczytał?

Temu jest poświęcony mój obecny wpis. Zobaczymy pozwolenia na systemie Android pozwalające zaglądać nam do SMS­ów, aplikację pozwalającą osobiście to przetestować. Oraz sposoby na ochronę swojej prywatności.

Będzie raczej bez większych zaskoczeń, bo temat nie jest szczególnie skomplikowany. Ale może dostarczy nam paru dodatkowych przemyśleń.

Źródło: WebStockReview, przeróbki moje.

Tradycyjnie już – nie dotykam tematu hakerów i cyberbezpieczeństwa. Zakładam iż aplikacje zbierają dane oficjalnym, legalnym sposobem. Ale potem je wykorzystują do mniej etycznego profilowania.

Skrzynka z SMS-ami

Z punktu widzenia użytkownika odbiór wiadomości to sprawa szybka i intuicyjna.

Idziemy sobie spokojnie, kiedy nagle czujemy w kieszeni wibrację. Patrzymy na ekran i widzimy, iż przyszła wiadomość – jest ikona dymka, nazwa nadawcy i początek treści. Po naciśnięciu palcem wyświetla się reszta. Czytamy, wracamy do ekranu głównego, odkładamy telefon.

Do raz otrzymanych wiadomości możemy sobie później wracać, korzystając z domyślnej, systemowej aplikacji. U mnie nazywa się po prostu Wiadomości.

SMS­y są w niej pogrupowane w wątki – według nazwy odbiorcy – prawdopodobnie dla łatwiejszego czytania. Po przekroczeniu pewnej ilości korespondencji od jednego odbiorcy tworzy się kolejny wątek, niezależny od poprzedniego.

Porada

Pozwolę sobie na błagalny apel w imieniu wielu użytkowników starszych, klasycznych telefonów – jeżeli piszecie do kogoś takiego, to nie wysyłajcie wiadomości krótkich, po kilka słów, jak na czacie. Dajcie cały tekst za jednym razem.
To dlatego, iż na starofonach nie ma grupowania w wątki. Mikrowiadomości trzeba otwierać i zamykać jedną po drugiej, a potem po kolei kasować (jeśli nie chcemy czyścić całej skrzynki). Na dłuższą metę to męczące.

Gdyby SMS­y mogła czytać tylko oficjalna aplikacja naszego telefonu, to wpis zakończyłby się w tym miejscu. I tak podobno jest w przypadku systemu iOS (na iPhone’ach).

Natomiast na Androidzie aplikacje mogą zaglądać do historii SMS­ów. W tym celu muszą jednak poprosić nas o pozwolenie. Zwane zakulisowo READ_SMS; z gatunku runtime permissions, czyli takich, które możemy w dowolnym momencie wyłączać w ustawieniach.

Według bloga firmy Symantec to pozwolenie stosunkowo rzadko wymagane. O dostęp do SMS­ów prosiło 15 procent badanych przez nich, potencjalnie wścibskich apek na Androida.

Ale tutaj możemy zadać sobie pytanie – ile aplikacji potrzebowałoby tego pozwolenia tak naprawdę, serio-serio?

Dwie minuty krytyki

Skorzystam z okazji i zbiorę w tym miejscu trochę krytyki wobec Google. Żeby nieco zrekompensować fakt, iż mało ostatnio dodaję do serii na ich temat.

Głównym źródłem aplikacji na świecie są centralne, publiczne bazy. Jak Play Store od tegoż Google.
W teorii powinny weryfikować, czy apka naprawdę potrzebuje szczególnych uprawnień, jak możliwość czytania SMS­ów. I usuwać szemrane towarzystwo. Sęk w tym, iż choćby naciągany powód wystarczy, żeby dostać pozytywną notę.

Przykład ze wspomnianego badania Symantec?
O pozwolenie prosi apka-bajer sterująca funkcjami latarki w telefonie. Jako oficjalny powód podali fakt, iż dzięki temu uprawnieniu latarka może migać, kiedy przyjdzie do nas wiadomość. Dostali się do bazy.

A po stronie użytkownika? Mamy niestety jedno i to samo ostrzeżenie dla wszystkich działań związanych z SMS-ami. Pozwolenia całkiem różne – na wysyłanie i czytanie – są zebrane w tak zwane grupy uprawnień. Kiedy aplikacja potrzebuje dowolnego z nich, to ujrzymy taki komunikat:

Wyobraźmy sobie, iż instalowana apka ma jakiś powód, żeby wysyłać wiadomości. Może na przykład twierdzi, iż może wysyłać SMS-a z powiadomieniem, gdy coś zrobimy. Myślimy sobie: „brzmi sensownie”. I kiedy pokazuje się to pozwolenie, to nasza czujność jest uśpiona. Zatwierdzamy. Zaś apka zyskuje również możliwość zerkania do naszej skrzynki.

Gdyby to zerkanie wymagało odrębnego, wyrażonego wprost pozwolenia, to może budziłoby ono większe podejrzenia. Byłoby znacznie mniej rodzajów apek, które tak serio-serio by go potrzebowały.
Ba, nie byłoby potrzebne choćby wtedy, gdy aplikacja chce nam wysłać SMS-a i potem upewnić się iż dotarł. Bo takie coś mogą zrobić osobnym kanałem, bez konieczności czytania całej skrzynki (choć niestety wymaga Usług Google, więc alternatywne systemy znów pokrzywdzone).

Jedynymi aplikacjami naprawdę potrzebującymi wglądu do SMS­ów zostałyby wtedy chyba tylko komunikatory, zbierające wiele rodzajów wiadomości w jednym miejscu. Moim zdaniem i tak opcja niewarta ryzyka.

…No ale jest jak jest. Mamy jedno łączone uprawnienie, zaś jedyną linią obrony dla osób nieświadomych zagrożeń są automatyczni recenzenci z Play Store’a.

A z nimi różnie bywa. Czasem przepuszczą łobuzów, a zablokują coś fajnego.
Aplikacja Termux – nieraz przeze mnie polecana – daje możliwość automatyzowania pewnych funkcji telefonu. Siłą rzeczy potrzebuje różnych dodatkowych pozwoleń. Na szczęście jej kod źródłowy jest publicznie dostępny, w razie nieprawidłowości ktoś by gwałtownie zaalarmował Google.

Mimo to Termux nie dostał pozwolenia na dostęp do SMS­ów i paru innych rzeczy. W efekcie Play Store zawiera jedynie okrojoną wersję tej aplikacji. Google :roll_eyes:

Informacje zaszyte w SMS-ach

No ale dość dygresji. Skoro już wiemy, iż Google zły, a Termux dobry… to przechytrzmy tego pierwszego. I użyjmy tego drugiego do sprawdzenia, co widzą aplikacje zaglądające do SMS­ów.

Żeby nie rzucać tu technikaliami, proces instalowania Termuksa opisałem na końcu. Tu powiem tylko, iż jest prosty. A kiedy już mamy co trzeba, wystarczy wpisywać polecenie termux-sms-list, żeby wyświetlać dane dotyczące SMS­ów.

Nie będę tu omawiał formatu, bo zasadniczo mamy te same informacje co w domyślnej aplikacji naszego telefonu. Różnica jest taka, iż SMS­y nie są pogrupowane w wątki, tylko mają postać jednej płaskiej listy. Informacja o wątku ma natomiast nazwę threadid i jest częścią każdego SMS-a.

Co można z tych SMS­ów odczytać?

Pozwolę sobie pominąć SMS­y prywatne, wymienione z innymi ludźmi. Tam może być absolutnie wszystko :wink:
Spójrzmy natomiast na informacje bardziej usystematyzowane. SMS­y otrzymane od wszelkiej maści firm i organizacji państwowych. Z nich też da się całkiem sporo wyłuskać.

Alerty RCB

Poczciwe SMS­y ostrzegające nas, iż idzie burza i warto schować rzeczy z balkonu. Nieraz żadna burza nie przychodzi, ale miło iż ktoś o nas pamiętał.

Ale wiedzieliście, iż do różnych rejonów trafiają różne wiadomości? Na przykład na obszarach wschodnich można było dostać swego czasu SMS­y ostrzegające przed akcjami Łukaszenki.

A to i tak nic w porównaniu z tym, co się działo w czasach covidowych. Alerty RCB były wysyłane za każdym razem, kiedy odwiedziliśmy powiat mocniej dotknięty chorobą.

Alert RCB

Uwaga! Zaslon usta i nos. Powiat debicki w czerwonej strefie epidemicznej. Od 17.10 nowe zasady: https://www.gov.pl/zasadybezpieczenstwa

Kiedy pozbieramy SMS­y z pewnego konkretnego dnia, to układa się cała historia wyjazdu w Bieszczady w tamtym gorącym okresie (ograniczam się do powiatów z Podkarpacia):

  • powiat dębicki,
  • powiat ropczycko-sędziszowski,
  • powiat strzyżowski,
  • powiat brzozowski,
  • powiat sanocki,
  • powiat leski.

Oznaczmy sobie te powiaty na mapce:

Patrząc dodatkowo na czas wysłania SMS­ów, można łatwo dojść do wniosku, iż był to przejazd samochodowy, bez robienia dłuższych przerw.

Owszem, taka szczegółowość nie jest w alertach RCB dostępna na co dzień. Tym niemniej mogą być sposobem na ustalenie przybliżonego regionu, w jakim mieszkamy, oraz tras niektórych podróży w czasach pandemicznych.

Powiadomienia od zagranicznych operatorów

Pociągnijmy dalej wątek podróżniczy. Poza granice kraju – bo kiedy ją przekraczamy, często dostajemy z automatu jakieś powiadomienie.

Jasne, nie jest to metoda stuprocentowo dokładna. Czasem wystarczy zbliżyć się do granicy, żeby dostać wiadomość od zagranicznego operatora.
Jest tu ktoś, kogo w polskich górach złapała sieć czeska lub słowacka? Albo, co gorsza, ktoś kto stracił w Bieszczadach majątek przez nagłe przejście na taryfę ukraińską? :smiling_imp:

Wiadomości są natomiast znacznie pewniejszym źródłem, jeżeli mówią o kraju otoczonym wodami, takim jak Cypr albo Islandia. jeżeli taki kraj nas witał u siebie, to raczej tam byliśmy. A przynajmniej nasz telefon.

Oto wiadomość, jaką dostałem w czasach pandemii po zarejestrowaniu się w systemie na wjazd do Czech:

Anonim

NCZI: IMIĘ I NAZWISKO Your registration on arrival from abroad has been registered.You meet the 14-day quarantine exemption.You don’t have to go through quarantine

Pisownia oryginalna, tam też nie dawali spacji po kropkach. Przez co dwie rzeczy w domyślnej apce z SMS-ami błędnie oznacza mi jako linki.

Choć może to brzmieć nieintuicyjnie, nasze prawdziwe imię i nazwisko to często tajemnica dla aplikacji. Nie mają łatwego sposobu na ich poznanie, bo podczas zakładania kont (i na Androidzie, i na różnych portalach) zwykle nie musimy nigdzie podawać prawdziwych danych.

Ale SMS­y łatwo mogą nas ujawnić. Wystarczy iż zapiszemy się do jakiejś rzeczy poważnej i urzędowej, gdzie użytkownik Kubuś Puchatek by nie przeszedł. Dostaniemy potwierdzenie na skrzynkę. A dla wścibskich aplikacji to tak, jakbyśmy się im przedstawili.

Konta i subskrypcje

Nieraz zdarza się, iż musimy podać numer telefonu przy zakładaniu konta. Dostajemy wtedy jednorazowy kod potwierdzający.

BIEDRONKA

Dziekujemy za rejestracje w programie Moja Biedronka. Wprowadz podany kod w formularzu rejestracyjnym na stronie www. KOD: 6-CYFROWY KOD

Na szczęście ta liczba raczej by nie wystarczyła do podebrania nam konta. A przynajmniej wtedy, gdy ktoś ma jedynie wgląd do SMS­ów, a usługa wysyłająca nam kod zadbała o bezpieczeństwo. Kod powinien być przypisany do konkretnej sesji w przeglądarce, rozpoczętej specjalnie dla nas, niedostępnej dla obcych.

Ale nie będę tu zgrywał eksperta, bo ocieramy się o kwestie hakerskie, które znam słabo.

Natomiast z punktu widzenia prywatności – na podstawie takich jednorazowych wiadomości da się ustalić, z jakich usług korzystamy. „Ma Facebooka (i ustawiał na nim zabezpieczenie przez SMS)”. „Ma Signala”. „Ma konto w banku X”. „Ma kartę stałego klienta w Biedronce”.

I choć Biedronka czy Facebook raczej zlewają się z tłumem, to inne przykłady mogą bardziej nas wyróżniać.
Gdyby wiadomości o założeniu konta przyszły od stron/aplikacji reprezentujących węższe grupy osób (mniejszości seksualne, wyznawców konkretnej religii, osoby z jakąś przypadłością), to takie SMS­y dawałyby podglądaczom cenne i osobiste informacje.

Usługi kurierskie

Kiedy zamówimy coś przez internet, to często za dostarczenie paczki odpowiada któryś ze znanych pośredników. I informuje nas SMS-owo o punkcie odbioru. Podając przy tym jego adres.

PP S.A

Przesylka nr NUMER, kod odbioru KOD, czeka na odbior w sklepie Zabka ul. ULICA I NR LOKALU, NAZWA MIASTA

DHL

Przesylka nr NUMER adres DHL POP ZABKA, ULICA I NR LOKALU, KOD POCZTOWY NAZWA MIASTA.

To znacznie dokładniejsze dane niż te z alertu RCB, informującego o ogólnym rejonie, do tego tylko czasami.
Tu natomiast można założyć, iż raczej wysyłamy paczki do punktu blisko siebie. Więc ktoś patrzący na takie SMS­y byłby w stanie nas namierzyć z dokładnością co do osiedla. Albo jeszcze większą.

Placówki zdrowotne

Może przykład covidowy?

e-Zdrowie

Twoje szczepienie (NAZWA SZCZEPIONKI):
DATA I GODZINA w punkcie ULICA I NR LOKALU w NAZWA MIASTA.

Tutaj jak wyżej – nasze miejsce zamieszkania. Może nieco ogólniejsze niż przy paczkach, bo jednak nie każde osiedle ma swoją przychodnię.

Co gorsza, jest tu informacja związana ze zdrowiem. I informacja dla potencjalnych stalkerów, gdzie i o której mogą się z nami spotkać – bo skoro na coś się umówiliśmy, to jest niemała szansa, iż tam będziemy.

Zawody sportowe

Zapisaliśmy się na coś, z własnej pasji albo za namową znajomych. Trochę wysiłku, a potem mnóstwo satysfakcji. A na deser SMS z gratulacjami po przekroczeniu linii mety.

Ale ta słodycz może nieco zgorzknieć, jeżeli ktoś się do tego SMS-a dobierze. Bo ten zawiera nasze imię i nazwisko, czas ukończenia zawodów oraz miejsce, jakie zajęliśmy w ogólnej klasyfikacji.

+48 737 ??? ???

Wyn. nieof. NAZWA ZAWODÓW dla NAZWISKO I IMIĘ. Czas CZAS UKOŃCZENIA, Msc: MIEJSCE W KLASYFIKACJI OGÓLNEJ wiecej na WYNIKI.B4SPORT.PL

Pomijając fakt, iż ujawniamy w ten sposób z grubsza swoją kondycję i zainteresowania, te informacje mogłyby być punktem wyjścia do dalszego stalkingu. Zawsze można potem wejść na listę wyników na stronie organizatora (przykład) i wyszukać konkretne imię i nazwisko na liście startowej.

Zwykle będzie tam również nazwa miasta, z którego jesteśmy, a czasem nazwa drużyny. Na podstawie identycznej, nieczęstej nazwy można ustalić, kto jest naszymi znajomymi. A przez nich na przykład znaleźć nasze konto na Facebooku, choćby jeżeli używamy pseudonimu. Możliwości nadużyć jest multum.

Jak się chronić

Jak widać, SMS­y mogą całkiem sporo o nas zdradzać. choćby jeżeli pominiemy te najbardziej osobiste i ograniczymy się do masówki wysyłanej przez rozmaite firmy.

Przede wszystkim najlepiej nie dawać aplikacjom pozwolenia na dostęp do skrzynki z SMS-ami. Naprawdę nie sądzę, żeby było potrzebne czemukolwiek poza domyślną, systemową apką. Wygoda nie jest warta ryzyka.

Poza tym warto regularnie czyścić skrzynkę. choćby jeżeli nic nie ma u nas pozwolenia – zawsze może się zdarzyć sytuacja nagła, gdy działamy w pośpiechu i coś instalujemy. A wystarczy chwila i nasze SMS­y przestają być nasze. W takim razie lepiej ich nie mieć niż polegać na pozwoleniach i potem żałować.

A co zrobić, jeżeli przed usunięciem chcemy zrobić sobie kopię zapasową SMS­ów?

Istnieją prawdopodobnie bardziej oficjalne sposoby. Ale iż jestem majsterkowiczem, a Termux jest fajny i pokrzywdzony przez Google, to właśnie jego użyję w roli przykładu. Poniżej krótki samouczek. A osoby niechętne mogą po prostu powyłączać pozwolenia i wyczyścić skrzynkę.

Bonus: chowanie SMS­ów w Termuksie

Instalacja

O tej aplikacji już parę razy wspomniałem. Wpisujemy w nią różne komendy, pozwalające na przykład chodzić po folderach i wyświetlać pliki.
Tym razem natomiast nie wystarczy nam wersja podstawowa. Potrzebujemy rozszerzonych funkcji Termuksa – w szczególności możliwości zaglądania do skrzynki SMS­ów.

Jak wspomniałem, oficjalna wersja z Play Store’a jest wybrakowana. Zatem trzeba wykonać trzy kroki, żeby zyskać możliwość czytania SMS­ów przez Termuksa:

  1. Pobrać aplikację F-Droid.
  2. Zainstalować przez F-Droida dwie aplikacje: Termux oraz Termux:API.

    To ważne, bo na Google Play są wybrakowane wersje. A po co dwie apki? Bo Termux:API jest potrzebna, żeby mieć dostęp do rozszerzonych funkcji.

  3. Włączyć Termux:API pozwolenie na dostęp do listy SMS­ów.

Kiedy już wszystko naszykujemy, jesteśmy w stanie wpisywać w Termuksa komendę odczytującą SMS­y:

termux-sms-list

Po chwili powinna się pokazać lista 10 wiadomości.

Zapisywanie do wspólnego pliku

Zamiast wrzucać niezrozumiałego gotowca, pokażę krok po kroku, w jaki sposób konstruuję skrypt.

Trzonem jest nasze polecanie pozwalające zdobywać listę SMS­ów, termux-sms-list.
Za tym poleceniem można zapisywać różne dodatkowe argumenty, które pozwalają kontrolować zachowanie programu. Ich listę znalazłem na termux.com.

  • Po pierwsze: jeżeli chcemy wszystkie rodzaje wiadomości (SMS­y, MMS-y…), dopisujemy po naszym trzonie -t all.
  • Po drugie: to polecenie domyślnie bierze tylko 10 wiadomości. Żeby zgarnąć całą historię, trzeba kazać Termuksowi brać więcej. Zapiszmy na przykład -l 100000.

    Liczba oznacza tu, ile wiadomości chcemy brać. jeżeli będzie za duża, to nic nie szkodzi, Termux weźmie tylko tyle SMS­ów, ile mamy w skrzynce. Można poszaleć z zerami.

Gdybyśmy już teraz użyli naszego polecenia, to by jedynie wyświetliło dane na ekranie. I to nie wszystkie, bo Termux przycina tekst, gdy jest za dużo linijek.
Nie do końca o to nam chodzi. Dlatego czas na ostatni krok i rozszerzenie polecenia o zapisanie wiadomości do pliku.

A jakiego pliku? Wystarczy zwykły tekstowy. Powiedzmy, iż chcemy go nazwać smsy.txt.
Żeby to do niego zapisać efekt działania naszej komendy, wystarczy dodać na samym jej końcu: > smsy.txt.
Dla pewności dałbym dwie strzałki zamiast jednej – >>. W ten sposób nie nadpisujemy treści pliku, tylko dodajemy tekst do istniejącego.

W normalnym przypadku, gdy od razu po zrobieniu kopii zapasowej przenosimy plik w inne miejsce, nie robi to różnicy. Ale chroni nas przed wpadką. Bo gdybyśmy zrobili zrzut SMS­ów, zapomnieli go przenieść, a potem stworzyli kolejny, to byśmy stracili ten pierwszy. Mając podwójną strzałkę, nie stracimy. Lepiej dmuchać na zimne :wink:

Ostatecznie nasz skrypt wygląda tak:

termux-sms-list -t all -l 100000 >> smsy.txt

Gdyby nie pokazywało całego tekstu (częste na mobilnych), można przesunąć czarny pasek palcem.

Pamiętajmy o spacjach! Można dla pewności po prostu przekleić cały tekst stąd do Termuksa.

Kiedy tego użyjemy, to w folderze głównym Termuksa (niedostępnym dla innych typowych aplikacji) powinien nam powstać plik smsy.txt, zawierający wszystkie nasze wiadomości.

Dla pewności można do niego zajrzeć, na przykład wpisując less smsy.txt. Naciskając strzałki w górę i w dół (część Termuksa), możemy przewijać treść. Naciskając q, wychodzimy z programu.

Kiedy upewnimy się, iż wszystko zrzucone, to możemy usunąć wiadomości ze skrzynki telefonu, przez oficjalną systemową apkę. Inne aplikacje już ich nie zobaczą, bo od dzisiaj istnieje wyłącznie kopia „w brzuchu” Termuksa, poza zasięgiem innych.

Uwaga

Pamiętajmy, żeby nie odinstalowywać teraz Termuksa, bo w ten sposób skasowalibyśmy wszystko, co w nim jest. Również nasze SMS­y.

Przenoszenie poza telefon

Wiadomości ukryte w Termuksie są niewidoczne dla obcych, ale i niedostępne dla naszego własnego komputera. Jak je przenieść?

Ktoś bardziej majsterkujący mógłby użyć Termuksa do wysłania ich przez Bluetooth prosto na komputer. Ale my zrobimy to klasycznie, przenosząc plik do wspólnej przestrzeni i zgrywając na komputer przez USB.

Uwaga: nim to zrobimy, wyłączmy pozwolenie na dostęp do plików apkom, którym nie ufamy. Nie chcemy, żeby dobrały się do SMS­ów , kiedy te trafią między publiczne pliki. Pozwolenie musimy natomiast zostawić Termuksowi, żeby był w stanie przenieść plik.

Następnie wpisujemy (uwaga na spacje!) albo kopiujemy stąd:

mv smsy.txt /data/storage/emulated/0

To polecenie przeniesie plik do folderu głównego na naszej karcie pamięci (publicznie dostępnego). Zamiast mv można użyć cp, jeżeli chcemy jedynie skopiować plik.

Teraz podłączamy telefon do komputera przez USB i wybieramy na nim (telefonie) tryb pamięci masowej. Znajdujemy nasz plik, wycinamy z Androida i wklejamy gdzieś na komputerze. jeżeli ktoś woli, to może też wysłać go przez Bluetooth, przez domyślną przeglądarkę plików na telefonie.

Kiedy już zrobimy co trzeba i plik opuści nasz telefon, możemy przybić sobie piątkę. Nasze SMS­y będą od dzisiaj (oby) wyłącznie w naszych rękach, poza zasięgiem wścibinosów.

Idź do oryginalnego materiału