Uważaj na identyfikację sieci społecznościowej

Trudno oprzeć się kliknięciu bezpłatnego linku do oferty iPhone’a. Ale bądź ostrożny: Twoje kliknięcie może zostać łatwo przejęte, a skutki mogą być katastrofalne.

Clickjacking to metoda ataku, znana również jako User Interface Redressing, ponieważ polega na ukryciu (lub zmianie wyglądu) linku za pomocą nakładki, która nakłania użytkownika do zrobienia czegoś innego, niż myśli.

Większość użytkowników portali społecznościowych cieszy się wygodą bycia w nich zalogowanym przez cały czas. Atakujący mogą łatwo wykorzystać ten zwyczaj, aby zmusić użytkowników do polubienia czegoś lub obserwowania go bez zauważenia. W tym celu cyberprzestępca może umieścić kuszący przycisk – na przykład z atrakcyjnym tekstem, takim jak „Darmowy iPhone – oferta ograniczona czasowo” – na swojej stronie internetowej i nałożyć niewidoczną ramkę ze stroną portalu społecznościowego w taki sposób, aby sposób, w jaki przycisk „Lubię to” lub „Udostępnij” znajduje się nad przyciskiem Darmowy iPhone.

Ta prosta sztuczka polegająca na przechwytywaniu kliknięć może zmusić użytkowników Facebooka do polubienia grup lub stron fanów bez wiedzy.

Opisany scenariusz jest dość niewinny w tym sensie, że jedyną konsekwencją dla ofiary jest dodanie do grupy na portalu społecznościowym. Jednak przy odrobinie wysiłku ta sama technika mogłaby zostać wykorzystana do ustalenia, czy użytkownik jest zalogowany na swoim koncie bankowym i zamiast polubienia lub udostępnienia jakiegoś elementu w mediach społecznościowych mógłby zostać zmuszony do kliknięcia przycisku, który przekazuje środki na konto atakującego, np. Najgorsze jest to, że złośliwego działania nie można prześledzić, ponieważ użytkownik był legalnie zalogowany na swoje konto bankowe i dobrowolnie kliknął przycisk przelewu.

Ponieważ większość technik przechwytywania kliknięć wymaga inżynierii społecznej, sieci społecznościowe stają się idealnymi wektorami ataku.

Zobaczmy, jak są używane.

Clickjacking na Twitterze

Około dziesięć lat temu sieć społecznościowa Twitter padła ofiarą masowego ataku, który szybko rozprzestrzenił wiadomość, która skłoniła użytkowników do kliknięcia łącza, wykorzystując swoją naturalną ciekawość.

Tweety z tekstem „Nie klikaj”, po którym następuje link, szybko rozprzestrzeniały się na tysiącach kont na Twitterze. Kiedy użytkownicy kliknęli w link, a następnie w pozornie niewinny przycisk na stronie docelowej, z ich kont został wysłany tweet. Ten tweet zawierał tekst „Nie klikaj”, a następnie złośliwy link.

Inżynierowie Twittera załatali atak typu „clickjacking” niedługo po jego rozpoczęciu. Sam atak okazał się nieszkodliwy i zadziałał jako alarm informujący o potencjalnym ryzyku związanym z inicjatywami przechwytywania kliknięć na Twitterze. Złośliwy odsyłacz prowadził użytkownika do strony internetowej z ukrytym elementem iframe. Wewnątrz ramki znajdował się niewidoczny przycisk, który wysyłał złośliwy tweet z konta ofiary.

Klikanie na Facebooku

Użytkownicy mobilnej aplikacji Facebooka są narażeni na błąd, który umożliwia spamerom publikowanie klikalnych treści na ich osiach czasu bez ich zgody. Błąd został odkryty przez specjalistę ds. bezpieczeństwa, który analizował kampanię spamową. Ekspert zauważył, że wielu z jego kontaktów publikuje link do strony z zabawnymi obrazkami. Przed dotarciem do zdjęć użytkownicy byli proszeni o kliknięcie w deklarację pełnoletności.

Nie wiedzieli jednak, że deklaracja była umieszczona w niewidzialnej ramie.

Gdy użytkownicy zaakceptowali deklarację, zostali przeniesieni na stronę z zabawnymi obrazkami. Ale w międzyczasie link został opublikowany na osi czasu użytkowników Facebooka. Było to możliwe, ponieważ komponent przeglądarki internetowej w aplikacji Facebook na Androida nie jest kompatybilny z nagłówkami opcji ramek (poniżej wyjaśniamy, czym one są), a zatem umożliwia złośliwe nakładanie ramek.

Facebook nie uznaje tego problemu za błąd, ponieważ nie ma on wpływu na integralność kont użytkowników. Nie ma więc pewności, czy kiedykolwiek zostanie naprawiony.

Clickjacking w mniejszych sieciach społecznościowych

To nie tylko Twitter i Facebook. Inne mniej popularne sieci społecznościowe i platformy blogowe również mają luki, które umożliwiają przechwytywanie kliknięć. Na przykład LinkedIn miał lukę, która otwierała drzwi atakującym do nakłaniania użytkowników do udostępniania i publikowania linków w ich imieniu, ale bez ich zgody. Zanim została naprawiona, luka umożliwiała atakującym ładowanie strony LinkedIn ShareArticle w ukrytej ramce i nakładanie tej ramki na strony z pozornie niewinnymi i atrakcyjnymi linkami lub przyciskami.

Innym przypadkiem jest Tumblr, publiczna platforma blogowa. Ta strona używa kodu JavaScript, aby zapobiec przechwytywaniu kliknięć. Ale ta metoda ochrony staje się nieskuteczna, ponieważ strony można odizolować w ramce HTML5, która uniemożliwia im uruchomienie kodu JavaScript. Do kradzieży haseł można wykorzystać starannie opracowaną technikę, łącząc wspomnianą lukę z wtyczką do przeglądarki wspomagającą hasła: nakłaniając użytkowników do wpisania fałszywego tekstu captcha, mogą nieumyślnie wysłać swoje hasła do strony atakującego.

Fałszowanie żądań między witrynami

Jeden z wariantów ataku typu clickjacking nazywa się fałszowaniem żądań między witrynami lub w skrócie CSRF. Za pomocą socjotechniki cyberprzestępcy kierują ataki CSRF na użytkowników końcowych, zmuszając ich do wykonywania niepożądanych działań. Wektorem ataku może być link wysłany za pośrednictwem poczty elektronicznej lub czatu.

Ataki CSRF nie mają na celu kradzieży danych użytkownika, ponieważ atakujący nie widzi odpowiedzi na fałszywe żądanie. Zamiast tego ataki są ukierunkowane na żądania zmiany stanu, takie jak zmiana hasła lub transfer środków. Jeśli ofiara ma uprawnienia administratora, atak może zagrozić całej aplikacji internetowej.

Atak CSRF może być przechowywany na wrażliwych stronach internetowych, w szczególności na stronach internetowych z tak zwanymi „przechowywanymi wadami CSRF”. Można to osiągnąć, wprowadzając znaczniki IMG lub IFRAME w polach wejściowych, które są później wyświetlane na stronie, takiej jak komentarze lub strona wyników wyszukiwania.

Zapobieganie atakom ramkowym

Nowoczesne przeglądarki mogą wiedzieć, czy dany zasób może się ładować w ramce, czy nie. Mogą również zdecydować się na załadowanie zasobu w ramce tylko wtedy, gdy żądanie pochodzi z tej samej witryny, w której znajduje się użytkownik. W ten sposób użytkownicy nie mogą zostać nakłonieni do kliknięcia niewidocznych ramek z treścią z innych witryn, a ich kliknięcia nie zostaną przejęte.

Techniki łagodzenia skutków po stronie klienta nazywane są pomijaniem ramek lub zabijaniem ramek. Chociaż mogą być skuteczne w niektórych przypadkach, można je również łatwo ominąć. Dlatego metody po stronie klienta nie są uważane za najlepsze praktyki. Zamiast pomijania ramek eksperci ds. bezpieczeństwa zalecają metody po stronie serwera, takie jak X-Frame-Options (XFO) lub nowsze, takie jak Content Security Policy.

X-Frame-Options to nagłówek odpowiedzi, który serwery WWW umieszczają na stronach internetowych, aby wskazać, czy przeglądarka może wyświetlać zawartość w ramce.

Nagłówek X-Frame-Option dopuszcza trzy wartości.

  • DENY, która zabrania wyświetlania strony w ramce
  • SAMEORIGIN, który umożliwia wyświetlanie strony w ramce, o ile pozostaje ona w tej samej domenie
  • ALLOW-FROM URI, który umożliwia wyświetlanie strony w ramce, ale tylko w określonym URI (Uniform Resource Identifier), np. tylko w obrębie konkretnej, konkretnej strony internetowej.

Nowsze metody anty-clickjackingu obejmują Content Security Policy (CSP) z dyrektywą frame-ancestors. Ta opcja jest szeroko stosowana w zastępstwie XFO. Jedną z głównych zalet CSP w porównaniu z XFO jest to, że pozwala serwerowi WWW na autoryzację wielu domen w celu umieszczenia jego treści w ramkach. Jednak nie jest jeszcze obsługiwany przez wszystkie przeglądarki.

Dyrektywa CSP frame-ancestors dopuszcza trzy rodzaje wartości: „none”, aby zapobiec wyświetlaniu treści przez dowolną domenę; „self”, aby zezwolić tylko bieżącej witrynie na wyświetlanie treści w ramce lub listy adresów URL z symbolami wieloznacznymi, takimi jak „*.jakaś witryna.com”, „https://www.example.com/index.html,’ itp., aby zezwolić na umieszczanie w ramkach tylko na dowolnej stronie, która pasuje do elementu z listy.

Jak chronić się przed clickjackingiem

Wygodnie jest pozostać zalogowanym w sieci społecznościowej podczas przeglądania, ale jeśli to zrobisz, musisz zachować ostrożność podczas klikania. Powinieneś również zwracać uwagę na odwiedzane strony, ponieważ nie wszystkie z nich podejmują niezbędne środki zapobiegające przechwytywaniu kliknięć. Jeśli nie masz pewności co do odwiedzanej witryny, nie powinieneś klikać żadnego podejrzanego kliknięcia, bez względu na to, jak kuszące może być.

Kolejną rzeczą, na którą należy zwrócić uwagę, jest wersja przeglądarki. Nawet jeśli witryna korzysta ze wszystkich nagłówków zapobiegających przechwytywaniu kliknięć, o których wspominaliśmy wcześniej, nie wszystkie przeglądarki obsługują je wszystkie, więc upewnij się, że korzystasz z najnowszej dostępnej wersji, która obsługuje funkcje zapobiegające przechwytywaniu kliknięć.

Zdrowy rozsądek jest skutecznym środkiem samoobrony przed clickjackingiem. Kiedy zobaczysz nietypową treść, w tym łącze zamieszczone przez znajomego w dowolnej sieci społecznościowej, zanim cokolwiek zrobisz, powinieneś zadać sobie pytanie, czy jest to rodzaj treści, które opublikowałby Twój znajomy. Jeśli nie, należy ostrzec znajomego, że mógł paść ofiarą clickjackingu.

Ostatnia rada: jeśli jesteś influencerem lub po prostu masz naprawdę dużą liczbę obserwujących lub znajomych na dowolnym portalu społecznościowym, powinieneś podwoić środki ostrożności i praktykować odpowiedzialne zachowanie w Internecie. Ponieważ jeśli staniesz się ofiarą clickjackingu, atak dotknie wiele osób.