Il problema: agenti AI con troppi permessi
Gli agenti AI stanno entrando sempre più nei flussi di lavoro di sviluppo e amministrazione: scrivono codice, eseguono script, leggono configurazioni, chiamano API esterne. Il problema è che, nella maggior parte dei casi, un agente opera con gli stessi privilegi dell’utente che lo ha avviato. Un agente di coding che deve solo leggere la configurazione di un server potrebbe, per un errore di pianificazione o per un prompt injection, finire per modificare impostazioni di produzione o cancellare file che non dovrebbe nemmeno vedere.
Microsoft ha affrontato questo problema con Microsoft Execution Containers (MXC), un progetto open source (licenza MIT) ora disponibile in General Availability, pensato per eseguire carichi di lavoro non attendibili — output di modelli, plugin, tool chiamati da un agente — dentro confini di sicurezza applicati da policy, non lasciati all’autodisciplina del modello.
Cos’è MXC e come è strutturato
MXC non è un singolo sandbox, ma un livello di abstrazione che unifica diversi backend di containment dietro un’unica API, con SDK tipizzati per Rust, .NET e Node.js. L’applicazione che ospita l’agente specifica il tipo di container, le regole di contenimento e il comando da eseguire; MXC valida la richiesta e avvia il workload nel container scelto.
I backend disponibili variano per piattaforma:
- Windows 11: ProcessContainer (predefinito), Windows Sandbox, WSLC, microVM (sperimentale, basato su Nanovix), Hyperlight (sperimentale), IsolationSession per sessioni Windows isolate.
- Linux: Bubblewrap (predefinito), LXC, microVM, Hyperlight.
- macOS: Seatbelt (predefinito, unico backend disponibile).
Questo significa che lo stesso agente può girare in un container di processo leggero per compiti a basso rischio, oppure in una microVM con isolamento hardware quando il workload è più delicato — ad esempio quando esegue codice generato da un modello e mai eseguito prima.
Policy: filesystem, rete e interfaccia utente
Le policy si definiscono in JSON e coprono tre aree principali:
- Filesystem: percorsi accessibili in sola lettura, percorsi in lettura/scrittura, percorsi esplicitamente negati.
- Rete: comportamento di default (tipicamente “deny”), destinazioni consentite, supporto per proxy in uscita.
- UI: controllo su clipboard, accesso al display e interazione con l’interfaccia grafica, rilevante soprattutto per gli agenti che operano in una sessione Windows isolata.
Un esempio illustrativo, in stile SDK Node.js, di come potrebbe essere definita una richiesta di container per un agente che deve compilare un progetto senza accesso libero alla rete o ai file dell’utente:
import { spawn } from '@microsoft/mxc-sdk/v1';
const request = {
container: 'process',
command: ['node', 'build-agent.js'],
filesystem: {
readOnly: ['C:\\repos\\progetto\\src'],
readWrite: ['C:\\repos\\progetto\\dist'],
deny: ['C:\\Users\\*\\Documents', 'C:\\Users\\*\\Desktop']
},
network: {
outbound: 'deny',
allow: ['registry.npmjs.org:443']
},
timeoutMs: 30000
};
const result = await spawn(request);
console.log(result.exitCode, result.stdout);
Chi non vuole integrare l’SDK direttamente nell’applicazione può usare gli eseguibili nativi della piattaforma (ad esempio wxc-exec.exe su Windows), che accettano la stessa richiesta in formato JSON da riga di comando.
Diagnostica e modalità di apprendimento
Definire policy troppo restrittive rischia di bloccare attività legittime; policy troppo permissive vanificano lo scopo del sandbox. Per questo MXC offre due strumenti operativi:
# Esegue il container con output diagnostico dettagliato
wxc-exec.exe --debug config.json
# Registra tutti gli accessi effettuati dal workload, utile
# per costruire una policy realistica prima di applicarla
wxc-exec.exe --audit policy.json
La modalità --audit è pensata esplicitamente per la fase di tuning delle policy: osserva il comportamento reale dell’agente e segnala quali risorse tenta di usare. È importante sapere che in questa modalità il sandboxing è di fatto disattivato, quindi va eseguita solo con codice che si controlla, mai con workload realmente non attendibili.
Il ciclo di vita di un container persistente segue gli stati tipici provision → start → execute → stop → deprovision, utile per scenari in cui lo stesso agente esegue più task in sequenza senza il costo di ricreare l’ambiente ogni volta.
Integrazione nell’ecosistema Microsoft
MXC non vive isolato: Microsoft ha annunciato che la gestione centralizzata delle policy sui process container Windows 11 arriverà tramite Microsoft Intune, così i reparti IT potranno applicare regole di governance a livello di organizzazione invece di lasciare la configurazione al singolo sviluppatore. In prospettiva, anche Microsoft Entra e Microsoft Agent 365 dovrebbero fornire identità dedicate per gli agenti, distinte da quelle degli utenti umani, per poterne tracciare le azioni separatamente.
Sul fronte delle integrazioni applicative, MXC è già supportato da strumenti come GitHub Copilot, OpenAI Codex, Replit, LM Studio e Unsloth AI, mentre Claude Code, Box, Manus e Perplexity sono annunciati come prossimi.
Cosa significa per chi gestisce infrastrutture .NET e DevOps
Per un team che sta introducendo agenti AI nella pipeline di sviluppo — revisione codice automatica, agenti che aprono pull request, bot che eseguono test o deployment — MXC offre un modello concreto per applicare il principio del least privilege senza dover costruire da zero un sistema di sandboxing. Chi lavora su .NET può integrare l’SDK Microsoft.Mxc.Sdk da NuGet direttamente nella propria pipeline CI/CD o nel runtime dell’agente, definendo policy diverse per ambienti di sviluppo, staging e produzione.
Prima di portare MXC in produzione, vale la pena:
- Partire con la modalità
--auditsu un ambiente di test per capire quali risorse l’agente usa realmente. - Definire policy filesystem e di rete separate per ogni ambiente, evitando di riusare la stessa configurazione permissiva ovunque.
- Valutare il backend di isolamento in base alla sensibilità del task: un ProcessContainer per compiti di routine, una microVM per l’esecuzione di codice generato e non ancora validato.
- Monitorare gli accessi negati tramite i log diagnostici per affinare le policy nel tempo, invece di allargarle preventivamente “per sicurezza”.
Conclusione
MXC arriva in un momento in cui molte organizzazioni stanno dando agli agenti AI accesso diretto a repository, server e strumenti di produzione senza un vero livello di contenimento. Non è una soluzione magica — richiede tempo per definire e mantenere le policy — ma offre un’infrastruttura open source, multipiattaforma e già integrata con i principali tool AI, utile per chi deve rispondere oggi alla domanda “cosa può fare davvero questo agente sul mio sistema?”.
Fonte: Petri IT Knowledgebase, Windows Developer Blog e repository microsoft/mxc su GitHub.