Met zijn 19 jaar is de Nederlandse Nomenumbra een van de jongste sprekers op HAR, toch wist zijn voorstel de kiescommissie zo te overtuigen dat hij vanavond voor vele honderden bezoekers mocht optreden. Reden genoeg voor Security.nl om hem te interviewen. Zijn echte naam wil hij niet vertellen, maar hij laat wel los een informatica student te zijn die al enige tijd meedraait. Zo begon hij met hackthissite en was actief op verschillende websites waar mensen malware analyseerden. In zijn lezing "Countering behavior based malware analysis" schetst hij een scenario hoe malware de gedragsanalyse van virusscanners kan omzeilen.
De meeste scanners gebruiken nog altijd signatures om kwaadaardige software te herkennen, maar kijken ook steeds vaker naar het gedrag dat bestanden op en het systeem zelf vertonen. Het gaat dan om behavior-gebaseerde analyse en detectie. "In het begin was het gros alleen gericht op patroon-gebaseerde detectie, met soms wat heuristieke detectie." Nomenumbra vermoedt dat vanwege de grote sommen geld die in het ondergrondse malware circuit rondgaan, de malware ook steeds professioneler wordt. Toch is nog altijd veel malware redelijk eenvoudig. Zelf Conficker noemt hij een simpele worm. "Stel dat ze op grote schaal metamorfisme gaan toepassen, dan zijn er veel moderne virusscanners die daar best een kluif aan hebben."
Daarom is het belangrijk om naar het gedrag van een bestand te kijken. "Je kunt een stukje code op twee manieren beschouwen, als platte binary, de blob, dit is de syntax. Maar op het moment als je die hele syntax morft dat is het gedrag, de symantiek, als die hetzelfde blijft wordt het veel moeilijker, dan kun je het niet meer met een reguliere expressie engine matchen."
Instructies
Nomenumbra keek naar het algemene idee van behaviour based analysis en wat mogelijk is om het nog lastiger te maken. Waar zitten daar de zwakheden in. Bij gedragsanalyse simuleert een virusscanner het programma. Daarbij loopt het alle mogelijke code paden af om te zien of er geen kwaadaardig pad of instructie tussenzit dat op malware duidt. Komt het gedrag op een specifieke locatie overeen met het gedrag in de database waarvan bekend is dat het slecht is. De database bestaat uit instructies die eerder door malware zijn gebruikt. Virusschrijvers kunnen echter via allerlei constructies de automatische analyse die veel anti-virusbedrijven toepassen omzeilen.
Volgens Nomenumbra begint het probleem al bij het bepalen wat slecht en goed is. Het formatteren van een schijf kan best goed gedrag zijn, mits aangeroepen door de gebruiker. "Over het algemeen zullen daar wel conventies over zijn. Verbinden naar een IRC -kanaal om een rekening te plunderen is gewoon kwaadaardig."
Achilleshiel
De achilleshiel van gedragsanalyse zit erin dat de virusscanner alle codepaden moet afgaan. Daarbij moet elk mogelijk pad geëxtraheerd worden. Tijdens een encryptie vraagstuk van Ron Rivest over timelock puzzels kreeg hij opeens een idee hoe ook virusschrijvers dit konden gebruiken. "Het ging over het concept van hoe stuur ik een stukje informatie naar de toekomst dat alleen op een bepaalde tijd gelezen kan worden." Denk aan een testament, maar ook de werking van een programma.
Rivest, de R van RSA, maakte een aanpassing aan het algoritme van niet paralleliseerbare instructies. Als je de instructies niet kunt parallelliseren verschilt de rekenkracht niet zoveel tussen een P4 en een supercomputer. Daarbij kan de ontwikkelaar aangeven hoe lang er over de instructies gedaan moet worden. Dit proces, de zogeheten timelock puzzel, kan niet worden gecomprimeerd. De sleutel waarmee het proces is versleuteld loopt bijvoorbeeld na een uur af, pas dan worden de instructies uitgevoerd. "Zelfs met een supercomputer kun je dat niet versnellen." Een virusschrijver kan elke instructie in het codepad met zijn eigen timelock puzzel versleutelen. Dat betekent dat een anti-virusbedrijf een uur lang moet emuleren om te zien of een bestand kwaadaardig is. Een virusscanner kan een gebruiker geen uur lang laten wachten tot die een bestand kan gebruiken. Het is dan ook bijna onmogelijk om binnen een acceptabele tijd met gedragsanalyse te bepalen of iets malware is.
Oplossing
Voor een virus maakt het wachten niet uit. Die heeft praktisch alle tijd, aangezien die toch al op het systeem staat. "En er is vrij weinig wat anti-virusbedrijven hier tegen kunnen doen." Een mogelijke oplossing zou het blacklisten van de encryptie code zijn, maar aangezien die van RSA is afgeleid, is dat niet realistisch. "Je kunt moeilijk instructies die RSA uitvoeren blacklisten." Oplossingen zijn dan ook lastig en Nomenumbra heeft geen kant en klaar oplossing.
"Ik denk dat je in een tussen oplossing je beter kunt richten op intrinsieke security, dus echt in het besturingssysteem. Dat je iedere API die systeem kritische functies uitvoert, die moet gewoon een goed rechtensysteem hebben." Verder noemt hij whitelisting als een mogelijke optie. Die bepaalt welke applicatie waar bij mag. "Ingebouwde security, in plaats van security als los product." De gemiddelde gebruiker installeert niet zoveel programma's, zo laat hij weten. "Als je die whitelist, is dat meer dan genoeg preventie."
Deze posting is gelocked. Reageren is niet meer mogelijk.