32 220 35 21 biuro@omegasoft.pl


Co wiesz o ataku XSS? To jeden z najczęstszych, a zarazem najprostszych ataków na serwisy www. Opiera się na lukach w zabezpieczeniu stron, które umożliwiają cyberprzestępcom umieszczenie na zaufanej stronie lub aplikacji szkodliwego skryptu. Skrypt ten powoduje zainstalowanie złośliwego programu w przeglądarkach użytkowników.

Cross-Site Scripting jest więc doskonałą techniką do przesyłania złośliwego oprogramowania dużej grupie osób. Może dotyczyć każdego, dlatego warto mieć świadomość zagrożenia i wiedzieć, jak się przed nim bronić.

Czym jest Cross-Site Scripting?

Cross-site scripting (XSS) to cyberatak, polegający na wprowadzeniu złośliwego kodu do formularza internetowego lub adresu URL aplikacji internetowej. Schemat ataku wykorzystuje istotny aspekt współczesnego internetu – fakt, że większość witryn jest tworzona w locie w czasie ich ładowania. Czasami atak odbywa się poprzez wykonywanie kodu w samej przeglądarce, co utrudnia zapobieganie atakom XSS.

Złośliwy kod, który zostaje wprowadzony podczas ataku XSS, może zrobić wszystko – np. zmienić treść strony, którą próbujesz załadować, ale też wykraść Twoje hasła, loginy lub inne ważne dane, które wpisujesz na danej witrynie. Ataki XSS mogą więc przyjmować różną postać, jednak zwykle koncentrują się na gromadzeniu prywatnych danych, przekierowywaniu na złośliwe strony kontrolowane przez hakerów lub zmuszaniu urządzeń ofiar do wykonywania zadań zleconych przez cyberprzestępców.

Kod używany do przeprowadzania ataku Cross-site scripting (XSS) to zazwyczaj JavaScript. Dość często używa się również języka HTML. Inne języki używane do ataków XSS to m.in. VBScript i Flash, są one jednak dużo żadziej używane. Odpowiednio przygotowany skrypt umieszczony w zaatakowanej stronie może obejść niektóre mechanizmy kontroli dostępu do danych użytkownika.

Do ataków Cross-site scripting dochodzi poprzez luki XSS, czyli miejsca, w których dane wpisywane przez użytkowników są traktowane z nadmierną wiarą w ich poprawność. Niestety, certyfikat SSL nie daje w tym przypadku ochrony. Luki XSS mogą doprowadzić do wielu groźnych sytuacji, m.in. wykradania haseł, podmieniania danych wprowadzanych przez użytkowników w formularzach, blokowania korzystania ze strony, kasowania danych w aplikacji lub wykonania innego złośliwego kodu.

Gdzie dochodzi do ataków Cross-Site Scripting (XSS)?

Do ataków XSS dochodzi najczęściej na portalach, których treść generują ich użytkownicy – np. na forach, w portalach społecznościowych, w sekcji komentarzy itp.

Warto tu zauważyć, że cyberprzestępca, wykorzystując różne techniki XSS, nie atakuje bezpośrednio swojej ofiary, ale korzysta z luki w zabezpieczeniach odwiedzanej przez nią strony. Zaatakowana strona sama dostarcza złośliwy kod JavaScrpt i działa w tym momencie jako niezamierzony “wspólnik” atakującego. Ten fakt odróżnia ataki XSS od innych ataków, w których w żaden sposób nie dochodzi do zaangażowania stron internetowych.

Z punktu widzenia użytkownika, złośliwy kod JavaScript to normalna część strony internetowej, którą w tym momencie odwiedza. Z tego względu rozpoznanie ataku nie jest łatwe i może prowadzić do utraty poufnych danych użytkowników.

Przebieg ataku XSS

Atak XSS może być wykonany na różne sposoby. W zależności od rodzaju ataku XSS złośliwy kod może np. być przechowywany w bazie danych i wykonywany za każdym razem, gdy użytkownik wywoła odpowiednią funkcję lub zostać odbity w przeglądarce ofiary.

Niezależnie od tego, jedynym sposobem, aby atakujący uruchomił swój złośliwy kod w przeglądarce ofiary, jest wstrzyknięcie go na jedną ze stron, którą odwiedzi. Najłatwiej dochodzi do tego na stronach, które prezentują jakieś dane wejściowe użytkowników – np. komentarze, opinie itp.

Co robi atakujący? Zamiast właściwej treści, która powinna pojawić się w witrynie, dodaje kod, który co prawda nie będzie widoczny w treści, ale zostanie wykonany przy wizycie na stronie.

Problem polega na tym, że wiele skryptów po stronie serwera dołącza dane użytkownika (np. komentarze) bez żadnego filtrowania. Z tego względu atakujący może przesłać na stronę dane (np. komentarz) z dodatkiem w postaci skryptu. Sprawia to, że każdy użytkownik odwiedzający stronę, który wczyta ten komentarz, wczyta również dodany przez hakera skrypt.

Złośliwy kod wstrzykiwany podczas ataku to zwykle JavaStript. Choć działa on w bardzo ograniczonym środowisku przeglądarki i nie ma dostępu do plików użytkownika i systemu operacyjnego, w dalszym ciągu może jednak powodować niebezpieczne skutki. JavaScript ma dostęp do pewnych elementów, m.in. do informacji zapisywanych w plikach cookie, wysyłania żądań HTTP. Daje też możliwość wprowadzania dowolnych manipulacji w DOM (Document Object Model), takich jak np. podmiana linków, informacji w formularzu itp.

Atak XSS stwarza więc poważne ryzyko dla witryny. Celem atakującego może być np. kradzież plików cookie – wystarczy, że haker wygeneruje w portalu z luką XSS kod JavaScript, który będzie zapisywał lub przesyłał na maila hakera dane uzyskane z plików cookie.

Atak XSS – typy

Wśród ataków XSS można wyróżnić kilka typów. Każdy z nich omówimy poniżej.

1. Reflected XSS, czyli ataki odbite

Zwane są również atakami nietrwałymi. Atak odbity ma miejsce wtedy, gdy aplikacja odbiera dane w zapytaniu HTTP i załącza je w bezpośredniej odpowiedzi do użytkownika w sposób nieprzetworzony. Jest to więc dosłowne odbicie informacji. Przykładowo, że złośliwy kod może zostać wysłany z przeglądarki ofiary do Google, a następnie odbity z powrotem w formie wykonywalnej i nigdy nie być trwale przechowywany na serwerach Google.

Ataki odbite są często wykorzystywane do oszustw phishingowych, w których szkodliwe łącza są wysyłane do ofiary za pośrednictwem maili lub SMS-ów.

2. Stored XSS, czyli ataki przechowywane

Inaczej second-order lub persistent, zwane też atakami uporczywymi. W tym typie ataku haker wykorzystuje interaktywne funkcje witryny do zapisania złośliwego kodu na serwerze WWW. Przykładowo, atakujący zostawia komentarz do wpisu na blogu, zawierający złośliwy kod JavaScript. Za każdym razem, gdy ktoś załaduje tę stronę, kod zawarty w komentarzu zostanie wykonany.

3. DOM-based XSS, czyli ataki oparte na DOM

DOM, czyli Document Object Model, to interfejs dla dokumentów HTML i XML, który zapewnia reprezentację struktury dokumentu, a także określa, w jaki sposób odnosić się do tej struktury z poziomu skryptu. Nie jest to język programowania, ale umożliwia odniesienie do stron dokumentów XML i ich elementów np. językowi JavaScript.

Ataki oparte na DOM stanowią odmianę atau odbitego i ich schemat działania jest podobny, jednak złośliwy kod nigdy nie jest tu wysyłany na serwer. Zamiast tego, jest on przekazywany jako parametr do jakiejś funkcji JavaScript (lub innego wykorzystywanego w przeglądarce języka skryptowego), wykonywanej w samej przeglądarce. Z tego względu mechanizmy obronne po stronie serwera nie są w stanie ochronić użytkownika.

Czym grozi atak XSS?

Kreatywny haker jest w stanie stworzyć wiele scenariuszy, w których wykorzysta ataki XSS do przestępczych celów. Najczęściej jednak skutki ataku XSS są następujące:

  • Kradzież plików cookie

Za pomocą ataku XSS haker może uzyskać dostęp do plików cookie użytkownika, które są powiązane z konkretną domeną internetową. Zdobyte ten sposób dane może wykorzystać np. do wydobycia poufnych informacji lub przejęcia kontroli nad profilem ofiary.

Haker może wstawić fałszywy formularz logowania na stronie za pomocą manipulacji DOM. Wystarczy, że ustawi atrybut akcji formularza na celowanie na własny serwer, a wszystkie podane przez użytkownika informacje zostaną do niego przesyłane.

  • Keylogging

Osoba atakująca może zarejestrować na stronie detektor zdarzeń klawiatury i wysłać wszystkie naciśnięcia klawiszy użytkownika na własny serwer. W ten sposób może zarejestrować różnego rodzaju poufne, cenne informacje, np. hasła, loginy, numery kart kredytowych itp.

Jak widzisz, ataki XSS nie są niewielkim problemem, a poważnym zagrożeniem stron internetowych, który może naruszyć bezpieczeństwo użytkowników. Twórcy stron internetowych powinni być bardzo czujni i brać pod uwagę możliwość takich ataków już na etapie tworzenia wczesnych wersji aplikacji czy sklepów internetowych.

Słynne ataki XSS

W historii zapisało się wiele słynnych ataków XSS. Oto wybrane z nich.

2005

Użytkownik portalu MySpace, Samy Kamkar, wstawił do swojego profilu  kod JavaScript, który powodował automatyczne dodanie do znajomych każdego, kto odwiedzi stronę, a także kopiował ten kod do profili nowych znajomych i również powodował, że “zaprzyjaźniali” się z nim. W ciągu 24 godzin Kamkar zdobył ponad milion znajomych, co zmusiło MySpace do krótkiego wyłączenia witryny.

2006

Doszło do rozpowszechnienia c fałszywej informacji o nominacji dziewięciolatka na szefa departamentu bezpieczeństwa informatycznego w USA za pomocą ataków non-persistent XSS, wykorzystujących luki w stronach internetowych magazynów CBS News i BBC.

2008

Na skutek luki XSS umożliwiającej podmianę fragmentu strony logowania doszło do przygotowania trudnego do wykrycia phishingu w internetowym serwisie włoskiego banku Banca Fideuram. W jego następstwie użytkownicy mogli nieświadomie przekazać swoje dane autoryzacyjne atakującym.

2018

Grupa hakerów Magecart zaatakowała British Airways  za pomocą ataku XSS, wykradając setki tysięcy tożsamości użytkowników.

2019

Doszło do kradzieży V-Bucks graczom Fortnite za pomocą ataku XSS.

2021

Odkryto luki w zabezpieczeniach XSS w platformie poczty elektronicznej Zimbra, WordPress i otwartoźródłowej platformie zarządzania IT Nagios

Jak zapobiegać atakom XSS? Metody ochrony

Użytkownicy mają ograniczoną możliwość obrony przed atakami XSS, ponieważ odpowiedzialność za wykrywanie i usuwanie luk umożliwiających instalację tego typu skryptów leży po stronie właścicieli stron. To właśnie u nich znajdują się złośliwe kody, infekujące nieświadomych użytkowników.

Niestety, unikanie podejrzanych stron na niewiele się tu zda – ataki XSS dotyczą zarówno podejrzanych, jak i zaufanych stron. Nie oznacza to, że jesteś bezsilny – możesz skorzystać z narzędzi, które  umożliwiają skanowanie stron pod kątem luk XSS.

Aby zabezpieczyć się przed atakami XSS, zainstaluj na komputerze sprawdzone oprogramowanie antywirusowe od zaufanego producenta, np. Norton, Bitdefender, Panda, ESET, McAfee lub AVG. Pamiętaj, aby włączyć funkcję automatycznej aktualizacji oprogramowania – tylko wtedy Twój antywirus poradzi sobie nawet z najnowszymi zagrożeniami. Zwróć również uwagę, aby wybrany przez Ciebie program posiadał funkcję szukania luk w kodzie strony internetowej.