Você está na página 1de 8

Analyse

de code malveillant
Pratique

Hardik Shah, Anthony L. Williams

Degr de difficult

LInternet et les rseaux informatiques ont longtemps t infest


par du code malveillant et ses effets nfastes. Cet article vous
donnera une introduction sur lutilisation pratique et basique
dans un environnement contrl de lanalyse des malwares.

O
n peut dfinir le code malveillant jusqu ce quune personne excute un fi-
comme du code ayant t dvelopp chier infect.
pour excuter diverses activits no- Cheval de Troie : Dans le milieu du logiciel,
cives sur un ordinateur. Des exemples dune un Cheval de Troie est un programme qui,
telle activit peuvent tre des actions comme : la diffrence dun virus possde ou installe
le vol de donnes utilisateur ou informations un programme malveillant (parfois nomm
personnelles, infectant dautres machines sur payload ou Trojan) tout en ayant lapparence
un rseau ou envoyant du Spam au travers des dtre autre chose.
machines infectes. Il y a diffrents niveaux Ver : Un ver est un programme dordina-
de code malveillant qui incluent les virus mais teur auto-rplicant. Il utilise le rseau pour
ne sy limitent pas, notamment : vers, Chevaux envoyer des copies de lui-mme dautres
de Troie et bots. Chacune de ces catgories nuds (terminaux dordinateurs sur le
a des caractristiques diffrentes selon leur but
prvu. En avanant, notre objectif est de discu-
ter des diverses techniques que nous pouvons Cet article explique ...
employer pour analyser de manire efficace un
Quest-ce que le code malveillant.
tel code malveillant.
Outils et techniques utiliss pour lanalyse de
code malveillant.
Types de Code Malveillant Comment analyser le ver : NetSky-P.
Discutons des dfinitions de base de quelques
uns des divers types de codes malveillants :
Ce qu'il faut savoir ...
Virus : Les virus sont des programmes
simples, qui sont crits pour changer la Techniques lmentaires de dbogage binaire.
manire dont un ordinateur travaille sans Les bases de lanalyse de paquets.
laccord de lutilisateur. Un virus ne peut Environnement Windows.
infecter dautres ordinateurs sur un Rseau

38 hakin9 N 10/2007 www.hakin9.org


Analyse de code malveillant

pour de tels programmes. Le seul


moyen de comprendre ces program-
mes est de les analyser et dter-
miner leur fonctionnement interne.
Une autre raison pourrait tre que
beaucoup de chercheurs aiment ex-
plorer les fonctionnements cachs
dun programme en lexaminant
avec un dsassembleur et un dbo-
gueur. Il y a 2 techniques majeures
pour analyser ce code :

lanalyse statique (analyse dead),


lanalyse dynamique (analyse live).

Nous discuterons de chacune de


ces techniques dans les sections
suivantes.
Pour cette analyse particulire
nous avons choisi le vers : NetSky-P.
Figure 1. File insPEctor
Il se trouve parmi le TOP 10 des vers
rseau) et peut le faire ainsi sans dautres. De tels logiciels impli- rapports par Sophos Anti-Virus en
lintervention de lutilisateur. quent beaucoup de difficults lies mai 2007 (http://www.sophos.com/
Bots : un bot est un programme la scurit des utilisateurs dordi- security/top-10/).
malveillant qui reoit des instruc- nateurs.
tions de celui qui le contrle et ef- Plusieurs organismes ont perdu Lanalyse statique
fectue des oprations selon ses des millions de dollars en raison de (dead)
instructions. De part leur nature les la prolifration de ce type de logi- Lanalyse statique est lapproche la
bots se dupliqueront en utilisant ciels au sein de leurs rseaux. Par plus sre pour inspecter tout fichier
diffrentes techniques comme exemple du code malveillant a d- binaire malveillant. En utilisant cette
lexploitation de systmes distants, truit lensemble des programmes technique danalyse nous nexcutons
en envoyant des e-mails utilisant et des sources dans une firme nord
le social engineering et crant amricaine. Suite cela cette entre-
par consquent un rseau de bots prise a perdu des millions de dollars,
dsigns sous le nom de : Botnets. a t dclasse de sa position dans
Ce rseau dordinateurs com- lindustrie et a du licencier plus de 80
promis peuvent tre utiliss pour employs.
dclencher des attaques par Dni
de Service distribu, installer des Le besoin de lanalyse
malwares ou faire dautres activi- Tout comme lcriture de code mal-
ts nfastes. Les Bots deviennent veillant, il y a une myriade de rai-
de plus en plus populaires. sons danalyser les vers, virus et
malwares. La raison principale der-
Vulnrabilits rire lanalyse de malwares est quil
Du code malveillant provenant de ny a aucune source disponible Figure 2. Objet de le-mail
vers ou de bots exploite des vul-
nrabilits au niveau logiciel dans Listing 1. La dcompression du fichier avec UPX
un ordinateur. Ces exploits peuvent
avoir comme rsultat le vol de don- C:\Documents and Settings\Hardik Shah\Desktop\upx300w\upx300w>upx -d
malware.exe
nes importantes comme des mots
Ultimate Packer for eXecutables
de passe et dinformations sur les car- Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007
tes de crdit et le lancement datta- UPX 3.00w Markus Oberhumer, Laszlo Molnar & John Reiser Apr 27th 2007
ques DDoS afin de menacer un indi- File size Ratio Format Name
vidu et de lui extorquer de largent. -------------------- ------ ----------- -----------
28160 <- 6384 58.18% win32/pe malware.exe
Beaucoup dauteurs de Botnets four-
Unpacked 1 file.
nissent mme leurs rseaux pirates
de machines zombies pour le louer

www.hakin9.org hakin9 N 10/2007 39


Pratique

gratuitement tlchargement de-


puis Sourceforge.net. Aprs tl-
chargement et installation il peut tre
excut en ligne de commande avec
le nom de fichier de notre malware
comme argument gnrant laffi-
chage du Listing 1.

Dsassembler
Figure 3. Messages diffuss et identifier des
chanes de donnes
jamais le programme mais utilisons Parfois les auteurs de malwares Un fichier excutable malveillant peut
divers dsassembleurs comme : rendent plus compliqu la dcom- contenir plusieurs chanes que le
Win32Dasm ou IDA Pro pour tudier pression un fichier en particulier en programmeur a intgres durant la
sans risque le contenu du fichier obfuscant ses octets de signature phase de dveloppement. De tel-
binaire. Nous utiliserons ces outils dans lexcutable, pour que les les chanes peuvent apporter des
pour analyser le vers NetSky-p dans outils mentionns ci-dessus ne puis- messages derreurs ou peuvent
les sections suivantes. sent dtecter les bons packers. tre lis au code. Par exemple si un
Pour outrepasser ce problme des fichier excutable envoie des mails
Packers outils comme : ProcDump ont une alors il peut possder plusieurs ty-
et unpackers option danalyse heuristique, qui pes de chanes pour les diffrents
Il y a un format de fichier commun fera une analyse heuristique du objets comme : RE:Voici la pice
pour les excutables sur la plate- packer employ. Dans certains cas
forme MS Windows, appel format il faut unpacker manuellement le
PE. Chaque fichier excutable sur fichier en question. Un unpacking
un systme MS Windows est ce manuel est un autre thme intres-
format de fichier. Habituellement sant que nous naborderons pas
lauteur du code malveillant utilise ici par commodit (manque des-
diffrentes techniques pour rendre pace).
lanalyse plus complique en utilisant Dans le cadre de cet article on
des techniques de base. restera avec les outils mentionns
Une approche commune pour ci-dessus pour lunpacking.
beaucoup dauteurs de malwares Laction initiale que nous allons
est dutiliser ce qui est mieux connu entreprendre est de dterminer si
comme : des packers excutables le fichier en cours danalyse est est
qui rduisent la taille de lexcutable de type packer ou non. Pour cela
et changent le contenu en utilisant nous utiliserons : File insPEctor XL.
des algorithmes spcifiques dobfus- Comme vous le voyez la Figure 1.
cation. Dans ce cas un dsassem- Cet outil rapporte que le fichier
blage classique ne sera pas efficace. est packag en utilisant Ultimate
Parmi les packers de fichiers les plus Packer for Executables (UPX). UPX Figure 4. Extensions de fichiers
utiliss citons : UPX et AS Pack. est un outil open source disponible pices jointes
Pour dterminer le packer de
fichier nous pouvons utiliser loutil :
File insPector XL.
Comme son nom l'indique il inspec-
tera le fichier la recherche de sig-
natures de packers communes partir
desquels il pourra facilement dtecter
le packer utilis. Il est ensuite nces-
saire dunpacker les fichiers pour la
phase danalyse. Il y a de nombreux
outils pour unpacker les fichiers sous
environnement protg. Un tel outil est
PEID et un autre est ProcDump. Avec
ces outils on peut unpacker la plupart
des fichiers de type packer. Figure 5. fichier de contamination

40 hakin9 N 10/2007 www.hakin9.org


Analyse de code malveillant

jointe,++Aucun virus trouv++ etc. une ide globale du fonctionnement Maintenant que nous avons un-
Aprs avoir unpack le fichier on du fichier. Il y a plusieurs chanes, que pack avec succs lexcutable on
doit le dsassembler en utilisant un lon peut dterminer par analyse. Ces peut procder au dsassemblage
outil comme : Win32Dasm ou IDA chanes peuvent contenir le corps des et effectuer un travail dinvestigation
Pro pour analyser les chanes de texte e-mails, objet, ou nom du fichier joint, approfondi. Effectuons une analyse
usuelles. Cette analyse nous donnera quun vers envoie en pice jointe etc. statique de cet excutable en utili-
sant le dsassembleur IDA Pro. La
premire chose que nous recherche-
rons sont les chanes. Les chanes
au sein dun excutable peuvent
fournir un ensemble dinformations
telles que : lobjet du mail, message,
entres du registre, extensions du
fichier et leur nom.
Figure 6. Entres register utilises par NetSky-P Lexemple suivant montre lobjet
de le-mail quutilise le vers NetSky-P
lorsquil envoie des mails depuis la
machine infecte (Figure 2).

Objet de le-mail
La Figure 3 montre les diffrentes
chanes quil possde pour les me-
ssages diffuser. La Figure 4 affiche
les diffrents types dextensions de
fichiers que le vers Netsky-P insre
dans les pices jointes envoyes.
La Figure 5 montre le nom des
fichiers utiliss sur le systme infec-
t. La Figure 6 illustre quelques unes
des entres registres utilises par le
vers. Bas sur les informations col-
lectes jusqu prsent il est facile
den dduire que le vers Net-Sky-P
envoie des e-mails en utilisant di-
verses chanes dans le champs ob-
Figure 7. Illustration breakpoint sur chanes jet de le-mail, de noms de fichiers
et dextensions. En plus de tout cela
il stocke plusieurs entres registres
afin dtre excut chaque d-
marrage de lordinateur.

Analyse Dynamique
Dans une analyse dynamique (live)
nous devons vrifier le fonctionnement
global et le fonctionnement interne
du code actuellement en lexcutant
dans un environnement contrl. Ceci
nous aide liminer les faux-positifs
de la phase danalyse statique.
Des auteurs de malwares incluent
de faon intentionnelle plusieurs
chanes et fonctions afin dempcher
lanalyse prcise de leur malware (ou
incluent du code pour dtecter quil
fonctionne dans les confins dune
machine virtuelle afin de changer
Figure 8. Entre Registre cre par le ver son chemin dexcution) ; de telles

www.hakin9.org hakin9 N 10/2007 41


Pratique

tentatives dobfuscation peuvent tre diverses tches pour envoyer des pour l'excuter chaque fois que lor-
dtectes pendant lAnalyse Dyna- e-mails. dinateur dmarre. Ils crent cette
mique. fin des entres registre.
Pour cela on a mis en place 2 Cls de Registre Pour analyser un tel comporte-
environnements de test sexcutant Pour se rpandre, un code malveil- ment on utilisera un outil appel : Re-
sous MS Windows XP Professional lant a besoin dtre lanc dune faon gMon de Sysinternals. Il affichera len-
SP2. Sur la premire machine on ou dune autre, soit en excutant le semble des entres registre utilises
a install Ollydbg pour permettre le fichier malveillant ou en cliquant sur par un programme. Pour analyser le
dbogage du vers Net-Sky-P et le un lien web malveillant ou depuis vers NetSky-P nous lavons excut
deuxime systme tait connect loption autorun disponible dans le et avons vrifi les multiples accs
au mme rseau de sorte que nous registre Windows. Les malwares mo- au registre dans les logs de RegMon.
puissions surveiller efficacement les dernes utilisent diverses techniques Il essaye daccder plusieurs cls
diverses activits du vers en temps de social engineering afin de mani- mentionnes prcdemment.
rel. On a ensuite lanc Wireshark puler les utilisateurs non seulement Un dtail que nous avons observ
sur les 2 ordinateurs et aussi Reg- lexcuter la premire fois mais aussi tait que le vers crait une nouvelle
Mon, ainsi que FileMon sur le second
systme infect.
Il est important de noter que vous
devez prendre des prcautions en
manipulant les malwares afin de les
conserver uniquement dans lenvi-
ronnement de travail. Dans notre cas
nous avons choisi un rseau air-gap-
ped sans laccs nos rseaux de
production ou Internet.
Beaucoup de gens choisissent le
populaire VMWare Suite pour pro-
cder des tests dans les confins
dune machine virtuelle. Il sagit dun
choix personnel pour lenvironnement
de test, mais nous vous invitons
en employer un scuris. Aprs
avoir prpar lenvironnement, on a
lanc le dbogueur OllyDbg et avons
localis le fichier NetSky.exe. Aprs
cela nous avons mis le point darrt Figure 9. Base64 FileMon
(breakpoint) sur diffrentes chanes
comme montres en Figure 7. Dans
limage 7 nous mettons un breakpoint
sur la chane System\ Current Control
Set\ Services\ WksPatch et excu-
tons OllyDebugger.
Il sest arrt sur celui-ci. Une
examination attentive des chanes
confirme les rsultats prcdents
dtermins pendant la phase stati-
que de lanalyse. Maintenant nous
allons remplacer les breakpoints de
dpart et utiliser les animations on fly
et divers autres options de dbogage
comme : step in (pas pas), step out
(pas pas aux appels) pour tracer
les diffrents appels aux API de Win-
dows comme : GetInternetConnectio
nState() et RegCreateKeyEx().
De cette analyse on peut d-
terminer que le ver cr galement Figure 10. Fichier dcod

42 hakin9 N 10/2007 www.hakin9.org


Analyse de code malveillant

entre au registre via HKEY_LOCAL_ le fichier a t crypt avec lalgorith- malwares peuvent galement tre
MACHINE\SOFTWARE\Microsoft\ me Base64. Par consquent nous utilises pour lancer des attaques
Windows\CurrentVersion\Run comme avons utilis un dcodeur base64 DDoS sur Internet.
affich la Figure 8. Nous avons en- pour dterminer que notre fichier Pour dtecter cela on doit utili-
suite analys le dossier Windows et tait bien : NetSky-P. ser un Sniffer de paquets comme
y avons trouv 2 nouveaux fichiers Wireshark qui peut capturer le traf-
AVBgle.exe et Base64.tmp. Base64 FileMon fic rseau passant par la machine
La figure 10 montre le fichier d- infecte. Base sur lanalyse des
FileMon cod qui tait au format base64. En donnes capture, on peut dter-
Du code malveillant peut se modifier regardant le contenu il est clair quil miner une varit de dtails. Par
ou se rpliquer en utilisant diffrents sagit dun fichier excutable tant exemple sil sagit dun botnet :
noms dans plusieurs endroits. donn quil possde len-tte MZ qui quels sont les instructions de con-
Il peut galement tlcharger est un en-tte standard pour les fi- trle, depuis quels serveurs il tl-
et excuter dautres fichiers comme chiers excutables sur la plateforme charge les fichiers et quel type de
des : backdoors depuis un lieu dis- Windows. spam il envoie.
tant et le placer sur le systme in- Nous avons ensuite dcid de
fect. Afin dtudier ce comportement, Capture sauvegarder le fichier dcod sous :
on peut utiliser un outil nomm Fi- de Paquets et Analyse decoded.exe et de louvrir avec IDA
leMon galement disponible chez La plupart des malwares dans la Pro pour investigation. Depuis notre
Sysinternals. nature actuellement essayient de poste de travail danalyse, nous avons
Pour continuer lanalyse nous contaminer dautres machines sur remarqu que : AVBgle.exe scannait
avons redmarr le systme de le rseau ou bien font partie des le fichier index.dat dans le dossier
test infect et avons lanc RegMon, botnets et envoient ainsi beaucoup Temporary Internet Files sur le sys-
FileMon et Wireshark de nouveau. de spam depuis des machines in- tme infect. Ceci est intressant
Nous avons vrifi les logs de File- fectes ou bien peuvent galement et permet de dduire que celui-ci
Mon et le point commun que nous envoyer beaucoup dinformations envoyait alatoirement beaucoup
avons trouv tait quil accdait depuis des systmes compromis de-mails grce aux adresses mails
continuellement un fichier nomm comme les habitudes de navigation trouves dans ce rpertoire.
Base64.tmp. Comme son nom le des utilisateurs, mots de passe, d- Ce comportement est exhib
suggerait, on pouvait supposer que tails de comptes bancaires etc. Les dans le paquet de type : dump mon-
tr la Figure 11. Une analyse des
paquets plus prcise est illustre la
Figure 12. Dans les circonstances ac-
tuelles nous avons dcid d'excuter
une analyse des paquets du ver. Nous
avons not qu'au dbut il essayait
d'excuter plusieurs requtes DNS
pour des serveurs externes tels que
Yahoo!, AOL, et Hotmail.
Aprs ceci, il envoyait des mails
avec divers objets, noms de fichiers,
comme prsent prcdemment. La
Figure 13 en est une illustration.

Identifier les Algorithmes


de Rplication
Les malwares ne fonctionnent pas
dans le vide. Pour saccrotre ils doi-
vent engendrer plusieurs instances
du mme code, pouvant travailler
Figure 11. Paquet Dump conjointement sous le contrle dune
personne pour raliser des activits
nocives. Par consquent il essaie
sans interruption dinfecter (ou rin-
fecter selon les cas) les autres machi-
nes sur rseau local ou sur Internet.
Figure 12. Analyse des paquets plus prcise Les malwares utilisent une varit de

www.hakin9.org hakin9 N 10/2007 43


Pratique

techniques pour y parvenir. En voici En utilisant ces techniques, on peut que cette analyse nest pas complte,
les exemples : analyser le fonctionnement interne notre but tant de donner une vision
du code malveillant. Acqurir de telles globale sur lutilisation de diffrents
lenvoi de mails avec une pice comptences demande du temps, outils pour lanalyse de malwares
jointe possdant du code malveil- de lintuition, de la patience et du et des techniques pour analyser le
lant, dvouement. On saperoit finalement code malveillant daujourdhui. l
exploiter les logiciels de lordina-
teur en utilisant des vulnrabilits
ou failles de type : 0day, Rfrences et Autres Lectures
exploiter les vulnrabilits du
systme dexploitation lui-mme. http://www.smallbiztrends.com/2007/06/top-five-small-business-internet-security-
threats.html
Afin didentifier avec exactitude lal- http://www.offensivecomputing.net/
http://www.viruslist.com/
gorithme de rplication utilis on doit
http://vx.netlux.org/
excuter le code malveillant dans un
http://hexblog.com/
environnement contrl et tracer le
code au sein dun dbogueur. Pour
ce type danalyses on utilisera Ol-
Outils
lydbg pour identifier lalgorithme de VMWare (Virtualization Software) http://www.vmware.com/
rplication. IDA Pro/Freeware (Dissembler) http://www.datarescue.com/
Dans certains cas il nest pas pos- Ollydbg (Popular Ring 3 Debugger) http://www.ollydbg.de/download.htm
sible didentifier lalgorithme avec le UPX (Ultimate Packer for Executables) http://upx.sourceforge.net/
dbogueur seul. Dans ces scnarios ImpREC(Import Reconstruction for PE files) http://securityxploded.com/
on doit combiner dautres techniques download.php#imprec
telles que la capture de paquets afin Windows Sysinternals(FileMon,RegMon) http://www.microsoft.com/technet/
sysinternals/default.mspx
que nous puissions dterminer si le
malware utilise un exploit connu ou
non ou dautres comportements vi-
sibles. Vu lanalyse prcdente il est
vident que le ver NetSky-P est un
propos des auteurs
Hardik Shah se spcialise dans la Scurit des Rseaux, le Reverse Engineering et
mail bomber qui se replique au sein
lAnalyse de code malveillant. Il sintresse la scurit web et celle des applica-
dun e-mail, en attente dutilisateurs tions. On peut le joindre l'adresse : hardik05@gmail.com Anthony L. Williams est
confiants pour louvrir. Architecte en Scurit Informatique pour IRON::Guard Security, LLC o il conduit des
Il utilise plusieurs techniques de test d'intrusion (Pen Test), valuations de vulnrabilits, audits et rponse en cas din-
social engineering pouvant tromper cident. On peut le joindre l'adresse : awilliams@ironguard.net.
les utilisateurs dbutant en employant
des termes comme : Aucun Virus
Trouv!! dans le contenu du mail.
Si les utilisateurs ne sont pas con-
scients de ce type de mfaits alors il
est possible dinfecter la machine en
question.

Conclusion
Le code malveillant a toujours t une
menace pour les utilisateurs. De nos
jours, avec Internet, les malwares sont
intensment employs pour gnrer
du trafic sur les sites, gnrer des liens
invalides qui conduisent lutilisateur
des sites infects, lancer des atta-
ques de Deni de Service (DDoS) pour
voler des donnes personnelles et con-
fidentielles. Ils emploient maintenant
une varit de techniques telle que les
exploits dit 0days pour permettre leur
rplication plus rapidement. Figure 13. Action du ver

44 hakin9 N 10/2007 www.hakin9.org


Analyse de code malveillant

www.hakin9.org hakin9 N 10/2007 45