Oczywiście wiesz, że przeglądarki w TikTok, Instagram, Facebook działają jak keylogger?

20 sierpnia, 2022

Przeglądarki zaimplementowane w aplikacjach należących do koncernu Meta, czyli m.in. Facebook i Instagram, w teorii mogą śledzić dosłownie każde zdarzenie wykonane na wczytanej w tej przeglądarce witrynie. Szczegóły zostały opisane na blogu Felixa Krausa. Technicznie polega to na wstrzyknięciu (ang. injection) odpowiedniego kodu JavaScript, który zaciąga kolejny skrypt ze strony:

				
					https://connect.facebook.net/en_US/pcm.js.
				
			

Zgodnie ze stanowiskiem firmy Meta, skrypt pcm.js nie jest odpowiedzialny za „śledzenie”, jak wynika to również z komentarza w nim zamieszczonego:

* This code is developed to honor people’s privacy and ATT choices.

 * This code is injected in in-app browsers to help aggregate conversion events from pixels setup by businesses on their website, before those events are used for targeted advertising or measurement purposes.

 * No other user activity is tracked with this javascript.

Natomiast według autora wpisu, dodatkowy kod jest aktywnie wykorzystywany do przechwytywania fraz, które użytkownik wpisuje na odwiedzanych witrynach we wbudowanych przeglądarkach:

Implementacja metod ochrony przed wstrzykiwaniem dodatkowego kodu przez wbudowane przeglądarki na poziomie deweloperów różnych serwisów, polega tymczasowo na dodaniu poniższego kodu (najlepiej bezpośrednio po znaczniku <body>, aby przeglądarka zinterpretowała go możliwie w pierwszej kolejności):

				
					<span id="iab-pcm-sdk"></span>
<span id="iab-autofill-sdk"></span>

				
			

Można także uniemożliwić przechwytywanie tekstu wpisywanego przez użytkownika:

				
					const originalEventListener = document.addEventListener
document.addEventListener = function(a, b) {
    if (b.toString().indexOf("messageHandlers.fb_getSelection") > -1) {
        return null;
    }
    return originalEventListener.apply(this, arguments);
}

				
			

Oczywiście czas skuteczności działania tego obejścia nie jest nieskończony, dlatego zdecydowanie nie jest to świetne rozwiązanie.

Występowanie opisywanej sytuacji pomoże zweryfikować udostępnione narzędzie https://inappbrowser.com.

Wystarczy otwarcie tego adresu w jednej z wbudowanych przeglądarek (niezależnie od aplikacji). Nie udało mi się odtworzyć problemu w aplikacji Messenger, Instagram i LinkedIn. Korzystam z własnego serwera DNS, ale w logach nie odnotowano żadnej blokady w czasie testowania. Sprawdzałem również podczas połączenia z VPN, ponownie brak wykrycia dodatkowych skryptów.

Z kolei autorowi udało się uzyskać następujące wyniki:

zestawienie przeglądarek i śledzących elementów

Wynika z nich, że przeglądarki wbudowane w aplikacje Snapchat i Robinhood nie wykazują modyfikacji kodu odwiedzanych w nich witrynach. Wszystkie pozostałe zbierają dane o aktywności, dodatkowo aplikacje należące do koncernu Meta dodają własne skrypty. Szczególną uwagę zwracają TikTok i Instagram, których skrypty potrafią gromadzić dosłownie każdą aktywność:

  • wpisywany tekst (działa jak keylogger)
  • kliknięcia dowolnego elementu na stronie
  • szczegóły danego elementu
 

To nie jest tak, że każda wbudowana przeglądarka ma aktualnie możliwość modyfikacji kodu. Różne popularne aplikacje, takie jak Twitter, Gmail, Telegram, Signal czy Microsoft Teams. Używają one klas SFSafariViewController lub Default Browser, przez co uniemożliwiają wstrzykiwanie różnego customowego kodu.

Mimo wszystko zawsze lepszym sposobem otwarcia linku pochodzącego z aplikacji będzie użycie zwykłej przeglądarki. Nie jest to być może najszybsza opcja, ponieważ wymaga skopiowania adresu, przejścia do innej aplikacji (co też bywa utrudnione, np. podczas rozmowy video), wklejenia adresu i otwarcia strony. Biorąc pod uwagę zwiększoną ochronę własnej prywatności, jest to całkiem sensowna opcja.

Z drugiej strony nie powinniśmy skupiać się wyłącznie na ochronie przed tą metodą „śledzenia”. JavaScript jest powszechnie używany na właściwie każdej współczesnej witrynie, pozwala w pewnym sensie rozszerzyć jej możliwości, odpowiada m.in. za różne ciekawe efekty wizualne (których nie można uzyskać w HTML i CSS). Zainteresowane osoby mogą zainstalować rozszerzenie NoScript, które blokuje wykonywanie kodu JS w różnym stopniu. Niestety uniemożliwi to korzystanie z wielu popularnych serwisów.

Mniej radykalnym pomysłem jest korzystanie z bezpieczniejszych przeglądarek, np. Brave. Warto również zainteresować się tematami hardeningu ustawień prywatności w różnych systemach czy zastosować wspomniany wyżej własny serwer DNS, który będzie blokował na podstawie list wiele domen powiązanych z rejestrowaniem naszej aktywności. Wystarczy sprawdzić logi, aby zobaczyć ilość zablokowanych adresów już po kilku minutach działania.

Czy ten artykuł był pomocny?

Oceniono: 8 razy

Picture of Michał Giza

Michał Giza

Administrator systemów Linux i Windows Server. Konfiguruje serwery WWW, bazy danych i inne usługi sieciowe. Wykonuje i automatyzuje wdrożenia aplikacji internetowych.
Picture of Michał Giza

Michał Giza

Administrator systemów Linux i Windows Server. Konfiguruje serwery WWW, bazy danych i inne usługi sieciowe. Wykonuje i automatyzuje wdrożenia aplikacji internetowych.

PODZIEL SIĘ:

guest
0 komentarzy
najstarszy
najnowszy oceniany
Inline Feedbacks
View all comments

Wyrażam zgodę na przesłanie oferty drogą telefoniczną przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

Wyrażam zgodę na przesłanie oferty drogą mailową przez IT Partners security sp. z o.o. z siedzibą Katowicach ul.Padereskiego 35 na podany przeze mnie adres e-mail zgodnie z ustawą z dnia 10 maja 2018 roku o ochronie danych osobowych (Dz. Ustaw z 2018, poz. 1000) oraz zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO).

[ninja_tables id=”27481″]