XSS-aanvallen zijn bijzonder sluw. En vooral populair bij hackers. We laten zien hoe je zich kunt beschermen tegen het kapen van jouw site - als websitebeheerder en als gebruiker.
1599 WordPress -Plugins werden over een periode van 14 maanden geanalyseerd door de beveiligingsprovider Wordfence , en de meest voorkomende kwetsbaarheden van allemaal waren zogenaamde XSS-kwetsbaarheden. Bijna 47 procent van de gevonden leemten had te maken met cross-site scripting - afgekort XSS. Reden genoeg om dit type aanval, waarbij hackers kwaadaardige code in uw site injecteren en deze virtueel kapen, eens nader te bekijken. Op die manier gebruiken de aanvallers uw blog, uw winkel of uw bedrijfswebsite als vehikel voor hun illegale activiteiten.
XSS-kwetsbaarheden zijn altijd gevaarlijk wanneer gebruikersinvoer naar de webserver wordt doorgestuurd zonder te worden gecontroleerd, bijvoorbeeld in contactformulieren of commentaarvelden. Eenmaal uitgebuit, kunnen de hackers gegevens stelen, uw site in een botnet integreren of de computers van uw bezoekers infecteren. Gelukkig zijn er enkele zeer eenvoudige beschermingsmaatregelen tegen XSS-aanvallen.
XSS is even relevant voor bezoekers als voor websitebeheerders
Het is belangrijk om te begrijpen dat de kwetsbaarheden van XSS op pagina'WordPress s even relevant zijn voor de beheerders van de pagina's als voor de bezoekers. Websitebeheerders worden uitgebuit om de lage doelen van hackers te bereiken en bezoekers van sites zijn vaak het slachtoffer, bijvoorbeeld door het stelen van gegevens of het verspreiden van kwaadaardige code.
In principe beginnen XSS-aanvallen wanneer gebruikers gegevens naar de webserver van de websitebeheerder sturen. Op deze neuralgische punten wordt code geïnjecteerd, die – indien de invoer van de gebruiker niet kritisch wordt gecontroleerd, bijv. door een firewall – de pagina kan infecteren. De verschillende soorten XSS-aanvallen worden samengevat in ons achtergrondartikel over dit onderwerp.
Het belangrijkste: regelmatige WordPress updates
De kwetsbaarheden die hackers gebruiken om kwaadaardige code te injecteren bevinden zich ofwel in de WordPress core, in Plugins of in Themes. Dit is precies waarom regelmatige updates van al deze onderdelen zo belangrijk zijn. De kwetsbaarheden die tot nu toe zijn gevonden, zijn in deze updates verholpen.
Het is ook zinvol regelmatig de updategegevens van de respectieve fabrikanten te lezen om een gevoel te krijgen voor welke veiligheidslekken regelmatig via de updates worden gedicht. Voor de onderhouds- en beveiligingsupdates van de WordPress core, wordt deze informatie bijvoorbeeld gedocumenteerd in de WordPress blog. Het beste voorbeeld hiervan is de laatste beveiligingsupdate, WordPress 4.7.5.
Firewalls en whitelists tegen eenvoudige XSS-aanvallen
Een andere eenvoudige beschermingsmaatregel tegen XSS-aanvallen zijn zogenaamde web application firewalls, of WAF. Deze firewalls vormen het hart van grote beveiligingsprojectenPlugins en worden door het onderzoeksteam van de fabrikant gevoed met de meest recente kwetsbaarheden. Een WAF is in het algemeen een procedure die webtoepassingen beschermt tegen aanvallen via het Hypertext Transfer Protocol (HTTP).
Maar zelfs deze beschermingsmechanismen hebben hun grenzen. Bij sommige XSS aanvallen vindt de aanval plaats via de database. Daarom is het controleren van gebruikersinvoer op kwaadaardige code een van de centrale beveiligingsmechanismen in de strijd tegen XSS aanvallen. De inhoud van commentaren wordt bijvoorbeeld gescand op verdachte tekenreeksen en zo nodig uitgesorteerd.
De gegevensuitvoer moet ook worden beveiligd
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:
Programmeervaardigheden zijn vereist om dit uit te voeren. Deze bescherming van de gegevensuitvoer kan gemakkelijk worden geïmplementeerd door bijvoorbeeld een ontwikkelaar of CTO.
Een gezonde dosis scepsis: hoe gebruikers zichzelf beschermen
Maar niet alleen beheerders van pagina's, ook bezoekers van pagina's worden getroffen door XSS-aanvallen. Veel XSS-aanvallen kunnen al worden voorkomen door kritisch en zorgvuldig om te gaan met "vreemde" links. Gebruikers hebben bijvoorbeeld de mogelijkheid om NoScript add-ons tegebruiken. Deze voorkomen de uitvoering van scripts, d.w.z. de schadelijke coderegels die bijvoorbeeld gegevens stelen.
Als u het zekere voor het onzekere wilt nemen, kunt u ook client-side cross-site scripting voorkomen door de JavaScript-ondersteuning in de browser uit te schakelen. Want als deze zogenaamde actief scripting is gedeactiveerd, maken bepaalde soorten XSS-aanvallen geen kans meer, aangezien de kwaadaardige toepassingen niet eens worden opgestart. De meeste moderne websites "werken" dan echter niet meer naar behoren - of in het ergste geval, helemaal niet meer. Hier moet dus een afweging worden gemaakt tussen de veiligheids- en de bruikbaarheidsaspecten.

Conclusie: XSS-aanvallen zijn soms erg complex, maar bescherming is soms vrij eenvoudig.
XSS is een gevaar voor u als websitebeheerder, maar ook voor uw bezoekers en klanten. Telkens weer worden kwetsbaarheden in Plugins of Themes bekend. Bijvoorbeeld de Plugin WP Statistieken, met meer dan 400.000 actieve installaties, of WooCommerce en Jetpack, elk met meer dan drie miljoen actieve installaties.
Als u uw Plugins en Themes up to date houdt en een WAF gebruikt, hebt u al een grote stap in de goede richting gezet. Als u ook whitelists gebruikt voor inkomende en uitgaande code, hebt u uw site al uitstekend beveiligd. Met name de laatste twee maatregelen zijn echter niet gemakkelijk uit te voeren zonder kennis van programmeren.
Vergeleken met de vrij primitieve Brute Force aanvallen de complexere XSS-aanvallen zijn helaas nog relatief vaak succesvol. Er zijn echter aanzienlijk minder van deze zogenaamde complexe aanvallen dan er Brute Force aanvallen zijn op WordPress pagina's.. Toch moet je het aanvallers zo moeilijk mogelijk maken. Een succesvolle hack kost niet alleen tijd en geld voor het verwijderen van de scripts, maar kan ook uw positie in zoekmachines in gevaar brengen.
Misschien heb je al ervaringen met XSS-aanvallen? Wat doe je om je tegen hen te beschermen?