analyse-de-code-malveillant


analyse-de-code-malveillant

 

www.hakin9.org hakin9 Nº 10/2007 38 Pratique O n peut défnir le code malveillant comme du code ayant été développé pour exécuter diverses activités no- cives sur un ordinateur. Des exemples d?une telle activité peuvent être des actions comme : le vol de données utilisateur ou informations personnelles, infectant d?autres machines sur un réseau ou envoyant du Spam au travers des machines infectées. Il y a différents niveaux de code malveillant qui incluent les virus mais ne s?y limitent pas, notamment : vers, Chevaux de Troie et bots. Chacune de ces catégories a des caractéristiques différentes selon leur but prévu. En avançant, notre objectif est de discu- ter des diverses techniques que nous pouvons employer pour analyser de manière effcace un tel code malveillant. Types de Code Malveillant Discutons des défnitions de base de quelques uns des divers types de codes malveillants : ? Virus : Les virus sont des programmes simples, qui sont écrits pour changer la manière dont un ordinateur travaille sans l?accord de l?utilisateur. Un virus ne peut infecter d?autres ordinateurs sur un Réseau jusqu?à ce qu?une personne exécute un f- chier infecté. ? Cheval de Troie : Dans le milieu du logiciel, un Cheval de Troie est un programme qui, à la différence d?un virus possède ou installe un programme malveillant (parfois nommé payload ou Trojan) tout en ayant l?apparence d?être autre chose. ? Ver : Un ver est un programme d?ordina- teur auto-réplicant. Il utilise le réseau pour envoyer des copies de lui-même à d?autres n?uds (terminaux d?ordinateurs sur le Analyse de code malveillant Hardik Shah, Anthony L. Williams Degré de diffculté L?Internet et les réseaux informatiques ont longtemps été infesté par du code malveillant et ses effets néfastes. Cet article vous donnera une introduction sur l?utilisation pratique et basique dans un environnement contrôlé de l?analyse des malwares. Cet article explique ... ? Qu?est-ce que le code malveillant. ? Outils et techniques utilisés pour l?analyse de code malveillant. ? Comment analyser le ver : NetSky-P. Ce qu'il faut savoir ... ? Techniques élémentaires de débogage binaire. ? Les bases de l?analyse de paquets. ? Environnement Windows. Analyse de code malveillant hakin9 Nº 10/2007 www.hakin9.org 39 réseau) et peut le faire ainsi sans l?intervention de l?utilisateur. ? Bots : un bot est un programme malveillant qui reçoit des instruc- tions de celui qui le contrôle et ef- fectue des opérations selon ses instructions. De part leur nature les bots se dupliqueront en utilisant différentes techniques comme l?exploitation de systèmes distants, en envoyant des e-mails utilisant le social engineering et créant par conséquent un réseau de bots désignés sous le nom de : Botnets. Ce réseau d?ordinateurs com- promis peuvent être utilisés pour déclencher des attaques par Déni de Service distribué, installer des malwares ou faire d?autres activi- tés néfastes. Les Bots deviennent de plus en plus populaires. Vulnérabilités Du code malveillant provenant de vers ou de bots exploite des vul- nérabilités au niveau logiciel dans un ordinateur. Ces exploits peuvent avoir comme résultat le vol de don- nées importantes comme des mots de passe et d?informations sur les car- tes de crédit et le lancement d?atta- ques DDoS afn de menacer un indi- vidu et de lui extorquer de l?argent. Beaucoup d?auteurs de Botnets four- nissent même leurs réseaux pirates de machines zombies pour le louer à d?autres. De tels logiciels impli- quent beaucoup de diffcultés liées à la sécurité des utilisateurs d?ordi- nateurs. Plusieurs organismes ont perdu des millions de dollars en raison de la prolifération de ce type de logi- ciels au sein de leurs réseaux. Par exemple du code malveillant a dé- truit l?ensemble des programmes et des sources dans une frme nord américaine. Suite à cela cette entre- prise a perdu des millions de dollars, a été déclassée de sa position dans l?industrie et a du licencier plus de 80 employés. Le besoin de l?analyse Tout comme l?écriture de code mal- veillant, il y a une myriade de rai- sons d?analyser les vers, virus et malwares. La raison principale der- rière l?analyse de malwares est qu?il n?y a aucune source disponible pour de tels programmes. Le seul moyen de comprendre ces program- mes est de les analyser et déter- miner leur fonctionnement interne. Une autre raison pourrait être que beaucoup de chercheurs aiment ex- plorer les fonctionnements cachés d?un programme en l?examinant avec un désassembleur et un débo- gueur. Il y a 2 techniques majeures pour analyser ce code : ? l?analyse statique (analyse dead), ? l?analyse dynamique (analyse live). Nous discuterons de chacune de ces techniques dans les sections suivantes. Pour cette analyse particulière nous avons choisi le vers : NetSky-P. Il se trouve parmi le TOP 10 des vers rapportés par Sophos Anti-Virus en mai 2007 (http://www.sophos.com/ security/top-10/). L?analyse statique (dead) L?analyse statique est l?approche la plus sûre pour inspecter tout fchier binaire malveillant. En utilisant cette technique d?analyse nous n?exécutons Listing 1. La décompression du fchier avec UPX C:\Documents and Settings\Hardik Shah\Desktop\upx300w\upx300w>upx -d malware.exe Ultimate Packer for eXecutables Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007 UPX 3.00w Markus Oberhumer, Laszlo Molnar & John Reiser Apr 27th 2007 File size Ratio Format Name -------------------- ------ ----------- ----------- 28160 <- 6384 58.18% win32/pe malware.exe Unpacked 1 fle. Figure 2. Objet de l?e-mail Figure 1. File insPEctor hakin9 Nº 10/2007 www.hakin9.org Pratique 40 jamais le programme mais utilisons divers désassembleurs comme : Win32Dasm ou IDA Pro pour étudier sans risque le contenu du fchier binaire. Nous utiliserons ces outils pour analyser le vers NetSky-p dans les sections suivantes. Packers et unpackers Il y a un format de fchier commun pour les exécutables sur la plate- forme MS Windows, appelé format PE. Chaque fchier exécutable sur un système MS Windows est à ce format de fchier. Habituellement l?auteur du code malveillant utilise différentes techniques pour rendre l?analyse plus compliquée en utilisant des techniques de base. Une approche commune pour beaucoup d?auteurs de malwares est d?utiliser ce qui est mieux connu comme : des packers exécutables qui réduisent la taille de l?exécutable et changent le contenu en utilisant des algorithmes spécifques d?obfus- cation. Dans ce cas un désassem- blage classique ne sera pas effcace. Parmi les packers de fchiers les plus utilisés citons : UPX et AS Pack. Pour déterminer le packer de fchier nous pouvons utiliser l?outil : File insPector XL. Comme son nom l'indique il inspec- tera le fchier à la recherche de sig- natures de packers communes à partir desquels il pourra facilement détecter le packer utilisé. Il est ensuite néces- saire d?unpacker les fchiers pour la phase d?analyse. Il y a de nombreux outils pour unpacker les fchiers sous environnement protégé. Un tel outil est PEID et un autre est ProcDump. Avec ces outils on peut unpacker la plupart des fchiers de type packer. Parfois les auteurs de malwares rendent plus compliqué la décom- pression un fchier en particulier en obfuscant ses octets de signature dans l?exécutable, pour que les outils mentionnés ci-dessus ne puis- sent détecter les bons packers. Pour outrepasser ce problème des outils comme : ProcDump ont une option d?analyse heuristique, qui fera une analyse heuristique du packer employé. Dans certains cas il faut unpacker manuellement le fichier en question. Un unpacking manuel est un autre thème intéres- sant que nous n?aborderons pas ici par commodité (manque d?es- pace). Dans le cadre de cet article on restera avec les outils mentionnés ci-dessus pour l?unpacking. L?action initiale que nous allons entreprendre est de déterminer si le fchier en cours d?analyse est est de type packer ou non. Pour cela nous utiliserons : File insPEctor XL. Comme vous le voyez à la Figure 1. Cet outil rapporte que le fchier est packagé en utilisant Ultimate Packer for Executables (UPX). UPX est un outil open source disponible gratuitement à téléchargement de- puis Sourceforge.net. Après télé- chargement et installation il peut être exécuté en ligne de commande avec le nom de fchier de notre malware comme argument générant l?aff- chage du Listing 1. Désassembler et identifer des chaînes de données Un fchier exécutable malveillant peut contenir plusieurs chaînes que le programmeur a intégrées durant la phase de développement. De tel- les chaînes peuvent apporter des messages d?erreurs ou peuvent être liés au code. Par exemple si un fchier exécutable envoie des mails alors il peut posséder plusieurs ty- pes de chaînes pour les différents objets comme : RE:Voici la pièce Figure 5. fchier de contamination Figure 4. Extensions de fchiers pièces jointes Figure 3. Messages diffusés Analyse de code malveillant hakin9 Nº 10/2007 www.hakin9.org 41 jointe,++Aucun virus trouvé++ etc. Après avoir unpacké le fchier on doit le désassembler en utilisant un outil comme : Win32Dasm ou IDA Pro pour analyser les chaînes de texte usuelles. Cette analyse nous donnera une idée globale du fonctionnement du fchier. Il y a plusieurs chaînes, que l?on peut déterminer par analyse. Ces chaînes peuvent contenir le corps des e-mails, objet, ou nom du fchier joint, qu?un vers envoie en pièce jointe etc. Maintenant que nous avons un- packé avec succès l?exécutable on peut procéder au désassemblage et effectuer un travail d?investigation approfondi. Effectuons une analyse statique de cet exécutable en utili- sant le désassembleur IDA Pro. La première chose que nous recherche- rons sont les chaînes. Les chaînes au sein d?un exécutable peuvent fournir un ensemble d?informations telles que : l?objet du mail, message, entrées du registre, extensions du fchier et leur nom. L?exemple suivant montre l?objet de l?e-mail qu?utilise le vers NetSky-P lorsqu?il envoie des mails depuis la machine infectée (Figure 2). Objet de l?e-mail La Figure 3 montre les différentes chaînes qu?il possède pour les me- ssages à diffuser. La Figure 4 affche les différents types d?extensions de fchiers que le vers Netsky-P insère dans les pièces jointes envoyées. La Figure 5 montre le nom des fchiers utilisés sur le système infec- té. La Figure 6 illustre quelques unes des entrées registres utilisées par le vers. Basé sur les informations col- lectées jusqu?à présent il est facile d?en déduire que le vers Net-Sky-P envoie des e-mails en utilisant di- verses chaînes dans le champs ob- jet de l?e-mail, de noms de fchiers et d?extensions. En plus de tout cela il stocke plusieurs entrées registres afn d?être exécuté à chaque dé- marrage de l?ordinateur. Analyse Dynamique Dans une analyse dynamique (live) nousdevonsvériferlefonctionnement global et le fonctionnement interne du code actuellement en l?exécutant dans un environnement contrôlé. Ceci nous aide à éliminer les faux-positifs de la phase d?analyse statique. Des auteurs de malwares incluent de façon intentionnelle plusieurs chaînes et fonctions afn d?empêcher l?analyse précise de leur malware (ou incluent du code pour détecter qu?il fonctionne dans les confns d?une machine virtuelle afn de changer son chemin d?exécution) ; de telles Figure 8. Entrée Registre crée par le ver Figure 7. Illustration breakpoint sur chaînes Figure 6. Entrées register utilisées par NetSky-P hakin9 Nº 10/2007 www.hakin9.org Pratique 42 tentatives d?obfuscation peuvent être détectées pendant l?Analyse Dyna- mique. Pour cela on a mis en place 2 environnements de test s?exécutant sous MS Windows XP Professional SP2. Sur la première machine on a installé Ollydbg pour permettre le débogage du vers Net-Sky-P et le deuxième système était connecté au même réseau de sorte que nous puissions surveiller effcacement les diverses activités du vers en temps réel. On a ensuite lancé Wireshark sur les 2 ordinateurs et aussi Reg- Mon, ainsi que FileMon sur le second système infecté. Il est important de noter que vous devez prendre des précautions en manipulant les malwares afn de les conserver uniquement dans l?envi- ronnement de travail. Dans notre cas nous avons choisi un réseau air-gap- ped sans l?accès à nos réseaux de production ou Internet. Beaucoup de gens choisissent le populaire VMWare Suite pour pro- céder à des tests dans les confns d?une machine virtuelle. Il s?agit d?un choix personnel pour l?environnement de test, mais nous vous invitons à en employer un sécurisé. Après avoir préparé l?environnement, on a lancé le débogueur OllyDbg et avons localisé le fchier NetSky.exe. Après cela nous avons mis le point d?arrêt (breakpoint) sur différentes chaînes comme montrées en Figure 7. Dans l?image 7 nous mettons un breakpoint sur la chaîne System\ Current Control Set\ Services\ WksPatch et exécu- tons OllyDebugger. Il s?est arrêté sur celui-ci. Une examination attentive des chaînes confrme les résultats précédents déterminés pendant la phase stati- que de l?analyse. Maintenant nous allons remplacer les breakpoints de départ et utiliser les animations on fy et divers autres options de débogage comme : step in (pas à pas), step out (pas à pas aux appels) pour tracer les différents appels aux API de Win- dows comme : GetInternetConnectio nState() et RegCreateKeyEx(). De cette analyse on peut dé- terminer que le ver créé également diverses tâches pour envoyer des e-mails. Clés de Registre Pour se répandre, un code malveil- lant a besoin d?être lancé d?une façon ou d?une autre, soit en exécutant le fchier malveillant ou en cliquant sur un lien web malveillant ou depuis l?option autorun disponible dans le registre Windows. Les malwares mo- dernes utilisent diverses techniques de social engineering afn de mani- puler les utilisateurs à non seulement l?exécuter la première fois mais aussi pour l'exécuter à chaque fois que l?or- dinateur démarre. Ils créent à cette fn des entrées registre. Pour analyser un tel comporte- ment on utilisera un outil appelé : Re- gMon de Sysinternals. Il affchera l?en- semble des entrées registre utilisées par un programme. Pour analyser le vers NetSky-P nous l?avons exécuté et avons vérifé les multiples accès au registre dans les logs de RegMon. Il essaye d?accéder à plusieurs clés mentionnées précédemment. Un détail que nous avons observé était que le vers créait une nouvelle Figure 10. Fichier décodé Figure 9. Base64 FileMon Analyse de code malveillant hakin9 Nº 10/2007 www.hakin9.org 43 entrée au registre via HKEY_LOCAL_ MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Run comme affché à la Figure 8. Nous avons en- suite analysé le dossier Windows et y avons trouvé 2 nouveaux fchiers AVBgle.exe et Base64.tmp. FileMon Du code malveillant peut se modifer ou se répliquer en utilisant différents noms dans plusieurs endroits. Il peut également télécharger et exécuter d?autres fchiers comme des : backdoors depuis un lieu dis- tant et le placer sur le système in- fecté. Afn d?étudier ce comportement, on peut utiliser un outil nommé Fi- leMon également disponible chez Sysinternals. Pour continuer l?analyse nous avons redémarré le système de test infecté et avons lancé RegMon, FileMon et Wireshark de nouveau. Nous avons vérifé les logs de File- Mon et le point commun que nous avons trouvé était qu?il accédait continuellement à un fchier nommé Base64.tmp. Comme son nom le suggerait, on pouvait supposer que le fchier a été crypté avec l?algorith- me Base64. Par conséquent nous avons utilisé un décodeur base64 pour déterminer que notre fchier était bien : NetSky-P. Base64 FileMon La fgure 10 montre le fchier dé- codé qui était au format base64. En regardant le contenu il est clair qu?il s?agit d?un fchier exécutable étant donné qu?il possède l?en-tête MZ qui est un en-tête standard pour les f- chiers exécutables sur la plateforme Windows. Capture de Paquets et Analyse La plupart des malwares dans la nature actuellement essayient de contaminer d?autres machines sur le réseau ou bien font partie des botnets et envoient ainsi beaucoup de spam depuis des machines in- fectées ou bien peuvent également envoyer beaucoup d?informations depuis des systèmes compromis comme les habitudes de navigation des utilisateurs, mots de passe, dé- tails de comptes bancaires etc. Les malwares peuvent également être utilises pour lancer des attaques DDoS sur Internet. Pour détecter cela on doit utili- ser un Sniffer de paquets comme Wireshark qui peut capturer le traf- fc réseau passant par la machine infectée. Basée sur l?analyse des données capturée, on peut déter- miner une variété de détails. Par exemple s?il s?agit d?un botnet : quels sont les instructions de con- trôle, depuis quels serveurs il télé- charge les fchiers et quel type de spam il envoie. Nous avons ensuite décidé de sauvegarder le fchier décodé sous : decoded.exe et de l?ouvrir avec IDA Pro pour investigation. Depuis notre poste de travail d?analyse, nous avons remarqué que : AVBgle.exe scannait le fchier index.dat dans le dossier Temporary Internet Files sur le sys- tème infecté. Ceci est intéressant et permet de déduire que celui-ci envoyait aléatoirement beaucoup d?e-mails grâce aux adresses mails trouvées dans ce répertoire. Ce comportement est exhibé dans le paquet de type : dump mon- tré à la Figure 11. Une analyse des paquets plus précise est illustrée à la Figure 12. Dans les circonstances ac- tuelles nous avons décidé d'exécuter une analyse des paquets du ver. Nous avons noté qu'au début il essayait d'exécuter plusieurs requêtes DNS pour des serveurs externes tels que Yahoo!, AOL, et Hotmail. Après ceci, il envoyait des mails avec divers objets, noms de fchiers, comme présenté précédemment. La Figure 13 en est une illustration. Identifer les Algorithmes de Réplication Les malwares ne fonctionnent pas dans le vide. Pour s?accroître ils doi- vent engendrer plusieurs instances du même code, pouvant travailler conjointement sous le contrôle d?une personne pour réaliser des activités nocives. Par conséquent il essaie sans interruption d?infecter (ou réin- fecter selon les cas) les autres machi- nes sur réseau local ou sur Internet. Les malwares utilisent une variété de Figure 12. Analyse des paquets plus précise Figure 11. Paquet Dump hakin9 Nº 10/2007 www.hakin9.org Pratique 44 techniques pour y parvenir. En voici les exemples : ? l?envoi de mails avec une pièce jointe possédant du code malveil- lant, ? exploiter les logiciels de l?ordina- teur en utilisant des vulnérabilités ou failles de type : 0day, ? exploiter les vulnérabilités du système d?exploitation lui-même. Afn d?identifer avec exactitude l?al- gorithme de réplication utilisé on doit exécuter le code malveillant dans un environnement contrôlé et tracer le code au sein d?un débogueur. Pour ce type d?analyses on utilisera Ol- lydbg pour identifer l?algorithme de réplication. Dans certains cas il n?est pas pos- sible d?identifer l?algorithme avec le débogueur seul. Dans ces scénarios on doit combiner d?autres techniques telles que la capture de paquets afn que nous puissions déterminer si le malware utilise un exploit connu ou non ou d?autres comportements vi- sibles. Vu l?analyse précédente il est évident que le ver NetSky-P est un mail bomber qui se replique au sein d?un e-mail, en attente d?utilisateurs confants pour l?ouvrir. Il utilise plusieurs techniques de social engineering pouvant tromper les utilisateurs débutant 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 méfaits alors il est possible d?infecter la machine en question. Conclusion Le code malveillant a toujours été une menace pour les utilisateurs. De nos jours, avec Internet, les malwares sont intensément employés pour générer du trafc sur les sites, générer des liens invalides qui conduisent l?utilisateur à des sites infectés, lancer des atta- ques de Deni de Service (DDoS) pour voler des données personnelles et con- fdentielles. Ils emploient maintenant une variété de techniques telle que les exploits dit 0days pour permettre leur réplication plus rapidement. En utilisant ces techniques, on peut analyser le fonctionnement interne du code malveillant. Acquérir de telles compétences demande du temps, de l?intuition, de la patience et du dévouement. On s?aperçoit fnalement que cette analyse n?est pas complète, notre but étant de donner une vision globale sur l?utilisation de différents outils pour l?analyse de malwares et des techniques pour analyser le code malveillant d?aujourd?hui. l À propos des auteurs Hardik Shah se spécialise dans la Sécurité des Réseaux, le Reverse Engineering et l?Analyse de code malveillant. Il s?intéresse à la sécurité web et à celle des applica- tions. On peut le joindre à l'adresse : hardik05gmail.com Anthony L. Williams est Architecte en Sécurité Informatique pour IRON::Guard Security, LLC où il conduit des test d'intrusion (Pen Test), évaluations de vulnérabilités, audits et réponse en cas d?in- cident. On peut le joindre à l'adresse : awilliamsironguard.net. Références et Autres Lectures ? http://www.smallbiztrends.com/2007/06/top-fve-small-business-internet-security- threats.html ? http://www.offensivecomputing.net/ ? http://www.viruslist.com/ ? http://vx.netlux.org/ ? http://hexblog.com/ Outils ? VMWare (Virtualization Software) ? http://www.vmware.com/ ? IDA Pro/Freeware (Dissembler) ? http://www.datarescue.com/ ? Ollydbg (Popular Ring 3 Debugger) ? http://www.ollydbg.de/download.htm ? UPX (Ultimate Packer for Executables) ? http://upx.sourceforge.net/ ? ImpREC(Import Reconstruction for PE fles) ? http://securityxploded.com/ download.php#imprec ? Windows Sysinternals(FileMon,RegMon) ? http://www.microsoft.com/technet/ sysinternals/default.mspx Figure 13. Action du ver

PARTAGER SUR

Envoyer le lien par email
801
READS
2
DOWN
0
FOLLOW
3
EMBED
DOCUMENT # TAGS
#virus  #code malveillant  #maalicious code 

licence non indiquée


DOCUMENT # INDEX
Informatique 
img

Partagé par  securedocsangelina

 Suivre

Auteur:
Source:Non communiquée