Atak XSS – przykłady. Na czym polega? | Biznes Netia
Menu główne

Atak XSS – przykłady. Jak chronić przed nim firmę?

24 lipca 2024, Autor: Tomasz Łużak, Product Manager, Cybersecurity - Netia S.A.

Atak XSS (cross-site scripting) to jedno z zagrożeń zajmujących wysokie miejsce w zestawieniu OWASP Top Ten, czyli na liście najistotniejszych ataków i podatności systemów oraz aplikacji. Cross-site scripting stanowi poważne zagrożenie dla użytkowników aplikacji webowych i jest dodatkowo trudny do wykrycia. Jednak istnieją sposoby, żeby się przed nim bronić.

Dowiedz się więcej!
lub zadzwoń
+ 48 22 35 81 550
 
 
 
   

Atak XSS – co to jest i jak go rozpoznać?

 

Atak XSS to atak typu „injection”. Nazwa tej grupy zagrożeń wzięła się od mechanizmu „wstrzykiwania” złośliwego kodu, co pozwala na zainfekowanie poszczególnych elementów systemów, sieci, baz danych czy aplikacji, nawet bez uzyskania bezpośredniego dostępu do serwerów.

 

Taka praktyka jest możliwa dzięki wykorzystaniu podatności – obecnych szczególnie w początkowych fazach rozwoju aplikacji. W praktyce aplikacje webowe nie są wyposażone w aktywne mechanizmy cyberbezpieczeństwa, dlatego warstwa aplikacyjna jest stosunkowo wrażliwa na ataki i trudna do obrony.

 

Ponadto, developerzy pracujący nad tworzeniem produktu często pomijają kwestie bezpieczeństwa, skupiając się na jak najszybszym wykonaniu funkcjonalnej aplikacji. Korzystają przy tym nierzadko z gotowych, niedoskonałych bibliotek, co nie uchodzi uwadze hakerów. Według publikacji Steve’a McConella pt. „Code Complete” na 1000 linijek kodu przypada od 15 do nawet 50 błędów, pośród których znajdują się także poważne podatności możliwe do wykorzystania podczas ataku.

 

Na ogół zbyt wolno wprowadza się także poprawki w zakresie bezpieczeństwa, skupiając się na nowych funkcjach. Jak informuje Security Report for In-Production Web Applications, 2018 (Rapid7) – średni czas wdrożenia patcha w kodzie aplikacji webowej to 38 dni (choć zdarza się, że czas ten wydłuża się nawet do roku).

 

XSS, czyli cross-site scripting, polega na wstrzyknięciu złośliwego skryptu wykonywalnego (tzw. payloads XSS) do strony internetowej/aplikacji webowej. W założeniu kod ma zostać wykonany przez przeglądarkę nieświadomego użytkownika. XSS jest więc atakiem przeprowadzanym bezpośrednio w przeglądarce internetowej i sam nie ingeruje w system lub sieć użytkownika (jednak może być wykorzystany między innymi do wprowadzenia na komputer poszkodowanego złośliwego oprogramowania). Wykorzystując luki w zabezpieczeniach, haker może przeprowadzić atak, aby zmodyfikować treść wyświetlaną użytkownikowi.

 

Do tworzenia złośliwego kodu hakerzy wykorzystują najczęściej JavaScript, z uwagi na jego powszechne użycie przy tworzeniu dzisiejszych webaplikacji. Złośliwe skrypty mogą być jednak tworzone przy użyciu innych języków, między innymi PHP, Ruby czy VBScript.

 

Wyróżniamy trzy główne rodzaje ataków XSS:

 
  • Reflected XSS – w przypadku tego ataku haker wysyła ofierze zmodyfikowany link (odnośnik może być skrócony, by wyglądał mniej podejrzanie). Klikając zainfekowany link, nieświadomy użytkownik przechodzi do aplikacji webowej, a jego przeglądarka realizuje złośliwy skrypt – na przykład wyświetla fałszywy komunikat.

  • Stored XSS – ten rodzaju ataku występuje, gdy złośliwy skrypt jest przechowywany w wyświetlanej treści witryny. Wówczas przeglądarka każdego użytkownika, który odwiedza daną podstronę, może wykonać złośliwy kod. Na tego typu ataki XSS podatne są między innymi fora internetowe, agregatory opinii, blogi, sklepy internetowe, pozwalające na zostawianie komentarzy, i inne aplikacje, z którymi użytkownik może wejść w tekstową interakcję. Stored XSS to prawdopodobnie najczęściej wykorzystywany rodzaj tego ataku.

  • DOM-based XSS występuje, gdy kod JavaScript pobiera informacje ze źródła pochodzącego od atakującego (najczęściej z adresu URL), a następnie dynamicznie wykonuje ten kod. Oszust może doprowadzić wówczas do przejęcia kontroli nad kontem użytkownika lub do innych planowanych akcji. Do przeprowadzenia takiego ataku potrzebne jest wysłanie odpowiednio zmodyfikowanego odnośnika, dlatego ten scenariusz jest podobny do pierwszego z wymienionych typów XSS, czyli Reflected XSS.
 

W kontekście rozpoznawania ataku XSS – jako użytkownicy powinniśmy zwracać uwagę przede wszystkim na niespotykane do tej pory zachowania aplikacji webowych, np. wyświetlanie podejrzanych komunikatów, przekierowywanie do innych witryn, zmiany w adresie URL czy wyświetlanie komunikatów o błędach przeglądarki i alertów bezpieczeństwa.

 

Przykłady ataków XSS

 

Jednym z najbardziej znanych przykładów zastosowania ataku XSS był przypadek Sammy’ego Kamkara, specjalisty ds. cyberbezpieczeństwa i badacza, który w 2005 roku umieścił w swoim profilu MySpace robaka o nazwie Samy. Robak sprawiał, że osoby oglądające jego profil automatycznie wysyłały mu zaproszenie do znajomych, a na ich ekranie pojawiał się komunikat: but most of all, samy is my hero. Następnie robak był replikowany na profile kolejnych osób. W ciągu kilku godzin niegroźny robak zainfekował ponad milion profili, a działalność serwisu została sparaliżowana. MySpace przestał działać na kilka godzin do czasu uporania się z problemem.

 

W 2018 roku ofiarą ataku XSS padły linie lotnicze British Airways. Wykorzystano lukę w bibliotece JavaScript, co pozwoliło oszustom przekierowywać klientów, którzy chcieli dokonać płatności, na serwer znajdujący się pod domeną, o nazwie podobnej do aplikacji tej linii lotniczej. Zanim specjaliści spółki wykryli zagrożenie, hakerzy przeprowadzili skimming danych kart płatniczych w przypadku 380 tys. transakcji.

 

Zagrożenia związane z atakiem XSS

 

Zgodnie z „2022 Data Breach Investigations Report”, ataki na aplikacje to aż 26% wszystkich notowanych naruszeń. Są więc drugim najpopularniejszym zagrożeniem cybernetycznym, z którym musimy się liczyć. Złośliwy skrypt hakerzy mogą „przemycić” na przykład w specjalnie zmodyfikowanym linku, który będzie rozsyłany za pomocą wiadomości SPAM. Po jego kliknięciu użytkownik przeniesie się na znaną sobie stronę (np. stronę swojego banku), a wykonany skrypt zawarty w linku może pozwolić oszustom na przejęcie sesyjnych plików cookies (a więc także dostępu do konta), podmianę numeru konta, na który użytkownik zamierza wykonać płatność, kradzież danych karty płatniczej lub inną czynność, która na pierwszy rzut oka może nie wzbudzać podejrzeń.

 

Atak XSS może także służyć do wyświetlania fałszywych komunikatów w aplikacji przeglądarkowej (np. o zablokowaniu konta), co może skłonić użytkownika do wykonania zaplanowanych przez oszustów czynności lub przekierować go do innej, tym razem złośliwej witryny.

 

Możliwość modyfikowania wyświetlanej zawartości strony daje hakerom niesamowicie duże pole do nieetycznych działań. Za aplikacją webową stoi zazwyczaj serwer bazodanowy, który w większości przypadków jest głównym celem ataku. Dostęp do niego daje niemal nieograniczone możliwości w wykorzystaniu wrażliwych informacji. Odporność na ataki XSS to podstawa bezpiecznej aplikacji web.

 

Jak chronić się przed atakiem XSS?

 

Choć w teorii ataki XSS zagrażają użytkownikowi aplikacji, a nie firmie, która jest jej właścicielem, podatność na tego rodzaju zagrożenia i ewentualne straty klientów obciążą dobre imię firmy i z pewnością wpłyną na jej wyniki finansowe. W obowiązku właściciela aplikacji leży więc zapewnienie bezpiecznego środowiska, niezależnie od charakteru witryny.

 

Warto też prowadzić działalność edukacyjną na temat bezpiecznego korzystania z sieci (np. za pomocą szkoleń i webinarów z dziedziny security awareness) – zarówno wśród pracowników, jak i użytkowników swojej aplikacji.

 

Polecane jest również zastosowanie dedykowanych rozwiązań bezpieczeństwa dla warstwy siódmej – aplikacyjnej. Poprawnie skonfigurowany firewall typu WAF (ang. Web Application Firewall) to w zasadzie konieczność w przypadku każdej firmy posiadającej aplikacje webowe dla użytkowników zewnętrznych. Oprócz ataków XSS, WAF poprawia także odporność na inne ataki injection (w tym SQL injection), CSRF, DDoS i botnet. Dzięki uczeniu maszynowemu Web Application Firewall automatycznie aktualizuje zestawy reguł, na podstawie których filtruje ruch i blokuje podejrzane pakiety danych.

 

Świetnym uzupełnieniem WAF będą dedykowane narzędzia ochrony poczty elektronicznejdostępne również w Netii (bowiem nawet 90% ataków jest realizowanych przy użyciu poczty e-mail), a także testy podatności oraz testy penetracyjne wraz z audytem kodu źródłowego. Tego rodzaju środki zapobiegawcze pozwalają wykryć poważne podatności i luki bezpieczeństwa aplikacji zanim zrobią to skanujące sieć boty.

 

Netia oferuje także 24-godzinną pomoc zespołu Security Operations Center. Całodobowy proaktywny monitoring sieci, reagowanie na incydenty i gwarantowana skuteczność (regulowana umową SLA), a to wszystko podane w formie wygodnego outsourcingu. Skontaktuj się z naszymi specjalistami i ustal zakres działania, który będzie najwłaściwszy dla Twojej firmy!

 

Formularz kontaktowy

Zostaw swoje dane kontaktowe, a nasz przedstawiciel handlowy
wkrótce skontaktuje się z Tobą

Formularz kontaktowy

Zostaw swoje dane kontaktowe, a nasz przedstawiciel handlowy
wkrótce skontaktuje się z Tobą

Inne formy kontaktu

  • alt1

    Infolinia dla nowych klientów
    (Codziennie 8:00 - 18:00)
    +48 22 35 81 550

  • alt2

    Obsługa klienta i wsparcie techniczne
    (Dostępne 24/7)
    801 801 999
    biznes@netia.pl

  • alt3

    Adres korespondencyjny Netia S.A.
    skr. pocztowa nr 597
    40-950 Katowice S105

Polecane treści:

Wybierz swój język ×