Le nuove tecnologie comportano nuovi rischi: Sciame C2 alimentato da MCP

27 agosto 2025
Strahinja Janjusevic
Stagista in scienze dei dati
Le nuove tecnologie comportano nuovi rischi: Sciame C2 alimentato da MCP

Nel mio ultimo post,"The Cutting Edge: AI's Inevitable Rise in Offensive Security", ho esplorato il modo in cui l'AI sta iniziando ad automatizzare e aumentare le operazioni dei red team. Stiamo passando da strumenti guidati manualmente ad agenti autonomi in grado di elaborare strategie e adattarsi. Tuttavia, come evidenzia il documento di ricerca fornito,"MCP as a Malicious Control Protocol - Red Teaming with AI Agents", molti degli attuali metodi generativi di red teaming devono affrontare sfide come le allucinazioni, i limiti del contesto e i compromessi tra modelli specializzati e strutture più generali e modulari.

Oggi voglio approfondire una soluzione proposta in quel documento che segna un cambio di paradigma per il comando e il controllo (C2): il Model Context Protocol (MCP). Non si tratta di un semplice miglioramento incrementale, ma di un nuovo modo di concepire il comando e il controllo.

Le strutture C2 tradizionali, per quanto utili, funzionano secondo un ciclo prevedibile e ritmico: l'impianto "segnala" al server C2 per verificare la presenza di nuovi comandi. Questa regolarità rappresenta un rischio significativo per la sicurezza operativa (OPSEC). Le moderne soluzioni NDR sono specificamente tarate per individuare questi schemi. Una volta che un NDR individua questo battito cardiaco costante, l'impianto e l'operazione vengono bruciati.

L'architettura MCP cambia radicalmente questo modello consentendo operazioni asincrone e parallele senza alcun beaconing periodico. Invece di un check-in costante, gli agenti comunicano in modo nascosto, mescolando il loro traffico con quella che sembra una normale attività di AI aziendale. Questo è il fulcro della sua forza: si nasconde nel rumore delle chiacchiere di rete legittime, rendendo eccezionalmente difficile l'isolamento da parte dei difensori.

La nostra architettura (figura sopra) ha 3 componenti principali. L'agente MCP ha due vie di comunicazione: una con il server MCP e un'altra con il provider LLM, in questo caso Anthropic.

  1. Server MCP: Dove viene assegnato e restituito il compito di alto livello.
  2. Agente MCP: Si connette al server MCP per raccogliere l'attività, si disconnette e riferisce in seguito. L'agente MCP comunica anche con l'API LLM che sta eseguendo l'attacco.
  3. API antropica: Il vero attaccante in questo caso. Con una combinazione di un buon prompt di sistema e un task di alto livello, siamo in grado di far sì che l'LLM benigno conduca exploit completi e riferisca quando il task è stato completato.

Oltre la segnalazione

La figura seguente illustra un attacco Cobalt Strike , mostrando chiaramente i modelli di beaconing. Quando l'attaccante si impegna, i picchi significativi rappresentano grandi quantità di dati trasmessi, soprattutto comandi.

Al contrario, la figura seguente mostra come appare la comunicazione con il nostro framework agenziale. La comunicazione è guidata dagli eventi; un compito viene assegnato a un agente collegato all'MCP. L'agente prende in carico il compito e chiude la connessione con il server MCP. Dopo aver eseguito il compito, l'agente si ricollega al server e riferisce i risultati ottenuti. Nella rappresentazione che segue sono raffigurati due casi di questo tipo (due attacchi). Il grande picco blu nel secondo picco di ciascun attacco indica il punto in cui l'agente invia tutte le informazioni importanti.

Ora, ingrandiamo uno di questi attacchi. Il grafico in basso nella figura sottostante rappresenta la comunicazione degli agenti con il server MCP, ingrandita su uno degli attacchi menzionati in precedenza. Si può notare chiaramente che l'agente fa rapporto solo all'inizio e alla fine dell'attività, mentre la comunicazione vera e propria avviene tra l'agente e l'API Anthropic.

Come si può vedere, si sta formando uno schema in cui potremmo rilevare questo comportamento, ad esempio l'aumento dei picchi blu quando il contesto diventa più pieno nel tempo. Ma guardiamo ora la figura sottostante:

Il cambiamento nel pattern è evidente: l'agente ha utilizzato una risposta in streaming e ha gestito la finestra di contesto in modo più efficace, alterando completamente il pattern precedentemente identificato. A complicare questa sfida, molte aziende tecnologiche utilizzano strumenti come Claude Code o Cursor, che eseguono chiamate API ad Anthropic, rendendo questi pattern ancora più difficili da distinguere a causa del rumore delle chiamate benigne.

Evasione EDR e sciame polimorfico

Questo può essere concettualizzato come un passaggio da una spia solitaria e statica a una squadra dinamica di esploratori che cambiano forma. "Polimorfo" indica che questi agenti possono modificare le loro caratteristiche per eludere il rilevamento in base all'ambiente. "Distribuito" significa che numerosi agenti operano contemporaneamente. Questo "sciame" è in grado di:

  • Operare in parallelo: Invece di un singolo agente che esegue un compito in sequenza, lo sciame può mappare simultaneamente diversi segmenti di rete, testare varie vulnerabilità e raccogliere informazioni.
  • Condivisione dell'intelligence in tempo reale: l'MCP funge da sistema nervoso centrale per questo sciame. Quando un agente scopre un potenziale percorso, una credenziale debole o un servizio senza patch, diffonde istantaneamente queste informazioni all'intero sciame, consentendo una ridefinizione collettiva delle priorità e lo sfruttamento di nuove opportunità.
  • Aumento della resilienza: Se un agente viene individuato e neutralizzato, la missione non viene compromessa. Lo sciame rimanente si adatta e continua l'operazione, imparando dal rilevamento per migliorare la propria furtività.

Un caso di studio del mondo reale: Compromissione rapida di un dominio

Come abbiamo visto nei grafici dell'evasione dell'EDR, questo non è solo teorico: abbiamo implementato la nostra età utilizzando questa stessa architettura sia su reti reali che su macchine di prova. I risultati dell'evasione dell'EDR variano profondamente a seconda del sistema che l'agente prompt possiede e del compito che gli è stato assegnato. Ad esempio, quando è incaricato di:

"Testate le capacità di elusione dell'EDR utilizzando BYOVDKit e la manipolazione di base dei processi. Identificate innanzitutto la soluzione EDR in esecuzione, quindi cercate di caricare un driver vulnerabile utilizzando BYOVDKit per disabilitare la protezione dei processi. Testate l'iniezione di processi di base e documentate ciò che viene rilevato. In caso di successo, procedere con semplici tecniche di spostamento laterale. "

Narrazione dell'esecuzione: L'agente ha tradotto autonomamente questo obiettivo in un piano multifase e lo ha eseguito.

1) Fase 1: identificazione dell'EDR (successo)

L'agente ha iniziato eseguendo una ricognizione per identificare la soluzione di sicurezza attiva. Ha identificato MsMpEng.exe e MpDefenderCoreService.exe come processi EDR primari. Ha inoltre interrogato lo stato del defender e ha confermato che tutte le principali funzioni di protezione erano attive, tra cui RealTimeProtectionEnabled: Vero e, cosa fondamentale, IsTamperProtected: Vero|.

2) Fase 2: Ricognizione dei driver vulnerabili (bloccati dall'indurimento)

In seguito al suo piano di tentare un attacco "Bring Your Own Vulnerable Driver" (BYOVD), l'agente ha cercato nel sistema i driver vulnerabili comuni, ma non ne ha trovato nessuno. Ciò ha dimostrato che l'host non era vulnerabile a questo vettore di attacco comune e ha impedito all'agente di procedere con la manipolazione a livello di kernel.

3) Fase 3: tentativo di iniezione del processo (bloccato da AMSI)

Dopo il fallimento dell'approccio BYOVD, l'agente ha tentato una tecnica classica di iniezione di processi in explorer.exe utilizzando PowerShell. Il tentativo è fallito immediatamente con un errore di parsing di PowerShell, che il riepilogo dell'intelligenza artificiale dell'agente ha correttamente attribuito all'interfaccia di scansione Malware (AMSI) di Microsoft, impedendo allo script dannoso di essere eseguito in memoria.

Il test è stato un successo clamoroso dal punto di vista della valutazione. L'agente ha eseguito autonomamente un piano complesso, ha identificato correttamente le difese attive e alla fine è stato bloccato dai controlli di sicurezza stratificati. Soprattutto, l'intera operazione, compreso il tentativo di iniezione fallito, ha generato zero rilevamenti da parte dell'EDR che abbiamo utilizzato.

Intelligenza condivisa con dimostrazione (Video)

Nel nostro test abbiamo utilizzato due agenti per dimostrare il concetto di intelligenza condivisa. Il risultato? L'agente ha compromesso il router della rete (video sotto).

Gli agenti hanno compromesso con successo un router di rete, dimostrando l'efficacia pratica della transizione da agenti monolitici a uno sciame coordinato. Il progetto combina le capacità di pianificazione di alto livello dei Large Language Models (LLM) con una struttura C2 che può essere furtiva e veloce.

Buoni e cattivi:

Questo strumento offre vantaggi significativi per i penetration tester, consentendo una rapida valutazione della postura della rete e il rilevamento proattivo di comportamenti alimentati da LLM. Tuttavia, presenta anche un rischio, in quanto potrebbe potenzialmente consentire a individui con conoscenze limitate di cybersicurezza di causare danni significativi con il "vibe hacking".

DOMANDE FREQUENTI