Charges utiles des logiciels malveillants & Beacons : Techniques pour atténuer l'impact
Le premier article de cette série expliquait comment les communications malveillantes démarrent, aidées par l'infrastructure de l'attaquant et les balises et charges utiles associées. Dans le deuxième article, nous avons étudié les catégories et les types de charges utiles ainsi que les techniques de manipulation en mémoire. Dans la dernière partie de cette série, nous nous concentrerons sur certaines des techniques d'obscurcissement utilisées pour déguiser les charges utiles et nous examinerons les techniques d'atténuation que les défenseurs peuvent utiliser.
Un indicateur important en matière de cybersécurité est le temps moyen de détection (MTTD), également connu sous le nom de "temps de détection"." Il s'agit du temps qui s'écoule entre l'entrée initiale d'un attaquant et le moment où l'attaque est détectée par l'organisation cible. Une entrée ou un exploit réussi n'est généralement qu'un début. Les acteurs de la menace emploient souvent différentes techniques d'obscurcissement pour ne pas être détectés dans les réseaux compromis.
Il est utile d'envisager les grandes approches suivantes en matière d'atténuation, qui font appel à des techniques réactives et préventives :
1. Approche réactive d'abord
- Détection uniquement
- Détection et réaction
2. L'approche préventive d'abord
- Préventif uniquement
- Prévention et réponse
Les technologies telles que les anciens systèmes de détection d'intrusion (IDS) relèvent de l'approche réactive d'abord, c'est-à-dire de la détection uniquement. Ces systèmes utilisent généralement un ensemble de signatures connues de codes malveillants ou de charges utiles pour détecter les menaces. Il est facile de les contourner en modifiant les hachages ou les signatures. La détection des menaces a beaucoup évolué depuis. Les techniques de détection modernes incluent le comportement et l'heuristique, l'apprentissage automatique, l'auto-apprentissage et les capacités d'intelligence artificielle.
En s'appuyant sur l'approche réactive d'abord, la détection et la réponse comprennent la capacité d'arrêter une menace après qu'elle a été détectée. Ce système s'appuie sur la capacité de détection qui permet de bloquer ou d'autoriser.
Dans ce cas, le niveau de confiance du moteur de détection doit être extrêmement élevé pour éviter les faux positifs (blocage de fichiers légitimes pris pour des menaces) ou les faux négatifs (autorisation de menaces prises pour des fichiers ou du code légitimes). Dans les deux approches réactives, une action jugée suspecte doit d'abord se produire avant que ces systèmes ne déclenchent une action réactive.
D'autre part, l'approche préventive d'abord, c'est-à-dire uniquement préventive, ne dépend pas de la survenance d'un événement pour agir. Il dispose d'un ensemble de règles permanentes pour déterminer ce qui doit être autorisé ou bloqué, quelle que soit la situation. C'est également l'approche employée par la segmentation "Zero Trust" (également appelée micro-segmentation).
Cette approche peut également être adaptative, en fonction de la technologie, pour répondre dans les cas où une réponse réactive est nécessaire. Nous examinerons ces deux approches dans cet article.
Examinons tout d'abord certaines techniques employées par les acteurs de la menace pour obscurcir ou dissimuler leurs activités à la détection. Nous examinerons ensuite des exemples d'approches réactives ("détection" et "détection et réponse") et préventives ("uniquement préventif" et "prévention et réponse") pour atténuer l'impact des attaques de logiciels malveillants.
Techniques de dissimulation
Des techniques telles que le code personnalisé, l'empaquetage du code (par exemple, à l'aide de l'empaqueteur UPX), la stéganographie, l'exécution différée, le backdooring, l'encodage (Base64) et le cryptage peuvent toutes être utilisées par les acteurs de la menace pour tenter de dissimuler ou d'obscurcir les charges utiles malveillantes.
Les acteurs de la menace peuvent également recourir à des techniques de survie pour utiliser des fichiers système et des binaires déjà fiables, tels que Powershell ou WMI, ou tenter de tirer parti de binaires et d'exécutables tiers déjà fiables.
Portes dérobées exécutables
Il existe plusieurs techniques qu'un attaquant peut utiliser pour s'assurer que ses charges utiles sont exécutées.
L'un des moyens consiste à dissimuler leur code malveillant dans un fichier exécutable légitime. En examinant la machine victime compromise dans le blog précédent, nous avons remarqué un exécutable putty.exe dans le dossier Téléchargements de l'utilisateur. Putty.exe est un client Telnet et SSH très répandu.

Afin d'insérer la charge utile malveillante sous la forme d'une porte dérobée dans putty, l'attaquant commence par télécharger le fichier exécutable légitime putty.exe de l'utilisateur.
.webp)
Ensuite, l'attaquant génère une nouvelle charge utile mais utilise le fichier légitime putty.exe comme modèle exécutable pour leur charge utile. Ils nomment l'exécutable résultant putty_new.exe.

Ils peuvent alors télécharger ce nouvel exécutable de porte dérobée dans le système de l'utilisateur, comme indiqué ci-dessous.

En tant que technique de déplacement latéral, l'attaquant peut diffuser cet exécutable sur d'autres systèmes à l'intérieur du réseau compromis afin d'amener encore plus d'utilisateurs à exécuter à leur insu la charge utile malveillante.

Une fois que l'utilisateur a exécuté le fichier putty.exe trojanisé, ils peuvent utiliser le programme normalement. Mais en arrière-plan, la charge utile malveillante est exécutée et rappelle l'auditeur de commande et de contrôle de l'attaque, comme on peut le voir ici.

Dans les processus en cours d'exécution de la machine compromise, nous pouvons voir que le processus putty_new.exe a établi une connexion TCP (port 443) avec l'attaquant sur app12.webcoms-meeting.com.

Codage de la charge utile
En informatique, le codage est le processus consistant à appliquer un algorithme à des données pour en modifier le format. Le codage peut être utile pour changer le format d'un type de données en un autre afin de faciliter la transmission, le stockage ou l'utilisation sur un système cible.
Voici un exemple de texte ASCII (texte anglais normal) à gauche, encodé en Base64 à droite. Même si les données sont les mêmes, le format est complètement différent. Si une personne ne reçoit que le texte inconnu encodé en Base64, elle aura besoin d'un décodeur Base64 pour le convertir en texte ASCII plus familier.

Cette capacité est également extrêmement utile aux acteurs de la menace pour dissimuler efficacement leur code malveillant et leurs charges utiles afin d'échapper à la détection. L'encodage rend plus difficile l'analyse statique d'une charge utile dans la mesure où une technique comme l'empaquetage rend difficile la même analyse, en particulier la détection des chaînes de caractères.
L'exemple suivant montre comment l'encodage peut être utilisé par l'attaquant pour générer une charge utile malveillante.
Ici, l'algorithme de codage est shikata_ga_nai. La charge utile est codée en exécutant cet algorithme en six itérations, comme le montre l'image ci-dessous. Cela permet d'obscurcir certains aspects de la charge utile et de la rendre plus difficile à détecter, notamment par une analyse de signature utilisant le hachage ou même une analyse statique du code et des chaînes de la charge utile.

Les acteurs de la menace peuvent également utiliser des macros de documents Microsoft Office, des scripts Powershell et d'autres binaires et outils natifs et légitimes pour tenter de dissimuler une activité malveillante. L'utilisation d'outils et de binaires natifs sur un système compromis ou dans un environnement violé est appelée "vivre de la terre". Ensuite, nous examinerons certaines capacités d'atténuation.
Approche réactive d'abord : Techniques de détection
Les approches réactives dépendent de la capacité initiale à détecter les activités suspectes ou malveillantes. Examinons-en quelques-unes.
Analyse statique : Analyse du code
L'analyse statique est le processus d'analyse d'un morceau de code d'un exécutable sur le disque. En développant ce type d'analyse à partir du premier article, une analyse statique plus poussée montre quelques indicateurs supplémentaires utiles. Ce fichier de charge utile fait référence à certaines chaînes et bibliothèques à risque et appelle certaines fonctions du système qui pourraient présenter un intérêt dans le cadre d'une enquête sur une activité suspecte.

Analyse des signatures : Antivirus
L'analyse des signatures, au niveau de base, consiste à prendre un hachage ou une signature du fichier ou de la charge utile en question et à le comparer à une grande base de données de signatures connues et précédemment détectées. C'est l'approche adoptée par les solutions antivirus traditionnelles. L'exemple ci-dessous montre la charge utile malveillante mise en scène dans le premier article analysé par un groupe de moteurs d'analyse antivirus.

Analyse dynamique : Sandboxing (bac à sable)
L'analyse dynamique consiste à surveiller le comportement afin de détecter les actions malveillantes. Dans ce cas, la charge utile ou le fichier en question est exécuté dans un environnement de type "bac à sable" afin d'étudier son comportement et de le comparer à un ensemble de critères favorables ou défavorables. Chaque mauvais comportement est évalué en fonction d'un poids afin de prendre une décision finale de détection malveillante ou non malveillante.
Un bac à sable peut être une application telle qu'un navigateur fonctionnant et surveillé dans un espace protégé, un système d'exploitation fonctionnant à l'intérieur d'une machine virtuelle, ou une émulation complète des logiciels et des composants matériels de l'ordinateur tels que le disque, la mémoire et le processeur - ce dernier étant le plus difficile à contourner pour les logiciels malveillants.
L'exemple ci-dessous montre un sous-ensemble d'activités suspectes par rapport auxquelles un exécutable ou une charge utile sera évalué après le sandboxing ou l'émulation.

Les approches réactives d'abord sont importantes et presque toutes les organisations en ont une forme ou une autre dans leurs réseaux. Mais comme pour tout ce qui concerne la sécurité, cette approche doit être complétée par d'autres couches de protection pour que la stratégie de sécurité soit efficace - en appliquant la philosophie de la sécurité en profondeur. Comme la détection échoue parfois ou peut être contournée, des approches préventives sont nécessaires.
L'approche préventive d'abord
Comme nous l'avons vu précédemment, l'approche préventive est généralement classée dans les catégories "prévention uniquement" et "prévention et réponse". Dans les étapes suivantes, nous allons d'abord examiner les actions de découverte initiales qu'un acteur de la menace pourrait entreprendre pour trouver d'autres machines accessibles par la machine qu'il a compromise. Nous examinerons ensuite les mesures que les défenseurs peuvent prendre pour segmenter les systèmes sur le réseau, même ceux qui se trouvent sur le même sous-réseau, afin d'atténuer le risque de mouvement latéral.
Segmentation préventive de la confiance zéro
Après la charge utile putty.exe obfusquée, un acteur de la menace peut poursuivre l'attaque en effectuant un autre balayage de découverte sur le réseau à l'aide de la machine pivot compromise. Les acteurs de la menace s'intéressent particulièrement aux voies de communication les plus courantes pour les mouvements latéraux, telles que Telnet, SSH, SMB et RDP, afin de ne pas se faire remarquer sur le réseau.
Nous pouvons voir que certains de ces chemins de communication sont ouverts sur le sous-réseau où l'attaquant a réussi à compromettre une machine. Cette analyse de base fournit une bonne indication de la présence de systèmes Windows et Linux sur le réseau. Les systèmes Windows ont généralement des ports SMB ouverts et les systèmes Linux ont généralement des ports SSH ouverts.

En considérant une approche d'atténuation proactive et préventive, une technologie comme Illumio Core offre une visibilité extrêmement utile. Illumio Core peut clairement montrer les actions de l'attaquant, même en mode " surveillance seulement " - dans le cas ci-dessous, un balayage un-à-plusieurs de la machine pivot vers le reste des systèmes sur le sous-réseau ciblé. La carte de visibilité d'Illumio Core, connue sous le nom d'Illumination, montre une vue commerciale du réseau de l'organisation. Nous pouvons également constater que ces systèmes sont répartis sur plusieurs sites.

Sur la carte Illumio, la communication de l'analyse indique qu'elle provient des postes de travail du siège social et qu'elle est destinée au centre de données 1. Il est facile d'identifier les informations utiles et exploitables car les systèmes sont tous associés à des étiquettes Illumio (tags ou métadonnées) pour enrichir la carte. Ces mêmes informations seront utilisées ultérieurement pour définir une politique sans s'appuyer sur des concepts de réseau tels que les adresses IP, les VLAN (réseaux locaux virtuels) ou les zones, ce qui garantit que les politiques de sécurité s'adaptent automatiquement aux changements.
Une autre capacité utile consiste à effectuer de manière proactive un audit du réseau à l'aide de l'outil d'analyse des risques et d'investigation d'Illumio. Cela peut nous montrer les voies de risque auxquelles ce réseau est susceptible d'être exposé, telles que les voies couramment utilisées par les logiciels malveillants et les rançongiciels pour se propager sur un réseau compromis. Il n'est pas nécessaire d'attendre un cyberincident pour agir. Une analyse de risque préventive recommandée nous fournira clairement et facilement ces informations, comme le montre le tableau ci-dessous.

Dans la vue d'investigation ci-dessus, le côté consommateur indique la source et le côté fournisseur indique la destination des communications. Nous pouvons également voir les ports utilisés et, à l'extrême droite, les processus associés à cette communication. Si nécessaire, nous pouvons approfondir les noms des machines individuelles.
Par exemple, nous pouvons décider d'adopter une action préventive permanente en mettant en place des contrôles basés sur l'emplacement entre les postes de travail de notre siège social et les charges de travail de notre centre de données 1. C'est ce que l'on appelle la limite d'exécution. Il bloque simplement toutes les communications entre les postes de travail et les charges de travail ou les serveurs définis.

Une autre approche consistera à utiliser la politique de liste d'autorisation de confiance zéro (refus par défaut). Quelle que soit l'approche choisie, après avoir mis en œuvre cette action préventive, un autre examen de découverte montre que les voies de communication qui ont été ouvertes à l'intérieur du réseau sont désormais toutes filtrées.

De retour à la carte de visibilité d'Illumio, ces lignes de communication sont désormais rouges, ce qui indique que le balayage n'a pas seulement été surveillé, mais aussi bloqué cette fois-ci.

Cela signifie que nous avons réussi à atténuer notre risque de mouvement latéral de manière proactive à travers de multiples systèmes fonctionnant sur différentes plateformes en même temps - le tout à partir d'un seul point de gestion. Nous pouvons encore aller plus loin avec ce système particulier en renforçant l'approche uniquement préventive avec la prévention et la réponse afin d'isoler ce système pour une étude plus approfondie.
Prévention et réponse : Segmentation adaptative sans confiance
Nous venons de voir comment une approche préventive, comme dans le cas de la segmentation "Zero Trust", peut garantir une politique de sécurité toujours active pour empêcher la propagation de logiciels malveillants et d'autres attaques.
Cependant, il se peut qu'il y ait déjà eu un incident auquel nous devons répondre dans certains cas. Il se peut que nous n'ayons pas encore activé notre politique de sécurité préventive. C'est là que la même technologie Illumio Core peut être utilisée pour réagir et répondre, en utilisant toujours une approche préventive mais avec une capacité d'adaptation supplémentaire.
Dans les exemples présentés jusqu'à présent, vous remarquerez que les politiques ont toutes été définies par des métadonnées ou des étiquettes, et non par des constructions de réseau ou des informations IP. Ces étiquettes sont également utilisées pour regrouper logiquement les charges de travail, les serveurs et les postes de travail.
Nous pouvons voir dans la capture d'écran ci-dessous que nous avons une politique nommée "Ransomware-Quarantine" déjà définie.

Nous devons maintenant remplacer une ou plusieurs étiquettes quadridimensionnelles du système en question par l'étiquette de quarantaine figurant sur la page d'inventaire de la charge de travail ci-dessous.

Cette opération peut être effectuée manuellement ou automatiquement. Il peut également être déclenché par le biais d'un SoC (Security Operations Centre) ou d'un playbook SOAR, selon les besoins. Cette action aura pour effet d'isoler automatiquement ce système spécifique et de couper toute communication entre ce système et le reste du réseau. Toutefois, nous continuerons à autoriser les communications de la direction pour contrôler et enquêter sur ses actions.
Dans l'exemple ci-dessous, le système infecté a été isolé dans sa propre bulle de quarantaine, loin de l'emplacement original du siège social et des groupes d'applications associés. Il est effectivement coupé du reste de nos systèmes et même de l'internet, comme l'indiquent les lignes de communication rouges.

Cependant, nous pouvons toujours surveiller clairement toutes les actions de ce système en toute sécurité et poursuivre les enquêtes que nous pourrions avoir à mener sur ce système.
En outre, pour les serveurs et les charges de travail critiques ou "joyaux de la couronne", nous pouvons appliquer d'autres configurations de meilleures pratiques en matière de sécurité, telles que :
- Restreindre les communications sortantes à une liste de destinations approuvées
- Utilisation de serveurs DNS internes fortement surveillés et segmentés
- Analyses régulières des vulnérabilités dans le cadre d'une posture globale de gestion des vulnérabilités
Toutes ces capacités peuvent être incorporées dans la même solution Illumio Core afin d'améliorer votre posture de sécurité globale et de soutenir les investissements existants en matière de sécurité de détection et de réponse.
Conclusion
Pour toutes les techniques de menace décrites dans cette série, et même pour celles qui restent à découvrir, l'objectif de l'attaquant est de se déplacer latéralement dans l'environnement sans être détecté. Étant donné que la plupart des organisations disposent déjà d'une forme de technologie réactive comme l'antivirus, la détection et la réponse aux points d'extrémité ou le sandboxing, il est essentiel de "verrouiller les portes" avec une technologie préventive toujours active, dotée de capacités de réponse adaptatives.
Pour en savoir plus sur les capacités de confinement et de visibilité des logiciels malveillants et des ransomwares d'Illumio :
- Consultez le site " Combattre rapidement les ransomwares grâce à des limites d'application."
- Découvrez notre série de webinaires en trois parties, " RansomwareHappens. Nous l'empêchons de se propager."
- Essayez Illumio vous-même - inscrivez-vous aux laboratoires pratiques gratuits, L'expérience Illumio.