Xss kwetsbaarheid in miljoenen Flash banners.
In ongeveer 8 miljoen Flash-reclames is een xss-lek gevonden. Daarbij wordt nu een veelgebruikte adserver misbruikt voor de verspreiding van deze malafide reclames.
De oorzaak zit in de Actionscript code die wordt gebruikt voor het tellen van clicks op de advertentie. Volgens de ontdekker van het lek, een Oekraïense security onderzoeker, is de foute code makkelijk te vinden via Google. Op die manier is een telling gedaan van minstens 8 miljoen Flash banners die kwetbaar zijn voor het lek.
Toename
Doordat de foute Actionscript code dusdanig standaard is geworden, en veel gebruikt wordt in voorbeelden, instructies en adviezen, is het gebruik ervan ook exponentieel toegenomen.
Banner systemen
In veel banner systemen zit de code al ingebakken. Volgens de ontdekker zijn phpAdsNew, OpenAds en OpenX gecontrolleerd - en kwetsbaar bevonden.
Patch
Adobe zal halverwege komende maand een patch uitbrengen tijdens hun geplande patchronde. Volgens Adobe zal het eerder uitbrengen van een patch andere patches in het gedrang brengen.
De kwetsbaarheid
De kwetsbaarheid zit hem in de manier waarop een click geregistreerd wordt. Een veelgebruikte vorm is:
-
getURL(_root.clickTAG, "_blank");
De aanval gebeurt door het doorgeven van XSS code aan Flash in de clickTAG, url of andere parameter.
-
http://site.nl/flash.swf?clickTAG=javascript:alert('XSS')
-
http://site.nl/flash.swf?url=javascript:alert('XSS')
Na het klikken in de banner wordt de string doorgegeven aan de getURL functie. Zo kan een JavaScript-code uitgevoerd worden.
Voorkomen
Om XSS aanvallen te voorkomen kun je een van onderstaande methodes gebruiken.
-
on(release) {
-
if (clickTAG.substr(0,5) == "http:") {
-
getURL(clickTAG);
-
}
-
}
-
_root.button.onRelease = function() {
-
if (clickTAG.substr(0,5) == "http:"){
-
getURL(clickTAG);
-
}
-
}
Echter zullen deze methodes geen beveiliging bieden aan URL-spoofing, die het mogelijk maakt om een omleiding te maken naar een willekeurige (kwaadaardige) site. Het is dan beter om:
- Gebruik te maken van directe links, zonder de parameter clickTAG
- Als het nodig is om click te meten, gebruik dan een url naar het banner systeem die de gebruiker vervolgens doorstuurt naar de juiste site. (http://bannersysteem/click?id=1)
