ANALYSE DE CODE MALVEILLANT Flashcards
L’analyse de code malveillant est
L’analyse de code malveillant est une activité essentielle de la
cyberdefense.
Constat
- l’antivirus ne détecte pas tous les codes malveillants.
- Alerte de faux négatifs.
- l’antivirus peut ne pas être a jour.
- Le SI peut ne pas être a jour.
- presence de fichier numérique douteux.
- besoin d’étudier un code récupéré sur une station infectée.
L’analyse de code.
Pourquoi ?
- Determiner si un chier est suspect ou non.
- Attaque ciblée ou grande échelle ?
- Obtenir des info sur la source de l’attaque.
Comprendre le fonctionnement du code malveillant.
- type
- objectif
- moyen de propagation
- Origine
- Est-il connu ou non ?
- Son impact sur le réseau, SI, ordinateur.
De quoi a-t-on besoin ?
- Un échantillon.
- Le fichier compromis.
- Environnement sécurisé et isolé.
- Des outils.
3 méthodes d’analyses**
- Analyse statique.
- Analyse dynamique.
- Analyse retro-conception (reverse engineering)
Analyse statique
- Etude du code.
- Obtenir des informations du fichier suspect sans l’executer.
Analyse dynamique
- Etude comportementale
- Observer le code execute dans un environnement controlé
Analyse retro-conception
(reverse engineering)
- Etude du code.
- Etude comportementale
- Analyse du code en profondeur (désassemblage, débogage) sans
execution de celui-ci.
Analyse statique def
Explorer le contenu des fichiers suspects a l’aide d’outils,
dans le but d’en extraire le maximum d’informations intelligibles pour
l’homme sans execution.
Analyse statique méthode
- Fichier suspect
- Empreinte (hash)
- Type de fichier
- Analyse
- Désobfuscation
- Examen
Fichier suspect
- Récupération d’un fichier suspect
- Après investigation (Forensic numérique)
Empreinte (hash)
- Calculer l’empreinte numérique du chier suspect.
- Identifiant unique du code (detection de mutation).
- Comparaison avec des cas connus.
- Utilisation des algorithmes : md5sum, sha1sum, sha256sum,
sha512sum. - Comparer l’empreinte du chier suspect.
Type de fichier
Identifier et classer le type de fichier, l’architecture / logiciel cible
- commande < file > sous Linux
- logiciel string de sysinternals
Analyse
1 - Determine le format du fichier :
- Utilisation d’un éditeur hexadécimal.
- Découverte du nombre magique. (magic numbers)
2 - Extraire les chaines de caractères suspectes du code :
3 - Analyser le format des fichiers.
- Métadonnées
Extraire les chaines de caractères suspectes du code.
On cherche quoi ?
- noms de fichiers
- messages < personnalisés >
- URL / nom de domaine. . .
- clés de base de registre
- adresse IP
- adresses mails
- commandes systémes
Désobfuscation**
- Méthode utilisée pour cacher son code pour êtres incompréhensible.
- tentative de contournement de l’analyse statique
- upx.exe
Examen
- Réexaminer / réanalyser le code après Désobfuscation, voire décompilation sommaire si nécessaire.
- Recouper les informations obtenues.
- Ensuite, rechercher en ligne pour corréler les elements obtenus avec
d’autres cas deja repertories.
Avantages/ Inconvénients de l’analyse statique
- Extraction possible et rapide d’une quantité importante
d’informations. - Peut être suffisant si le code est non complexe.
- Difficile, voire impossible, si obfuscation de code.
Analyse dynamique
Exécuter le code malveillant dans un environnement contrôle afin
d’analyser son comportement sur le système.
L’isolement de tout réseau
opérationnel est impératif
avant de procéder a cette
analyse.
Comment faut-il procéder ?
1 - Mise en place :
* environnement de test le plus < réel > possible.
*disposer d’un environnement cloisonné / sécurisé.
2 - Execution du code.
3 - Surveillance :
* des modifications de la mémoire, des processus, du systéme de fichiers et de la base de registre, du trafic réseau.
Méthodologie en 6 étapes
1 - Réalisation d’un instantané.
2 - Observation a l’aide d’outils.
3 - Exécution du code malveillant.
4 - Analyse du comportement du code suite a l’observation.
5 - Réalisation d’un second instantané.
6 - Comparaison des états.
RAPPELS méthode
- Le parentérale de simuler une connexion internet peut
être délicat a réaliser. - L’isolement du réseau internet peut provoquer un comportement <
anormal > d’un code malveillant.
Avantages / Inconvénients de l’analyse dynamique
- Avantages :
- Exécution du code en environnement quasi-réel.
- Vision rapide du comportement du code.
- Inconvénients :
- Détection possible des machines virtuelles/sandboxes.
Analyse retro-conception
(reverse engineering)
- Cadre juridique.
- Rétro-conception statique.
- Rétro-conception dynamique.
Cadre Juridique
- Le cadre juridique de la rétro-ingenierie est très strictement déni par
la loi française. - Il est illégal de la pratiquer sans raison valable.
- l’article L. 331-5 du code la propriété intellectuelle.
Rétro-conception statique**
- Analyse approfondie du code sans l’exécuter.
- Deux méthodes possibles:
- la décompilation.
- Le désassemblage.
Décompilation
- Reconstitution partielle ou totale du code source d’un logiciel.
- Etude et teste de fonctionnement du logiciel.
- Basée sur le langage assembleur.
- Pratiquement impossible de retrouver exactement le code source initial (dépend du langage de programmation).
Désassemblage
- étude statique de ce que réalise le programme en traduisant l’exécutable en suite d’instructions machine.
- Génération du code assembleur correspondant au programme.
(IDA Pro) payant
Rétro-conception dynamique
- Suivre pas à pas l’exécution d’un programme en cours de fonctionnement.
- Dans ce cas, le code malveillant est exécuté et infectera la machine
- Il faut travailler sur une machine virtuelle.
Débogage
- Exécution d’ un binaire instruction après instruction.
- Placement de points d’arrêts (breakpoints) afin de stopper l’exécution pour consulter l’état du code malveillant.
- exemple de logiciel : ollydbg
Avantage et Inconvénients
de la Rétro-conception
- Avantage :
- Vision précise du comportement du code malveillant.
- Etude du code pas à pas.
- Inconvénients :
- Utilisation d’outils complexes.
- Technicités élevées.
- Nécessité de disposer de suffisamment de temps.