ATTAQUES PAR LE RANÇONGICIEL MESPINOZA/PYSA 2 TLP:WHITE TLP:WHITE Attaques par le rançongiciel Mespinoza/Pysa Sommaire 1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Mode opératoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Le rançongiciel Mespinoza/Pysa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 Deux versions différentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.2 Messages de demande de rançon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.3 Un troisième rançongiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Tactiques, Techniques et Procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.1 Vecteur d’infection, reconnaissance et latéralisation . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.2 Furtivité et maintien sur le système d’information . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2.3 Commande et Contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 Recommandations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Page 2 sur 9 TLP:WHITE TLP:WHITE Attaques par le rançongiciel Mespinoza/Pysa 1 Contexte L’ANSSI a récemment été informée d’attaques informatiques visant notamment des collectivités territoriales fran- çaises. Lors de ces attaques, des codes malveillants de type rançongiciel ont été utilisés, rendant certains fichiers inutilisables. L’origine de ces attaques est inconnue à ce jour, et des analyses sont actuellement en cours. Toutefois, les attaques par rançongiciels sont généralement conduites de manière opportuniste par des acteurs motivés par des objectifs lucratifs, et ce à l’encontre d’entités variées. Le but de ce document est de décrire le mode opératoire utilisé lors de ces attaques et les indicateurs de compro- mission associés, puis de fournir des recommandations permettant de limiter l’impact de ce type d’incident. 2 Mode opératoire La compromission présentée dans ce document a touché des systèmes d’information interconnectés, et semble utiliser principalement une variante d’un rançongiciel connu en source ouverte sous le nom de Mespinoza. Les éléments techniques exposés ci-après sont issus d’analyses en cours et sont susceptibles d’évoluer. 2.1 Le rançongiciel Mespinoza/Pysa Le rançongicielMespinoza est utilisé depuis octobre 2018 aumoins. Ses premières versions produisaient des fichiers chiffrés portant l’extension « .locked», commune à de nombreux rançongiciels. Depuis décembre 2019, une nou- velle version de Mespinoza est documentée en source ouverte, parfois appelée Pysa car elle produit des fichiers chiffrés portant l’extension « .pysa». 2.1.1 Deux versions différentes Le rançongiciel utilisé dans la présente attaque semble être une variante de Pysa. Deux versions en ont été décou- vertes lors des investigations : • Un fichier exécutable nommé « svchost.exe». Ce fichier était accompagné de plusieurs scripts .bat notam- ment chargés de copier l’exécutable dans le dossier « C:\windows\temp» (qui n’est pas l’emplacement légitime de l’hôte de service standard) et de l’exécuter. • Une archive Python nommée « 17535.pyz», contenant le code source Python du rançongiciel. Nom fichier SHA-1 Taille svchost.exe 52b2fc13ec0dbf8a0250c066cd3486b635a27827 516608 octets 17535.pyz c74378a93806628b62276195f9657487310a96fd 279590 octets Version exécutable Windows NOUVEAU La version exécutable du rançongiciel dépose et exécute un script nommé « update.bat» chargé de le supprimer après exécution [T1107]. NOUVEAU Plusieurs artefacts système sont générés par le rançongiciel. D’abord, le code malveillant créé unMutex nommé « Pysa». Ensuite, il modifie la clé de registre SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System [T1112] pour y ajouter les entrées suivantes : • « legalnoticetext = [Message de demande de rançon]» • « legalnoticecaption = PYSA» Page 3 sur 9 TLP:WHITE TLP:WHITE https://attack.mitre.org/techniques/T1107 https://attack.mitre.org/techniques/T1112 Attaques par le rançongiciel Mespinoza/Pysa NOUVEAU Enfin, la routine de chiffrement comprend une liste d’extensions de fichiers à chiffrer, ainsi qu’une liste de chaînes de caractères identifiant des fichiers critiques à épargner (par exemple, “:\Windows\”). Les fichiers créés par la routine de chiffrement portent l’extension « .pysa» [T1486]. Ces observations sont parfaitement cohérentes avec les précédentes souches de Pysa analysées en source ouverte, voir [1]. Version Python L’archive Python « 17535.pyz» est composée d’un fichier run.py et des bibliothèques Python pyaes et rsa assurant la fonctionnalité de chiffrement [T1486]. Le fichier run.py contient la configuration du rançongiciel, notamment la clé publique RSA utilisée pour le chiffre- ment, le message de demande de rançon ainsi qu’une variable permettant de choisir l’extension des fichiers chiffrés. Dans la version découverte, cette dernière variable contenait la valeur « .pysa». NOUVEAU Le fichier run.py comporte également une instruction permettant de supprimer le rançongiciel après son exécution, comme dans la version exécutable [T1107]. 2.1.2 Messages de demande de rançon Hormis l’extension « .pysa» des fichiers qu’ils créent, rien n’indique que les deux codes malveillants décrits ci- dessus soient utilisés par le même mode opératoire. Toutefois, tous deux créent un fichier de demande de rançon, sous la forme d’une fenêtre pop-up et d’un fichier « Readme.README» dans le premier cas et d’un fichier nommé « RECOVER_YOUR_DATA.txt» dans le second cas. Ces demandes de rançon sont écrites dans un anglais approximatif. Bien que différentes, elles contiennent des chaînes de caractères identiques comme « To get all your data back contact us:». L’une des deux propose également à la victime le déchiffrement gratuit de deux fichiers, en guise de bonne foi. Ces deux caractéristiques étaient également présentes dans des versions antérieures du rançongiciel Pysa. Enfin, les messages de demande de rançon contiennent deux adresses de courriel PROTONMAIL qui semblent géné- rées à partir de noms propres choisis au hasard. Il est à noter que les deux messages de demande de rançon contiennent les mêmes adresses. De plus, des adresses de courriel similaires ont été utilisées dans des versions antérieures de Pysa. 2.1.3 Un troisième rançongiciel NOUVEAU Sur l’un des systèmes d’information compromis, un troisième code malveillant de type rançongiciel a été utilisé. Il se présente sous la forme de deux scripts PowerShell nommés « step1.ps1» et « step2.ps1» [T1086]. Nom fichier SHA-1 Taille step1.ps1 - 12066 octets step2.ps1 24c592ad9b21df380cb4f39a85d4375b6a8a6175 4869 octets NOUVEAU Ces codes fonctionnent de la manière suivante : • Le script « step1.ps1» est chargé de lister les fichiers présents sur le système. Il contient plusieurs expressions régulières dont le but est d’éluder certains dossiers et fichiers critiques, à l’instar de la version exécutable de Pysa. Les noms de fichiers sont ensuite encodés en base 64 (séparés par le caractère “|”) et passés en paramètre de « step2.ps1». • Afin d’exécuter « step2.ps1», le script « step1.ps1» créé une copie de l’exécutable powershell.exe sous un nom aléatoire de la forme « EnNoB-X.exe», où X est un entier compris entre 1000 et 9876. (Le code de « step1.ps1» contient notamment l’emplacement de « step2.ps1» sur la machine victime, c’est pourquoi son condensat n’est pas reproduit.) Page 4 sur 9 TLP:WHITE TLP:WHITE https://attack.mitre.org/techniques/T1486 https://attack.mitre.org/techniques/T1486 https://attack.mitre.org/techniques/T1107 https://attack.mitre.org/techniques/T1086 Attaques par le rançongiciel Mespinoza/Pysa • Le script « step2.ps1» a pour but le chiffrement des fichiers passés en paramètre. Pour ce faire, il contient une clé publique RSA, et fait appel à l’algorithme AES-CBC [T1486]. De nouveau, une liste d’extensions de fichiers à épargner est présente. Dans cette version, les fichiers crées par la routine de chiffrement comportent l’extension « .newversion», qui peut toutefois être modifiée. Enfin, le script « step2.ps1» comprend une instruction permettant de supprimer la copie de powershell.exe l’ayant exécuté [T1107]. NOUVEAU Le script « step1.ps1» créé un fichier de demande de rançon nommé « Readme.READ». Bien que son message soit très court, il comprend les mêmes adresses de courriel PROTONMAIL que précédemment. Il est donc probable que toutes ces attaques soient l’œuvre d’un même mode opératoire. NOUVEAU Pour conclure, il est à noter qu’aucun des trois rançongiciels analysés ne dispose de capacité d’auto- propagation. 2.2 Tactiques, Techniques et Procédures Plusieurs traces d’activité liées au mode opératoire ont été observées sur le système d’information compromis. 2.2.1 Vecteur d'infection, reconnaissance et latéralisation Le vecteur d’infection initial est inconnu à ce jour, mais plusieurs événements survenus peu avant l’attaque pour- raient être liés au mode opératoire et avoir permis l’accès initial ou la latéralisation. • Des tentatives de connexion par force brute sur une console de supervision ont été observées, ainsi que sur plusieurs comptes ACTIVE DIRECTORY [T1110]. Par ailleurs, certains comptes d’administrateurs de domaine ont effectivement été compromis. • L’exfiltration d’une base de données de mots de passe a eu lieu peu avant l’attaque [T1081]. • Des connexions RDP illégitimes ont eu lieu entre contrôleurs de domaine en utilisant un nom d’hôte inconnu potentiellement lié au mode opératoire [T1076]. Les scripts « .bat» utilisés par le mode opératoire pour exécuter le rançongiciel (voir la Section 2.1.1) révèlent une utilisation importante de l’outil d’administration à distance PsExec [T1035], ainsi que du langage de script Power- Shell [T1086]. NOUVEAU L’analyse des machines compromises a également révélé la présence de plusieurs instances de l’outil Mimikatz, potentiellement utilisé pour obtenir des authentifiants [T1003]. NOUVEAU Enfin, les outils de reconnaissance réseau Advanced Port Scanner et Advanced IP Scanner de FAMA- TECH ont été découverts sur le système d’information [T1016]. 2.2.2 Furtivité et maintien sur le système d'information L’un des scripts « .bat»mentionnés ci-dessus est chargé d’exécuter sur des machines du réseau un script PowerShell baptisé « p.ps1». Ce script a plusieurs fonctionnalités, parmi lesquelles : • L’arrêt des services antiviraux et de divers autres services et processus, ainsi que la désinstallation deWINDOWS DEFENDER [T1089]. • La suppression des points de restauration et des Shadow Copy [T1490]. • Une modification des fichiers README pour faciliter l’ouverture par double-clic. • L’envoi d’un datagramme UDP contenant l’adresse MAC de la machine sur le port 7. • La modification du mot de passe des comptes locaux [T1498]. Page 5 sur 9 TLP:WHITE TLP:WHITE https://attack.mitre.org/techniques/T1486 https://attack.mitre.org/techniques/T1107 https://attack.mitre.org/techniques/T1110 https://attack.mitre.org/techniques/T1081 https://attack.mitre.org/techniques/T1076 https://attack.mitre.org/techniques/T1035 https://attack.mitre.org/techniques/T1086 https://attack.mitre.org/techniques/T1003 https://attack.mitre.org/techniques/T1016 https://attack.mitre.org/techniques/T1089 https://attack.mitre.org/techniques/T1490 https://attack.mitre.org/techniques/T1498 Attaques par le rançongiciel Mespinoza/Pysa Il semble que ce script permette à la fois d’améliorer la furtivité du mode opératoire, de maintenir ses accès et de préparer l’exécution du rançongiciel. La dernière fonctionnalité suggère qu’un programme du mode opératoire pourrait être en écoute sur le port 7. Néanmoins, aucun programme de ce type n’a été découvert pour le moment. NOUVEAU Plusieurs outils découverts sur le système d’information compromis ont pu permettre à l’attaquant de maintenir ses accès sur certaines machines ou d’exfiltrer des données, comme le client SSH Putty ou le client FTP WinSCP [T1021]. 2.2.3 Commande et Contrôle Outil d'accès à distance en Go NOUVEAU Sur plusieurs machines compromises, un même fichier binaire a été découvert. SHA-1 Taille f2dda8720a5549d4666269b8ca9d629ea8b76bdf 5207040 octets NOUVEAU Ce fichier a été découvert sous plusieurs noms de fichiers légitimes comme sshsc.exe ou explorer.exe. Une instance a notamment été découverte à l’emplacement « C:\windows\temp\svchost.exe», identique à celui utilisé pour le rançongiciel Pysa (voir la Section 2.1.1). Ceci suggère que ces outils pourraient avoir été utilisés par le même mode opératoire. NOUVEAU Ce fichier correspond à un outil d’accès à distance écrit dans le langage Go. Une particularité de cet outil est l’écriture de journaux en clair dans le fichier « %TEMP%\hlog.log». Utilisation d'Empire Plusieurs agents de l’outil de post-exploitation Empire ont été découverts, notamment sur des contrôleurs de do- maine des systèmes d’information compromis. Bien qu’aucun lien technique n’ait été établi avec l’utilisation du rançongiciel Pysa, il est probable que ces codes malveillants aient été utilisés par le même mode opératoire. 2.3 Commentaires Le mode opératoire observé dans cette attaque semble compatible avec un acteur opportuniste motivé par un but lucratif. Les techniques, tactiques et procédures utilisées sont classiques et n’ont pas montré à ce jour de techniques d’at- taques particulièrement évoluées. Le mode opératoire a effectué quelques actions permettant d’éviter la détection par des solutions de sécurité, notamment en désactivant certaines d’entre elles. Toutefois, ces actions visent davan- tage à permettre l’exécution du rançongiciel qu’à effacer des traces. La version Python du rançongiciel est basée sur des bibliothèques publiques et son code spécifique est très court. Les éléments observés suggèrent que cet outil pourrait avoir été développé récemment ou de manière hâtive. Par ailleurs, la mise en œuvre de trois rançongiciels différents suggère que le mode opératoire a pu s’adapter aux carac- téristiques du système d’information. Enfin, de nombreux outils de post-exploitation disponibles en source ouverte ont été utilisés au cours de l’attaque. L’ensemble de ces éléments est cohérent avec le profil d’un acteur opportunistemettant enœuvre desmoyens adap- tés à l’accomplissement de son objectif. 3 Recommandations Les indicateurs de compromission exposés dans la section précédente peuvent être bloqués et recherchés sur un système d’information pour prévenir ou détecter une attaque similaire. Page 6 sur 9 TLP:WHITE TLP:WHITE https://attack.mitre.org/techniques/T1021 Attaques par le rançongiciel Mespinoza/Pysa Plus généralement, dans le cadre d’une attaque par rançongiciel et afin d’empêcher la compromission complète du système d’information, les mesures d’hygiène et de sécurité classiques suivantes s’appliquent et peuvent être conduites en parallèle : • M1. Assurer une sauvegarde des données critiques : bases de données métier, partages de fichiers réseaux, bases de données Exchange (attention : l’architecture par redondance “backupless” uniquement en ligne n’est pas suffisante contre les rançongiciels qui arrêtent les services liés à Exchange et chiffrent toutes leurs bases enmême temps), forêts Active Directory, etc. Ces sauvegardes doivent être périodiquement exportées vers un support inaccessible depuis le réseau et leur restauration doit être testée périodiquement afin de s’assurer qu’elles soient utilisables en cas d’urgence. Cette mesure est la seule garantie de protection des données face à un rançongiciel qui chiffrerait les données en ligne par propagation réseau. • M2.Mener des campagnes demises à jour, en commençant par les vulnérabilités exploitables à distance (RCE). Si un inventaire logiciel du parc n’est pas disponible, donner la priorité auxmises à jour génériques des systèmes d’exploitation : MS08-067, MS14-068, MS17-010 (“EternalBlue” utilisée par le rançongiciel Wanna- Cry), CVE-2019-0708 (“BlueKeep”), etc. Les contrôleurs de domaine et autres serveurs critiques doivent être mis à jour dès la publication de mises à jour de sécurité avec les correctifs de sécurité cumulatifs (Monthly Rollup); • M3. Restreindre, par filtrage réseau, l’accès à certains ports réseau les plus critiques sur les postes de travail (notamment 135, 139, 445, 3389, 5585 etc.) aux seuls postes d’administration clairement identifiés, par exemple au moyen du pare-feu intégré de Windows. Les postes de travail ne doivent exposer aucun service applicatif et ne doivent pas avoir de raison de communiquer entre eux. Le même principe s’applique pour la surface exposée par les serveurs applicatifs et entre unemajorité des serveurs. Les flux réseau ne devraient être ouverts que sur un principe de ”liste blanche” documentant le besoinmétier auquel répond chaque ouverture de flux. Si un tel inventaire n’existe pas déjà, il peut être commencé dès maintenant au moyen d’une écoute réseau passive (solutions fournissant des journaux NetFlow ou équivalents, ou simple règle de pare-feu en mode ”audit”) ; • M4. Migrer vers des moyens d’assistance à distance et d’administration sécurisés protégeant les authen- tifiants de l’administrateur vis-à-vis du système à administrer (ce que ne garantit pas par défaut VNC). Par exemple, Microsoft Remote Assistance est intégré à Windows pour une assistance utilisateur interactive. Pour les besoins d’administration à distance : – Si une session interactive n’est pas nécessaire, privilégier l’utilisation des composants Microsoft Mana- gement Consoles (MMC) intégrés à Windows ou installables par commande PowerShell1. – Si une session interactive est nécessaire, utiliser un compte administrateur local de la machine. Un seul compte administrateur local devrait être activé à tout instant sur chaque machine, et ce compte devrait avoir des authentifiants différents pour chaquemachine (faute de quoi, la compromission d’unemachine permet leur rejeu sur toutes les autres). Par exemple, la solution LAPS (Local Administrator Password Solution2) éditée par Microsoft permet de remplir ces objectifs, à condition de déléguer finement les droits d’accès au mot de passe administrateur local en respectant le principe du moindre privilège. • M5. Utiliser des comptes administrateurs Active Directory (AD) dédiés et nominatifs pour garantir leur traçabilité ; • M6. Minimiser au maximum les comptes de service et les comptes utilisateurs membres des groupes d’administration de l’Active Directory (”Administrateurs”, ”Admins du domaine”, ”Administrateurs de l’en- treprise”, ”Administrateurs du schéma”, ”DNS Admins”, ”Opérateurs de comptes”, ”Opérateurs de serveurs”, ”Opérateurs de sauvegardes”, et ”Opérateurs d’impression”). Si un droit d’accès est nécessaire, effectuer une délégation par liste de contrôle d’accès et jamais par ajout dans un des groupes privilégiés. Une fois toutes les délégations effectuées, les comptes administrateurs AD ne doivent être nécessaires que dans des cas excep- tionnels (voir le modèle d’administration en tiers3) ; • M7. Assigner au compte administrateur intégré (RID 500) un mot de passe complexe, stocké sous enve- loppe papier, et utilisé uniquement en urgence ou dernier recours ; 1Get-WindowsCapability -Name ’*RSAT*’ -Online | Add-WindowsCapability -Online 2https://support.microsoft.com/fr-fr/help/3062591/microsoft-security-advisory-local-administrator-password-solution-laps 3https://docs.microsoft.com/fr-fr/windows-server/identity/securing-privileged-access/securing-privileged-access-reference-material Page 7 sur 9 TLP:WHITE TLP:WHITE Attaques par le rançongiciel Mespinoza/Pysa • M8. Utiliser les comptes d’administration de l’Active Directory seulement depuis des postes dédiés sans usage bureautique (navigation,messagerie, etc.) et sans accès à Internet.Ces postes doivent avoir un pare- feu local bloquant tout flux entrant, sans exception, et être les seuls systèmes depuis lesquels sont utilisés les comptes d’administration ; • M9. Assurer un archivage des journaux d’évènements du parc (Windows EventLogs, syslogs d’équipements réseau et Unix, etc.) dans un puits de journaux assurant une rétention de plusieurs mois au minimum, acces- sible uniquement par les administrateurs en ayant le besoin. Ces journaux seront nécessaires pour me- ner à bien les éventuelles actions de réponse à incident et de remédiation en cas de compromission. Compte-tenu de leur volumétrie, il peut être utile de séparer les journaux d’authentification des contrôleurs de domaine des journaux des autres systèmes de parc. Page 8 sur 9 TLP:WHITE TLP:WHITE Attaques par le rançongiciel Mespinoza/Pysa Bibliographie [1] [TLP:WHITE] MALWARE.NEWS, Another one for the collection - Mespinoza (Pysa) Ransomware. Déc. 2019. Page 9 sur 9 TLP:WHITE TLP:WHITE Contexte Mode opératoire Le rançongiciel Mespinoza/Pysa Deux versions différentes Messages de demande de rançon Un troisième rançongiciel Tactiques, Techniques et Procédures Vecteur d'infection, reconnaissance et latéralisation Furtivité et maintien sur le système d'information Commande et Contrôle Commentaires Recommandations