Over Cross Site Request Forgery
Ik ben niet zo’n enorme beveiligingsnerd. Hackeraspiraties heb ik bijvoorbeeld nooit gehad. Daar ben ik ook bij lange na niet slim genoeg voor.
Bewust van de risico’s op internet ben ik me wel. In tegenstelling tot een (groot?) deel van de internetpopulatie verkeer ik niet in de veronderstelling dat ik een gezellige wandeling door het dorpspark van Sunnyville maak als ik online ben. Eerder voel ik me alsof in een jungle rondsluip waar ik elk moment besprongen kan worden door een onbekend en gevaarlijk dier.
Ook al ben ik dan geen security fetisjist, als je websites maakt denk je vanzelfsprekend na over de beveiligingsaspecten van je websites. Over Cross Site Scripting (XSS) had ik bijvoorbeeld al voldoende gelezen. En over geschreven in een stukje over script injectie in startpagina klonen zoals Startertjes. Het concept van Cross Site Request Forgery (CSRF) was daarentegen helemaal nieuw voor mij. Hoewel de aanvalsvector al meerdere jaren bekend is.
Cross Site Request Forgery heeft wel wat weg van XSS. Maar in tegenstelling tot XSS, waar een aanvaller kwaadwillende code injecteert in een website, is Cross Site Request Forgery gebaseerd op het vertrouwen dat een website heeft in een gebruiker. De aanvalscode lift als het ware mee op de identiteit van het slachtoffer om iets voor elkaar te krijgen.
Ter illustratie, als een persoon aangelogd is in GMail, is het mogelijk om hem / haar uit te loggen door een webpagina of een html emailtje voorbij te laten komen waarin de code http://mail.google.com/mail/?logout&hl=en verwerkt zit. Bijvoorbeeld als de inhoud van het source attribuut van een plaatje. Met andere woorden, het oproepen van een webpagina met daarin de code
<img alt=”" src=”http://mail.google.com/mail/?logout&hl=en” />
faciliteert een automatische en onvrijwillige logout als je op dat moment aanlogd was in Google’s webmail client. Geloof je het niet? Log voor de lol even in op GMail en open een ander tabje of venster met deze testlink. Nog steeds aangelogd in GMail? Dat dacht ik al …
En dat hatelijke rode kruisje dat Internet Explorer weergeeft als een afbeelding niet geladen kan worden, verbergen we natuurlijk gewoon door er een display: none stijldeclaratie aan te hangen. Geen haan die er naar kraait …
Ai. De demo is dan wel onschuldig, maar de potentiële impact is niet te onderschatten. Ik zal voortaan zeker geen spannende websites meer bezoeken zonder eerst minimaal de browser cache door de shredder te halen en alle sessieinfo weg te gooien.
Klinkt het nog allemaal een beetje wazig? Misschien werkt het verhelderend als je het CSRF artikel van 0×000000 Hacker WebZine leest.
CSRF · hack
Nullbeta aka HansR babbelt deze website louter op persoonlijke titel vol. Mogelijkerwijs worden Nullbeta's standpunten niet gedeeld door de organisatie die z'n boterham belegt. Maar kan dat iemand boeien?