image

Een virusanalist in (1)5 minuten?

donderdag 15 januari 2009, 16:15 door Eddy Willems, 7 reacties

“Hey Eddy, mijn pc doet de laatste tijd raar. Zou je er eens vlug naar kunnen kijken?” Een vraag die me me na 20 jaar in de ‘beveiligingswereld’ te zitten nog regelmatig naar het hoofd geslingerd wordt. “Je bent immers een analist, is het niet? “Uiteindelijk was dit één van de redenen waarom ik een tijdje geleden begon te werken aan een presentatie met als titel of je al dan niet een virusanalist kon worden in 15 minuten. Ik denk dat iedereen wel het antwoord kent, maar zou het niet interessant zijn om zelf een aantal dingen te kunnen nakijken, voordat je naar een helpdesk of supportlijn belt of voordat je je PC gaat formatteren? En wat is nu de exacte definitie van ‘rare dingen op je PC’. Inderdaad zo eenvoudig ligt het antwoord hier ook weer niet...

Daarom geef ik graag in een notendop een overzicht weer van enkele tips en trucs die misschien een breder beeld zouden kunnen schetsen van dit ganse verhaal. Uiteindelijk zijn het ook de wapenfeiten waar de bekendste analisten zelf gebruik van maken. Maar laten we beginnen met het begin. Wat zijn virussen? Wat is malware? Tegenwoordig lijkt wel iedereen zijn zegje te willen hebben over deze definitie maar is ze dan ook correct en juist te noemen? Malware is de verzamelnaam voor alle ‘Malicious Sofware’, dit bevat dus ook virussen, wormen, trojans, bots en andere gerelateerde bedreigingen. Belangrijk om te weten is bijvoorbeeld dat bij alle malware die we de laatste tijd te zien krijgen slechts een heel klein gedeelte virussen zitten. Toch spreekt de gewone man in de straat over virussen en niet over malware. Virussen zijn met hun 5 à 6 percent zeker niet de grootste bedreiging, integendeel. Meer dan 90% van de malware kan je klasseren als trojans waar dus onder andere ook keyloggers, botnets en dergelijke onderdelen van zijn. En dat is misschien nu net het probleem. Een virus of een worm terugvinden is makkelijk omdat ze zichzelf verspreiden en dan kan je wel makkelijk ergens een kopie of een sample terugvinden op je computer. Maar dat ligt dus nu wel wat anders.


Wat zijn nu de technieken waar een analist gebruik van maakt. De eerste fase is duidelijk de detectie. Hoe kan je vinden of er iets aan de hand is op je computer. Welk programma is verdacht? De tweede en belangrijkste fase is echter de analyse zelf die uiteenvalt in de dynamische en de statische analyse. Dit is voor mij één van de leukste elementen uit het vak. Het komt er op neer dat we het gedrag van het verdachte programma trachten na te gaan. Aangezien we hier kunnen geholpen worden door een massa tools op het internet zal ik me hier op focussen. Bij de statische analyse is het de bedoeling om de code van het verdachte programma te analyseren op zijn functionaliteit. Deze fase is dan ook weggelegd voor echte analisten en vereist diepe kennis van assembler en andere programmeertalen. De neutralisatie fase is net als de voorgaande ook eerder van toepassing voor mensen die weten hoe de malware volledig in elkaar zit en hoe we ze het best kunnen verwijderen. Uiteindelijk moet dit dan nog vertaald worden in de malware signatures die deze moeilijke taak via een anti-virus programma kan uitvoeren. In dit artikel ga ik niet in op deze fase.

Fase 1 “Detectie “ en Fase 2a “Dynamische analyse” tools

Ik neem voor de gemakkelijkheid en bondigheid eventjes deze 2 fases bij elkaar omdat de tools die we hierbij gebruiken zeer dicht bij elkaar aansluiten. Het gevoel dat er iets misloopt op de pc kan al een juiste waarschuwing zijn op zichzelf. Daarom neem je er ook best een andere tool bij die iedereen heeft: de Task Manager van Windows zelf geeft soms al een beeld dat je niet verwacht en toont je mogelijk een onbekend proces. Omdat je echter zelf weet moet hebben van alle processen is dit echter ook niet altijd evident omdat er ook niet altijd verbanden te zien zijn met bepaalde programma’s bij deze tool. Daarom raad ik persoonlijk mijn eigen geliefkoosde vervanger aan: Process Explorer die je kan terugvinden op de Microsoft site onder het ‘Sysinternals’ gedeelte. Deze tool toont zeer goed welke mogelijke onbekende processen er draaien en geeft ook duidelijker de verbanden met geïnstalleerde programma’s weer op de computer. Daardoor komt meestal de malware vanzelf naar boven. Gezond verstand en kennis van programma’s is hier wel op zijn plaats. Uiteindelijk is deze tool ook veel krachtiger dan de normale Task Manager bij het bijvoorbeeld afsluiten van bepaalde processen.

Andere mogelijke tools zijn Filemon en Regmon die ook via Microsoft terug te vinden zijn en die een beter beeld geven van de de file activiteit op de harde schijf en het register. Belangrijke plaatsen die monitoring duidelijk eisen en waardoor je vlug kan afleiden of er iets niet pluis is.

Voor het nagaan van de netwerk activiteit kan je perfect gebruik maken van onder andere TCPView en WireShark. Twee oude bekenden die vroeger onder andere benamingen terug te vinden waren, maar die essentieel zijn om verdacht netwerkverkeer op sporen. Als je op bepaalde momenten wat belangrijke info over je surfgedrag over de lijn naar buiten ziet gaan dan kan je al direct verwachten dat er iets loos is.

Fase 2b “Statische analyse” tools

Nadat je via deze tools mogelijk een verdacht programma opgemerkt hebt, kan je aan de slag om dat programma aan een korte analyse te onderwerpen. De meeste malware zit namelijk ook verscholen voor de anti-virus(lees anti-malware) programma’s via bepaalde trucs. Eéntje ervan is het ‘packen’ van een programma dat ervoor zorgt dat de mogelijke malware niet zomaar kan teruggevonden kan worden. Het programma is daardoor verkleind en ziet er ook totaal anders uit. Een mooie tool om dit te onderzoeken is PeiD dat meer dan 600 packers en cryptors kan identificeren. Let wel op: Ook een legitiem programma kan gebruik maken van een packer, dus een gepackt programma wijst niet altijd op malware. Een andere recht-toe-recht-aan tool is bijvoorbeeld FileAlyzer. Deze tool geeft een basis analyse weer van het te onderzoeken bestand of programma in hexdump formaat en kan ook de structuur weergeven zoals tekst, grafieken, HTML, media en PE.

En dan begint het echte werk via een disassembler of debugging tools. Mooie voorbeelden van dit soort is het populaire IDA pro, gebruikt in de gehele security en anti-malware wereld en ook bij sommige geheime diensten. Ook dé disassembler die op alle fronten inzetbaar is, zowel onder Windows als Linux, werkt prima en levert goed werk af. Persoonlijk ben ik ook te spreken over OllyDbg, een 32-bit assembler debugger.

Er zijn natuurlijk nog een berg andere tools beschikbaar maar dit artikel is te kort om hier gedetailleerder op in te gaan. Ik denk echter dat het voor iedereen een uitdaging is om zelf op zoek te gaan naar andere interessante hulpmiddelen. Wie weet is dit een start voor een nieuwe carrière of mooie hobby.

Nadat je zelf dit analysewerk hebt verricht en je overtuigt bent van de mogelijke malware, kan je als laatste stap het verdachte bestand uploaden naar online-scanning diensten zoals VirusTotal of Jotti. Let wel op: Deze online diensten kan je niet gebruiken als een test om te kijken of scanner ‘x’ of scanner ‘y’ beter is dan de andere omdat er een heleboel andere factoren een rol spelen in de complete beveiliging van een pc. Ze geven wel mogelijk een beeld of het verdachte bestand al dan niet gedetecteerd wordt door het één of het andere pakket.

Vertrouw echter niet op het feit dat via jouw upload de malware direct vlug zal gedetecteerd zal worden door jouw security pakket als dat nog niet het geval zou zijn. Het kan soms weken duren voor jouw specifieke nieuwe malware bij de vendors terechtkomt wegens de overdaad aan samples (plus rommel) die soms worden opgezonden naar dergelijke sites. Deze sites moet je dan ook bekijken als een hulpmiddel in het totaalbeeld en mogelijke nieuwe malware zend je dan ook beter rechtstreeks naar jouw favoriete anti-virus vendor toe, zoals bijvoorbeeld Kaspersky Lab. Soms kunnen kunnen uren of minuten tellen in dergelijke gevallen. Een mooi alternatief is trouwens onze gratis bestands online scanner. Andere vendors hebben vergelijkbare initiatieven, zoals je in dit overzicht kunt zien.

Een analist worden in 5 of 15 minuten is natuurlijk onmogelijk maar mits deze tips en trucs en een portie gezond verstand kom je al heel ver. Verder dan de meesten onder ons soms denken. Voor de mensen die mijn presentatie tijdens Infosecurity.nl gemist hebben, raad ik aan om rond te kijken, ik zal hem in 2009 nog vaker geven en daarbij nog op andere factoren ingaan.

Eddy Willems is IT Security Evangelist bij Kaspersky Lab en EICAR Director Press & Information

Reacties (7)
15-01-2009, 18:21 door KwukDuck
ik zie niemand uit mijn directe omgeving ollydbg gebruiken, bij de eerste blik schrikken ze zichwaarschijnlijk wezenloos en zijn ze wanhopig verdwaald, laat staan dat ze assembly kunnen lezen... ze weten amper wat binair of hex is...
15-01-2009, 18:34 door [Account Verwijderd]
[Verwijderd]
15-01-2009, 18:54 door Anoniem
PE = windows Portable Executable format, gebaseerd op COFF.
Dit is het standaard format voor uitvoerbare bestanden onder Windows.

Spelfout: Systinternals -> Sysinternals
16-01-2009, 07:21 door pikah
msconfig --> Opstarten ook ideaal :-)
16-01-2009, 09:22 door [Account Verwijderd]
[Verwijderd]
16-01-2009, 10:40 door Anoniem
Mooi verhaal. Kan het ook vertaald worden voor de britse marine?
17-01-2009, 08:56 door [Account Verwijderd]
[Verwijderd]
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.