Beveiligingsbedrijf Finjan haalde onlangs de pers met haar waarschuwing voor "dynamic code obfuscation" als methode om malware te verbergen. Volgens de onderzoekers zouden "hackers" steeds vaker deze manier toepassen om malware te verspreiden, waardoor traditionele, op signatures gebaseerde anti-virusoplossingen omzeild worden. Dynamic code obfuscation zou de nieuwste manier zijn om ontdekking te ontlopen, omdat de virussen hun payload versleutelen, zodat die niet gescand kunnen worden.
Volgens Roel Schouwenberg, Senior Research Engineer bij de Russische virusbestrijder Kaspersky Lab, blijkt uit de reacties dat er redelijk wat onduidelijkheid bestaat over wat dynamic code obfuscation nou precies is. Hij gaf ons daarom de volgende uitleg:
Polymorphic, metamorphic malware / packers+crypters
Veel mensen zeggen dat DCO niets nieuws is, omdat polymorphisme al vele jaren bestaat. Polymorphic, metamorphic malware en packers+crypters hebben één belangrijk ding met elkaar gemeen: Hoewel variërend van uiterlijk komen ze van één (static) source code af.
Toen de malware schrijver zijn polymorphic virus had geschreven werd het gecompileerd. Van daaruit is het zich gaan veranderen bij elke infectie, met als achtergrond nog steeds diezelfde source code. Er zijn een paar metamorphic infectors die hun source code daadwerkelijk bij zich dragen en deze bij een nieuwe infectie aanpassen. Deze malware is dus van huis uit dynamisch, maar niet ondetecteerbaar. De exemplaren zijn geschreven door hooligans en het is niet te verwachten dat die bron spoedig zal veranderen. Daarvoor is zulke malware te lastig te schrijven, er gaat veel te veel tijd in zitten.
Dynamic Code Obfuscation
De dynamic code obfuscation zoals recentelijk omschreven komt eigenlijk alleen op webservers voor. Een computer wil door een exploit, trojan of vrije wil een executable downloaden van een webserver. De webserver biedt daarop een aangepaste executable aan aan de client.
Het grote verschil tussen bestanden die via dynamic code obfuscation aan de man gebracht worden en polymorphic/metamorphic malware+packers is de source code. Bij DCO wordt elke keer de source code aangepast. Dit kan van de executable zijn, maar ook van de gebruikte packer/crypter. Hiervoor worden verschillende methodes gebruikt.
De intervals waarop een server een aangepaste malware aanbiedt, verschilt aanzienlijk. In sommige gevallen kan het een dag zijn, maar in andere gevallen ook een uur. Ernstiger wordt het bij intervallen van een paar minuten, tot een paar seconden, tot zelfs een unieke sample per download.
Detectie?
De hamvraag bij dit probleem is uiteraard hoe het met de detectie zit. Hiervan hangt veel van de anti-virus engine af, deze kan het leven van de analist moeilijk of gemakkelijk maken. Het is dus zeker niet voor elke anti-virus vendor even gemakkelijk om een signature te maken die een aanzienlijk aantal varianten in één klap detecteert. In de meeste gevallen wordt (generieke) detectie door de criminelen na x tijd opgemerkt en wordt de code weer aangepast. Dan begint het verhaal weer opnieuw.
Met dank aan Roel Schouwenberg
Deze posting is gelocked. Reageren is niet meer mogelijk.