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

Tobias Schüring Ostatnia aktualizacja 23.01.2020
5 Min.
W ten sposób operatorzy stron internetowych i użytkownicy mogą chronić się przed atakami typu cross-site scripting.
Ostatnia aktualizacja 23.01.2020

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.

1599 WordPress -Plugins zostało przeanalizowanych przez dostawcę zabezpieczeń Wordfence w ciągu 14 miesięcy, a najczęściej występującymi podatnościami były tzw. podatności XSS. Prawie 47 procent znalezionych luk dotyczyło cross-site scripting - w skrócie XSS. To wystarczający powód, aby przyjrzeć się bliżej temu rodzajowi ataku, w którym hakerzy wstrzykują złośliwy kod na Twoją stronę i praktycznie ją porywają. W ten sposób atakujący wykorzystują Twój blog, sklep lub stronę firmową jako narzędzie do swoich nielegalnych działań.

Ten wykres pokazuje, że XSS jest najczęstszą luką znalezioną w Plugins , według wordfence .
XSS to najczęściej spotykana luka w Plugins , 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. Po ich wykorzystaniu 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 na WordPress stronach są równie istotne dla operatorów witryn jak i odwiedzających. Operatorzy witryn są wykorzystywani do realizacji niskopoziomowych celów hakerów, a odwiedzający witrynę są często ich ofiarami, na przykład poprzez kradzież danych lub rozprzestrzenianie 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.

Najważniejsze: regularne aktualizacje WordPress

Luki, które hakerzy wykorzystują do wstrzykiwania złośliwego kodu, znajdują się albo w rdzeniu WordPress , albo w Plugins , albo w Themes. Właśnie dlatego tak ważne są regularne aktualizacje wszystkich tych komponentów. Dotychczas wykryte luki 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 bezpieczeństwa rdzenia WordPress , informacje te są udokumentowane na przykład 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 aplikacji internetowych (ang. web application firewall, WAF). Te firewalle są sercem dużych zabezpieczeńPlugins i są zasilane najnowszymi podatnościami 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 ograniczenia. 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 potrzebny do przeprowadzenia sanityzacji kodu.

Do realizacji tego zadania wymagane 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 już zapobiec dzięki krytycznemu i ostrożnemu postępowaniu z "obcymi" linkami. 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ż złośliwe aplikacje nie są nawet uruchamiane. Jednak większość nowoczesnych stron internetowych przestaje wtedy "działać" prawidłowo - lub w najgorszym przypadku nie działa w ogóle. W tym przypadku konieczne jest zatem rozważenie aspektów bezpieczeństwa i użyteczności.

Jak wyłączyć JavaScript jednym kliknięciem w ustawieniach przeglądarki Chrome.
Jak wyłączyć 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 jest zagrożeniem zarówno dla Ciebie jako operatora strony, jak i dla Twoich gości i klientów. Raz po raz ujawniane są luki w Plugins lub Themes . Na przykład Plugin WP Statistics, z ponad 400.000 aktywnych instalacji, lub WooCommerce i Jetpack, każdy z ponad trzema milionami aktywnych instalacji.

Jeśli aktualizujesz swoje strony Plugins i Themes 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 atakamiBrute Force bardziej złożone ataki XSS niestety wciąż stosunkowo często kończą się sukcesem. Jednak tych tzw. złożonych ataków jest znacznie mniej niż WordPress ataków na stronyBrute Force .. 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ć?

Jako administrator systemu Tobiasz czuwa nad naszą infrastrukturą i znajduje każdą śrubkę, aby zoptymalizować wydajność naszych serwerów. Dzięki jego niestrudzonym wysiłkom, często można go spotkać w nocy na stronie Slack .

Powiązane artykuły

Komentarze do tego artykułu

Napisz komentarz

Twój adres e-mail nie zostanie opublikowany. Pola obowiązkowe oznaczone są *.