SSTIC08 Article Lagadec Dynamic Malware Analysis Dummies

Published on June 2016 | Categories: Documents | Downloads: 53 | Comments: 0 | Views: 260
of 15
Download PDF   Embed   Report

Comments

Content

Dynamic Malware Analysis for Dummies
Philippe Lagadec
NATO/NC3A philippe.lagadec(`)nc3a.nato.int a

R´sum´ Cet article d´crit diff´rentes m´thodes pour effectuer l’analyse de logiciels male e e e e veillants (malware), plus particuli`rement sur les plate-formes Windows. Il se penche en pare ticulier sur l’analyse dynamique, qui consiste a ex´cuter le code malveillant sur un syst`me e e sp´cialement configur´ pour enregistrer toutes ses actions. Cela permet d’obtenir rapidement e e des r´sultats pour d´terminer la nature du logiciel malveillant et d´cider comment r´agir. e e e e L’article montre ´galement comment construire un laboratoire d’analyse dynamique simple e et a moindre coˆt, d´taille la m´thode employ´e et propose quelques pistes pour aller plus ` u e e e loin.

1

Introduction

L’analyse de codes malveillants (malware analysis) est aujourd’hui devenue une activit´ tr`s e e importante dans le cadre de la gestion des incidents de s´curit´ informatique. Les organisations e e qui prennent s´rieusement en compte la s´curit´ de leurs r´seaux sont souvent confront´es a des e e e e e fichiers suspects captur´s grˆce ` leurs antivirus, IDS et syst`mes de supervision s´curit´, ou encore e a a e e e lors d’analyses forensics. Il est alors n´cessaire d’analyser rapidement ces fichiers pour d´terminer e e s’il s’agit de code malveillant connu, d’une attaque cibl´e ou bien d’une fausse alerte. Connaˆ le e ıtre comportement d’un code malveillant est capital pour d´terminer si d’autres machines sur le r´seau e e peuvent ˆtre compromises ou non, et pour d´cider comment r´agir. e e e L’analyse statique de code ex´cutable par d´sassemblage a beaucoup de succ`s et permet d’obtee e e nir d’excellents r´sultats, cependant la complexit´ de ce processus demande un long apprentissage, e e beaucoup de temps et d’´nergie. De plus il n’est pas rare de rencontrer des codes malveillants e prot´g´s contre le d´sassemblage et le d´bogage, ce qui peut ralentir consid´rablement l’analyse. e e e e e L’analyse dynamique de code malveillant est une autre m´thode qui consiste ` faire ex´cuter un e a e ´chantillon de code sur une plate-forme con¸ue pour observer toutes ses actions. Dans la plupart e c des cas, c’est une approche tr`s efficace et rapide pour d´terminer la nature et le comportement du e e code malveillant, au moins dans un premier temps. Cet article d´crit comment il est possible d’installer facilement et ` moindre coˆt un modeste e a u laboratoire d’analyse dynamique de code malveillant, mˆme sans comp´tences en d´sassemblage. e e e

2

Malware, code malveillant, maliciel

Il existe plusieurs sortes de codes malveillants, dont les d´finitions sont relativement bien connues e mais peuvent varier : Virus, vers, chevaux de Troie, portes d´rob´es (backdoors), bombes logiques, e e keyloggers, espiogiciels (spyware), rootkits, botnets, ... (cf. [1] par exemple) Au-del` de ces d´finitions, certaines caract´ristiques sont particuli`rement importantes pour a e e e l’analyse de code malveillant, notamment :

2

Actes du symposium SSTIC08

– – – – – –

capacit´ ` se r´pliquer ea e techniques de camouflage connexion r´seau externe pour contrˆle ` distance e o a protection contre le d´sassemblage et/ou le d´bogage e e d´tection de machine virtuelle e nature du code malveillant : fichier ex´cutable, document malform´ contenant un exploit, e e script dans une page web, ...

3
3.1

M´thodes d’analyse de code malveillant e
Objectifs

Voici quelques-uns des objectifs habituels d’une analyse de code malveillant : – V´rifier si un fichier suspect est effectivement malveillant ou s’il s’agit d’un faux positif. e – D´terminer s’il s’agit d’un code malveillant g´n´rique (connu ou non) ou bien d’une attaque e e e cibl´e. e – Obtenir des informations sur la source de l’attaque. – D´terminer toutes les actions du code malveillant sur le syst`me local : fichiers cr´´s/modifie e ee ´s/supprim´s, processus lanc´s/stopp´s, cl´s de registre, services install´s, ... e e e e e e – D´terminer toutes ses actions sur le r´seau : connexions sortantes, r´plication, serveur en e e e ´coute, ... e – D´terminer ses “fonctionnalit´s” malveillantes : virus, ver, cheval de Troie, porte d´rob´e, e e e e bombe logique, rootkit, ´coute clavier ou r´seau, t´l´chargement, relais de spam, d´ni de e e ee e service, botnet, ... – D´terminer quelles sont les machines cibl´es et lesquelles pourraient ˆtre vuln´rables ou d´j` e e e e ea compromises sur le r´seau. e – Fournir des informations pour mieux cibler une ´ventuelle analyse forensics d’autres machines e (noms de processus, empreintes MD5 de fichiers, cl´s de registre, mots cl´s, ...) e e – D´cider quelles actions entreprendre pour g´rer l’incident. e e – Comprendre comment la compromission s’est d´roul´e afin d’am´liorer les protections ` l’avee e e a nir. Pour tout cela il existe plusieurs m´thodes compl´mentaires d’analyse de code malveillant : e e 3.2 Analyse statique de fichiers

L’analyse statique de fichiers consiste ` explorer le contenu des fichiers suspects l’aide de divers a outils, dans le but d’extraire le maximum d’informations sans ex´cuter le code malveillant qu’ils e pourraient contenir. A ce stade il s’agit uniquement d’observer le contenu “visible” sans tenter de d´sassembler le code binaire. Le premier outil ` employer dans ce cas est toujours un simple e a afficheur texte/hexad´cimal. e Une analyse directe de ce type permet souvent de r´v´ler beaucoup d’informations utiles grˆce e e a aux chaˆ ınes de caract`res qui apparaissent en clair, aux entˆtes de fichiers, aux m´ta-donn´es, e e e e etc. Il est mˆme parfois possible d’extraire des donn´es camoufl´es par des m´thodes simples (i.e. e e e e “XOR”), sans recourir ` des m´thodes d’analyse sophistiqu´es. Dans le cas de document malform´s a e e e (par exemple des exploits pour MS Office), des outils de “file carving” [2] peuvent souvent extraire les fichiers ex´cutables malveillants stock´s ` l’int´rieur. e e a e Voici quelques exemples d’outils typiques employ´s dans ce type d’analyse : e

Actes du symposium SSTIC08

3

– – – – – – – Voici – – – – – – –

Afficheur ou ´diteur texte/hexad´cimal e e Antivirus Scanner d’exploits connus Outils pour rechercher des motifs ou des mots-cl´s particuliers e Outils d’analyse d’ex´cutables e Explorateur de documents OLE (MS Office) Outils de File carving le type d’informations utiles qu’il est souvent possible d’extraire : Types de fichiers Pr´sence de code malveillant connu ou non e Adresses IP, URLs, noms de domaines ou de machines (cibles du code malveillant, serveur de t´l´chargement ou bien connexion retour vers un serveur de contrˆle) ee o Date de cr´ation des fichiers, auteur, organisation et autres informations (m´tadonn´es dans e e e les documents) Encodages utilis´s (qui peuvent trahir une provenance exotique) e Pr´sence possible de shellcodes (“NOP sleds” : typiquement une longue suite d’octets 0x90) e Mots cl´s particuliers qui peuvent indiquer une attaque cibl´e : nom de l’entreprise, noms de e e serveurs, d’applications ou d’utilisateurs sp´cifiques, mots de passe internes, etc. e D´sassemblage e

3.3

Le d´sassemblage statique consiste ` ouvrir un fichier ex´cutable dans un outil comme IDA e a e Pro [19] afin de retrouver le code assembleur correspondant au contenu binaire du fichier. Certains produits proposent mˆme des fonctions de d´compilation pour reconstruire (dans une certaine e e mesure) le code source de haut niveau employ´ au d´part (en g´neral du C). e e e A la lecture du code assembleur il est alors possible de deviner le comportement de chaque partie du programme, pour en d´duire toutes les fonctionnalit´s. e e L’avantage principal de cette m´thode est que (en th´orie) tous les chemins d’ex´cution du e e e programme sont visibles “` plat”. Il est donc possible d’analyser l’int´gralit´ du code y compris a e e certaines parties qui ne s’ex´cutent que sous des conditions particuli`res. e e Cette m´thode permet ´galement de trouver d’´ventuelles routines de camouflage souvent eme e e ploy´es pour masquer les donn´es “sensibles” du code malveillant : mots de passe, adresses IP ou e e URLs de serveurs de contrˆle par exemple. o Cependant le d´sassemblage a quelques inconv´nients : e e – Il requiert un op´rateur tr`s comp´tent, form´ pour lire et analyser du code assembleur, qui e e e e connaˆ bien la correspondance entre ce code, les langages de haut niveau et les appels syst`me. ıt e – Une analyse compl`te d’un fichier peut demander beaucoup de temps (de plusieurs jours ` e a plusieurs semaines) et d’´nergie, en fonction de la taille et de la complexit´ du code. e e – De nombreux codes malveillants sont prot´g´s contre le d´sassemblage ` l’aide de techniques de e e e a compression ou de chiffrement (packers, encrypters). Ces protections ne sont jamais parfaites, mais certaines peuvent demander beaucoup d’efforts et ralentissent l’analyse. 3.4 D´bogage e

Le d´bogage consiste ` ex´cuter pas-`-pas le code malveillant en employant un d´bogueur e a e a e (comme Ollydbg, SoftIce, Syser Debugger ou encore Immunity Debugger), afin d’analyser son comportement en suivant le code assembleur, les registres du processeur et les donn´es en m´moire. e e

4

Actes du symposium SSTIC08

C’est une m´thode souvent employ´e en compl´ment du d´sassemblage, utile pour mieux come e e e prendre certaines parties du code ou pour contourner certaines protections. Comme pour le d´sassemblage, cette m´thode n´cessite un op´rateur tr`s comp´tent, et les e e e e e e auteurs de code malveillant emploient ´galement des techniques pour d´tecter ou perturber le e e d´bogage. e 3.5 Analyse dynamique, analyse comportementale

A l’inverse des m´thodes statiques, l’analyse dynamique consiste ` ex´cuter r´ellement le code e a e e malveillant dans un environnement ad´quat afin d’observer toutes ses actions et d’en d´duire son e e comportement global. Ce type de m´thode est parfois appel´e analyse comportementale, ou encore e e “dynamic malware analysis”, “runtime analysis”, “live analysis” ou “behavioral analysis” en anglais. Cette m´thode apporte plusieurs avantages par rapport au d´sassemblage statique : e e – Elle peut r´v´ler le comportement d’un code malveillant dans un temps tr`s court. Souvent e e e quelques minutes sont suffisantes pour obtenir les principaux r´sultats. e – Elle n’est pas sensible aux techniques de protection anti-d´sassemblage et anti-d´bogage. e e – Elle ne requiert pas autant de connaissances en assembleur que le d´sassemblage ou le d´bogage. e e Cependant, l’analyse dynamique n’est pas efficace dans tous les cas : – Si certaines fonctionnalit´s du code malveillant n´cessitent des conditions ou des ´v´nements e e e e particuliers pour s’ex´cuter, elles peuvent ne pas ˆtre d´tect´es lors de l’analyse. e e e e – Certains codes malveillants peuvent avoir ´t´ con¸us pour d´tecter les outils d’observation et ee c e ne pas s’ex´cuter dans ce cas. e Au final ce type de m´thode est tr`s efficace pour analyser rapidement des codes malveillants e e relativement simples, dont le comportement est automatique et reproductible. C’est par exemple le cas typique d’un cheval de Troie qui s’installe sur une machine et qui cherche ensuite ` se connecter a a ` l’ext´rieur pour recevoir des commandes, ou celui d’un ver qui cherche ` infecter d’autres machines e a vuln´rables sur le r´seau. e e Dans le cas de codes malveillants plus complexes, l’analyse dynamique constitue essentiellement une premi`re ´tape rapide, qui est souvent suivie d’un d´sassemblage/d´bogage lorsque cela est jug´ e e e e e n´cessaire. e 3.6 L´galit´ de l’analyse de codes malveillants e e

Dans la loi fran¸aise, les articles concernant la r´tro-conception ne couvrent pas explicitement le c e cas de l’analyse de codes malveillants. En th´orie cette activit´ n’est donc pas autoris´e, mˆme si elle e e e e est a priori indispensable, notamment chez les ´diteurs d’antivirus et autres IDS/IPS. Il ne semble e cependant pas exister de jurisprudence, et on voit mal un auteur de code malveillant poursuivre quelqu’un en justice pour avoir analys´ son oeuvre. e En revanche, la r´tro-conception est autoris´e dans le but d’assurer l’int´rop´rabilit´ entre logie e e e e ciels. On pourrait donc consid´rer que cela couvre l’analyse de codes malveillants, puisqu’il s’agit e justement d’assurer leur NON -interop´rabilit´ avec les syst`mes prot´g´s ! ;-) e e e e e

4

Un laboratoire d’analyse dynamique de codes malveillants

Ce chapitre d´crit comment construire simplement et ` coˆt r´duit un laboratoire d’analyse de e a u e codes malveillants pour effectuer des analyses statiques et dynamiques, en utilisant essentiellement des outils gratuits ou libres.

Actes du symposium SSTIC08

5

L’objectif principal est d’analyser soit des fichiers ex´cutables soit des documents malform´s, sur e e une plate-forme Microsoft Windows. Il serait bien sˆr possible cette approche ` d’autres syst`mes. u a e Le laboratoire n´cessite uniquement deux ordinateurs reli´s par un r´seau ind´pendant (i.e. un e e e e cˆble crois´ ou un petit concentrateur), appel´s “poste victime” (victim host) et “poste d’observaa e e tion” (monitoring server). Ces deux postes peuvent aussi ˆtre constitu´s de deux machines virtuelles e e sur une seule machine physique. Le poste victime contient le syst`me ou est ex´cut´ le code malveillant, tandis que le poste e e e d’observation permet de simuler une connexion Internet et d’enregistrer toute activit´ r´seau. e e Ce type d’architecture a d´j` ´t´ ´voqu´ dans plusieurs articles comme [3,4,5], on peut le d´signer eae ee e e par le terme “sandnet” par extension du terme classique “sandbox” (bac ` sable). a

4.1

Poste d’observation

Le poste d’observation a deux principales fonctions : – Il enregistre toute activit´ r´seau provenant du poste victime, pour d´tecter les ´ventuelles e e e e tentatives de connexion du code malveillant. – Il permet de simuler une connexion ` Internet afin de placer le code malveillant dans un a environnement o` il peut tenter de se connecter ` des serveurs externes. Pour cela il peut ˆtre u a e n´cessaire de simuler divers services comme DNS, HTTP, SMTP, FTP ou encore IRC. Il faut e ´galement pouvoir simuler n’importe quelle adresse IP sur demande du code malveillant. e Bien sˆr ce serveur ne doit pas ˆtre vuln´rable vis-`-vis du code malveillant : il doit ˆtre suffisamment u e e a e durci, s´curis´ et maintenu ` jour. Il est recommand´ d’employer un syst`me d’exploitation diff´rent e e a e e e du poste victime pour limiter les risques si jamais le code malveillant emploie un “zero-day” pour se r´pliquer. e Il est possible d’employer des outils de d´tection d’intrusion comme Snort [20] ou Bro [21] pour e d´tecter les tentatives d’attaque r´seau connues. Dans ce cas il est utile d’employer les signatures e e Bleeding Threats [22] pour am´liorer la d´tection de malware connus, comme l’indique [23]. e e 4.2 Poste victime

Le poste victime est l’ordinateur o` le code malveillant est lanc´. Il doit si possible contenir le u e mˆme syst`me d’exploitation et les mˆmes applications que le syst`me ` prot´ger ou que celui o` le e e e e a e u

6

Actes du symposium SSTIC08

sp´cimen a ´t´ captur´. Par exemple si le fichier suspect est un classeur Excel d´tect´ sur un poste e ee e e e Windows XP SP2 avec MS Office XP, alors le poste victime devrait avoir la mˆme configuration. e Au contraire des postes habituels, le but ici est de pouvoir ex´cuter le code malveillant sans le e bloquer. Il est donc n´cessaire (sauf cas particulier) de d´sactiver ou d´sinstaller toute protection e e e qui pourrait perturber l’analyse : – antivirus (` l’acc`s) a e – pare-feu personnel – logiciel de scan automatique – HIPS (syst`me de pr´vention d’intrusion local, maintenant int´gr´ ` de nombreux antivirus e e e ea et pare-feux personnels) – param`tres de s´curit´ trop restrictifs e e e La configuration r´seau du poste victime doit aussi ˆtre adapt´e pour diriger toute activit´ r´seau e e e e e ou Internet vers le poste d’observation : – Passerelle par d´faut e – Serveur DNS – Fichier “hosts” – Proxy web S’il est n´cessaire d’observer les capacit´s d’auto-r´plication du code malveillant, il est possible e e e d’´tendre l’architecture r´seau en ajoutant un ou plusieurs postes victimes suppl´mentaires connect´s e e e e au mˆme concentrateur. e 4.3 Virtualisation

L’architecture de test peut ˆtre install´e soit sur deux machines physiques, soit sur deux machines e e virtuelles. Aucune des deux solutions n’est id´ale pour couvrir tous les cas de figure, il est donc e utile de pr´voir les deux possibilit´s. e e Avantages de la virtualisation : – Coˆt et flexibilit´ : une seule machine physique permet de simuler deux machines ou plus, et u e de construire diff´rentes architectures r´seau suivant les besoins. e e – S´curit´ : les machines virtuelles peuvent ˆtre connect´es par un r´seau virtuel totalement e e e e e ind´pendant de tout r´seau op´rationnel, sans risque d’infecter d’autres machines. e e e – Rapidit´ et efficacit´ : une machine virtuelle peut ˆtre stopp´e, restaur´e et red´marr´e en e e e e e e e quelques secondes. – Facilit´ d’emploi : n’importe quel ´tat de fonctionnement peut ˆtre sauvegard´ dans un “snape e e e shot”en quelques secondes. Il est ensuite tr`s simple de restaurer tout snapshot pr´c´dent, et e e e de comparer plusieurs ´tats entre eux. e – Les machines virtuelles peuvent ˆtre facilement copi´es, dupliqu´es et modifi´es pour constie e e e tuer une biblioth`que de toutes les versions d’un syst`me d’exploitation ou d’une application. e e Inconv´nients de la virtualisation : e – Il existe de nombreuses techniques connues utilisables par un code malveillant pour d´tecter e s’il s’ex´cute dans une machine virtuelle, comme par exemple [6]. Dans ce cas il peut ´viter e e de s’ex´cuter ou perturber l’analyse. e

Actes du symposium SSTIC08

7

– Certains environnements de virtualisation peuvent ˆtre vuln´rables et permettre ` un code e e a malveillant sp´cifiquement con¸u de “s’´chapper” d’une machine virtuelle pour compromettre e c e le syst`me hˆte. Il est donc utile de prendre quelques pr´cautions lors de toute ex´cution de e o e e code malveillant. Avantages des machines physiques : – Au contraire des machines virtuelles, tout code malveillant devrait normalement s’ex´cuter e sans perturbation sur une machine physique, tant qu’il n’est pas con¸u pour d´tecter les outils c e d’observation employ´s. e – Il est tr`s simple de s’assurer que le r´seau physique constitu´ des quelques machines de test e e e est bien d´connect´ de tout autre r´seau. e e e Inconv´nients des machines physiques : e – Il est n´cessaire d’employer des outils de sauvegarde/restauration d’images disque ` chaque e a analyse, et ` chaque fois qu’un ´tat particulier doit ˆtre sauvegard´. Cette tˆche prend beaua e e e a coup de temps et peut vite se r´v´ler p´nible ` la longue, mˆme s’il est possible de l’automatiser e e e a e en partie. – Il n’est pas possible de “geler” le syst`me pour analyse et reprendre l’ex´cution sans que le e e code malveillant puisse s’en apercevoir. Configuration s´curis´e de VMware : VMware Workstation est un des outils de virtualisae e tion les plus utilis´s aujourd’hui pour l’analyse de code malveillant. Il a fait l’objet de nombreuses e recherches dans ce domaine et il existe de nombreux moyens connus pour d´tecter son utilisation dee puis une machine virtuelle, par exemple [6]. Il est cependant possible de se prot´ger contre certaines e m´thodes de d´tection en modifiant simplement quelques param`tres des machines virtuelles : e e e – D´sactiver les options d’acc´l´ration e ee – D´sactiver ou d´sinstaller les VMware tools e e – D´sactiver les fonctions de presse-papier, drag&drop et dossiers partag´s e e – D´sactiver toute connexion r´seau depuis une VM vers une machine physique (Host-only, e e Bridged ou NAT) – D´sactiver la connexion automatique de p´riph´riques USB e e e – Les lecteurs CD/DVD ne doivent pas ˆtre connect´s au d´marrage, sauf s’ils correspondent ` e e e a une image ISO 4.4 Similitude avec les pots de miel (honeypots)

L’analyse dynamique de codes malveillants a beaucoup de points communs avec la technique des pots de miel (honeypots, cf. [25]), puisque dans les deux cas il s’agit de faire ex´cuter du code e malveillant dans un environnement contrˆl´ pour observer son comportement. Il devrait donc ˆtre oe e possible de r´utiliser certains outils de type honeypot pour rendre l’analyse de code malveillant plus e efficace. On peut tout de mˆme noter quelques diff´rences importantes : e e – Un honeypot est g´n´ralement con¸u pour ˆtre connect´ ` Internet afin d’attirer d’´ventuels e e c e ea e attaquants. Un syst`me d’analyse de malware est plus souvent d´connect´ de tout r´seau, il e e e e doit donc simuler l’´quivalent d’une connection Internet. e

8

Actes du symposium SSTIC08

– Un honeypot peut g´n´rer beaucoup d’activit´ et capturer beaucoup de fichiers dont la plupart e e e n’est pas utile. Une fonction primordiale est donc de pouvoir d´tecter automatiquement (ou e pas) ce qui est r´ellement int´ressant et ce qui ne l’est pas. A l’inverse, un fichier ex´cut´ sur e e e e un syst`me d’analyse est d´j` suspect, il n’y a donc pas besoin d’effectuer ce tri parmi de e ea nombreux fichiers. Il est donc utile de r´utiliser et adapter certaines fonctionnalit´s des honeypots actuels, notamment e e les services syst`me et r´seau qui permettent de simuler un syst`me vuln´rable r´aliste et enregistrer e e e e e toutes les actions du code malveillant (cf. [26,28]).

5

Outils

Voici une liste (non exhaustive) d’outils permettant de construire un laboratoire d’analyse de codes malveillants. Cette liste contient essentiellement des logiciels gratuits ou libres. 5.1 – – – – Sur le poste d’observation Un outil de capture r´seau : Wireshark, tcpdump ou ´quivalent. e e En option un outil de d´tection d’instrusion r´seau : Snort, Bro. e e Un outil de scan de ports : nmap ou ´quivalent. e Un ´mulateur de serveur DNS pour rediriger toutes les requˆtes vers le poste d’observation : e e pyminifakedns [30], Malcode Analysis Pack [29] ou encore fauxdns.pl [35]. – Divers ´mulateurs de services r´seau (HTTP, SMTP, FTP, POP3, IRC, ...) permettant d’ene e registrer toutes les actions du code malveillant : fauxservers [35], scripts Honeyd [26] ou par exemple des scripts adapt´s bas´s sur les serveurs fournis en standard avec Python (HTTPe e Server, smtpd) ou Perl. 5.2 – – – – – – – – – – Sur le poste victime Afficheur ou ´diteur texte/hexad´cimal e e Antivirus : plusieurs si possible, avec d´tection “` l’acc`s” d´sactiv´e. e a e e e Scanner d’exploits connus : OfficeCat [7], Fess [8] Outils pour rechercher des motifs ou des mots-cl´s particuliers : grep, reScan [18], scripts e maison Outils d’analyse d’ex´cutables : PEiD [9], pefile [10], Dependancy Walker [11], Scanbin [12] e Explorateur de documents OLE (MS Office) : SSView [16], OleFileIO [17] File carving : Hachoir-subfile [13], Foremost [14], Scalpel [15] Process Monitor, Process Explorer, Autoruns, Strings [31] SysAnalyzer [29] interpr´teurs Python, Perl ou tout autre langage de script pour automatiser certaines actions e r´p´titives. e e

6
6.1

M´thodologie d’analyse e
Pr´paration e

Tout d’abord il est n´cessaire de mettre ` jour tous les outils contenant des signatures avant e a chaque analyse, en particulier les antivirus, IDS, ainsi qu’OfficeCat et Fess.

Actes du symposium SSTIC08

9

6.2

Analyse statique de fichiers

Cette phase de l’analyse consiste ` extraire toutes les informations possibles des fichiers suspects a sans avoir ` les ex´cuter ou ` les ouvrir dans l’application associ´e. a e a e Comme indiqu´ pr´c´demment, une bonne pratique est toujours de commencer par ouvrir un e e e fichier dans un ´diteur hexad´cimal, afin de se faire une premi`re id´e rapide sur sa nature et son e e e e contenu r´els. e Analyser un fichier ex´cutable : e 1. Tester le fichier avec tous les antivirus disponibles, pour v´rifier s’il s’agit d’un code malveillant e connu ou d’une variante. Si oui, consulter les d´tails fournis par les ´diteurs antivirus. La plupart e e des antivirus fournissent une interface ligne de commande permettant de scripter l’analyse. 2. D´tecter si le fichier est compress´ ou chiffr´ : PEiD pour d´tecter un packer connu, pefile e e e e pour calculer l’entropie des diff´rentes sections sinon. Une entropie ´lev´e (entre 7 et 8) est e e e g´n´ralement signe d’une section compress´e ou chiffr´e. e e e e 3. Observer les noms de section et les valeurs de l’entˆte PE (pefile, scanbin) : Des valeurs non e usuelles peuvent ´galement trahir un packer. e 4. Extraire toutes les chaˆ ınes en clair (Strings). 5. Rechercher des motifs ou mots-cl´s int´ressants (grep, reScan) : adresses IP, adresses e-mail, e e noms de domaines, URLs, noms de fichiers ex´cutables ou particuliers, noms de fonctions e Win32/JavaScript/VBScript particuli`res, etc. e 6. Rechercher des mots-cl´s li´s ` l’entreprise, qui pourraient indiquer une attaque cibl´e : nom de e e a e l’entreprise, noms de projets, de divisions internes, de personnels, de serveurs ou de machines internes, etc. 7. Tester en s´rie divers algorithmes de camouflage simples du style XOR ou d´calage, en faisant e e varier la cl´ et en recherchant les mˆmes motifs que pr´c´demment. Dans la pratique beaucoup e e e e d’auteurs de code malveillant ne sont pas des experts en cryptographie, heureusement pour nous. ;-) Analyser un document malform´ : Ces derni`res ann´es il est devenu de plus en plus courant e e e de d´tecter des codes malveillants camoufl´s dans des documents malform´s. Ces fichiers peuvent e e e ˆtre de divers types : MS Office, JPEG, GIF, archives, etc. Ils contiennent en g´n´ral un exploit core e e respondant a une vuln´rabilit´ dans un logiciel courant, qui d´clenche un shellcode de taille plus ou ` e e e moins r´duite. Ce shellcode peut se suffire a lui-mˆme, mais il s’agit souvent d’un code interm´diaire e ` e e pour activer un fichier ex´cutable plus ´volu´. Ce fichier ex´cutable se trouve g´n´ralement stock´ e e e e e e e dans le mˆme document, ou bien il doit ˆtre t´l´charg´ depuis un serveur sur Internet. Il est ensuite e e ee e ´crit sur le disque pour assurer la persistance du code malveillant, sous forme camoufl´e ou non. e e Voici un exemple de m´thodologie pour analyser un document suspect : e 1. Tester le fichier avec tous les antivirus disponibles, pour v´rifier s’il contient un code malveillant e connu ou une variante. Certains antivirus poss`dent des signatures g´n´riques pour d´tecter la e e e e plupart des exploits connus, mais dans la pratique la couverture n’est pas toujours aussi efficace qu’on pourrait l’esp´rer... (cf. [32]) e

10

Actes du symposium SSTIC08

2. Pour un document MS Office : explorer la structure OLE et les m´ta-donn´es (SSView, OleFie e leIO), d´tecter les ´ventuelles erreurs dans la structure OLE (OleFileIO). Ces outils permettent e e ´galement d’extraire les flux OLE internes s’il s’agit de fichiers camoufl´s ` l’int´rieur du doe e a e cument. Les m´ta-donn´es r´v`lent parfois des informations utiles (date de cr´ation, auteur, e e e e e soci´t´), car les auteurs de malware peuvent aussi oublier de nettoyer leurs documents... ee 3. D´tecter certains exploits connus (OfficeCat, Fess). e 4. Rechercher des motifs ou mots-cl´s int´ressants (grep, reScan) : comme pour les fichiers ex´e e e cutables, en y ajoutant la d´tection de s´ries de NOPs (0x90 par exemple) qui accompagnent e e souvent un exploit. 5. Utiliser des outils de file carving (hachoir-subfile, foremost, scalpel) pour extraire tous les fichiers ex´cutables qui pourraient ˆtre stock´s en clair dans le document. Comme pour les ex´cutables e e e e il peut ˆtre utile de refaire ce test apr`s divers d´codages simples (XOR par exemple). e e e 6.3 Analyse dynamique

Cette seconde phase consiste a ex´cuter ou ouvrir le document afin de d´clencher le code mal` e e veillant et observer/enregistrer toutes ses actions. Pr´paration : e 1. S’assurer que le poste victime et le poste d’observation sont dans un ´tat stable et sain. Si e besoin, restaurer une image compl`te du syst`me. e e 2. Sauvegarder une image la plus compl`te possible du syst`me initial du poste victime, qui servira e e de r´f´rence : soit une image du disque, soit une liste d´taill´e des fichiers du disque (par exemple ee e e “dir C :\ /s /a /o :n ¿list.txt”) et de la base de registre. On peut ´galement sauvegarder une e liste des empreintes de fichiers grˆce ` un outil de type “md5sum”. Cette image peut ˆtre soit a a e obtenue depuis le syst`me e 3. Sauvegarder la liste des processus actifs, des cl´s de registre int´ressantes (Autoruns), des utilie e sateurs, des services Windows, et de toute autre information susceptible d’ˆtre modifi´e par un e e code malveillant. 4. D´marrer les services r´seau ´mul´s sur le poste d’observation. e e e e 5. D´marrer et configurer tous les outils d’observation sur les deux postes : Wireshark, Snort, e Process Monitor, etc. Ex´cution : e 1. Lancer ou ouvrir le fichier suspect. Il est g´n´ralement pr´f´rable de le faire depuis un compte e e ee administrateur pour ´viter de brider le code malveillant. e 2. Observer les actions sur les deux postes, pour voir les nouveaux processus et les tentatives de connexion r´seau. e 3. Observer toutes les modifications sur le syst`me de fichiers et la base de registre (Process e Monitor). Faire une copie de tout fichier cr´´ par le code malveillant, au cas o` il serait effac´ ee u e par la suite.

Actes du symposium SSTIC08

11

4. Si le code malveillant essaye de se connecter ` une adresse IP pr´cise au lieu de faire une requˆte a e e DNS, il peut ˆtre n´cessaire de modifier la configuration r´seau du poste d’observation pour e e e qu’il soit accessible ` cette adresse. a 5. Il peut aussi ˆtre n´cessaire de simuler un nouveau service s’il essaye de se connecter ` un port e e a non ouvert. 6. Utiliser Sysanalyzer pour observer tous les appels syst`me int´ressants. Cet outil est aussi parfois e e capable de sauvegarder une image m´moire du processus malveillant, ce qui peut ˆtre tr`s utile e e e si le fichier ex´cutable est chiffr´ par un packer sur le disque. e e 7. Si les actions observ´es ne semblent pas compl`tes (pas de nouveau processus, pas de fichier e e cr´´), cela peut venir de plusieurs raisons : ee (a) Soit le code malveillant n’a pas pu s’ex´cuter car il n’est pas dans le bon environnement e (version du syst`me, application non vuln´rable). e e (b) Soit il a d´tect´ qu’il ´tait dans un environnement de test (virtualisation, outils employ´s, e e e e etc). (c) Soit il s’agit d’un rootkit capable de camoufler ses actions. Dans ce cas il peut ˆtre utile e d’employer des techniques de “forensics m´moire” comme d´crit dans [24], et de comparer e e les images disque compl`tes avant et apr`s compromission. e e 8. Observer l’´volution pendant quelques minutes : le code malveillant peut effectuer des actions e programm´es dans le temps. e

Apr`s ex´cution : e e 1. Sauvegarder une image compl`te du syst`me du poste victime en suivant la mˆme m´thode que e e e e pr´c´demment lors de la pr´paration. e e e 2. Il peut ˆtre utile de red´marrer la machine en employant un CD de d´marrage (par exemple e e e Linux ou BartPE) afin de sauver cette image depuis un syst`me sain. Cette pr´caution permet e e de s’affranchir d’un ´ventuel rootkit pour d´tecter les fichiers camoufl´s. e e e 3. Comparer les deux images sauvegard´es avant et apr`s ex´cution, pour d´tecter toutes les e e e e modifications : fichiers, cl´s de registre, processus, services, etc. e 4. Il pourrait ´galement ˆtre utile de placer le syst`me en hibernation, ou d’utiliser un snapshot e e e d’une machine virtuelle, afin d’inspecter la m´moire si le code malveillant n’est pas visible sur e le disque (cf. [24]).

6.4

Phases suivantes : D´sassemblage et D´bogage e e

Les deux premi`res phases (analyse statique et dynamique) permettent d’obtenir rapidement e une vue partielle du code malveillant et de son comportement. Si le temps le permet et si des fichiers int´ressants ont ´t´ obtenus, il est alors possible d’analyser e ee le code malveillant plus en profondeur, ` l’aide de techniques de d´sassemblage et de d´bogage. Ces a e e techniques, d´j` tr`s bien document´es, ne seront pas d´crites dans cet article. ea e e e

12

Actes du symposium SSTIC08

6.5

Document malform´ : D´terminer quelle vuln´rabilit´ est exploit´e e e e e e

Quand un document malform´ exploite une vuln´rabilit´ pour ex´cuter du code malveillant, un e e e e des objectifs est d’identifier quelle vuln´rabilit´ est concern´e, afin de mieux identifier le risque et e e e les autres machines vuln´rables. e Si les outils ` disposition (antivirus, OfficeCat, Fess) ne fournissent pas suffisamment d’infora mation, une m´thode simple permet d’en savoir plus : e 1. Commencer avec une version ancienne de l’application, non mise ` jour. a 2. Installer pas-`-pas chacun des correctifs de s´curit´ publi´s. a e e e 3. Apr`s chaque correctif, sauvegarder une nouvelle image saine du syst`me. Il est utile de les e e conserver pour de futures analyses, si l’espace disque le permet. 4. A chaque fois, ouvrir ensuite le fichier suspect, et v´rifier si le code malveillant s’ex´cute ou e e non. S’il ne s’ex´cute pas, la vuln´rabilit´ exploit´e correspond donc ` ce correctif. e e e e a 5. Cependant, un correctif corrige souvent plusieurs vuln´rabilit´s. Il est alors n´cessaire de corr´ler e e e e cette information avec les r´sultats des autres outils (OfficeCat, Fess, antivirus) et les infore mations disponibles en ligne (CVE, BugTraq, vendeur) pour deviner quelle(s) vuln´rabilit´ e e est(sont) exploit´e(s). e 6.6 Obtenir des informations ` propos de la source de l’attaque a

Il est parfois possible d’obtenir plus d’informations sur la source apparente d’une attaque en exploitant les diff´rentes donn´es collect´es lors de l’analyse (adresses IP, noms de domaines et de e e e serveurs sur Internet). Pour cela de nombreux outils existent pour faire des requˆtes aupr`s de bases e e de donn´es publiques : DNS, Whois [33], rWhois [34], etc. e Il faut cependant se m´fier des r´sultats obtenus car les codes malveillants emploient souvent e e des sites temporaires. Un nom de domaine peut changer de propri´taire tr`s rapidement, donc ce e e type de requˆte doit ˆtre fait et sauvegard´ le plus tˆt possible lors de l’analyse. e e e o

7

Am´liorations possibles e

L’architecture de test et la m´thodologie d´crites dans cet article sont avant tout con¸ue pour e e c ˆtre simples et peu coˆteuses. Il est bien sˆr possible d’am´liorer les r´sultats et l’efficacit´ du e u u e e e processus en ajoutant d’autres outils ou des logiciels commerciaux. 7.1 Analyse connect´e ou semi-connect´e e e

Dans certains cas il peut ˆtre n´cessaire de fournir une connexion Internet r´elle au code male e e veillant pour pouvoir analyser son comportement de fa¸on plus compl`te. Bien sˆr cela est plus c e u risqu´ car le code malveillant pourrait se r´pliquer, et son auteur peut voir qui ex´cute le code si e e e celui-ci se connecte ` un serveur de contrˆle. a o Dans cette configuration, le poste victime peut ˆtre consid´r´ comme un honeypot ` haute intere ee a action [25]. Certains outils permettent de restreindre la connection du code malveillant ` Internet a pour ´viter sa r´plication. e e

Actes du symposium SSTIC08

13

7.2

Automatisation

La m´thodologie d´crite emploie un grand nombre de petits outils ind´pendants pour effectuer e e e des tˆches simples. C’est donc un processus manuel tr`s lourd et sujet ` erreurs, en particulier a e a lorsqu’il faut analyser un grand nombre de fichiers suspects. Il serait possible d’automatiser une grande partie de ces tˆches en tirant partie des langages de a script et des APIs disponibles pour contrˆler certains logiciels (par exemple VMware) : o – l’analyse de nombreux fichiers par des outils de d´tection (antivirus, OfficeCat, Fess, ...) e – la sauvegarde des images syst`me avant et apr`s ex´cution e e e – la comparaison de ces images – le lancement des outils d’observation – le lancement des fichiers suspects, et la d´tection des actions (processus, fichiers, registre, etc) e – l’arrˆt de l’analyse apr`s un temps fix´ ou sous certaines conditions e e e Cependant, quelques tˆches n´cessitent r´ellement une action manuelle (notamment l’analyse staa e e tique et l’exploitation des r´sultats), et certains outils graphiques peuvent difficilement ˆtre contrˆl´s e e oe par script. Des outils comme [35] proposent une base int´ressante pour bˆtir un syst`me d’analyse dynae a e mique totalement automatis´. e 7.3 Outils et services d’analyse dynamique avanc´s e

Depuis quelques ann´es sont apparues diverses solutions commerciales pour effectuer des anae lyses dynamiques de code malveillant de fa¸on plus efficace et robuste. Elles sont bas´es sur c e diff´rentes technologies (virtualisation modifi´e, simulation d’API Windows, API hooking, ...), mais e e toutes ces m´thodes visent ` tracer le flot d’ex´cution d’un code malveillant pour en d´duire son e a e e comportement et ses caract´ristiques. e Certaines solutions sont accessibles en ligne, via une interface de d´pˆt de fichier, comme e o [37,36,38,39,40]. Ces interfaces sont g´n´ralement gratuites, mais la confidentialit´ des r´sultats e e e e n’est pas assur´e, et l’environnement de test est rigide puisqu’il est impossible de choisir une platee forme sp´cifique. De plus, il n’est g´n´ralement propos´ que l’analyse de fichiers ex´cutables Win32, e e e e e les documents malform´s ne sont donc pas couverts. e Certaines de ces solutions comme [36,38] sont aussi vendues comme des produits afin de pouvoir les installer localement dans un environnement qui peut ˆtre configur´ suivant les besoins. e e Avantages : – Automatisation : permet l’analyse automatis´e de tr`s nombreux fichiers. e e – R´sultats plus complets et reproductibles e – Fiabilit´ am´lior´e e e e Inconv´nients : e – Coˆt d’acquisition et de maintenance ´lev´, de l’ordre de plusieurs dizaines de milliers d’euros u e e par an. Ces produits sont donc plutˆt destin´s aux organisations et entreprises ayant besoin o e d’analyser r´guli`rement de tr`s nombreux fichiers suspects. e e e – Manque de confidentialit´ et de flexibilit´ pour les solutions gratuites en ligne. e e

14

Actes du symposium SSTIC08

7.4

Nouvelles fonctionnalit´s de VMware e

Les futures versions de VMware Workstation et ESX devraient int´grer de nouvelles fonctione nalit´s extrˆmement utiles pour l’analyse dynamique de code malveillant, notamment : e e – VProbes : interface limit´e de supervision pour VMware Workstation 6.5, permettant d’obsere ver les registres du processeur, les processus en cours ainsi que quelques autres informations. – Interface compatible gdb : pour d´boguer le noyau de la machine virtuelle. e – VMSafe : interface fournie par l’hyperviseur de VMware ESX permettant de contrˆler en o temps r´el toute la m´moire, les fichiers et les connexions r´seau de la machine virtuelle. e e e Toute lecture/´criture/ex´cution du code malveillant en m´moire pourrait alors ˆtre d´tect´e e e e e e e et trac´e, et les outils d’observation resteraient ind´tectables car situ´s ` l’ext´rieur de la e e e a e machine virtuelle.

8

Conclusion

Il est possible de bˆtir un laboratoire simple ` moindre coˆt pour effectuer des analyses dynaa a u miques de code malveillant. La m´thode d´crite dans cette article est loin d’ˆtre parfaite, mais elle e e e a l’avantage d’ˆtre accessible ` la plupart des organisations ou entreprises ayant besoin d’analyser e a des fichiers suspects et qui ne disposent pas toujours d’outils avanc´s et de personnels form´s au e e d´sassemblage. e Plusieurs pistes d’am´lioration ont ´t´ ´galement propos´es pour bˆtir un syst`me plus complet e eee e a e et professionnel pour l’analyse de codes malveillant. D’´ventuelles mises ` jour de ce document seront disponibles en version ´lectronique sur les sites e a e http://actes.sstic.org ou \http://www.decalage.info apr`s juin 2008. e

R´f´rences ee
1. Logiciel malveillant, malveillant Wikipedia, http://fr.wikipedia.org/wiki/Logiciel_

2. File carving, http://www.forensicswiki.org/wiki/Carving 3. An Environment for Controlled Worm Replication and Analysis or : Internet-inna-Box, Ian Whalley, Bill Arnold, David Chess, John Morar, Alla Segal, Morton Swimmer, IBM TJ Watson Research Center, http://www.research.ibm.com/antivirus/SciPapers/ VB2000INW.htm 4. Malware Analysis for Administrators, S. G. Masood, SecurityFocus, 2004-05-20, http: //www.securityfocus.com/infocus/1780 5. Behavioral Malware Analysis Using Sandnets, Joe Stewart, SecureWorks, http://www. sv-issa.org/sandnets.pdf 6. Trapkit - VMM fingerprinting, \\url{http://www.trapkit.de/research/vmm/index. html} 7. OfficeCat, SourceFire, http://www.snort.org/vrt/tools/officecat.html 8. Fess, SecureWorks, http://www.secureworks.com/research/tools/fess.html 9. PEiD, http://peid.has.it/ 10. pefile, http://dkbza.org/pefile.html 11. Dependancy Walker, http://www.dependencywalker.com/

Actes du symposium SSTIC08 12. Scanbin, http://jc.bellamy.free.fr/fr/scanbin.html 13. Hachoir, http://hachoir.org/ 14. Foremost, http://foremost.sourceforge.net/ 15. Scalpel, http://www.digitalforensicssolutions.com/Scalpel/ 16. Structured Storage Viewer, MiTec, http://www.mitec.cz/ssv.html 17. OleFileIO, http://www.decalage.info/python/olefileio 18. reScan, http://www.decalage.info/python/rescan 19. IDA Pro, http://www.hex-rays.com/idapro/ 20. Snort, http://www.snort.org/ 21. Bro Intrusion Detection System, http://www.bro-ids.org/ 22. Bleeding Threats, http://www.bleedingthreats.net/

15

23. Network Forensic : cherchez les traces sur le r´seau, Guillaume Arcas, MISC magazine e 35, janvier-f´vrier 2008 e 24. Analyse post mortem tout en m´moire sous Windows, Nicolas Ruff, Samuel Dralet, e MISC magazine 35, janvier-f´vrier 2008 e 25. Honeypots, Wikipedia, http://en.wikipedia.org/wiki/Honeypot_%28computing%29 26. Honeyd, http://www.honeyd.org/ 27. The Honeynet Project, http://www.honeynet.org/ 28. mwcollect : Nepenthes, HoneyTrap, HoneyBow, http://www.mwcollect.org/ 29. Malcode Analysis Software Tools, iDefense labs, http://labs.idefense.com/ software/malcode.php 30. Mini Fake DNS Server, http://aspn.activestate.com/ASPN/Cookbook/Python/ Recipe/491264 31. Windows Sysinternals, http://technet.microsoft.com/en-us/sysinternals 32. Investigating and responding to suspicious Office files, Maarten Van Horenbeeck, SANS Internet Storm Center, http://isc.sans.org/diary.html?storyid=2967 33. Whois, RIPE, http://www.db.ripe.net/whois 34. RWhois, http://www.rwhois.net/rwhois/prwhois.html 35. Truman - The Reusable Unknown Malware Analysis Net, Joe Stewart, http://www. secureworks.com/research/tools/truman 36. CWSandbox, http://www.cwsandbox.org/, Developer/Sunbelt-CWSandbox/ \http://www.sunbelt-software.com/

37. Anubis : Analyzing Unknown Binaries, http://analysis.seclab.tuwien.ac.at/ index.php 38. Norman Sandbox, http://www.norman.com/Product/Sandbox-products/en-us 39. PCTools ThreatExpert, http://www.pctools.com/threat-expert/ 40. Joebox, http://www.joebox.org/articles.php

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close