Spcnet.it Notizie geek e OSS/Linux. Su Telegram: InfoSec ITA Notizie
Home > Articolo > Microsoft Execution Containers (MXC): isolare gli agenti AI con policy-driven containment
Microsoft Execution Containers (MXC): isolare gli agenti AI con policy-driven containment

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:

  1. Partire con la modalità --audit su un ambiente di test per capire quali risorse l’agente usa realmente.
  2. Definire policy filesystem e di rete separate per ogni ambiente, evitando di riusare la stessa configurazione permissiva ovunque.
  3. 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.
  4. 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.

Condividi: Twitter  |  Facebook  |  LinkedIn
Unisciti alla discussione

Questo è un blog del Fediverso: puoi trovare questo articolo ovunque con @blog@insicurezzadigitale.com e ogni commento/risposta apparirà qui sotto.

Se vuoi commentare su Microsoft Execution Containers (MXC): isolare gli agenti AI con policy-driven containment, utilizza la discussione sul Forum.

>> forum community