Analyse de malwares

Recherche sur les menaces et analyse des logiciels malveillants

Qu'est ce qu'un malware ?

« commençons par le commencement »

Un malware peut se définir comme un logiciel malveillant, les malwares regroupent tous les types de logiciels malveillants Il existe une quantité phénoménale de programmes indésirables. Tous ces programmes portent le nom générique de " malware". Mais sous cette appellation se cache des familles bien différentes les unes des autres. Nous allons les détailler par classe.

Spywares

Un logiciel espion est un type de malware qui espionne l'activité des utilisateurs à leur insu. Ces fonctions d’espionnage peuvent inclure la surveillance des activités, la collecte de frappes au clavier, la collecte de données (informations de compte, connexions, données financières), etc. Les logiciels espions disposent souvent de fonctionnalités supplémentaires, allant de la modification des paramètres de sécurité des logiciels ou des navigateurs aux interférences avec les connexions réseaux. Les logiciels espions se propagent en exploitant des vulnérabilités logicielles, en s'associant avec des logiciels légitimes ou sous des chevaux de Troie.

Keyloggers
Il enregistre tout ce que vous tapez sur votre PC afin de récupérer vos noms de connexion, mots de passe et autres informations sensibles pour ensuite les envoyer à l’attaquant. Souvent, les entreprises et les parents utilisent des filtres parentaux pour obtenir des informations d'utilisation de l'ordinateur par exemple. C’est exactement le même principe de fonctionnement si ne c’est que le keylogger est invisible à tous.

Adware
Parmis les moins dangereux, Adware est un type de malware qui diffuse automatiquement des publicités. Les exemples courants d'adware incluent les annonces contextuelles sur les sites Web et les annonces affichées par les logiciels. Souvent, les logiciels et les applications offrent des versions « gratuites » livrées avec un logiciel publicitaire. La plupart des logiciels publicitaires sont sponsorisés ou créés par des annonceurs et constituent un outil générateur de revenus. Certains logiciels publicitaires sont uniquement conçus pour diffuser des publicités, mais il n’est pas rare qu’ils soient livrés avec un logiciel espion capable de suivre l’activité des utilisateurs et de voler des informations.

Downloaders
Ce malware se présente en général sous la forme d'un petit exécutable. Une fois exécuté sur votre machine il va analyser votre système, vos protections et selon ce qu’il trouve, va se connecter sur un site web, FTP, IRC, etc. De ce site, il va télécharger un autre programme, en général beaucoup plus agressif, tel un cheval de trois ou un Rootkit.

Virus
Un virus est une forme de malware capable de se copier et de se propager sur d'autres ordinateurs. Les virus se propagent souvent à d'autres ordinateurs en se liant à divers programmes et en exécutant du code lorsqu'un utilisateur lance l'un de ces programmes infectés. Les virus peuvent également se propager par le biais de fichiers de script, de documents et de vulnérabilités de script inter site dans des applications Web. Les virus peuvent être utilisés pour voler des informations, endommager les ordinateurs hôtes et les réseaux, créer des réseaux de zombies, voler de l'argent, afficher des publicités, etc.

Vers
Les vers informatiques font partie des types de logiciels malveillants les plus courants. Ils se propagent sur les réseaux informatiques en exploitant les vulnérabilités du système d'exploitation. Les vers endommagent généralement leurs réseaux hôtes en consommant de la bande passante et en surchargeant les serveurs Web. Les vers informatiques peuvent également contenir des « charges » « utiles » qui endommagent les ordinateurs hôtes. Les données utiles sont des morceaux de code écrits pour effectuer des actions sur les ordinateurs affectés, au-delà de la simple propagation du ver. Les charges utiles sont généralement conçues pour voler des données, supprimer des fichiers ou créer des botnets. Les vers informatiques peuvent être classés comme un type de virus informatique, mais plusieurs caractéristiques distinguent les vers informatiques des virus classiques. Une différence majeure réside dans le fait que les vers informatiques ont la capacité de se répliquer et de se propager indépendamment, tandis que les virus dépendent de l'activité humaine pour se propager (exécution d'un programme, ouverture d'un fichier, etc.). Les vers se propagent souvent en envoyant des courriels contenant des pièces jointes infectées aux contacts des utilisateurs. Les chevaux de Troie (Trojan) et portes dérobées (Backdoor).

Cheval de Troie
Un cheval de Troie, communément appelé « RAT » pour (Remote Acces Tools) ou « Trojan », est un type de malware qui se déguise en un fichier ou un programme normal pour inciter les utilisateurs à télécharger et à installer un malware. Un cheval de Troie peut donner à un tiers malveillant un accès à distance à un ordinateur infecté. Une fois qu'un attaquant a accès à un ordinateur infecté, il peut voler des données (identifiants de connexion, données financières, même de la monnaie électronique), installer, modifier des fichiers, surveiller l'activité des utilisateurs (surveillance de l'écran, webcam, enregistrement de frappe, etc.), utiliser l’ordinateur dans les réseaux de zombies et anonymiser l’activité Internet de l’attaquant. Ce Malware est l’un des plus dangereux et répondu avec les « rootkit ».

Backdoors
Les portes dérobées ressemblent beaucoup aux chevaux de Troie ou aux vers, à la différence qu’elles ouvrent une « porte dérobée » sur un ordinateur, fournissant ainsi une connexion réseau aux hackers ou autres logiciels malveillants à saisir ou aux virus ou au SPAM à envoyer.

Rootkits
C'est le logiciel malveillant le plus difficile à détecter et donc à supprimer ; de nombreux experts recommandent d’effacer (formater) complètement votre disque dur et de tout réinstaller à partir de zéro. Un rootkit est un type de logiciel malveillant conçu pour accéder ou contrôler à distance un ordinateur sans être détecté par les utilisateurs ou les programmes de sécurité. Une fois le rootkit installé, il est possible pour la partie malveillante située derrière le rootkit d'exécuter à distance des fichiers, d'accéder / de voler des informations, de modifier les configurations du système, de modifier des logiciels (en particulier tout logiciel de sécurité pouvant détecter le rootkit), d'installer des logiciels malveillants dissimulés ou de contrôler l'ordinateur en tant que partie d'un botnet. La prévention, la détection et l'élimination des rootkits peuvent être difficiles en raison de leur fonctionnement furtif. Parce qu'un rootkit cache continuellement sa présence, les produits de sécurité typiques ne sont pas efficaces pour détecter et les supprimer. En conséquence, la détection de rootkit repose sur des méthodes manuelles, telles que la surveillance du comportement de l'ordinateur en cas d'activité irrégulière, l'analyse de signature et l'analyse de vidage de stockage. Les organisations et les utilisateurs peuvent se protéger des rootkits en corrigeant régulièrement les vulnérabilités des logiciels, des applications et des systèmes d'exploitation, en mettant à jour les définitions de virus, en évitant les téléchargements suspects et en effectuant des analyses statiques.

Flooders
Distributed Denial of Service (DDOS), désigne l'attaque d'un ou de plusieurs systèmes compromis contre une cible, ce qui provoque une inondation de messages entrants, et qui accable le système et provoque son arrêt. Ces programmes passent souvent par une phase de contamination (installation sur le plus de machines possibles) avant la phase d'attaque proprement dite. Cette attaque est beaucoup utilisée contre les sites web.

Ransomwares
En 2012 est apparu un nouveau type de malwares : les Ransomwares. Ransomware est une forme de malware qui détient essentiellement un système informatique tout en exigeant une rançon. Le logiciel malveillant restreint l'accès des utilisateurs à l'ordinateur en chiffrant des fichiers sur le disque dur ou en verrouillant le système et en affichant des messages destinés à obliger l'utilisateur à payer son créateur pour supprimer les restrictions et retrouver l'accès à son ordinateur. Les ransomwares se propagent généralement comme un ver informatique normal se retrouvant sur un ordinateur via un fichier téléchargé ou via une autre vulnérabilité d'un service réseau. Les ransomwares les plus connus sont Cryptolocker, Crytowall, TeslaCrypt et Wannacry. Mais une multitude de variantes existe.

Rogue security software
Il trompe les utilisateurs. Il prétend être un bon programme pour éliminer les infections par les logiciels malveillants, mais reste le logiciel malveillant. Souvent, le véritable logiciel antivirus sera désactivé. L'image suivante montre l'écran typique de ce logiciel malveillant, Antivirus 2010.

Conclusion:
Plusieurs millions de malwares sont ainsi recensés. La plupart affectent le monde Windows. Depuis quelques années, nous observons que la majorité des malwares récents sont en fait une combinaison des différentes familles. Par exemple, le malware "Kelvir.B" se propage par MSN, télécharge et installe une variante du Virus SpyBot qui lui permet de prendre la main à distance de votre poste et se propage par mail. Cette multiplicité des agents infectueux qui se répandent par tous les protocoles possibles, fait des malwares un facteur de risque élevé pour tout ordinateur ayant accès à Internet.

Les techniques d'analyse

L'analyse des logiciels malveillants (« malware » en anglais) permet de déterminer leurs fonctionnements et leurs impacts potentiels. C'est une tâche essentielle dans la sécurité informatique, elle fournit la compréhension nécessaire pour concevoir des contre-mesures efficaces et des stratégies d'atténuation contre les différents logiciels malveillants.

Lorsque l'on veut analyser un échantillon suspect, la plupart du temps nous avons à faire à un exécutable sans code source lisible. Pour être en mesure de comprendre son fonctionnement, il est nécessaire d'utiliser une variété de techniques et d'astuces. Nous distinguons 3 types d'analyses complémentaires :

Analyse statique

L'objectif est ici de récupérer le maximum d'informations sans exécuter le malware. Pour ce faire l'analyste va identifier les chaines de caractères utilisées par le programme, analyser les metadata et utiliser un désassembleur pour analyser le code. Cette technique peut se révéler très efficace mais montre rapidement ses limites en présence de malwares complexes comportant de l'obfuscation.

Analyse dynamique

Contrairement à l'analyse statique, l'analyse dynamique vise à exécuter le malware pour comprendre son comportement. Autrement appelée analyse comportementale, il s'agit ici d'observer les interactions du malware avec le système. Pour pouvoir réaliser une analyse dynamique sans risque, il est nécessaire de disposer d'un environnement sécurisé et isolé. L'avantage est ici de voir en pratique le fonctionnement du malware. Cependant il y à un risque de ne pas observer certaines fonctionnalités. De plus, certains malwares sophistiqués sont capable de modifier leur comportement en présence d'analyse dynamique.

Analyse forensique

L’analyse forensique a pour objectif l'investigation numérique est le processus de découverte et d'interprétation de données électroniques.
Le processus permet de préserver toute preuve dans sa forme la plus originale tout en menant une enquête structurée en collectant, identifiant et en validant les informations numériques dans le but de reconstituer des événements passés.
L’analyse forensique fournit des preuves à la justice et aide à mieux comprendre les incidents.
par exemple après une attaque informatique.
Les recherches peuvent porter sur les journaux d’applications ou d’équipements réseaux, mémoires, disques durs et d’autre supports amovibles. Dans certain cas, la récupération et l'investigation d'appareils numériques et de matériaux numériques souvent liés à la violation des règles de l'organisation ou des lois de l'État.
Cela implique l'utilisation d'un large éventail de technologies, méthodes et procédures d'enquête.

Obfuscation

« Cachez ce code que je ne saurais voir »

A l’origine, l'obfuscation de code a pour objectif de protéger vos codes sources en les rendant illisibles
aussi bien pour un être humain qu’un décompilateur.
Obfusqué (dans le contexte d'un logiciel) est une technique qui rend les données
binaires et textuelles illisibles et / ou difficiles à comprendre.
Les développeurs de logiciels utilisent parfois des techniques d’obfuscation
parce qu’ils ne veulent pas que leurs programmes soient piratés.
La plupart des malwares actuels veulent rester cachés afin d’empêcher leur suppression et leur analyse.
Les malwares y parviennent en recourant à de nombreuses techniques.
Par exemple en utilisant des noms de fichiers obfusqués, en modifiant les attributs du programme,
ou dans des cas plus avancés en masquant les processus en cours et les connexions réseau.
Les possibilités sont infinies. Sa mise en œuvre peut être aussi simple comme avancée
avec des chiffrements cryptographiques ( DES, AES). Dans le monde des logiciels malveillants,
il est utile de masquer les mots importants utilisés par le programme (appelés « strings» pour chaîne de caractères), car ils donnent un aperçu du comportement du programme malveillant. Des exemples de telles chaînes sont par exemple, des URL malveillantes ou des clés de registre.

Exemple de chaîne de caractères :



Dans de nombreux cas, c'est l’ensemble du logiciel malveillant qui est offusqué.
Cela empêche tout le monde de voir le code du malware jusqu'à ce qu'il soit placé en mémoire.

Exemple de programme Obfusqué :
1. Le code de la fonction n'est pas obfusqué:

Figure 1: Cette fonction collecte des informations sur votre ordinateur et les envoies sur un site web.

2. Le code de la fonction est obfusqué:
Figure 2: Le code d'origine n'a plus rien à voir, on peut que faire des supositions sur ce qu'il est censsé faire.

Voyons quelques exemples pratiques d'obfuscation utilisés dans de nombreux logiciels malveillants encore aujourd’hui.

Méthode 1: L'exclusivité ou l'opération ( XOR)
L'exclusivité ou opération (représentée par XOR) est probablement la méthode d'obfuscation la plus couramment utilisée.
En effet, il est très facile à mettre en œuvre et cache facilement vos données à des yeux non avertis.
Considérez les données en surbrillance suivantes.

IMAGE

Dans sa forme actuelle, les données sont illisibles.
Mais lorsque nous appliquons une valeur XOR de 0x55, nous voyons tout autre chose.

IMAGE

Nous avons maintenant notre URL malveillante.
On dirait que ce malware contacte « http://tator1157.hostgator.com» pour récupérer le fichier « bot.exe».
Cette forme d’obfuscation est généralement très facile à vaincre. Même si vous ne disposez pas de la clé XOR,
il existe des programmes pour parcourir manuellement toutes les valeurs XOR à un octet possibles lors de la recherche d'une chaîne particulière.
Bien entendu, ce n’est pas toujours aussi simple. Les auteurs de logiciels malveillants savent que de tels programmes existent, ils mettent en œuvre leurs propres astuces pour éviter toute détection
de cette méthode.

Méthode 2: ROT13
La plus simple des deux techniques couramment utilisées est la ROT13.
ROT est une instruction ASM pour "faire pivoter", donc ROT13 signifierait "faire pivoter 13".
ROT13 utilise la substitution de lettre simple pour obtenir une sortie obfusquée.

Commençons par encoder la lettre «a». Comme nous effectuons une rotation par treize, nous comptons les treize lettres suivantes de l’alphabet
jusqu’à atterrir à «n». Voilà, c'est fini!



ROT13 utilise une simple substitution de lettre pour brouiller le texte.
Et vous l’aurez deviné, rien ne nous empêche de faire la même chose avec 15 lettres!
Il existe une multitude d’autre méthodes, mais je ne vais pas toutes les présenter ici.
Ce type obfuscation est obtenu à l’aide de ce que l’on appelle un programme de compression « packer ».
Un programme de compression est un logiciel qui prend le fichier de logiciel malveillant d'origine et le compresse, rendant ainsi tout le code et toutes les données d'origine illisibles. Au moment de l'exécution,
un programme ou une fonction interne « wrapper » prend le programme compressé et le décompresse en mémoire, révélant le code d'origine du programme afin d’être interprété et exécuté par le système d’exploitation. Les packers sont utilisés depuis longtemps à des fins légitimes, notamment pour réduire la taille des fichiers et protéger contre le piratage.
Cette technique favorise la confidentialité de toutes propriétés intellectuelles contre la rétro-ingénierie.

Il existe des programmes disponibles qui détectent les packers commerciaux utilisés pour l’obfuscation.
Pour les logiciels malveillants, la situation est bien plus compliquée.
Les auteurs de malwares développent des programmes de compression personnalisés pour empêcher les ingénieurs de reverse engineering de décompresser le contenu de leurs malwares. Cette approche élimine les scripts automatisés de décompression modernes ( unpacker) et oblige les analystes à décompresser manuellement le fichier pour voir ce que fait le programme. Encore plus rare, les auteurs de logiciel malveillant pack leurs fichiers deux fois, d’abord avec un packer commercial, puis avec leur propre packer personnalisé.

Conclusion
Les techniques d'obfuscation deviennent très compliquée et changent constamment.
cette liste de techniques d'obfuscation n’est pas exhaustive, l’obfuscation est une technique extrêmement fiable qui permet de masquer une partie du contenu d’un programme, voire même l’ensemble du programme s’il utilise un logiciel de compression « packer ».

Labs

« Environnement pour l'analyse »

Pourquoi avez-vous besoin d'un laboratoire d'analyse de logiciels malveillants
et comment le construire ?
Idéalement, nous voulons un environnement isolé sur lequel nous pourrons gérer nos fichiers potentiellement très dangereux. Nous voulons pouvoir voir sa communication réseau, sans alerter les concepteurs du malware. Être en mesure de voir ce qui est modifié sur le système d'exploitation, de vérifier les modifications du registre, les modifications de fichiers, la création de processus, etc.
Par ailleurs, certains malwares sophistiqués sont capables de détecter une solution de virtualisation pour modifier leur comportement ou cesser de s'exécuter pour empêcher toute analyse.
Un excellent moyen d’en savoir plus sur les logiciels malveillants est de créer votre propre laboratoire personnel et de jouer avec des échantillons de logiciels malveillants dans cet environnement. Cela peut être un projet amusant et éducatif même si vous n'êtes pas un professionnel d'InfoSec. Si vous êtes un professionnel d'InfoSec, ce que vous apprendrez dans votre laboratoire à la maison pourrait vous aider à faire votre travail plus efficacement.

Comme vous pouvez l’imaginer, il n’existe pas une solution unique toute faîte.
Vous devrez déterminer ce qui vous convient le mieux. Le processus de création de votre propre laboratoire d’analyse de logiciels malveillants commence par déterminer vos besoins et de la configuration de celui-ci.
En dépit de vos besoins spécifiques sur les machines d’analyse, il sera très important que vous disposiez de systèmes dédiés avec des outils pour contrôler, analyser et protéger votre environnement, même s'il est virtualisé. Le prochain grand choix auquel vous êtes confronté est le système d’exploitation à installer en tant que système invité pour votre laboratoire.

D'après mon expérience, la majorité des logiciels malveillants vise des systèmes Windows.
Inutile de dire que la plupart des logiciels malveillants sont conçus pour s'exécuter sur des systèmes Windows, vous voudrez donc probablement choisir cette option.
Ma suggestion serait Windows XP SP2 et / ou Windows 7 comme base. Cela vous permettra d'exécuter la majorité des échantillons malveillants que vous rencontrerez et vous assurera de couvrir toutes les plates-formes Windows pour les analyser. La majorité des échantillons sont des fichiers exécutables. Cependant, lorsqu’il s’agit d’attaques de logiciels malveillants à l’état sauvage, vous pouvez être confronté à un code malveillant enveloppé dans des formats de fichier légitimes. Cela peut inclure, sans toutefois s'y limiter, les documents Microsoft Office et les fichiers PDF. Pour analyser ce que ces documents malveillants font sur un système, vous devez installer des versions vulnérables du logiciel requis.

Exemple d'une machine virtuel :
1. Interface Oracle VM VirtualBox:

Figure 1: 3 machines virtuels insallées sur cette interface. 1 Windows XP, 1 Windows7 et 1 windows 10.

Je ne m'attarde pas ici sur l'installation et la configuration d'une machine virtuel.
Il existe sur internet une multitude d'excellent tutoriels à cet effet.
Attention toute fois à la configuration du réseaux dans la machine virtuel.
Cette étape est très importante! Il y a différente façon de configurer son réseau pour l'analyse de malwares.
Après ça dépend beaucoup comment vous voulez récupérer les trames (packet) sur votre réseau.
Vous pouvez utiliser une autre machine virtuel avec un logiciel qui fait office de passerelle et router tous le traffic dessus. Ou alors un logiciel qui simule un serveur DNS par exemple. Nous verrons plus en détail cette étape dans le cas pratique.

2. La machine virtuel lancée avec Windows 7:
Figure 2: Windows 7 installé avec tous les programmes et mise à jour effectuées.

Une fois Windows ainsi que tous vos tools pour l'analyse des malwares installé, vous devez prendre un instantané en cliquant sur « Machine » / « Prendre un instantané... ».
Cela va créer une image de l'état actuel de la machine virtuelle afin que vous puissiez revenir plus tard ou créer de nouvelles machines virtuelles à partir de la même image. Un instantané revient à créer une copie du contenu du disque dur et de la RAM de votre ordinateur virtuel. Lorsque vous « restaurer » un instantané, cela revient à écraser le disque dur et la RAM avec les données sauvegardées lors de l’instantané.
Vous devez faire cette opération après chaque analyse de malwares.

3. Rétablir l'instantané de la machine virtuel:
Figure 3: Cette opréation annule les modifications et bien sûr les infections par logiciels malveillants survenues après la prise de l’instantané.

Une fois l'installation terminée, il est vivement recommandé de basculer les paramètres réseau de la machine virtuelle sur le mode hôte uniquement afin d'éviter que des échantillons de logiciels malveillants ne se connectent accidentellement à Internet ou à un réseau local.

Vous êtes prêt, vous pouvez choisir n'importe quel échantillon, allumer vos machines et commencer à vous familiariser avec les outils, les systèmes et votre nouvel environnement.

Si vous ne savez pas quel outils installer, allez faire un tour sur la section « Link » du site. Sinon, il y a l'excellent FLARE VM de la société fireeye. C'est une distribution spécialement conçue pour l'analyse de malwares.
FLARE VM de Peter Kacherginsky reverse engineer dans la l’équipe FLARE est une distribution de sécurité basée sur Windows, open source, conçue pour les ingénieurs en reverse engineering, les analystes de logiciels malveillants, les intervenants en cas d'incident, les experts judiciaires et les testeurs d'intrusion. Inspiré des distributions de sécurité basées sur Linux et open source telles que Kali Linux, REMnux et autres, FLARE VM fournit une plate-forme entièrement configurée avec une collection complète d’outils de sécurité Windows tels que des débogueurs, des désassembleurs, des décompilateurs, des utilitaires d’analyse statique et dynamique, des analyses de réseau et manipulation, évaluation Web, exploitation, applications d’évaluation de la vulnérabilité, et bien d’autres. La distribution inclut également les outils d’analyse des logiciels malveillants publics de l’équipe FLARE, tels que FLOSS et FakeNet-NG. Moi personellement je l'ai adoptée et vous ?

Vous cherchez une bonne série d'exemples d'échantillon pour commencer, je vous recommanderais theZoo, un dépôt Github avec plus de 170 échantillons de familles différentes à regarder. Attention, il s'agit de malwares fonctionnels et dangereux!
Donc, assurez-vous de bien le gérer.
Bonne chasse !

Cas pratique

« Où es-tu ? Et qui es-tu vraiment ? »

 

Pour ce premier cas pratique, je voulais vous sensibiliser sur l’utilisation grandissantes de logiciels malveillants dans des contextes de guerre civile.
Nous allons prendre comme exemple le conflit Syrien de 2012.

Contexte:
Au cours des dernières années, les cyber-attaques en Syrie se sont déplacées en première ligne.
Il y a de nombreuses activités de cyber-attaques qui ont été liés à la Syrie, en particulier à ceux menés par « l’armée électronique syrienne » et les groupes pro-gouvernementaux. Internet a joué un rôle important dans le conflit en Syrie. Les différents groupes d'acteurs impliqués dans la guerre ont utilisé internet non seulement pour promouvoir leurs idéologies, mais aussi cibler leurs ennemis afin de les espionner, déstabiliser et intércépter. L’opposition a de plus en plus recours à des plateformes telles que Facebook pour organiser et diffuser son message. En réponse, des partisans du régime comme l’armée électronique syrienne » ont cherché à perturber ces activités en altérant des sites Web et en polluant des pages Facebook.
ce conflit a pris une nouvelle dimension avec des rapports suggérant des attaques de logiciels malveillants ciblées contre les partisans du mouvement d'opposition Syrien.
Pour la plupart, ces logiciels malveillants ont été principalement déployé à l’aide de « social engineering » sur les courriels, chats et réseaux sociaux qui sont toujours des bons vecteur d'infection.

Compte tenu de la complexité de la situation et des enjeux de cet évènement,
nous ne nous concentrerons que sur les logiciels malveillants lié à ce conflit et particulièrement à l’analyse d’un de ces malwares.
Il y a un site qui recense des échantillons de ce conflit c’est le site site https://syrianmalware.com/.
Nous allons choisir un de ces échantillons est nous allons le diséqul avec les méthodes et outils que nous avons vu dans ce site.
Nous verrons ce que fait dans les détails ce malware afin de vous faire une idée plus précise de l’analyse de malwares dans un cas bien concret.


Site web https://syrianmalware.com/:

1. Echantillions de malwares:
Figure 1: Quelques échantillions recensés de malwares du conflit en Syrie.

Nous allons dowloader l'échantillon qui se nomme AntiHacker.exe







Le nom de ce fichier est intéressant car on pourrait croire qu'il s'agit d'un anti-virus ou d'une protection contre les hackers.
C'est d'ailleurs le but de cette fausse compagne lancée par les groupes pro-gouvernementaux Syrien à l'égard des activistes. Faire croire que pour se proteger de tous ces logiciels malveillants il faut installer un programme de sécurité. L'art du « social engineering » rentre en scène.
Ils ont mis en place un site web et une page Facebook afin de vanter les mérites de leur logiciel de sécurité.


Le site web du faux programme :
Source image: EFF.


La page Facebook du faux programme:
Source image: EFF.


AntiHacker.exe est un « Rogue security software ».
Il se fait passer pour un logiciel de sécurité, mais enfaîte c'est tout le contraire...

Voyons ce qu'il a dans le ventre ce AntiHacker.exe !

Analyse static:
Lets'go!



En ouvre notre desassembleur préféré est en constate qu'il s'agit enfaite d'un downloader. En regardant les imports et le code, c'est assez parlant!





Le downloader charge simplement l'url binaire à partir des ressources, télécharge le fichier exécutable et l'exécute, assez simple.
Juste en possédant ce fichier, nous pouvons simplement récupérer le malware d'origine et nous avons de la chance, Le nom de fichier et l'URL ne sont pas cryptés.
comme vous pouvez le voir sur ce vidage hexadécimal: (J'ai changé volentairement l'url )

 



Maintenant Récupérons le fichier malveillant à partir de l'URL pointée par le downloader et prenons un instantané propre de notre machine virtuelle, un Windows 7 32 bits dans mon cas.

 

Analyse static du serveur (malware)

 

Ici, l'intêret est de récolter un maximum d'information sur le malware sans l'executer.
Dans un premier temps, on pourrait très bien aller sur virustotal pour faire une analyse de notre fichier, sa signature est sans doute déjà répértoriée.
Mais le but de ce premier lab, est de faire le travail manuellement afin de comprendre au mieux la démarche et la méthodologie.
(qui je le rappelle n'est pas exhaustive, il existe une multitude de façon pour arriver au même résultat).

 

Nous allons charger dans l'outils PEiD notre executable.

 

 

On peu constater qu'il a été compilé en Borland Delphi 7. C'est pas une version toute jeune, c'était dans les années 2000-2008. Mais c'est déjà une première info!
Personnellement, je connais quelques malwares écrit en Delphi 7, du coup je me fais déjà une idée de qui il est! Pas vous ?
Mais on va confirmer cela avec l'outils pestudio.

 

Nous allons charger dans l'outils pestudio notre executable.

 

 

Nous avons des informations intéressantes ici!
Par exemple, c'est un système Win32 bit, compilé au mois de juin 2012 et surtout la ligne file-description | Remote Service Application
Elle nous indique clairement que nous avons ici un cheval de trois!
Pour en avoir le coeur net, nous allons faire un tour dans la section strings de pestudio, je pense que nous allons pas être déçu!

 

BINGO!

 

 

Les strings parlent d'elles mêmes.
Il y a plus de 8000 strings et rien que la capture suffit à comprendre que c'est bien un cheval de trois
Je peux même vous dire que c'est le cheval de trois DarkComet ici présent!
Il y pas mal de strings avec des variables « DC... » ce qui est une des signatures de ce malware.

Je vais faire un petit aparté, j'ouvre une parenthèse ( pour vous présentez en détail ce malware côté Client (Hacker) avant de commencer les choses sérieuses avec l'analyse dynamique.

 

DarkComet fournit de nombreuses fonctionnalités très similaires à d'autres RAT disponibles dans le commerce et implémente la même architecture client-server comme indiqué dans le diagramme ci-dessous. Les servers sont construits sur la machine cliente et déployés sur autant d'hôtes distants que nécessaire, une fois déployés, ils se reconnecteront au client et attendront les commandes.
Le côté client fournit une console d'administration pour gérer toutes les connexions entrantes, permettant une capacité de commande et de contrôle complète et un accès au système de fichiers. Plusieurs «profils» de servers peuvent être conservés à partir d’un seul client et les servers peuvent être mis à jour ou désinstallés à distance.

 

 

 

La capture d'écran ci-dessous montre la console d'administration principale exécutée sur le client sur lequel les servers sont construits et toutes les connexions entrantes contrôlées:

 

 

Nous allons voir la partie génération du server, celui qui sera envoyé à la victime.

 

 

 

 

Nous pouvons voir les valeurs par défaut du server.
On regardant la capture d'écran et nos résultats au niveau des strings, on s'aperçois vite que le pseudo Hacker a laissé les valeurs par défaut lors de la génération du server.

 

Sur cette capture d'écran, on peut voir les fonctionalités et commandes que peut envoyer le client au server.

 

 

Voilà, je ferme cette parenthèse )

 

Ce qui nous intéresse dans cette analyse, c'est de pouvoir trouver d'ou vient l'attaque (IP,DNS,PORT,PAYS, etc...) et les données qui transitent sur le réseau par le biais du malware CLIENT <-> SERVER.

 

Analyse dynamique du serveur

 

Avant d'exécuter le fichier, il est judicieux de prendre un instantané du registre, de nos documents et du répertoire tmp afin de comprendre quels fichiers et entrées de registre sont créés / supprimés.

Pour cela, nous pouvons utiliser l'application RegShot: url: RegShot.

 

 

On prend la première photo avant d'exécuter le fichier, et la seconde après l'avoir exécuté, à partir de cette comparaison, nous comprendrons quels sont les modifications apportées à notre système. Nous constatons que deux fichiers ont été créés:

 

C: \ Users \ IEUser \ Documents \ MSDCSC \ msdcsc.exe
C: \ Users \ IEUser \ AppData \ Local \ Temp \ dclogs \ 2020-22-02-6.dc

 

 

Il y a également une nouvelle entrée dans le registre qui a été ajoutée:

 

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run | MicroUpdate | C:\Users\IEUser\Documents\MSDCSC\msdcsc.exe

 

 

Analyse du trafic réseau:

 

Connexion initiale.

 

Une fois installé sur la machine de la victime, le server DarkComet commence par ouvrir une connexion TCP à l'adresse préconfigurée de son client. Le server tente de se connecter via TCP au port choisi sur l'IP / domaine choisi. Si une connexion peut être établie, le trafic de commande et le contrôle commence malheureusement pour nous, chiffrée à l'aide de RC4.
Comme on peut le voir sur cette trame réseau.

 

 

Le client effectue une prise de contact dans laquelle le server envoie des informations d'identification (par exemple, l'ID de user/server, le pays, l'ip, etc...). Si aucun trafic de commande et de contrôle actif se produit, la connexion réseau est maintenue avec une série de requêtes TCP [PSH, ACK] contenant le mot «keepalive», suivi d'une chaîne de chiffres.
Cette séquence, ainsi que la conversation de commande et de contrôle initiale sous sa forme chiffrée, est lisible avec un analyseur réseau (sniffer). La clé statique et le mot de passe sont intégrés dans le server et peuvent être récupérés nous permettant de décrypter toutes les communications DarkComet.

 

Détails du cryptage.

 

j'ai extrais toutes les chaines de caractères du server afin de voir si il y a pas une signature d'un algorithme de cryptage.
Je suis arrivé sur plusieur texte avec le terme RC4, ce qui me fait penser qu'il s'agit d'un cryptage RC4.

 

 

Pour en être sur, il faudrait analyser si il y a des permutations avec des loops dans le code.
Pour ce premier cas, on va dire que c'est bien du RC4. (c'est d'ailleurs souvent cet algorithme qui est utilisé dans ce genre de malware). Pour toute les versions antérieur de DarkComet, c'est le cas! Mais on n'est jamais à l'habrit d'un cryptage fait maison.

 

Tout le trafic de commande et de contrôle est crypté avec l'algorithme RC4. La clé de chiffrement par défaut pour la version 4 est # KCMDDC4 # -890, et pour la version 3 est # KCMDDC2 # -890. Si un mot de passe de sécurité est fourni pendant la phase de création du server, le mot de passe est ajouté à la clé par défaut. Par conséquent, pour la version 4 avec le mot de passe par défaut activé, la clé de chiffrement deviendrait: # KCMDDC4 # -8900123456789.

 

Afin de décrypter le trafic, la connaissance de la clé de cryptage est requise et peut être trouvée par l'analyse du binaire. Si le binaire n'est pas compressé, les détails, y compris la clé et l'adresse IP / le domaine distant, peuvent être trouvés dans l'exécutable en texte clair. Cependant, si le binaire est compressé, ces détails ne seraient pas visibles en raison de l'obfuscation. Lorsque le processus malveillant est en cours d'exécution ces informations notables peuvent être trouvées en mémoire.

 

Recherche de la clé de cryptage

 

Ouvrant notre plus beau Débugger et executant le server.
On cherchant des mot clé comme (password, pwd) dans les strings, ça va nous permettre de cibler le bout de code qui nous intéresse plus facilement en débuggant pas à pas.
Il faut pas oublier de mettre un point d'arrêt sur la string! Cela permettra au débugger de s'arrêter dessus...

 

Ce que nous pouvons consater!
L'emplacement de la clé de cryptage est stocké dans le registre EAX, ainsi que tous les autres paramètres de connexion.
Voir la capture d'écran du débbuger avec le server non compressé illustré ci-dessous.

 

 

Clé par défaut: #KCMDDC5#-890
Password: pwdAnalyseTest
Mutex: DC_MUTEX-TestAnalyse
ID Server/User: Guest16
IP Attaquant: 192.168.57.130
Port: 1604
Version: 5.3

Clé de déchiffrage pour le trafic réseau: Clé par défaut + Password = #KCMDDC5#-890pwdAnalyseTest

 

Maintenant, il nous reste plus qu'a utiliser notre clé pour déchiffrer les données échangées entre le client et le server.
Pour cela, personnellement j'utilise souvent un petit script python pour faire le déchiffrage et le chiffrage de l'algorithme RC4.
Mais de plus en plus, j'utilise le fabuleux tools CyberChef qui est le couteau Swiss des transformations et déchiffrages en tout genre...

 

url: CyberChef.

 

 

Nous allons prendre la trame réseau chiffrée de la Connexion initiale que nous avons eu à l'aide d'un sniffer par exemple WireShark.

 

 

Copier/coller dans le tools CyberChef
Choisissez l'algorithme RC4 disponible et configuré commme sur la capture d'écran.

 

 

Et BINGO!!! Nous avons bien notre trame déchiffrée.

 

Le tableau ci-dessous montre le trafic de l'exemple ci-dessus, décrypté.
GetSIN192.168.57.130|130937421 infoesGuest16|192.168.57.130 / [192.168.57.130] : 1604| PC-Analysis / Administrator|130937421|0s|Windows 7 Service Pack 2 [2600] 32 bit ( C: )|x||US|Program Manager| b5c7d186b478fc77626a5ae806479815|324.55 MB/580.27 MB [532.40 MB Free]|English (United States) US / -- |2/22/2020 at 2:58:57 PM

 

Maintenant, nous sommes capable de déchiffrer le trafic réseau entre le client et le server. Pas mal pour un début, non ?
J'ai volentairement comme déjà dis plus haut modifié l'IP et d'autre infos car je n'ai pas envie que tous les bots du net fassent des liens avec ce site...

 

je pense que pour commencer c'est une bonne méthode, cela reste une analyse basic, mais dans ce domaine, il est préférable de bien assimiler les bases avant de ce lancer sur plus compliqué!
Car si vous essayez de faire des analyses trop compliquée dès le début, vous allez vite être déçu et démotivé, ça serait dommage...

 

Conclusion de ce petit lab

 

Dans ce cas pratique, j'ai montré comment l'inverse engineering et l'analyse du trafic a permis une meilleure détection des activités malveillantes ciblées.
L'inverse engineering a été utilisée pour comprendre le cryptage utilisé et identifié comment le mot de passe peut être extrait d'un hôte infecté. Il est désormais possible de décrypter le trafic réseau et de voir clairement les commandes réelles utilisées par l'attaquant pendant l'attaque.
cela permet l'évaluation et l'attribution de l'impact. De plus, l'analyse du trafic réseau identifié peut être utilisée pour détecter de futures instances de cette attaque et des attaques similaires, offrant ainsi une protection future. Des outils d'administration à distance comme DarkComet sont fréquemment utilisés dans des attaques ciblées et des recherches comme celle-ci nous permettent de comprendre les menaces et de les détecter tôt.

 

Voilà, j'espère que vous aurez pris plaisir à suivre cette introduction à l'analyse de malware dans ce premier cas pratique. Il y en aura d'autre, l'idée est de monter dans la difficulter progressivement!

 

See you soon...

About

LI Officer et Developer / InfoSec dans une entreprise de Telecom


j'aime écrire sur les menaces les plus récentes et analyser les mécanismes d'intrusion.
J’ai fais ce site pour partager ma passion pour la cyber sécurité et tous particulièrement l’analyse des malwares, mais également pour sensibiliser le monde de ces menaces invisibles. Ce n’est qu’une introduction à l’analyse de malware, le but n’est donc pas d’expliquer toutes les techniques et le métier en détail, mais de donner une vue globale.

Les attaques informatiques et les logiciels malveillants sont de plus en plus présents dans le monde d'aujourd'hui.

Des chiffres affolants ! En mai 2019, le nombre total de nouvelles détections de logiciels malveillants dans le monde au cours de l'année s'élevait à 903,14 millions de programmes. C'est une augmentation par rapport à 2018, dans laquelle 856,62 millions de nouveaux logiciels malveillants avaient été détectés.
(source statista).

Ce chiffre n’a cessé d’augmenter, c’est dire l’ampleur exponentielle de la cyber menace.
Si on prend en compte Les variantes des malwares, les chiffres, explosent.

Conclusion :
Dans les années avenir, il y aura de plus en plus de cyber menaces.
Les attaques sont multiples et font appel à des technologies très évoluées.
Ces attaques sont de plus en plus ciblées et complexes à éradiquer souvent de type APT (Advanced Persistent Threat).
Les gouvernements l’ont compris, ils ont tous un département cyber sécurité avec une team d’analystes malwares, forensiques, reverse engineering et chercheurs en sécurité.

C’est devenu essentielle pour détecter, analyser, qualifier les incidents et les menaces pour mieux anticiper les futures évolutions.
Nous assistant actuellement à l’émergence de nouveaux métiers tel que celui présenté sur ce site.
L'analyse des malwares n'est plus réservée uniquement aux éditeurs d'antivirus.
Il ne devient pas rare de voir des offres d’emplois de ce type, certaines entreprises ont déjà fait le pas et d’autres vont suivre prochainement.
la cybercriminalité progresse et tout le monde est concerné, particuliers, entreprises, et gouvernements.

Patrick Jossevel.

Contact

Prenez contact avec moi.

Lausanne, VD, Suisse

info@cyber-analysis.ch

Des remarques, des questions ou besoin d'informations supplémentaires? Utilisez mon email pour me contacter!

© Corporate 2019 All right reserved. Writing and developed by Patrick Jossevel