SOC Prime Bias: Critique

13 Aug 2026 06:08 UTC

StopRansomware : Analyse de la menace Gunra Ransomware

Author Photo
SOC Prime Team linkedin icon Suivre
StopRansomware : Analyse de la menace Gunra Ransomware
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Gunra est une opération de ransomware en tant que service (RaaS) qui suit un modèle de double extorsion combinant le chiffrement des données avec l’exfiltration. Les acteurs de la menace ciblent les infrastructures critiques, les entités gouvernementales et un large éventail d’organisations commerciales à travers le monde. Le ransomware est basé sur le code source de Conti qui a fuité et a évolué pour prendre en charge les environnements Windows et Linux.

Enquête

Le FBI et ses partenaires internationaux ont observé les acteurs de Gunra exploitant des vulnérabilités accessibles depuis Internet et abusant des identifiants volés pour un accès initial. L’enquête a identifié l’utilisation des bibliothèques Impacket pour le mouvement latéral ainsi que de multiples outils open-source pour l’exfiltration des données. Le groupe utilise également un portail de négociation basé sur Tor et qTox pour communiquer avec les victimes.

Atténuation

Les organisations devraient donner la priorité à la correction des vulnérabilités connues exploitées dans les systèmes accessibles depuis Internet, en particulier les passerelles VPN et l’infrastructure RDP. Le maintien de sauvegardes immuables hors ligne et l’application d’une segmentation réseau stricte sont essentiels pour limiter le mouvement latéral. L’authentification multi-facteurs (MFA) doit également être activée pour tous les services d’accès à distance.

Réponse

Si une activité de Gunra est détectée, les hôtes compromis doivent être isolés immédiatement tout en préservant les artefacts judiciaires pertinents, y compris les fichiers chiffrés et les journaux système. La chasse aux menaces doit commencer pour déterminer l’étendue de l’intrusion et examiner l’activité des comptes privilégiés. Les organisations doivent ensuite suivre des procédures formelles d’éviction pour contenir et éliminer complètement l’adversaire de l’environnement.

Flux d’attaque

Détections

Modèles possibles de lignes de commande Impacket (via cmdline)

Équipe SOC Prime
12 août 2026

Créer ou supprimer une copie de l’ombre via Powershell, CMD ou WMI (via cmdline)

Équipe SOC Prime
12 août 2026

Logiciel alternatif d’accès/gestion à distance (via système)

Équipe SOC Prime
12 août 2026

Comportement d’exécution possible d’Impacket (via audit)

Équipe SOC Prime
12 août 2026

Logiciel alternatif d’accès/gestion à distance (via audit)

Équipe SOC Prime
12 août 2026

IOCs (HashSha256) à détecter : #StopRansomware : Gunra Ransomware

Règles AI de SOC Prime
12 août 2026

IOCs (SourceIP) à détecter : #StopRansomware : Gunra Ransomware

Règles AI de SOC Prime
12 août 2026

IOCs (DestinationIP) à détecter : #StopRansomware : Gunra Ransomware

Règles AI de SOC Prime
12 août 2026

Détection de la manipulation de comptes et de l’escalade de privilèges par le ransomware Gunra [Journal des événements de sécurité Microsoft Windows]

Règles AI de SOC Prime
12 août 2026

Détection des vulnérabilités exploitées dans FortiOS et FortiProxy [Pare-feu]

Règles AI de SOC Prime
12 août 2026

Détection du mouvement latéral et du vidage des identifiants du ransomware Gunra [Création de processus Windows]

Règles AI de SOC Prime
12 août 2026

Détection des API de parcours de système de fichiers par le ransomware Gunra [Création de processus Linux]

Règles AI de SOC Prime
12 août 2026

Exécution de simulation

Prérequis : La vérification préliminaire Télémetry & Baseline doit avoir été réussie.

Rationale : 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 narratif DOIVENT refléter directement les TTPs identifiés et visent à générer la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou non liés entraîneront un diagnostic erroné.

  • Narratif & Commandes de l’attaque : L’objectif de l’adversaire est de préparer un déploiement de ransomware. Avant que le chiffrement puisse commencer, le logiciel malveillant doit explorer le système de fichiers pour bâtir une liste de fichiers de grande valeur (documents, bases de données, etc.). Le ransomware Gunra utilise spécifiquement les API FindFirstFileW and FindNextFileW pour effectuer cette énumération à grande échelle. Nous allons simuler cela en compilant et en exécutant un petit extrait de code C# qui appelle explicitement ces API via une importation de DLL, provoquant l’enregistrement de l’utilisation des API par Sysmon dans le champ ImageLoaded. champ.

  • Script de test de régression :

    # Enregistrez ceci sous TriggerDetection.cs
    using System;
    using System.Runtime.InteropServices;
    using System.IO;
    
    class Program {
        static void Main() {
            // Cela simule le comportement de parcours du ransomware Gunra
            // en forçant le chargement de ces APIs spécifiques.
            DirectoryInfo di = new DirectoryInfo(@"C:");
            foreach (var file in di.GetFiles()) {
                // L'accès aux propriétés de fichier déclenche les APIs de parcours
                string name = file.Name; 
            }
            Console.WriteLine("Parcours terminé.");
        }
    }
    
    # Compilez et exécutez en utilisant csc.exe (intégré au .NET Framework)
    Add-Type -TypeDefinition @"
    using System;
    using System.Runtime.InteropServices;
    public class Win32 {
        [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
        public static extern bool FindFirstFileW(string lpFileName, out WIN32_FIND_DATA lpFindFileData);
        [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
        public static extern bool FindNextFileW(IntPtr hFindFile, out WIN32_FIND_DATA lpFindFileData);
    
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
        public struct WIN32_FIND_DATA {
            public uint dwFileAttributes;
            public uint ftCreationTime;
            public uint ftLastAccessTime;
            public uint ftLastWriteTime;
            public uint nFileSizeHigh;
            public uint nFileSizeLow;
            public uint dwReserved0;
            public uint dwReserved1;
            public uint dwFileIndexHigh;
            public uint dwFileIndexLow;
            public uint dwStreamSize;
            public string cFileName;
            public string cAlternateDataStream;
        }
    }
    "@
    
    # Exécutez un petit script C# qui appelle explicitement les fonctions pour assurer la présence de chaînes dans les journaux
    $code = @"
    using System;
    using System.Runtime.InteropServices;
    
    class Program {
        [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
        public static extern bool FindFirstFileW(string lpFileName, out FIND_DATA lpFindFileData);
        [DllImport("kernel32.dll", CharSet = CharSet.Unicode)]
        public static extern bool FindNextFileW(IntPtr hFindFile, out FIND_DATA lpFindFileData);
    
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
        public struct FIND_DATA {
            public uint dwFileAttributes;
            public uint ftCreationTime;
            public uint ftLastAccessTime;
            public uint ftLastWriteTime;
            public uint nFileSizeHigh;
            public uint nFileSizeLow;
            public uint dwReserved0;
            public uint dwReserved1;
            public uint dwFileIndexHigh;
            public uint dwFileIndexLow;
            public uint dwStreamSize;
            public string cFileName;
            public string cAlternateDataStream;
        }
    
        static void Main() {
            FIND_DATA data;
            IntPtr handle = IntPtr.Zero;
            // Cela déclenche les chaînes spécifiques dans le champ ImageLoaded de Sysmon
            if (FindFirstFileW("C:*", out data)) {
                Console.WriteLine("Fichier trouvé via FindFirstFileW");
                FindNextFileW(handle, out data);
            }
        }
    }
    "@
    $code | Out-File -FilePath "$env:TEMPTriggerDetection.cs"
    & csc.exe "$env:TEMPTriggerDetection.cs"
    & "$env:TEMPTriggerDetection.exe"
  • Commandes de nettoyage :

    Remove-Item "$env:TEMPTriggerDetection.cs" -ErrorAction SilentlyContinue
    Remove-Item "$env:TEMPTriggerDetection.exe" -ErrorAction SilentlyContinue