SOC Prime Bias: Critical

17 Aug 2026 06:26 UTC

APT-Q-27 Fiato di Drago: Analisi di RONINGLOADER e Gh0st RAT

Author Photo
SOC Prime Team linkedin icon Segui
APT-Q-27 Fiato di Drago: Analisi di RONINGLOADER e Gh0st RAT
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

Dragon Breath è un gruppo APT di criminalità informatica cinese che prende di mira utenti di lingua cinese nella regione dell’Asia-Pacifico. Il gruppo utilizza tecniche avanzate come installatori trojanizzati, DLL side-loading e driver kernel firmati per distribuire la catena di infezione RONINGLOADER e varianti personalizzate di Gh0st RAT. Gli attori hanno dimostrato anche la capacità di compromettere i fornitori di certificate e ottenere materiali di firma del codice per il loro malware.

Indagine

Il report esamina l’evoluzione di Dragon Breath dal 2020 al 2026, documentando il suo passaggio dagli attacchi watering-hole all’advanced DLL side-loading e all’abuso di Protected Process Light (PPL). Viene sottolineata un’intrusione del 2026 riguardante DigiCert, in cui il gruppo avrebbe ottenuto materiale per la firma del codice. L’analisi copre anche molteplici tecniche di iniezione, inclusa l’abuso dell’oggetto thread-pool e la terminazione del processo in modalità kernel.

Mitigazione

Le organizzazioni dovrebbero convalidare i controlli di sicurezza degli endpoint contro le tecniche di attacco simulate di Dragon Breath e rafforzare le protezioni attorno all’esecuzione delle applicazioni. Dovrebbero essere applicate rigorose politiche di controllo delle applicazioni, mentre i difensori monitorano la creazione non autorizzata di servizi e il sospetto DLL side-loading. Rilevare l’abuso di Protected Process Light (PPL) e le politiche WDAC non autorizzate o non firmate è anche critico.

Risposta

Se viene rilevata attività di Dragon Breath, i host interessati devono essere isolati immediatamente e indagati per account locali non autorizzati e persistenza tramite Windows Services. Gli operatori dovrebbero esaminare attentamente l’attività di iniezione dei processi che coinvolge processi di sistema affidabili come TrustedInstaller.exe or taskhostw.exe. I certificati di firma del codice dovrebbero essere convalidati e le modifiche a Windows Defender o ai prodotti di sicurezza regionali dovrebbero essere esaminate.

Flusso d’Attacco

Rilevamenti

Possibile Comportamento di Esecuzione Ritardata (via cmdline)

Squadra SOC Prime
13 Ago 2026

Creazione Sospetta di Collegamento Duro per la Tecnica di Reindirizzamento Cartella (via cmdline)

Squadra SOC Prime
13 Ago 2026

Possibile Tentativo di Abuso di ClipUp per Manipolare Soluzioni di Sicurezza (via cmdline)

Squadra SOC Prime
13 Ago 2026

Persistenza Dragon Breath: Creazione Account Backdoor Locale [Microsoft Windows Security Event Log]

Regole AI di SOC Prime
13 Ago 2026

Rilevamento di Comunicazione C2 Golden Gh0st RAT Tramite WebSocket [Connessione di Rete Windows]

Regole AI di SOC Prime
13 Ago 2026

Persistenza Dragon Breath tramite Modifica del Registro Winlogon [Evento del Registro di Windows]

Regole AI di SOC Prime
13 Ago 2026

Esecuzione Proxy di Sistema di Binary Dragon Breath tramite regsvr32.exe e appR.exe [Creazione di Processi Windows]

Regole AI di SOC Prime
13 Ago 2026

Esecuzione di Simulazione

Prerequisito: Il Controllo Pre-volo Telemetria & Baseline deve essere stato superato.

Motivo: Questa sezione dettaglia l’esatta esecuzione della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente le TTPs identificate e mirano a generare la telemetria esatta prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.

  • Narrativa di Attacco & Comandi: Un avversario ha ottenuto un accesso iniziale e sta tentando di stabilire un canale di Comando e Controllo (C2) persistente. Per evitare il rilevamento basato su firme tradizionali e firewall che cercano solo richieste HTTP/S standard, l’attaccante utilizza un agente leggero che inizia una richiesta di aggiornamento WebSocket. Passando da una richiesta HTTP GET standard a una connessione WebSocket, l’attaccante stabilisce un canale di comunicazione full-duplex, permettendogli di emettere comandi e ricevere dati (come sequenze di tasti o esfiltrazione di file) in tempo reale sotto le spoglie di traffico web persistente.

  • Script di Test di Regressione:

     # Script di simulazione per imitare una stretta di mano/connessione WebSocket
      # Questo utilizza un'implementazione di socket PowerShell per avviare una connessione in stile WebSocket.
      # Nota: Questo richiede un listener attivo o un servizio echo WebSocket pubblico per il successo.
    
      $wsUri = "wss://echo.websocket.org" # Usare un servizio echo pubblico per la simulazione
      Write-Host "[*] Tentativo di stabilire connessione WebSocket a $wsUri..."
    
      try {
          $ws = New-Object System.Net.WebSockets.ClientWebSocket
          $ct = New-Object System.Threading.CancellationTokenSource
          $connectTask = $ws.ConnectAsync($wsUri, $ct.Token)
    
          # Attendere la connessione per simulare l'evento 'Connessione di Rete'
          if ($connectTask.Wait(10000)) {
              Write-Host "[+] Connessione WebSocket stabilita con successo."
              Write-Host "[!] Controllare il proprio SIEM per avvisi 'Protocollo: WebSocket'."
    
              # Inviare un piccolo battito per mantenere il socket aperto
              $buffer = [System.Text.Encoding]::UTF8.GetBytes("Ping")
              $sendTask = $ws.SendAsync((New-Object ArraySegment[byte]($buffer)), [System.Net.WebSockets.WebSocketMessageType]::Text, $true, $ct.Token)
              $sendTask.Wait(5000)
    
              # Mantenere brevemente la connessione per garantire la cattura della telemetria
              Start-Sleep -Seconds 10
              $ws.CloseAsync([System.Net.WebSockets.WebSocketCloseStatus]::NormalClosure, "Chiusura", $ct.Token).Wait()
          } else {
              Write-Host "[-] Connessione scaduta. Assicurarsi che il target possa raggiungere l'URI WebSocket."
          }
      } catch {
          Write-Error "[-] Errore durante la simulazione: $($_.Exception.Message)"
      } finally {
          if ($ws) { $ws.Dispose() }
      }
  • Comandi di Pulizia:

     # Lo script PowerShell non crea artefatti persistenti.
      # Assicurarsi che le connessioni aperte manualmente siano chiuse.
      Write-Host "[*] Pulizia dell'ambiente di simulazione…"
      Stop-Process -Name "powershell" -ErrorAction SilentlyContinue