Nous avons abordé le débogage comme méthode permettant de découvrir l'évasion utilisée par les malwares pour échapper à la détection. Cela faisait partie de Analyse dynamique des logiciels malveillants TryHackMe série.

Obtenir des notes d'investigation informatique

L’analyse des logiciels malveillants s’apparente à un jeu du chat et de la souris. Les analystes des logiciels malveillants continuent de concevoir de nouvelles techniques pour analyser les logiciels malveillants, tandis que les auteurs de logiciels malveillants conçoivent de nouvelles techniques pour échapper à la détection. Cette tâche passera en revue certaines techniques qui entravent nos efforts d'analyse des logiciels malveillants à l'aide d'une analyse statique ou dynamique de base.

Méthodes d'évasion des logiciels malveillants Analyse statique:

  • Changer le hachage : Nous avons appris précédemment que chaque fichier possède un hachage unique. Les auteurs de logiciels malveillants exploitent cette fonctionnalité en modifiant légèrement leurs logiciels malveillants. De cette façon, le hachage du malware change, contournant le mécanisme de détection basé sur le hachage. Les hachages peuvent changer même si une partie du malware est modifiée (sauf si nous parlons de hachages par morceaux déclenchés par le contexte ou de hachages flous), il suffit donc d'ajouter un NON une instruction ou un autre changement de ce type peut mettre en échec les techniques de détection basées sur le hachage.
  • Défaite UN V signatures : Les signatures antivirus et autres détections basées sur les signatures dépendent souvent de modèles statiques trouvés dans les logiciels malveillants. Les auteurs de logiciels malveillants modifient ces modèles pour tenter d'échapper aux signatures. Cette technique s’accompagne souvent d’une dissimulation générale du code malveillant.
  • Obscurcissement des chaînes : Certains auteurs de logiciels malveillants obscurcissent les chaînes des logiciels malveillants en les décodant au moment de l'exécution. Lorsque nous recherchons des chaînes dans le malware, nous pourrions ne rien trouver d’utile. Cependant, lorsque le malware s’exécute, il décode ces chaînes lors de son exécution. Les auteurs de logiciels malveillants peuvent masquer des chaînes importantes, telles que des URL, C2 domaines, etc., pour éviter de graver l'infrastructure sur la base d'une recherche à chaîne unique.
  • Chargement d'exécution des DLL : Puisque nous pouvons identifier les importations de logiciels malveillants lors de l'analyse PE En-têtes, les auteurs de logiciels malveillants utilisent souvent LoadLibrary ou LoadLibraryEx des bibliothèques Windows pour charger une DLL au moment de l'exécution. Lors de l’analyse statique de ce malware, nous pourrions ne pas voir toutes les fonctions auxquelles il est lié lors de l’analyse de ses en-têtes.
  • Emballage et obscurcissement : Le packaging est très populaire parmi les auteurs de malwares. Emballer un malware, c’est comme emballer un cadeau. Lorsque nous regardons un cadeau emballé, nous ne pouvons pas dire ce qu'il pourrait contenir à moins de déballer l'emballage et de sortir le cadeau. De même, les packers regroupent les logiciels malveillants dans un wrapper en écrivant du code qui décode le logiciel malveillant au moment de l'exécution. Ainsi, lors d’une analyse statique, nous pourrions ne pas être en mesure de voir ce qu’il y a à l’intérieur du packer. Cependant, lorsque nous exécutons le malware, il décompresse le code, charge le code malveillant réel dans la mémoire, puis l'exécute.

Méthodes d'évasion des logiciels malveillants de base Analyse dynamique:

  • Identification des VM : Bien que certaines de ces techniques puissent se retourner contre elles de nos jours, étant donné qu'une grande partie de l'infrastructure de l'entreprise est hébergée sur Machine virtuelles, l'une des préférées des auteurs de logiciels malveillants a été d'identifier si le logiciel malveillant s'exécute à l'intérieur d'une VM. Pour cela, les logiciels malveillants recherchent souvent les clés de registre ou les pilotes de périphériques associés aux logiciels de virtualisation populaires tels que VMWare et Virtualbox. De même, des ressources minimales, telles qu’un seul processeur et une RAM limitée, peuvent indiquer que le logiciel malveillant s’exécute dans une machine virtuelle. Dans ce scénario, le malware empruntera un chemin d’exécution différent qui n’est pas malveillant pour tromper l’analyste.
  • Attaques chronométrées : Les logiciels malveillants tentent souvent de désactiver les systèmes d'analyse automatisés. Par exemple, lorsqu'un logiciel malveillant est exécuté, il essaie de dormir pendant une journée à l'aide de la bibliothèque Windows Sleep. Après quelques minutes, le système d'analyse automatisé s'arrêtera et ne trouvera aucune trace d'activité malveillante. Les systèmes d'analyse des logiciels malveillants les plus récents peuvent identifier ces attaques et tenter de les atténuer en raccourcissant la durée de veille du logiciel malveillant. Cependant, les logiciels malveillants peuvent identifier ces atténuations en effectuant des contrôles temporels ciblés pour voir si l’heure est manipulée. Cela peut être fait en notant l'heure d'exécution et en la comparant avec l'heure actuelle après l'exécution de l'appel de veille.
  • Traces d'activité des utilisateurs : Les logiciels malveillants tentent d'identifier s'il existe des traces de l'activité de l'utilisateur sur la machine. Si aucune ou très peu de traces sont trouvées, le logiciel malveillant décidera qu’il est exécuté à l’intérieur d’un système contrôlé et empruntera un chemin d’exécution différent et inoffensif. Les traces de l'activité des utilisateurs peuvent inclure l'absence de mouvement de la souris ou du clavier, l'absence d'historique du navigateur, l'absence de fichiers récemment ouverts, une faible disponibilité du système, etc.
  • Identification des outils d'analyse : Les logiciels malveillants peuvent demander à Windows Système d'exploitation pour une liste de processus en cours d'exécution à l'aide de Process32First, Process32Next ou de fonctions similaires. Si des outils de surveillance populaires sont identifiés parmi la liste des processus en cours d’exécution, les logiciels malveillants peuvent emprunter un chemin d’exécution inoffensif. Par exemple, si ProcMon ou ProcExp est en cours d'exécution, les logiciels malveillants peuvent l'identifier et passer à des activités inoffensives. Une autre façon d'identifier les outils d'analyse consiste à examiner les noms des différentes fenêtres ouvertes dans un système. Si le malware trouve Ollydbg ou ProcMon dans Windows ouvert, il peut basculer vers un chemin d'exécution différent.

Réponses de la salle

Les logiciels malveillants vérifient parfois le temps avant et après l'exécution de certaines instructions pour savoir si elles sont en cours d'analyse. Quel type de technique d’analyse est contourné par cette attaque ?

Quelle est la technique populaire utilisée par les auteurs de logiciels malveillants pour masquer le code des logiciels malveillants lors de l'analyse statique et le déballer au moment de l'exécution ?

Pouvons-nous récupérer le code de pré-compilation d’un binaire compilé à des fins de débogage ? Écrivez Y pour Oui ou N pour Non

Quel type de débogueur est utilisé pour déboguer les binaires compilés ?

Quel débogueur fonctionne au niveau le plus bas parmi les débogueurs discutés ?

Dans quel onglet la vue de démontage est-elle affichée dans x32dbg ?

Si un processus ouvre un fichier ou un processus, où pouvons-nous voir les informations concernant ce fichier ou ce processus ouvert ?

La VM attachée a un crackme dans le répertoire Desktop > crackme-arebel. Dans ce crackme, il y a un rappel TLS avec un saut conditionnel. Ce saut conditionnel est-il effectué ? Écrivez Y pour Oui ou N pour Non

Quelle est la valeur du drapeau zéro dans le saut conditionnel mentionné ci-dessus ?

Lequel API l'appel dans l'exemple mentionné est utilisé pour énumérer les processus en cours d'exécution ?

À partir de quelles fenêtres DLL l'API SuspendThread est-elle appelée ?

Comment s'appelle-t-on lorsque le code assembleur d'un binaire est modifié de manière permanente pour obtenir le chemin d'exécution souhaité ?

Vidéo pas à pas

A propos de l'Auteur

Je crée des notes de cybersécurité, des notes de marketing numérique et des cours en ligne. Je fournis également des conseils en marketing numérique, y compris, mais sans s'y limiter, le référencement, les publicités Google et Meta et l'administration CRM.

Voir les Articles