Analyse dynamique : analyser un programme pendant son exécution

1. À propos de l'analyse dynamique

L'analyse dynamique est une méthode d'analyse qui consiste à étudier un programme pendant son exécution. Contrairement à l'analyse statique, qui examine un fichier sans le lancer, l'analyse dynamique permet d'observer directement les actions réalisées par le programme sur le système.

En cybersécurité, cette technique est particulièrement importante pour étudier le comportement d'un programme suspect ou d'un malware. Certains comportements ne deviennent visibles qu'au moment de l'exécution.

Un programme peut par exemple créer des fichiers, lancer de nouveaux processus, modifier des paramètres du système, ouvrir des connexions réseau ou tenter d'établir une persistance.

Objectifs de l'analyse dynamique

  • observer les processus créés par le programme ;
  • identifier les fichiers créés, modifiés ou supprimés ;
  • surveiller l'utilisation des ressources système ;
  • observer les communications réseau ;
  • identifier les domaines et adresses IP contactés ;
  • détecter les modifications de configuration ;
  • identifier les mécanismes de persistance ;
  • rechercher des indicateurs de compromission ;
  • comprendre le comportement global du programme.

Analyse statique et analyse dynamique

Analyse statiqueAnalyse dynamique
Le programme n'est pas exécutéLe programme est exécuté
Analyse du fichierAnalyse du comportement
Étude des chaînes et métadonnéesObservation des processus et fichiers
Analyse du code possibleObservation des communications réseau
Risque d'exécution limitéNécessite un environnement contrôlé

Les deux méthodes sont complémentaires. Une investigation peut commencer par une analyse statique, puis utiliser l'analyse dynamique lorsque l'observation du comportement réel du programme est nécessaire.

2. Principe et environnement d'analyse dynamique

Le principe de l'analyse dynamique consiste à exécuter un programme tout en surveillant les modifications qu'il provoque dans son environnement. Dans le cas d'un programme inconnu ou potentiellement malveillant, cette opération ne doit pas être réalisée directement sur un ordinateur personnel ou professionnel.

Utiliser un environnement isolé

L'analyse doit être effectuée dans un environnement isolé. Une machine virtuelle ou une sandbox spécialement préparée peut être utilisée afin de limiter les conséquences d'un comportement malveillant.

Une architecture simplifiée peut être représentée ainsi :

Sortie :

Pourquoi isoler l'environnement ?

Si un fichier étudié est réellement malveillant, il pourrait tenter d'accéder aux documents personnels, aux comptes de l'utilisateur, aux équipements du réseau local ou à d'autres ressources sensibles. L'isolation permet de réduire ces risques.

Précautions importantes

  • ne jamais exécuter un malware inconnu sur une machine de production ;
  • utiliser un environnement réservé aux analyses ;
  • contrôler soigneusement la configuration réseau de la machine virtuelle ;
  • éviter l'accès aux dossiers personnels ou professionnels ;
  • désactiver les fonctions de partage inutiles entre l'hôte et la machine virtuelle ;
  • ne pas utiliser de comptes réels dans l'environnement d'analyse ;
  • conserver un état propre permettant de restaurer le laboratoire.

Les snapshots

Un snapshot permet d'enregistrer l'état d'une machine virtuelle avant une analyse. Après l'expérience, la machine peut être restaurée à cet état initial afin d'éliminer les modifications apportées pendant l'étude.

3. Observer les processus, fichiers et ressources système

L'un des objectifs principaux d'une analyse dynamique consiste à déterminer les actions réalisées par un programme sur le système. L'analyste observe notamment les processus, les fichiers et l'utilisation des ressources.

Observer les processus

Lors de son exécution, un programme peut créer d'autres processus. Cette information peut aider à comprendre son fonctionnement et à construire l'arbre des processus.

Le programme Python suivant affiche simplement l'identifiant du processus Python actuellement exécuté. Il permet de comprendre la notion de PID, ou Process Identifier, utilisée par les outils de surveillance.

Sortie :

La valeur du PID varie d'une exécution à l'autre. Dans une analyse réelle, les outils spécialisés permettent de suivre les processus parents, les processus enfants et leurs activités.

Observer la création d'un fichier

Un programme peut créer ou modifier des fichiers pendant son fonctionnement. L'exemple suivant simule une activité parfaitement légitime : le programme crée un fichier journal. Cette expérience permet de comprendre ce qu'un outil de surveillance peut observer.

Sortie :

Lors de l'analyse d'un programme suspect, l'analyste chercherait de la même manière à déterminer quels fichiers sont créés et dans quels répertoires ils sont enregistrés.

Vérifier l'existence d'un fichier

Python peut également vérifier si un fichier particulier existe après l'exécution d'un programme. Dans cet exemple, nous vérifions simplement le fichier pédagogique créé précédemment.

Sortie :

Surveiller les ressources

L'analyse dynamique peut également étudier la consommation du processeur, de la mémoire, du disque ou d'autres ressources. Une activité anormalement élevée peut constituer une information intéressante, mais elle ne prouve pas à elle seule qu'un programme est malveillant.

4. Analyser le comportement réseau d'un programme

De nombreux programmes utilisent le réseau pour communiquer avec des serveurs distants. L'analyse réseau permet d'identifier les connexions réalisées pendant l'exécution d'un programme.

Dans le cas d'un logiciel malveillant, l'analyste peut notamment rechercher des communications avec une infrastructure de commande et contrôle, des téléchargements supplémentaires ou des transferts inhabituels de données.

Informations pouvant être observées

  • adresse IP source ;
  • adresse IP destination ;
  • port source ;
  • port destination ;
  • protocole utilisé ;
  • nom de domaine contacté ;
  • volume de données échangées ;
  • fréquence des communications.

Analyser un journal réseau fictif

Pour comprendre le principe sans effectuer de connexion vers une infrastructure inconnue, le programme suivant analyse des événements réseau fictifs. Les adresses IP utilisées appartiennent à des plages réservées à la documentation.

Sortie :

Compter les connexions

L'exemple suivant complète l'analyse en comptant le nombre de connexions observées vers chaque adresse. Ce type de traitement peut aider à mettre en évidence des communications répétitives dans un journal.

Sortie :

Une communication répétitive peut attirer l'attention de l'analyste, mais elle n'est pas nécessairement malveillante. De nombreux logiciels légitimes contactent régulièrement des serveurs pour effectuer des synchronisations, rechercher des mises à jour ou envoyer des données autorisées.

5. Outils et méthodologie d'analyse dynamique

Plusieurs outils peuvent être utilisés pour observer le comportement d'un programme. Le choix dépend du système d'exploitation, du type de fichier et de l'objectif de l'analyse.

Process Monitor

Process Monitor permet notamment d'observer différentes activités réalisées par les processus sous Windows. Il peut aider à identifier des accès aux fichiers et certaines modifications du système.

Process Explorer

Process Explorer fournit une vue détaillée des processus Windows et de leurs relations. Il permet notamment d'examiner les processus parents et enfants et différentes informations associées à leur exécution.

Wireshark

Wireshark est un analyseur de protocoles réseau. Dans un laboratoire autorisé, il peut être utilisé pour observer le trafic généré pendant l'exécution d'un programme.

Sandbox

Une sandbox peut automatiser une partie de l'analyse dynamique. Elle exécute un fichier dans un environnement contrôlé et produit généralement un rapport décrivant les comportements observés.

Débogueur

Un débogueur permet une analyse plus détaillée de l'exécution. L'analyste peut examiner progressivement les instructions exécutées et l'évolution de l'état du programme. Cette technique relève d'une analyse plus avancée et demande de bonnes connaissances en programmation et en architecture des ordinateurs.

Méthodologie générale

  1. Collecter et documenter le fichier à analyser.
  2. Calculer son empreinte cryptographique.
  3. Effectuer d'abord une analyse statique lorsque cela est pertinent.
  4. Préparer un environnement d'analyse isolé.
  5. Créer un snapshot propre de la machine virtuelle.
  6. Démarrer les outils de surveillance nécessaires.
  7. Exécuter le programme dans l'environnement contrôlé.
  8. Observer les processus créés.
  9. Observer les fichiers créés ou modifiés.
  10. Analyser les éventuelles modifications de configuration.
  11. Observer les communications réseau.
  12. Collecter les indicateurs pertinents.
  13. Arrêter l'analyse et documenter les résultats.
  14. Restaurer l'environnement à son état propre.

Créer un petit rapport avec Python

Après une analyse, les observations peuvent être regroupées dans un rapport. Le programme suivant utilise uniquement des données fictives pour montrer comment Python peut présenter les résultats de manière structurée.

Sortie :

Dans un véritable rapport, ces données seraient complétées par les noms des processus, les chemins des fichiers, les horodatages, les domaines contactés, les empreintes et les autres indicateurs de compromission pertinents.

6. À retenir

L'analyse dynamique consiste à étudier un programme pendant son exécution. Elle permet d'observer directement les actions qu'il réalise sur le système et complète ainsi les informations obtenues par l'analyse statique.

L'analyste peut notamment surveiller les processus, les fichiers créés ou modifiés, les ressources utilisées, les modifications de configuration et les communications réseau.

Lorsqu'un programme inconnu ou potentiellement malveillant doit être exécuté, l'analyse doit être réalisée dans un environnement isolé spécialement préparé. Une machine virtuelle ou une sandbox peut contribuer à limiter les risques pour le système principal.

Des outils tels que Process Monitor, Process Explorer et Wireshark permettent d'observer différents aspects du comportement d'un programme. Les résultats peuvent ensuite servir à identifier des indicateurs de compromission et à améliorer les mécanismes de détection et de réponse aux incidents.

L'analyse dynamique ne permet cependant pas toujours d'observer tous les comportements d'un programme en une seule exécution. Certains logiciels adaptent leur comportement à leur environnement, attendent certaines conditions ou n'activent certaines fonctions qu'après un délai. Il est donc souvent nécessaire de combiner analyse statique, analyse dynamique et autres techniques d'investigation.




Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


loader-image
Le prix initial était : € 11,00.Le prix actuel est : € 10,00.
Le prix initial était : € 6,00.Le prix actuel est : € 5,00.



Leave a Reply

Your email address will not be published. Required fields are marked *