Par Bhabesh Raj Rai, Associate Security Analytics Engineer
Découvert pour la première fois en août 2018, Ryuk est un type de ransomware qui a la réputation de faire partie de l’une des familles les plus malveillantes qui aient jamais existé sur la scène du cybercrime. Après une courte pause, Ryuk a fait un retour avec de nouvelles tactiques qui réduisent considérablement le délai entre l’intrusion initiale et le déploiement du ransomware.
Ryuk est basé sur une ancienne variante de ransomware appelée Hermes qui a été vendue sur des forums underground cybercriminels en 2017. Lazarus Group a déployé Hermes en 2017, conduisant ainsi les chercheurs à croire à tort que Ryuk était originaire de Corée du Nord. Cependant, à l’heure actuelle, il existe un consensus sur le fait que des groupes cybercriminels russophones ont obtenu l’accès à Hermes et exploitent Ryuk.
Ryuk est l’une des premières variantes de ransomware avec la possibilité d’identifier et de chiffrer les partages et les ressources réseau, ainsi que de supprimer les shadow copies au niveau des endpoints infectés. Selon plusieurs chercheurs, le ransomware Ryuk est déployé en tant que charge virale finale via TrickBot et Emotet, mais il utilise maintenant aussi le malware Bazar. Bazar est récemment devenu le malware furtif et dissimulé préféré pour attaquer des cibles prestigieuses et fait partie de la boîte à outils du groupe TrickBot.
Les opérateurs du ransomware Ryuk sont connus pour exiger des demandes de rançon plus élevées que de nombreux autres groupes de ransomwares. Joel DeCapua a révélé lors de la conférence RSA 2020 que sur 144,35 millions de bitcoins payés à des groupes de ransomwares entre 2013 et 2019, 61,26 millions avaient été envoyés aux opérateurs Ryuk. Les attaquants s’en prennent aux entreprises possédant des actifs critiques et qui sont, par conséquent, plus susceptibles de payer : cette stratégie est aussi appelée « la chasse au gros gibier » (‘big game hunting’).
Une attaque Ryuk typique démarre lorsqu’un utilisateur ouvre un document Office piégé et intégré à un email de phishing qui libère ensuite Emotet. Peu de temps après, Emotet télécharge Trickbot, qui lance des opérations de reconnaissance et commence à collecter des identifiants, permettant ainsi un mouvement latéral vers les actifs critiques connectés au réseau interne. Les acteurs de Ryuk vérifient ensuite si l’entreprise est de grande valeur et déploient enfin Ryuk sur des cibles sélectionnées, complétant de cette manière la chaîne d’attaque.
Récemment, Ryuk est revenu après une longue absence avec de nouveaux outils et tactiques. Les opérateurs de Ryuk ont changé leurs Tactiques, Techniques et Procédures (TTP) pour réduire considérablement le délai entre la compromission initiale et le déploiement du ransomware. Ils ont réduit ce décalage temporel en le faisant passer de quelques semaines à quelques jours seulement. Il existe même des cas où seulement quelques heures séparent la compromission initiale du déploiement. A l’heure actuelle, les opérateurs de Ryuk déploient des procédures telles qu’ADFind, vsftpd, Cobalt Strike, Rubeus et PowerView pour atteindre leurs objectifs.
Les acteurs de Ryuk élèvent également leurs privilèges à l’aide de ZeroLogon (CVE-2020-1472), signifiant ainsi qu’ils sont capables d’infecter avec succès une entreprise dans son intégralité en cinq heures seulement. Référez-vous à notre précédent article pour en savoir plus sur la détection de l’exploitation ZeroLogon avec LogPoint SIEM.
Détection du ransomware Ryuk à l’aide de LogPoint
En utilisant le framework MITRE ATT&CK et LogPoint, les équipes de sécurité peuvent détecter Ryuk tout au long des différentes étapes d’une attaque. Les requêtes de recherche liées aux différentes TTP utilisées par Ryuk sont mentionnées ci-dessous.
Exécution du ransomware Ryuk
Nous pouvons rechercher la phase initiale de l’infection en examinant la création de l’invite de commande (T1059.003) ou du PowerShell (T1059.001) à partir des produits Office.
norm_id=WinServer event_id=4688 parent_process IN ["*\winword.exe", "*\excel.exe", "*\powerpnt.exe"] "process" IN ["*\cmd.exe", "*\powershell.exe"]
Parfois, la macro malveillante intégrée dans le document peut directement télécharger et exécuter la charge virale. En général, nous pouvons rechercher toutes les créations de processus suspects à partir de produits Office.
norm_id=WinServer event_id=4688 parent_process IN ["*\winword.exe", "*\excel.exe", "*\powerpnt.exe"]
Habituellement, les charges virales sont placées dans les dossiers Temp, ProgramData ou C:\Users\Public, que nous pouvons détecter via les logs de création de fichiers de Sysmon.
norm_id=WindowsSysmon event_id=11 file=*.exe path IN ["C:\ProgramData*", "*\AppData\Local\*", "*\AppData\Roaming\*", "C:\Users\Public\*"]
Ensuite, nous pouvons vérifier toute exécution de processus au-delà des chemins susmentionnés.
norm_id=WinServer event_id=4688 "process" IN ["C:\ProgramData\*.exe", "*\AppData\Local\*.exe", "*\AppData\Roaming\*.exe", "C:\Users\Public\*"]
Découverte
Les opérateurs Ryuk sont connus pour utiliser des outils Windows intégrés légitimes pour effectuer des reconnaissances et maintenir la furtivité. Comme ces commandes ne sont pas utilisées par des utilisateurs normaux, l’utilisation de ces commandes dans un laps de temps court peut s’avérer être un indicateur précieux d’une activité de reconnaissance en cours au sein de l’environnement concerné.
norm_id=WinServer event_id=4688 "process"="*\cmd.exe" command IN ["*whoami*", "*nltest /domain_trusts*", "*net*group*", "*ipconfig*", "*nltest /dclist*", "*sysinfo*" "*net*view*"] | chart count() by host
| search count() > 4
Concernant les infections Ryuk les plus récentes, les opérateurs ont utilisé ADFind.exe, qui est un outil tiers pour collecter des informations Active Directory. La meilleure façon de traquer une potentielle exécution d’ADFind.exe est de rechercher ses options de ligne de commande plutôt que le nom du processus, car il peut facilement être renommé.
norm_id=WinServer event_id=4688 "process"="*.exe" command IN ['* -f *objectcategory=*', '* -sc trustdmp*']
Les opérateurs Ryuk vérifient également les logiciels antivirus installés (T1518.001) sur les terminaux identifiés via WMI.
norm_id=WinServer event_id=4688 "process"="*\wmic.exe" command="*SecurityCenter2*AntiVirusProduct*"
La collecte d’informations Active Directory est effectuée à l’aide du module bien connu PowerView. LogPoint fournit une liste POWERSPLOIT_RECON_MODULES qui contient les commandes PowerView couramment utilisées telles que Get-NetComputer et Find-LocalAdminAccess.
norm_id=WinServer event_id=4104 script_block IN POWERSPLOIT_RECON_MODULES
Lorsque les acteurs Ryuk ont accès à un contrôleur de domaine, ils utilisent le module Active Directory de PowerShell pour découvrir les noms d’hôte, les systèmes d’exploitation et les dernières dates de connexion de tous les systèmes connectés à Active Directory.
norm_id=WinServer event_id=4103 command="Import-Module" payload="*ActiveDirectory*"
norm_id=WinServer event_id=4103 command="Get-ADComputer" payload="*DNSHostName*LastLogonDate*"
Défense
Les acteurs de Ryuk tentent également de désactiver Microsoft Defender (T1562.001) via PowerShell. Cette opération peut facilement être détectée par les équipes de sécurité via la journalisation du bloc de script de PowerShell.
norm_id=WinServer event_id=4104 script_block="Set-MpPreference -DisableRealtimeMonitoring $true"
Les acteurs de Ryuk ont également amélioré leur stratégie concernant l’évasion de la défense en ajoutant le « process hollowing (processus creux) » (T1055.012) à leurs TTP. Nous pouvons détecter le processus hollowing de cmd.exe ou regsvr32.exe en regardant leurs créations de processus enfants sans aucun argument de ligne de commande.
norm_id=WindowsSysmon event_id=1 parent_image="*\cmd.exe" image IN ["*\net.exe", "*\net1.exe", "*\nltest.exe", "*\ipconfig.exe"] parent_command="*\cmd.exe"
De même, nous pouvons détecter le process hollowing de svchost.exe par ses comportements anormaux, tels que son processus parent dans le cas où il ne correspond pas à services.exe ou ses arguments de ligne de commande ne comprenant aucun paramètre -k, ce qui est sans aucun doute suspect.
norm_id=WinServer event_id=4688 "process"="*\svchost.exe" (-parent_process="*\services.exe" OR -command="* -k *")
Les opérateurs Ryuk continueront également à utiliser l’icacls.exe intégré (T1222.001) pour accorder à « tout le monde » un accès complet à la racine du lecteur, tout en propageant de nouvelles autorisations dans la structure des dossiers pour éviter tout problème de permissions qui pourrait survenir au cours de la phase de chiffrement ultérieure.
norm_id=WinServer event_id=4688 "process"="*\icacls.exe" command="icacls*:*/grant everyone*"
Persistance
Il convient de noter que certaines versions du ransomware Ryuk ont abandonné la fonction de persistance, qui consistait en l’ajout d’une nouvelle clé d’entrée Run dans le registre (T1547.001) afin d’établir la persistance lors des redémarrages.
norm_id=WinServer event_id=4688 "process"="*\cmd.exe" command="*reg add*\Windows\CurrentVersion\Run*.exe*"
Parfois, en conjonction avec la méthode de persistance ci-dessus, Ryuk crée également des tâches planifiées (T1053.005) dans C:\Users. Nous pouvons surveiller cet emplacement pour détecter Ryuk dans ses premières phases de déploiement.
norm_id=WinServer label=Schedule label=Task label=Create -user=*$ command IN ["*C:\Users\*", "*C:\Windows\Temp\*"]
Accès aux identifiants
Récemment, les acteurs de Ryuk ont utilisé l’outil open source LaZagnepour collecter des identifiants afin de faciliter les mouvements latéraux, lesquels peuvent être détectés via les logs d’événements d’accès au processus (Process Access) de Sysmon.norm_id=WindowsSysmon event_id=10 call_trace="*C:\Windows\SYSTEM32\ntdll.dll+*|C:\Windows\System32\KERNELBASE.dll+*_ctypes.pyd+*python27.dll+*"
Les acteurs de Ryuk tentent également de lancer une attaque Kerberoast (T1558.003) en utilisant l’outil populaire Rubeus.
norm_id=WindowsSysmon event_id=7 -source_image="C:\Windows\System32\*" image IN ["*\clr.dll", "*\kerberos.dll", "*\cryptdll.dll", "*\dsparse.dll"] | chart distinct_list(image) as images, distinct_count(image) as dc by source_image
| search dc=4
Mouvement latéral
Ryuk utilise occasionnellement WMI (T1047) pour exécuter latéralement des bibliothèques de liens dynamiques (DLL).
norm_id=WinServer event_id=4688 "process"="*\wmic.exe" command="*/node*process call create*"
Les acteurs de Ryuk utilisent massivement le protocole RDP (Remote Desktop Protocol) (T1021.001) pour le mouvement latéral ou le déploiement de la charge virale finale de Ryuk. La plupart du temps, les acteurs Ryuk lancent une connexion RDP à partir du contrôleur de domaine compromis. Les logs de TerminalServices/RemoteConnectionManager fournissent l’adresse IP source à partir de laquelle les acteurs ont initié la connexion RDP.
Ainsi, nous pouvons rechercher toute connexion RDP de n’importe quel DC à un poste de travail.
norm_id=WinServer event_source="Microsoft-Windows-TerminalServices-RemoteConnectionManager" event_id=1149
| rename eventxml.param3 as source_address
| search source_address IN WINDOWS_DC
En dehors du RDP, les acteurs Ryuk déposent, via des mouvements latéraux, des DLL ou des EXE malveillants dans l’emplacement Perflogs et les exécutent plus tard via rundll32 (T1218.011) ou regsvr32 (T1218.010).
norm_id=WindowsSysmon event_id=11 file IN ["*.dll", "*.exe"] path="C:\Perflogs"
norm_id=WinServer event_id=4688 "process" IN ["*\rundll32.exe", "*\regsvr32.exe"] command="*C:\Perflogs*.dll*"
Le ransomware Ryuk a également ajouté la fonction Wake-On-LAN pour réveiller les appareils endormis sur le réseau.
norm_id=WinServer event_id=4688 "process"="*.exe" command="* 8 LAN*"
Exfiltration
Les acteurs Ryuk sont également connus pour exfiltrer les données collectées lors de la phase de découverte via FTP (T1048.003), que nous pouvons facilement détecter grâce à Sysmon.
norm_id=WindowsSysmon (event_id=1 image="*\ftp.exe") OR (event_id=3 destination_port=21)
Impact
Les opérateurs Ryuk utilisent un fichier batch (généralement kill.bat) qui appelle taskkill pour tuer divers processus afin que le processus de chiffrement se déroule correctement.
norm_id=WinServer event_id=4688 parent_process="*\cmd.exe" "process"="*\taskkill.exe"
| chart count() as cnt by host
| search cnt > 2
Ryuk stoppe divers services comme le service Security Accounts Manager (samss) (T1489) via la commande net, qui peut agir comme un indicateur de très grande fiabilité.
norm_id=WinServer event_id=4688 "process" IN ["*\net.exe", "*\net1.exe"] command IN ["*stop *samss*"]
Comme c’est la norme actuellement pour les ransomwares, Ryuk utilise WMI ou vssadmin pour supprimer Volume Shadow Copies afin de rendre la récupération difficile.
norm_id=WinServer event_id=4688 ("process"="*\wmic.exe" command="*shadowcopy delete*") OR ("process"="*\vssadmin.exe" command="*delete shadows*quiet*")
Enfin, les opérateurs veulent s’assurer que le processus de récupération après l’infection soit aussi difficile que possible. Ainsi, ils utilisent bcedit.exe (Boot Configuration Data Editor) pour désactiver la fonction ‘Windows Automatic Startup Repair’ (T1490), ainsi que pour modifier la politique d’état de démarrage afin d’ignorer tous les échecs éventuels.
norm_id=WinServer event_id=4688 "process"="*\cmd.exe" command IN ["*bootstatuspolicy ignoreallfailures*", "*bcdedit /set*recoveryenabled no*"]
Réduire le temps de réponse aux incidents est essentiel
Le ransomware Ryuk avait une réputation de férocité sur la scène des ransomwares avant même sa résurgence actuelle. Désormais, les équipes bleues (Blue Teams) doivent améliorer leur stratégie pour garder une longueur d’avance en construisant des défenses pour les nouvelles TTP utilisées par les acteurs Ryuk. Étant donné que Ryuk s’appuie sur des droppers et d’autres malwares avant son déploiement, il existe plusieurs possibilités de détection à différentes étapes.
Il est courant que les groupes de ransomwares établissent un partenariat avec d’autres groupes cybercriminels, communément appelés « initial access brokers ». Les groupes ‘initial access brokers’ agissent comme la chaîne logistique des groupes underground cybercriminels, leur donnant accès à toute une gamme de systèmes compromis. L’utilisation de systèmes déjà compromis permet aux groupes de ransomwares d’accéder facilement aux réseaux internes d’une entreprise, point de départ pour élever leurs privilèges, se déplacer latéralement et enfin déployer le ransomware.
Étant donné que les opérateurs de Ryuk se déplacent désormais plus rapidement que jamais après l’infection initiale afin de déployer le ransomware le plus rapidement possible, nous conseillons aux équipes bleues (Blue Teams) d’utiliser l’alerte Ryuk de CISA pour améliorer leur infrastructure contre Ryuk et d’autres ransomwares afin qu’il ne soit jamais trop tard pour éviter une catastrophe.