Le ransomware Petya se propage via l’exploit EternalBlue

Le 27 juin 2017, de nombreuses entreprises – essentiellement en Europe – ont fait état de perturbations importantes qu’elles attribuent au ransomware Petya. Selon nos premières informations, tout semble indiquer que cette variante de Petya se propage via l’exploit EternalBlue, déjà utilisé lors de l’attaque WannaCry de mai 2017.

D’après des sources sûres et des rapports open source, le vecteur initial d’infection serait une mise à jour corrompue de MeDoc, un progiciel de comptabilité très en vogue dans les entreprises ukrainiennes. La date et l’heure de publication de cette mise à jour, le 27 juin 2017, correspondent bien à celles des premiers signalements de l’attaque par ransomware. Elles coïncident également avec les premiers mouvements latéraux via PsExec observés sur les réseaux des victimes vers 10h12 (UTC). En outre, le site de MeDoc affiche actuellement le message d’avertissement suivant (en russe) : "Une cyberattaque est en cours sur nos serveurs. Veuillez nous excuser pour la gêne temporairement occasionnée."

Notre analyse initiale des éléments de preuve et du trafic réseau des victimes révèle qu’une version modifiée de l’exploit SMB EternalBlue a servi, au moins partiellement, à la propagation latérale de la menace, en conjonction avec les commandes WMI, MimiKatz et PsExec pour l’infection d’autres systèmes. L’analyse de ces artefacts étant toujours en cours, nous mettrons cet article à jour dès que nous posséderons de nouvelles informations. 

FireEye a confirmé l’utilisation des deux échantillons suivants dans cette attaque :

  • 71b6a493388e7d0b40c83ce903bc6b04
  • e285b6ce047015943e685e6638bd837e

Nous avons déclenché un événement de protection communautaire (CPE, Community Protection Event) pour lequel nous avons mobilisé tous les moyens nécessaires. Nous poursuivons par ailleurs nos investigations sur les remontées de terrain et les incidents signalés. Pour sa part, FireEye as a Service (FaaS) poursuit sa surveillance active des environnements clients.

Hormis les fonctionnalités FireEye d’analyse comportementale des techniques d’attaque, notre équipe a créé une règle YARA pour permettre aux entreprises de procéder à une analyse antimalware rétroactive de leur environnement, tout en détectant d’éventuelles attaques futures. Pour cela, nous avons axé notre travail sur les techniques malveillantes des pirates qui s’inscrivent au cœur même de l’attaque : utilisation des disques SMB, formulation de la demande de rançon, fonctions et API sous-jacentes, et utilitaires système exploités pour la propagation latérale. Il est possible de modifier les seuils dans les conditions qui suivent.

rule CPE_MS17_010_RANSOMWARE {
meta:version="1.1"
      //filetype="PE"
      author="Ian.Ahl@fireeye.com @TekDefense, Nicholas.Carr@mandiant.com @ItsReallyNick"
      date="2017-06-27"
      description="Ransomware PETYA probable utilisant ETERNALBLUE, WMIC, PsExec"
strings:
      // UTILISATION DES DISQUES
      $dmap01 = "\\\\.\\PhysicalDrive" nocase ascii wide
      $dmap02 = "\\\\.\\PhysicalDrive0" nocase ascii wide
      $dmap03 = "\\\\.\\C:" nocase ascii wide
      $dmap04 = "TERMSRV" nocase ascii wide
      $dmap05 = "\\admin$" nocase ascii wide
      $dmap06 = "GetLogicalDrives" nocase ascii wide
      $dmap07 = "GetDriveTypeW" nocase ascii wide

      // DEMANDE DE RANCON
      $msg01 = "ATTENTION : N’ÉTEIGNEZ PAS VOTRE PC !" nocase ascii wide
      $msg02 = "SI VOUS INTERROMPEZ CE PROCESSUS" nocase ascii wide
      $msg03 = "VOUS DÉTRUIREZ TOUTES VOS DONNÉES !" nocase ascii wide
      $msg04 = "VEILLEZ AU BON RACCORDEMENT DE VOTRE CÂBLE D’ALIMENTATION" nocase ascii wide
      $msg05 = "vos fichiers importants sont cryptés" ascii wide
      $msg06 = "Votre clé d’installation personnelle" nocase ascii wide
      $msg07 = "en bitcoins à l’adresse suivante" nocase ascii wide
      $msg08 = "CHKDSK répare le secteur" nocase ascii wide
      $msg09 = "Réparation du système de fichiers en cours sur " nocase ascii wide
      $msg10 = "ID portefeuille Bitcoin" nocase ascii wide
      $msg11 = "wowsmith123456@posteo.net" nocase ascii wide
      $msg12 = "1Mz7153HMuxXTuR2R1t78mGSdzaAtNbBWX" nocase ascii wide
      $msg_pcre = /(en|de)crypt(ion|ed\.)/     

      // FONCTIONNALITÉS, API
      $functions01 = "need dictionary" nocase ascii wide
      $functions02 = "comspec" nocase ascii wide
      $functions03 = "OpenProcessToken" nocase ascii wide
      $functions04 = "CloseHandle" nocase ascii wide
      $functions05 = "EnterCriticalSection" nocase ascii wide
      $functions06 = "ExitProcess" nocase ascii wide
      $functions07 = "GetCurrentProcess" nocase ascii wide
      $functions08 = "GetProcAddress" nocase ascii wide
      $functions09 = "LeaveCriticalSection" nocase ascii wide
      $functions10 = "MultiByteToWideChar" nocase ascii wide
      $functions11 = "WideCharToMultiByte" nocase ascii wide
      $functions12 = "WriteFile" nocase ascii wide
      $functions13 = "CoTaskMemFree" nocase ascii wide
      $functions14 = "NamedPipe" nocase ascii wide
      $functions15 = "Sleep" nocase ascii wide // importée, pas dans les chaînes     

      // COMMANDES
      //  -- Effacer journaux d’événements & Jrnl USN
      $cmd01 = "wevtutil cl Setup" ascii wide nocase
      $cmd02 = "wevtutil cl System" ascii wide nocase
      $cmd03 = "wevtutil cl Security" ascii wide nocase
      $cmd04 = "wevtutil cl Application" ascii wide nocase
      $cmd05 = "fsutil usn deletejournal" ascii wide nocase
      // -- Tâche planifiée
      $cmd06 = "schtasks " nocase ascii wide
      $cmd07 = "/Create /SC " nocase ascii wide
      $cmd08 = " /TN " nocase ascii wide
      $cmd09 = "at %02d:%02d %ws" nocase ascii wide
      $cmd10 = "shutdown.exe /r /f" nocase ascii wide
      // -- Sysinternals/PsExec et WMIC
      $cmd11 = "-accepteula -s" nocase ascii wide
      $cmd12 = "wmic"
      $cmd13 = "/node:" nocase ascii wide
      $cmd14 = "process call create" nocase ascii wide

condition:
      // (uint16(0) == 0x5A4D)
      3 of ($dmap*)
      and 2 of ($msg*)
      and 9 of ($functions*)
      and 7 of ($cmd*)
}         

FireEye a lu des rapports selon lesquels le malware se répandrait via un email-leurre contenant une pièce jointe au format MS Office, ou encore des liens malveillants vers des documents infectés qui exploitent CVE-2017-0199. Selon nous, ce document n’a aucun lien avec l’attaque en cours et nous n’avons décelé aucun autre signe de l’implication de CVE-2017-0199. Parmi les campagnes que nous avons détectées, nous n’avons observé aucune corrélation avec les victimes connues des attaques Petya.

Répercussions

Ces activités mettent en lumière tout l’enjeu d’une sécurisation des systèmes des entreprises contre l’exploit EternalBlue et les infections par ransomware. Suite aux attaques WannaCry, Microsoft a publié un guide de sécurisation des systèmes Windows contre cet exploit. Pratiques de sauvegarde rigoureuses, segmentation du réseau, air gapping et autres moyens de défense anti-ransomware : toutes ces mesures peuvent aider les entreprises à stopper la propagation des ransomwares et à éliminer rapidement les infections.