Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 

De la Théorie à la pratique











Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Duqu 2.0 : analyse de l’attaque APT « connue » la plus avancée

octobre 2015 par Emmanuelle Lamandé

En Juin 2015, Kaspersky Lab publiait la découverte d’une attaque avancée sur ses réseaux internes. Cette attaque, baptisée Duqu 2.0, s’avère à la fois complexe et furtive, utilise des vulnérabilités Zero day et est très probablement le fruit d’une organisation étatique. Nicolas Brulez, Principal Malware Researcher chez Kaspersky Lab, a présenté à l’occasion des Assises de la Sécurité les détails du fonctionnement de cette attaque, qui reste à ce jour l’attaque APT « connue » la plus avancée.

C’est au début du printemps 2015, à l’occasion d’un test de sa nouvelle solution anti-APT en cours de développement, que Kaspersky Lab a détecté les signes d’une attaque complexe et ciblée contre son propre réseau. Cette attaque, baptisée Duqu 2.0, n’est autre qu’une nouvelle version encore plus évoluée de la menace Duqu, qui avait déjà sévi en 2011.

Suite à l’analyse détaillée de cette attaque, les chercheurs de Kaspersky Lab ont pu déterminer son fonctionnement et ses motivations. Ils ont également découvert que l’entreprise n’était pas la seule cible. D’autres victimes ont été recensées au Moyen-Orient, dans les pays d’Europe de l’est et en Asie principalement. Duqu 2.0 a été utilisé pour attaquer plusieurs cibles complexes de haut niveau, aux intérêts géopolitiques variés similaires. Certaines infections étaient liées, en effet, aux évènements du P5+1, dans le cadre de négociations avec l’Iran autour du nucléaire. L’objectif des attaquants, en ciblant ces entreprises, était principalement le vol d’informations. Ils ont également visé quelques victimes que l’on peut appeler « utilitaires » (fournisseur de certificats par exemple).

Du côté de Kaspersky Lab, à l’exception du vol de propriété intellectuelle, aucun autre indicateur d’activité malveillante n’a été détecté. L’analyse a révélé que l’objectif premier des assaillants était d’espionner les technologies de Kaspersky Lab, les recherches en cours, notamment quant à leurs méthodes de détection et capacités d’analyse, et les procédures internes. Aucune interférence avec les processus ou les systèmes n’a été détectée.

Afin de pénétrer le réseau de Kaspersky, ils ont tout d’abord ciblé un employé dans un bureau du groupe en Asie, sans doute via du spearphishing. Ils se sont servis de cette porte d’entrée afin de rebondir dans le reste du réseau. Les machines étaient toutes à jour, ils ont donc utilisé une vulnérabilité 0-day pour mener à bien l’attaque initiale. Une fois entrés, les attaquants ont tout d’abord procédé à la reconnaissance et à l’identification du réseau, avant de pouvoir étendre leur périmètre. Après avoir élevé le niveau de privilèges pour devenir administrateur du domaine, l’attaque s’est répandue dans le réseau via des fichiers MSI (Microsoft Software Installer). Ces derniers sont régulièrement utilisés par les administrateurs système pour déployer des logiciels sur des ordinateurs Microsoft distants. Généralement, dans les différents observés, ils ont aussi infecté les reboot serveurs, de manière à garder le contrôle même en cas de redémarrage de la machine. L’attaque n’a laissé derrière elle aucun fichier sur les disques durs et n’a modifié aucun paramètre système, rendant sa détection quasiment impossible. Elle a en tout exploité 3 failles zero-day. La dernière d’entre elles (CVE-2015-2360) a été patchée par Microsoft le 9 juin dernier, suite à sa notification par les experts de Kaspersky Lab.

Pour chaque victime de Duqu 2.0 recensée, les attaquants ont utilisé une combinaison d’algorithmes de chiffrement et de compression différente, ce qui le rend encore plus difficile à détecter par les solutions de sécurité. Parmi les algorithmes de chiffrement utilisés, on retrouve notamment Camellia, AES, XTEA et RC4… Du côté des algorithmes de compression, on peut citer : LZJB, LZF, FastLZ et LZO. Deux types de package ont également été observés : une version « basic » à environ 500 Ko ; une autre plus évoluée à 18 Mo, dont a été victime Kaspersky.

Voici un schéma de la structure de l’attaque Duqu 2.0 :

(Source : GReAT - Kaspersky Lab)

La structure d’un package repose donc principalement sur les binaires ActionCall (msi.dll), ActionData0 et Klif.dll... Tout le framework de Duqu 2.0, bien qu’il fonctionne grâce à une 0-day en mode Kernel, est refait pour chaque victime. Mais de manière générale, Duqu 2.0 liste tous les noms de process et en détourne les droits en vue de les utiliser. Il vérifie ensuite la présence de différentes solutions de sécurité. Puis, il va venir détecter les exécutables, récupérer l’emplacement de ces binaires, les télécharger et écrire par-dessus. Du côté des payloads, 5 types de charges utiles ont été identifiées par les chercheurs de Kaspersky Lab, portant le nom de lettres de l’alphabet : g, i, k, l et q. Ce qui peut laisser supposer qu’il en ait existé d’autres pendant le développement de l’attaque…

Ces packages MSI peuvent également contenir des dizaines de modules, ayant différentes fonctions de cyberespionnage. Le module principal, l’orchestrateur, permet de gérer les commandes des serveurs de contrôle.
Parmi tous les différents modules identifiés par l’équipe de Kaspersky Lab, il cite notamment des modules permettant à Duqu 2.0 de :
- Récupérer de l’information sur la machine et l’exfiltrer ;
- Manipuler des fichiers ;
- Effectuer des recherches sur le réseau ;
- Allouer de la mémoire pour stocker l’information ;
- Infecter la machine ;
- Gérer les postes de travail à distance ;
- Détecter les sniffers ;
- Récupérer des noms de domaine, la time zone de la machine, un historique des périphériques amovibles utilisés, la liste de tous les documents récents affichés sur la machine, etc. ;
- Voler les informations contenues dans les bases de données ;
- Voler les mots de passe ;
- Etc.

Ce programme malveillant exploite une méthode complexe et avancée pour cacher sa présence dans le système : le code de Duqu 2.0 n’existe que dans la mémoire de l’ordinateur et tente d’effacer toute trace sur le disque dur. Il n’y a donc aucun mécanisme de persistance. De cette manière, si une entreprise effectue du forensic, aucune trace de l’activité de Duqu 2.0 ne sera détectée sur le réseau. La persistance du malware repose uniquement sur sa 0-day kernel qui permet de reprendre la main sur les machines, même en cas de coupure, compliquant ainsi fortement sa détection par les solutions anti-malware. Par ailleurs, cette attaque ne se connecte pas directement à un serveur de commande et de contrôle pour recevoir des instructions. À la place, les attaquants ont infecté les passerelles Internet et les firewalls du réseau, en installant des drivers qui redirigent tout le trafic du réseau interne vers les serveurs C&C’s des attaquants.

En résumé, Duqu 2.0 repose sur un mécanisme de prise de contrôle http d’images (jpeg et gif) qui vont contenir les commandes à exécuter. On retrouve le code source de Duqu version 2011, mais qui a été amélioré. Le langage de programmation utilisé est, quant à lui, différent : C++ en 2015 vs C en 2011. Les chercheurs de Kaspersky Lab ont également recensé plus de victimes, plus de plugins… avec cette nouvelle version. En outre, le mode opératoire et la philosophie du groupe Duqu 2.0 indiquent un bond en avant d’une génération par rapport à tout ce qui a pu être observé en matière d’APT jusqu’à présent. Enfin, Duqu 2.0 n’a pu être créé, selon lui, uniquement par des personnes ayant eu accès au code source de Duqu 1.0. Et il semblerait vraisemblablement que cette campagne ait été sponsorisée par un État, conclut-il.


Le rapport incluant les détails techniques de Duqu 2.0 est disponible à l’adresse suivante : https://securelist.com/blog/researc...


Articles connexes:


Voir les articles précédents

    

Voir les articles suivants