SOC Prime Bias: Élevé

12 Dec 2025 14:56 UTC

CyberVolk Refait Surface : Nouvelles Fonctionnalités et Failles de VolkLocker

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Suivre
CyberVolk Refait Surface : Nouvelles Fonctionnalités et Failles de VolkLocker
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

L’article couvre la résurgence du collectif hacktiviste pro-Russie CyberVolk et sa nouvelle famille de ransomwares baptisée VolkLocker. Ce ransomware basé sur Golang cible à la fois les systèmes Windows et Linux et utilise Telegram pour le commandement et le contrôle. Il utilise une clé maître AES-256-GCM codée en dur, qui est également écrite en texte brut dans le répertoire %TEMP%, créant ainsi un raccourci involontaire pour le décryptage. VolkLocker manipule également les paramètres du registre, désactive les contrôles de sécurité et tente des actions destructrices contre le système une fois qu’un minuteur intégré expire.

Enquête

Les chercheurs ont examiné l’échantillon de VolkLocker et ont observé qu’il est distribué sans obfuscation de code, recommandant plutôt l’utilisation de UPX pour le conditionnement. Le ransomware effectue des vérifications de l’environnement, énumère les lecteurs disponibles, chiffre les données en utilisant une clé maître statique et stocke cette clé dans un fichier de sauvegarde caché. La persistance est maintenue en répliquant l’exécutable dans plusieurs chemins et en appliquant des modifications au registre. Les jetons de bot Telegram et une adresse Bitcoin sont des éléments de configuration obligatoires pour une opération réussie.

Atténuation

Les défenseurs doivent surveiller les modifications du registre documentées, la création du fichier de sauvegarde de la clé en texte clair et les multiples copies du même exécutable apparaissant dans les emplacements de démarrage. Bloquer le trafic sortant vers les domaines liés à Telegram et signaler les binaires empaquetés avec UPX peut aider à limiter les risques. Maintenir des sauvegardes régulières hors ligne ou immuables et empêcher la suppression automatique des copies d’ombre volume est également conseillé.

Réponse

Après détection, isolez immédiatement le point de terminaison compromis, récupérez le fichier de sauvegarde de la clé en texte clair de %TEMP%, et utilisez la clé maître connue pour le décryptage des fichiers. Éliminez toutes les instances de l’exécutable VolkLocker, restaurez les valeurs de registre altérées, et redémarrez les solutions de sécurité désactivées. Effectuez un examen forensic du trafic C2 basé sur Telegram et continuez de surveiller une éventuelle utilisation abusive du jeton de bot exposé.

Flux d’attaque

Exécution de la simulation

Prérequis : Le contrôle de télémétrie et de base doit avoir réussi.

Justification : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT directement refléter les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou non reliés entraîneront des erreurs de diagnostic.

  • Contexte et commandes de l’attaque :

    1. Objectif : Obtenir les privilèges SYSTEM sur un poste de travail utilisateur standard tout en échappant aux outils de sécurité.
    2. Étape 1 – Contournement UAC : L’attaquant lance ms-settings.exe avec une ligne de commande qui force le processus à appeler NtRaiseHardError, une API non documentée connue qui peut déclencher une invite d’élévation UAC pouvant être automatiquement acceptée dans certaines mauvaises configurations.
    3. Étape 2 – Perturber les défenses : Immédiatement après l’élévation, la même ligne de commande invoque taskkill.exe pour terminer les outils d’analyse connus (procmon.exeprocesshacker.exe, etc.) qui pourraient surveiller les processus privilégiés.
    4. Télémétrie résultante : Un seul événement de création de processus où Image = ms-settings.exe et Ligne de commande contient les deux taskkill.exe et NtRaiseHardError, satisfaisant la règle Sigmasélection.
    # Commande malveillante combinée – fabriquée pour apparaître comme des arguments de ms-settings.exe
    $maliciousCmd = '"C:WindowsSystem32ms-settings.exe" "taskkill.exe /F /IM procmon.exe" "NtRaiseHardError"'
    Start-Process -FilePath "$env:SystemRootsystem32ms-settings.exe" -ArgumentList $maliciousCmd
  • Script de test de régression : Le script PowerShell suivant reproduit exactement l’attaque et peut être réutilisé pour les tests de régression automatisés.

    <#
    .SYNOPSIS
        Simule la technique de contournement UAC ms-settings de CyberVolk avec terminaison des outils d'analyse.
    .DESCRIPTION
        Lance ms-settings.exe avec une liste d'arguments fabriqués incluant taskkill.exe et NtRaiseHardError.
        Génère la télémétrie spécifique de création de processus requise pour déclencher la règle de détection Sigma.
    .NOTES
        Exécuter avec un compte utilisateur normal. Assurez-vous que l'environnement cible a l'enregistrement de création de processus activé.
    #>
    
    # Paramètres (ajuster si nécessaire)
    $msSettings = "$env:SystemRootsystem32ms-settings.exe"
    $analysisTools = @("procmon.exe","processhacker.exe","ida64.exe")
    $killCmd = "taskkill.exe /F /IM " + ($analysisTools -join " /IM ")
    $hardError = "NtRaiseHardError"
    
    # Construire la chaîne d'arguments malveillante
    $argList = @($killCmd, $hardError) -join " "
    
    Write-Host "Lancement de ms-settings.exe avec des arguments malveillants..."
    Start-Process -FilePath $msSettings -ArgumentList $argList
    
    Write-Host "Commande exécutée :"
    Write-Host "`"$msSettings`" $argList"
  • Commandes de nettoyage : Après vérification, terminez tous les processus ms-settings.exe en cours et rétablissez l’état normal du système.

    # Arrêtez tous les processus ms-settings qui peuvent encore être en cours d'exécution
    Get-Process -Name "ms-settings" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Facultatif : Vérifiez qu'aucun outil d'analyse n'a été tué par erreur
    foreach ($tool in @("procmon","processhacker","ida64")) {
        if (Get-Process -Name $tool -ErrorAction SilentlyContinue) {
            Write-Host "$tool est toujours en cours d'exécution."
        } else {
            Write-Host "$tool a été terminé (prévu pour le test)."
        }
    }