Cas réel de Ransomware

25 Mai 2018
David Carnot,
314
0

Comme nous l’évoquions dans le précédent article « Cryptojacking : Quand les attaquants en veulent à votre CPU » la valeur des cryptomonnaies ayant récemment décuplée, les pirates deviennent avides de tout moyen permettant d’en obtenir.

L’un de ces moyens étant la compromission et le chiffrement d’un système, les pirates demandent alors une rançon. Bien souvent celle-ci demande à être payée en Bitcoin, pour des raisons d’anonymat.

Digitemis a récemment été mandaté par un client suite à la compromission d’un de ces systèmes. Nous vous proposons de vous exposer un retour d’expérience ayant amené Digitemis à retrouver les données chiffrées.

Timeline des évènements :

Durant un week-end, le client est victime d’une attaque informatique. Il ne s’en rend compte que le lundi, en arrivant sur place et en observant une demande de mot de passe sur l’un de ses serveurs :

Après vérification, l’intégralité des serveurs a été chiffré, les sauvegardes n’étant pas déconnectées du réseau, les pirates les ont supprimées. Le client vient à cet instant de perdre 25 ans de données.

Suite à une rapide analyse post-mortem, les pirates seraient rentrés au travers d’une connexion RDP via l’utilisation d’identifiant et mot de passe par défaut d’un applicatif installé. Des informations supplémentaires fournies par les attaquants ont permis d’identifier que l’attaque menée, bien que non ciblée spécifiquement contre le client, n’était pas le fruit d’une attaque de masse. Plusieurs actions manuelles ont été réalisées.

Intervention de Digitemis :

Un premier contact avec les pirates est effectué le jour même afin de connaitre la procédure permettant d’obtenir les mots de passe :

La rançon est alors fixée à 2 Bitcoins (l’équivalent de 16 000€ au moment des faits) :

Les pirates fournissent également un exemple de mot de passe permettant de prouver qu’ils détiennent véritablement les mots de passe :

Ce mot de passe se présente sous la forme d’un PIN à 8 chiffres et permet effectivement de déchiffrer l’intégralité du disque. Plusieurs informations peuvent alors être récupérées grâce à ce PIN :

  • L’outil utilisé pour chiffrer le disque via l’analyse des applications récemment installées, ici : DiskCryptor ;
  • Le format des mots de passe utilisés, ici : un PIN semblant être composé uniquement de chiffres. Nous partons alors du principe que la valeur du PIN peut varier de 1 à plusieurs milliards.

Analyse de DiskCryptor

Dans un premier temps, il a été nécessaire d’étudier les algorithmes de chiffrement supportés par DiskCryptor afin d’identifier d’éventuelles faiblesses dans l’implémentation de la cryptographie. DiskCryptor supportant les 3 algorithmes suivants :

  • AES-256
  • Twofish
  • SERPENT

À ce jour, ces algorithmes ne sont pas considérés comme vulnérables, il n’était donc pas imaginable de réaliser une attaque par force brute pour obtenir la clef de déchiffrement, le temps d’exécution étant le principal problème.

Dans un second temps, la méthode de déchiffrement du disque a été analysée. Il existe deux moyens de réaliser le déchiffrement :

  • Soit au travers de l’interface graphique :

  • Soit au travers de l’API disponible en ligne de commande :

Le binaire dccon.exe renvoie un message différent en fonction du succès ou de l’échec du montage du disque :

Dès lors, il ne restait plus qu’à réaliser une attaque par brute-force pour tester toutes les combinaisons.

Mise en place d’un brute force :

Le client évoluant dans un environnement virtuel, il s’agissait dans un premier temps de convertir les images VmWare en « disque physique » à l’aide de qemu :

Après le montage de l’image raw, il est alors possible de la copier sur une clef USB, afin d’en réaliser une copie « physique » :

Il n’est pas nécessaire de copier l’intégralité du disque, seuls les premiers octets sont nécessaires.

Une fois cette étape terminée, il convenait de réaliser un script permettant de tester toutes les possibilités :

Il ne restait plus alors qu’à exécuter ce script en incrémentant au fur et à mesure les combinaisons testées.

À titre d’information, et au vu de la puissance de calcul disponible, nous avions calculé qu’il était possible de tester par machine, environ 1 million de possibilités en 7h.

Après quelques jours de calculs sur plusieurs machines, le code PIN est alors tombé :

Conclusion de cette expérience

Bien que l’attaque ait provoqué des dégâts non négligeables au sein du système d’information en termes de disponibilité et d’intégrité des données, il n’en demeure pas moins que les outils utilisés et la complexité de l’attaque réalisée ne demandait pas un niveau d’attaque très élevé.

Plusieurs contre-mesures permettant de limiter le risque d’une telle attaque peuvent être définies suite à cette expérience, à savoir :

  • L’analyse des règles de pare-feu afin de détecter des règles trop permissives ;
  • Le changement de tous les mots de passe par défaut des applicatifs exposés sur internet ;
  • L’analyse des procédures PCA/PRA afin de s’assurer de la bonne gestion des sauvegardes hors-ligne ;
  • La réalisation périodique d’audits de sécurité (tests d’intrusion internes / externes).