Bij een XSS-aanval voeren kwaadwillenden eigen programmacode uit op een site. Dit kan gevaarlijk zijn voor de informatie die op die site bewaard wordt. Vooral bij bijvoorbeeld banken kan dit problematisch zijn. Daar wordt immers veel privacygevoelige informatie gebruikt, zoals bank- en inloggegevens maar ook persoonlijke informatie.

'Gaatje is geen groot gevaar'

Webwereld plaatste vorig jaar een interview met Eddy Willems, beveiligingsexpert bij virusbestrijder Kaspersky, waarin hij beweert dat de meeste XSS-lekken vaak ongevaarlijk zijn. Willems zegt: “De ernst van een lek wordt soms uit zijn verband gerukt”. Dat het uitvoeren van een xss-aanval mogelijk is, wil volgens hem nog niet zeggen dat er sprake is van een heel groot gevaar. “Dat is compleet misplaatst.”

Volgens Willems toont het wel aan dat er “een gaatje” is. “Maar dat gaatje is niet altijd de doorgang tot de grote database of tot het misbruiken van bepaalde gegevens die op de site staan. Soms denk ik: och arm, jongens, waar maken we ons hier eigenlijk druk over?”

Onderschatting!

Hoezo onderschatting van het probleem! Sinds januari 2010 hebben wij op zo’n 100 websites XSS-injecties gevonden. De reactie van Willems vinden wij dan ook onzinnig. Vooral de laatste zin vinden wij zeer naïef: "het doel van een XSS-injectie is tenslotte het misleiden van een gebruiker". Een simpel voorbeeld:

Bedrijf Water heeft een website. Binnen de website zit een administratiepaneel, waarin medewerkers van het bedrijf orders kunnen plaatsen. Deze zit in een afgesloten gedeelte, om hierop te komen moet iemand zijn ingelogd. Op de website van het bedrijf staat ook informatie voor klanten/bezoekers. Om het bezoekers makkelijk te maken, heeft het bedrijf ervoor gekozen om een zoekmachine in te bouwen, zodat bezoekers snel iets kunnen opzoeken.

Via-via

Binnen deze zoekmachine zit de mogelijkheid tot een XSS-injectie. Hacker Phate heeft de mogelijkheid tot deze XSS-injectie gevonden en heeft een e-mailadres te pakken van een van de medewerkers van het bedrijf. Hij stuurt de medewerker een mail met daarin een URL, en de vraag of de medewerker hier even naar kan kijken. Omdat de URL precies eruit ziet als het eigen bedrijfsdomein, klikt de medewerker er op. Er wordt gevraagd om in te loggen. De medewerker kijkt naar de URL en ziet het eigen domein erin staan. De medewerker vertrouwt dit, en logt in met haar gegevens.

De hacker krijgt 5 seconden later een e-mail, met daarin de zojuist ingevulde gegevens. De medewerker krijgt de melding dat het inloggen is mislukt, en of hij nog een keer wil inloggen. De medewerker wordt doorgestuurd naar het eigenlijke systeem, logt in, en vergeet het hele voorval. De hacker kan nu echter ook inloggen, en downloadt alle klantgegevens van het bedrijf. Vervolgens chanteert hij het bedrijf voor een paar ton, om te voorkomen dat de gegevens worden verkocht op de zwarte markt.

Waarde van de informatie

In de praktijk komt bovenstaande situatie niet dagelijks voor. Toch kan het voorkomen, al dan niet in kleinere vorm. Ieder lek is potentieel gevaarlijk, indien er waardevolle informatie te halen is. Het effect van een XSS-lek is gekoppeld aan het doel van een website. Zo zouden vooral banken en gemeenten beter moeten opletten. Het gaat erom wat iemand wil achterhalen en wat die informatie waard is.

Laatst bleek dat 10 procent van de werknemers van het Erasmus MC (een kleine 1450 man) in een phishing-mail was getrapt. Wat als die mail dusdanig was opgezet, dat het bericht een écht domein had bevat in plaats van een fake-domein? Hoeveel procent van de werknemers zou er dan in zijn getrapt?

Verschillende webshops die zijn aangesloten bij Thuiswinkel.org hebben last van zowel XSS- als SQL-injecties. Thuiswinkel.org zegt dat de websites veilig zijn, terwijl dat dus niet zo is. Als met een simpel commando de gegevens van klanten kunnen worden bekeken, is de website toch niet veilig?

Webdevelopers: let op

Webdevelopers zouden meer aan beveiliging moeten denken, zeker als ze aan grote projecten werken. XSS-lekken ontstaan door fouten in hun scripts. Hackers sturen pas een (phishing)mail als ze alle gegevens al hebben binnengehaald, en dwingen je dan een hoge prijs te betalen op de zwarte markt.

Het is soms best moeilijk om aan te tonen wat er nu precies aan de hand is met een website. Ontdekkers van een XSS-lek moeten soms langs verschillende mensen binnen een bedrijf. Het kan dus even duren voordat er iemand van de internetafdeling is ingelicht. De mensen die op zo'n afdeling zitten, gaan 9 van de 10 keer meteen aan de slag en sturen de ontdekker een mailtje als ze het lek hebben gedicht. Maar er zijn ook genoeg bedrijven die zich aangevallen voelen, en vervolgens niets meer van zich laten horen.

XSS kan dus wel degelijk gevaarlijk zijn, zeker als het wordt genegeerd.

Chris Horeweg is php-ontwikkelaar en eigenaar van SiteSafe, dat websites analyseert en beveiligt.