W ten sposób operatorzy stron internetowych i użytkownicy mogą chronić się przed atakami typu cross-site scripting.

Ataki XSS: Jak chronić siebie, swoich klientów i swój biznes?

Ataki XSS są szczególnie podstępne. I szczególnie popularne wśród hakerów. Pokazujemy, jak możesz zabezpieczyć się przed włamaniem na swoją stronę - jako operator witryny i jako użytkownik.

Dostawca zabezpieczeń Wordfence przeanalizował 1599 wtyczek do WordPressa w ciągu 14 miesięcy i okazało się, że najczęściej występującymi lukami były tzw. luki XSS. Prawie 47 procent znalezionych luk dotyczyło skryptów krzyżowych (cross-site scripting, w skrócie XSS). Jest to wystarczający powód, aby przyjrzeć się bliżej temu rodzajowi ataku, w którym hakerzy wstrzykują złośliwy kod do witryny użytkownika i praktycznie ją przejmują. W ten sposób napastnicy wykorzystują blog, sklep lub witrynę firmową jako narzędzie do prowadzenia nielegalnych działań.

Ten wykres pokazuje, że XSS jest najczęstszym błędem wykrywanym we wtyczkach, według wordfence.
XSS to najczęściej wykrywana luka w wtyczkach, według wordfence .

Luki XSS są zawsze niebezpieczne, gdy dane wejściowe użytkownika są przekazywane do serwera WWW bez ich sprawdzenia, na przykład w formularzach kontaktowych lub polach komentarzy. Kiedy już się to uda, hakerzy mogą wykraść dane, włączyć Twoją stronę do botnetu lub zainfekować komputery odwiedzających. Na szczęście istnieje kilka bardzo prostych sposobów ochrony przed atakami XSS.

XSS jest istotny zarówno dla odwiedzających, jak i operatorów stron

Ważne jest, aby zrozumieć, że luki XSS w witrynach WordPress są istotne zarówno dla operatorów witryn, jak i odwiedzających. Operatorzy witryn są wykorzystywani do realizacji bardziej podstawowych celów hakerów, a odwiedzający witrynę są często poszkodowanymi stronami, na przykład poprzez kradzież danych lub dystrybucję złośliwego kodu.

W zasadzie ataki XSS zaczynają się w momencie, gdy użytkownicy wysyłają dane do serwera operatora strony. W te punkty neuronowe wstrzykiwany jest kod, który - jeśli dane wprowadzone przez użytkownika nie są krytycznie sprawdzane, np. przez firewall - może zainfekować stronę. Różne rodzaje ataków XSS zostały podsumowane w naszym artykule na ten temat.

Co najważniejsze: Regularne aktualizacje WordPressa

Luki, które hakerzy wykorzystują do wstrzykiwania złośliwego kodu, znajdują się albo w rdzeniu WordPressa, albo we wtyczkach, albo w motywach. Właśnie dlatego tak ważne są regularne aktualizacje wszystkich tych komponentów. Ponieważ luki, które zostały znalezione do tej pory zostały naprawione w tych aktualizacjach.

Warto również regularnie czytać informacje o aktualizacjach poszczególnych producentów, aby zorientować się, które luki w zabezpieczeniach są regularnie usuwane poprzez aktualizacje. W przypadku konserwacji i aktualizacji zabezpieczeń rdzenia WordPressa, na przykład, informacje te są udokumentowane na blogu WordPress. Najlepszym tego przykładem jest najnowsza aktualizacja zabezpieczeń, WordPress 4.7.5.

Firewalle i whitelisty chroniące przed prostymi atakami XSS

Innym prostym środkiem ochrony przed atakami XSS są tzw. zapory sieciowe (ang. web application firewall, WAF). Te firewalle są sercem dużych wtyczek bezpieczeństwa i są zasilane najnowszymi lukami przez odpowiedni zespół badawczy producenta. WAF to generalnie procedura, która chroniaplikacje internetowe przed atakami za pośrednictwem protokołu HTTP (Hypertext Transfer Protocol ).

Jednak nawet te mechanizmy ochronne mają swoje granice. W przypadku niektórych ataków XSS, atak odbywa się poprzez bazę danych. Dlatego sprawdzanie danych wejściowych użytkownika pod kątem obecności złośliwego kodu jest jednym z centralnych mechanizmów bezpieczeństwa w walce z atakami XSS. Na przykład, treść komentarzy jest skanowana w poszukiwaniu podejrzanych ciągów znaków i w razie potrzeby sortowana.

Wyjście danych powinno być również zabezpieczone

Regelmäßige Updates schließen vorhandene XSS-Sicherheitslücken und Firewalls sowie Whitelists versuchen Schadcode auszufiltern, bevor dieser den Webserver erreicht und die Seite infizieren kann. Doch sollte auch die Datenausgabe entsprechend gesichert werden. Die meisten Programmier- und Skriptsprachen, wie PHP, Perl oder JavaScript, besitzen hierfür bereits vordefinierte Funktionen zur Zeichenersetzung bzw. -maskierung. Diese sorgen dafür, dass “problematische” HTML-Metazeichen (z. B. <, > und &) durch harmlose Zeichenreferenzen ersetzt werden. So wird verhindert, dass der Schadcode aktiv werden kann. Auch sollte der Code mithilfe von sog. sanitization libraries bereinigt werden. Hierfür wird ein Plugin auf dem Server installiert und zusätzlicher Code in deinen Seitenquellcode eingebunden. Der folgende Code-Schnipsel sorgt dann zum Beispiel dafür, dass <class> zu den erlaubten Attributen hinzugefügt wird:

Tak może wyglądać kod konfiguracyjny, który jest potrzebny do wykonania sanityzacji kodu.
Tak może wyglądać kod, który jest potrzebny do wykonania sanityzacji kodu.

Do wdrożenia tego rozwiązania potrzebne są umiejętności programistyczne. Taka ochrona danych wyjściowych może być łatwo wdrożona np. przez programistę lub CTO.

Zdrowa dawka sceptycyzmu: Jak chronią się użytkownicy?

Ale nie tylko operatorzy stron, również odwiedzający strony są narażeni na ataki XSS. Wielu atakom XSS można zapobiec poprzez krytyczną i ostrożną obsługę "obcych" linków. Na przykład, użytkownicy mają możliwość korzystania z dodatków NoScript .Zapobiegają one wykonywaniu skryptów, czyli szkodliwych linii kodu, które kradną np. dane.

Jeśli chcesz być po bezpiecznej stronie, możesz również zapobiec cross-site scripting po stronie klienta, po prostu wyłączając obsługę JavaScript w przeglądarce. Bo jeśli ten tzw. aktywne pisanie skryptów jest wyłączona, niektóre typy ataków XSS nie mają już szans, ponieważ szkodliwe aplikacje nie są nawet uruchamiane. Jednak większość nowoczesnych stron internetowych przestaje wtedy "funkcjonować" prawidłowo - lub w najgorszym przypadku nie funkcjonuje w ogóle. Jest to więc kwestia wyważenia aspektów bezpieczeństwa i użyteczności.

Jak dezaktywować JavaScript jednym kliknięciem w ustawieniach przeglądarki Chrome.
Jak dezaktywować JavaScript jednym kliknięciem w ustawieniach przeglądarki Chrome.

Wniosek: Ataki XSS są czasem bardzo złożone, ale ochrona przed nimi jest czasem całkiem prosta.

XSS stanowi zagrożenie zarówno dla Ciebie jako operatora witryny, jak i dla odwiedzających i klientów. Raz po raz ujawniane są luki w zabezpieczeniach wtyczek i motywów. Na przykład wtyczka WP Statistics, która ma ponad 400 000 aktywnych instalacji, lub WooCommerce i Jetpack, z których każda ma ponad trzy miliony aktywnych instalacji.

Jeśli aktualizujesz swoje wtyczki i motywy oraz używasz WAF, zrobiłeś już duży krok we właściwym kierunku. Jeśli używasz również białych list dla przychodzącego i wychodzącego kodu, masz już doskonale zabezpieczoną swoją stronę. Jednak szczególnie dwa ostatnie środki nie są łatwe do wdrożenia bez wiedzy programistycznej.

W porównaniu z dość prymitywnymi atakami typu Brute Force bardziej złożone ataki XSS niestety wciąż stosunkowo często kończą się sukcesem. Jednak tych tak zwanych ataków złożonych jest znacznie mniej niż ataków brute force na witryny WordPress.. Niemniej jednak, powinieneś utrudnić atakującym zadanie tak bardzo, jak to tylko możliwe. Udane włamanie nie tylko kosztuje czas i pieniądze na usunięcie skryptów, ale może również zagrozić Twojej pozycji w wyszukiwarkach.

Może masz już doświadczenia z atakami XSS? Co robisz, aby się przed nimi chronić?

Spodobał Ci się ten artykuł?

Zostawiając opinię pomożesz nam udoskonalać publikowane przez nas treści.

Napisz komentarz

Twój adres e-mail nie zostanie opublikowany.