Comment construire un laboratoire de recherche pour l’ingénierie inverse – 4 façons


L’analyse des logiciels malveillants est une partie essentielle du travail des chercheurs en sécurité. Mais travailler avec des échantillons malveillants peut être dangereux – cela nécessite des outils spécialisés pour enregistrer leur activité et un environnement sécurisé pour éviter les dommages involontaires.

Cependant, l’installation et la configuration manuelles du laboratoire peuvent s’avérer être un processus laborieux et chronophage.

Dans cet article, nous examinerons 4 façons de créer un laboratoire de rétro-ingénierie, discuterons de la manière de gagner du temps et, éventuellement, d’améliorer le taux de détection à l’aide d’un service cloud, ainsi que d’une liste d’outils recommandés pour une configuration complète.

Ingénierie inverse des logiciels malveillants

Qu’est-ce qu’un laboratoire d’analyse de logiciels malveillants ?

Essentiellement, un laboratoire d’analyse de logiciels malveillants fournit un espace sûr et isolé pour examiner les logiciels malveillants.

La configuration peut aller d’une simple machine virtuelle utilisant VirtualBox à un réseau plus complexe de machines interconnectées et de matériel réseau réel.

Mais dans cet article, nous verrons comment créer un laboratoire adapté à l’analyse statique. Nous aurons donc besoin d’un environnement sécurisé dans lequel nous pourrons exécuter des désassembleurs, modifier des fichiers binaires et déboguer.

Nous pouvons procéder de plusieurs manières pour le créer :

1 — Virtualisation

    Le moyen le plus simple de créer un environnement sécurisé et isolé consiste peut-être à utiliser une machine virtuelle.

    Une option populaire est Virtual Box, un logiciel open source d’Oracle. Si vous êtes sous Linux, pour l’installer, utilisez simplement la commande sudo apt installer virtualbox. VMWare est un autre choix populaire – c’est un programme commercial, mais il existe un niveau gratuit.

    La configuration est simple : téléchargez et installez le logiciel, créez une machine virtuelle, configurez les paramètres pour vous assurer qu’elle n’a pas d’accès au réseau ou de dossiers partagés avec l’hôte, puis démarrez-la avec un fichier .ISO du système d’exploitation que vous avez choisi. .

    Mais cette approche présente certains inconvénients : vous devrez établir des règles de détection personnalisées pour identifier les entités suspectes ou malveillantes, rechercher indépendamment les techniques émergentes, maintenir les configurations et déterminer les politiques de journalisation à l’aide des outils disponibles. Cette concentration accrue sur la maintenance et la configuration réduit le temps consacré à l’analyse.

    Avantages

    • Gratuit ou disponible à faible coût
    • La configuration est facile
    • Fournit un environnement isolé s’il est configuré correctement

    Les inconvénients

    • La performance en prend un coup
    • Évolutivité limitée goulot d’étranglement par votre CPU
    • Le logiciel malveillant pourrait échapper à l’hôte
    • Nécessite de configurer manuellement les règles de détection

    2 — Matériel dédié

      Si vous avez un vieil ordinateur portable qui traîne ou si vous avez les moyens d’en obtenir un ou de construire un PC, c’est certainement une option. Vous n’avez pas non plus à casser votre tirelire – les processeurs Intel de la 11e à la 13e génération font même des machines économiques plus qu’une option viable.

      Le principal avantage d’opter pour un ordinateur physique est de meilleures performances et une sécurité accrue, car vous pouvez vous assurer que la machine est réellement isolée de tous les périphériques et réseaux.

      Avantages:

      • Option la plus performante
      • Environnement complètement isolé
      • Peut être personnalisé à l’infini

      Les inconvénients:

      • Le matériel haut de gamme est cher
      • Nécessite une maintenance logicielle et matérielle
      • Doit être configuré pour fonctionner

      3 — Un laboratoire cloud

        Créer un laboratoire de logiciels malveillants dans le cloud n’est en fait pas aussi difficile qu’il y paraît. Aussi – c’est gratuit! Tout ce dont vous avez besoin est un compte chez AWS, ou tout autre fournisseur de services cloud comparable, et une machine pour vous y connecter. La configuration peut être légèrement plus compliquée qu’une machine virtuelle locale, mais il existe de nombreux tutoriels que vous pouvez utiliser comme guide.

        Si vous choisissez de travailler avec des AWS, recherchez Kali sur le marché pour configurer une machine virtuelle Kali Linux. Pour utiliser l’interface graphique, vous pouvez créer un serveur VNC et vous connecter à votre laboratoire avec un outil comme VNC Viewer.

        L’un des inconvénients de cette approche est qu’elle est gratuite jusqu’à ce qu’elle ne le soit plus. Si vous dépassez les limites de l’offre gratuite, votre facture cloud pourrait gonfler rapidement.

        Parfois, les fournisseurs de cloud peuvent également restreindre l’exécution de logiciels malveillants, ce qui présente des risques juridiques. De plus, les machines cloud exigent une assistance, ce qui alourdit les opérations informatiques. Bien qu’elle convienne aux chercheurs indépendants novices, cette approche présente des inconvénients en entreprise. Surtout, il n’a pas la capacité de contrer la détection de VM des logiciels malveillants et de contourner les tactiques anti-évasion.

        Avantages:

        • Évolutivité
        • Aucune maintenance matérielle
        • Isolé de votre réseau pour une meilleure sécurité

        Les inconvénients:

        • Risques juridiques potentiels.
        • Configuration difficile
        • Doit être configuré pour fonctionner
        • La latence diminue la qualité du travail
        • Les configurations avancées sont chères
        • Sensible aux techniques anti-avastin

        4 – Sandbox en tant que service

          Un avantage significatif des services de bac à sable basés sur le cloud est leur résilience intégrée contre la détection des machines virtuelles. Cela réduit la probabilité qu’un échantillon de logiciel malveillant reconnaisse qu’il se trouve dans une machine virtuelle et arrête son exécution, une fonctionnalité qui nécessite une configuration manuelle dans d’autres bacs à sable.

          De plus, dans un service comme celui-ci, les règles de détection sont rédigées par des spécialistes utilisant de vastes bases de données de logiciels malveillants et de renseignements sur les menaces. En conséquence, le logiciel peut enrichir les résultats d’analyse avec des techniques et des IOC, produisant une sortie plus complète par rapport aux données brutes du cloud ou des machines virtuelles sur site.

          De plus, les services de bac à sable basés sur le cloud rationalisent les configurations d’environnement. Par exemple, au lieu de créer des instantanés séparés dans une VM, Le service cloud d’ANY.RUN permet une configuration facile de l’environnement via un menu convivial chaque fois qu’un laboratoire est lancé.

          Avantages

          • Gain de temps
          • Facilité d’utilisation
          • Sécurisé et complètement isolé de votre réseau
          • Renforcé contre la détection de VM
          • Configuration simple de l’environnement d’exécution

          Les inconvénients

          • N’est pas optimisé pour fonctionner avec votre ensemble d’outils
          • Certaines solutions du marché peuvent être lag
          • Les instances de machines virtuelles sont limitées dans le temps

          L’utilisation d’un bac à sable interactif en ligne tel que ANY.RUN au lieu d’un laboratoire offre commodité et rapidité. Il peut aider à automatiser certaines parties de l’analyse statique, comme l’extraction des configurations de logiciels malveillants.

          Si vous souhaitez essayer ANY.RUN par vous-même, ils organisent actuellement une promotion spéciale pour les lecteurs de Hacker News :

          Ingénierie inverse des logiciels malveillants

          Types de logiciels pour la rétro-ingénierie

          Voici quelques outils essentiels qui vous aideront à désosser les logiciels malveillants :

          • Désassembleurs. Les désassembleurs sont indispensables pour la rétro-ingénierie. Ils vous permettent de transformer le langage machine en code d’assemblage facile à comprendre pour les humains, afin que vous puissiez mieux comprendre le fonctionnement des logiciels malveillants. IDA Pro, Ghidra et Binary Ninja sont tous des désassembleurs populaires. Pour exécuter Ghidra sur Linux, installez d’abord JDK et téléchargez Ghidra lui-même sur votre machine. Aucune installation n’est nécessaire, exécutez simplement ces commandes dans le répertoire Ghidra : chmod +x ghirdRun et ./ghirdaRun.
          • Décompilateurs. Les décompilateurs sont similaires aux désassembleurs, en ce sens qu’ils peuvent convertir le code machine en code source. Cela peut être utile pour comprendre l’architecture du logiciel malveillant et déterminer des fonctions ou des modules spécifiques. Les décompilateurs populaires incluent IDA Pro, Ghidra et Hex-Rays.
          • Débogueurs. Les débogueurs aident les programmeurs à localiser les erreurs et à les résoudre en leur permettant de parcourir le code ligne par ligne, de définir des points d’arrêt et d’observer le fonctionnement du logiciel malveillant. Plusieurs des débogueurs les plus couramment utilisés sont OllyDbg, x64dbg et WinDbg. x64dbg est l’une des options les plus populaires en ce moment : elle est gratuite et téléchargeable sur x64dbg.com
          • Éditeurs HEX. Les éditeurs hexadécimaux sont utiles pour examiner de plus près les fichiers binaires, comprendre comment ils sont organisés, repérer des valeurs particulières et manipuler le fichier afin de voir comment le virus réagit. Les éditeurs hexadécimaux courants incluent HxD et Hex Workshop.
          • Outils d’analyse de réseau. Certains logiciels malveillants nécessitent une connexion en ligne pour fonctionner. Les programmes d’analyse de réseau tels que Wireshark peuvent vous aider à identifier et à examiner le trafic envoyé et reçu par ce logiciel malveillant.

          Outils essentiels d’analyse des logiciels malveillants

          C’est à l’analyste de décider quel logiciel installer, mais, à notre avis, la liste des outils essentiels ressemble à ceci :

          • Détectez-le facilement. Pour déterminer les types de fichiers
          • Hacker de processus. Vous aide à surveiller les ressources système, à déboguer les logiciels et à détecter les logiciels malveillants
          • Moniteur de processus. Un outil de surveillance pour Windows qui affiche le système de fichiers en temps réel, le registre et l’activité des processus/threads
          • Wireshark. Pour analyser l’activité du réseau
          • x64dbg et Ghidra. Requis pour l’analyse statique et dynamique.

          Oh, et si vous souhaitez obtenir un laboratoire préconfiguré, vous pouvez utiliser un kit de distribution spécialisé comme Remnux, qui est livré avec la plupart de ces programmes déjà installés.

          Il existe également FLARE VM – une collection de scripts d’installation de logiciels pour les systèmes Windows qui vous permet de configurer et de maintenir facilement un environnement d’ingénierie inverse sur une machine virtuelle.

          Emballer

          Nous avons discuté de quatre méthodes différentes pour créer un laboratoire d’analyse : utiliser la virtualisation, créer une machine dédiée, déployer un laboratoire cloud ou s’abonner à un bac à sable en tant que service.

          Chacune de ces approches comporte son propre ensemble d’avantages et d’inconvénients, et le bon choix dépend de ce que vous essayez d’accomplir et des ressources dont vous disposez.

          Heureusement, la plupart de ces options sont totalement gratuites, alors essayez-les toutes et voyez ce qui fonctionne le mieux !

          Vous avez trouvé cet article intéressant ? Suivez-nous sur Twitter et LinkedIn pour lire plus de contenu exclusif que nous publions.





          ttn-fr-57