Ataki XSS — co to jest i na czym polega ten rodzaj ataku na stronę internetową?
Ataki XSS (z ang. Cross Site Scripting) polegają na umieszczeniu w stronach internetowych kodu wpływającego na zmianę ich treści bądź funkcjonalności dla korzystających z nich użytkowników. Tego rodzaju ataki mogą składać się z wielu zróżnicowanych działań. W poniższym artykule dokładnie tłumaczymy, na czym w praktyce polegają ataki XSS oraz wyjaśniamy jak się przed nimi skutecznie chronić.
Co to jest atak XSS i na czym polega?
Bezpieczeństwo teleinformatyczne to kwestia, na którą powinni zwracać szczególną uwagę wszyscy właściciele stron internetowych. Coraz częściej w kontekście zagrożeń, które mogą mieć miejsce w przestrzeni internetowej, są ataki typu XSS (ang. Cross Site Scripting).
Jest to cyberatak polegający na tym, że haker umieszcza kod w formularzu internetowym bądź w adresie URL aplikacji internetowej. Są to złośliwe kody tworzone w różnych językach, np. PHP bądź JavaScript. Celem ataku XSS może być kradzież danych (loginów i haseł czy imion i nazwisk) podanych przez użytkowników danej strony internetowej bądź aplikacji. Każdy programista powinien mieć obecnie jak najszerszą wiedzę na temat tego, czym są ataki XSS oraz w jaki sposób można się przed nimi chronić.
Na czym polega atak XSS w praktyce? Najgorsze jest to, że haker “wstrzykuje” złośliwy kod do atakowanej aplikacji, a następnie wykonuje go na przeglądarce użytkownika. Użytkownik korzystając z aplikacji nie będzie spodziewał się zagrożenia, ponieważ aplikacja na pierwszy rzut oka będzie wyglądała tak, jakby działała prawidłowo. Następnie dochodzi do uruchomienia złośliwego kodu, a następnie np. przechwycenia danych wrażliwych przez hakera.
Gdzie najczęściej dochodzi do ataków XSS?
Ataki XSS najczęściej mają miejsce na witrynach internetowych, w których treści umieszczają samodzielnie użytkownicy. Mowa tutaj przede wszystkim o portalach społecznościowych, sekcjach komentarzy na portalach informacyjnych oraz o forach tematycznych.
Hakerzy nie atakują poszczególnych użytkowników w sposób bezpośredni. Wykorzystują oni luki w zabezpieczeniach poszczególnych portali odwiedzanych przez internautów. W ten sposób dana strona samoistnie przekazuje złośliwy kod JavaScript użytkownikowi, który ją odwiedził. Zainfekowana witryna jest niejako jednym z aktywnych uczestników ataku, mimo iż robi to w sposób nieświadomy. Ten fakt odróżnia ataki XSS od pozostałych typów zagrożeń cybernetycznych, dlatego uznawane są one za niezwykle groźne.
Jak przebiega atak XSS?
W jaki sposób wygląda atak XSS? Tego rodzaju ataki mają miejsce przede wszystkim na stronach, na których dostępne są komentarze i opinie umieszczane przez użytkowników. Haker w takiej sytuacji dodaje w komentarzu – zamiast zwyczajnej, standardowej treści – kod PHP lub JavaScript, który nie będzie widoczny w treści, jednak dojdzie do jego wykonania wtedy, gdy któryś z użytkowników go wyświetli.
Na niektórych stronach internetowych skrypty służące do wyświetlania komentarzy zakładają, że komentarze składają się wyłącznie z tekstu. Gdy dane umieszczane przez użytkowników są dołączane bez żadnego mechanizmu filtracji, wówczas haker ma ułatwione zadanie i może przesłać komentarz wraz z niebezpiecznym skryptem. Następnie każda osoba, która wyświetli komentarz, wykona kod JavaScript, co sprawi, że zostanie wykonana operacja zaplanowana przez hakera, np. dojdzie do przechwycenia danych osobowych użytkownika.
Jakie są konsekwencje ataku XSS?
Liczba możliwych konsekwencji ataku XSS jest bardzo duża. Najczęściej są to:
- dynamiczna modyfikacja zawartości strony internetowej,
- kradzież plików cookies, łącznie z cookies sesyjnymi – w takim przypadku haker przejmuje kontrolę nad zalogowaną sesją danego użytkownika – wówczas może on wykorzystać je np. do przejęcia kontroli nad profilem bądź kradzieży poufnych informacji,
- włączenie keyloggera w przeglądarce – polega to na zarejestrowaniu detektora zdarzeń klawiatury przy użyciu metody addEventListener; później wszystkie naciśnięcia może on przesłać na swój własny serwer i w ten sposób wykraść loginy i hasła użytkownika,
- wyłudzenie informacji – haker poprzez atak XSS może umieścić na stronie fałszywy formularz logowania wykorzystując do tego celu manipulacje DOM, a następnie zachęcić użytkownika do przesłania poufnych informacji.
Jakie są metody ochrony przed atakami XSS?
Czy atak XSS można uznać za idealny? Na szczęście, istnieją sprawdzone sposoby, dzięki którym można się przed tego rodzaju atakami chronić. Metody ochrony przed atakami XSS są następujące:
- Stosowanie kodowania, które będzie traktować wszelkiego rodzaju wprowadzane treści przez użytkowników jak tekst, a nie kod. Programista korzystający z PHP powinien użyć do tego celu funkcji htmlspecialchars().
- Rezygnacja z walidacji i filtracji po stronie przeglądarki i używanie walidacji po stronie serwera. Trzeba pamiętać, że walidacja po stronie użytkownika nie zapewnia ochrony dla aplikacji przed niepoprawnymi danymi. Walidacja po stronie serwera charakteryzuje się tym, że filtruje dane wpisywane przez użytkowników oraz może je odrzucić wtedy, gdy nie spełniają określonych wytycznych.
- Filtrowanie i walidacja danych wejściowych. Od walidacji danych wyjściowych zdecydowanie ważniejsza jest walidacja danych wejściowych. Wynika to z tego, że są one wprowadzane rzadziej, a walidacja nie będzie wówczas wpływała na zużycie zasobów danego serwera. Jednocześnie strona bądź aplikacja będzie wolna od złośliwego oprogramowania, które mogłoby zostać wprowadzone poprzez atak XSS.
Porozmawiajmy!
a my pomożemy Ci wdrożyć najnowsze rozwiązania!