
Flow Integrity Deterministic Enforcement System. Meccanismi per proteggere gli agenti AI con il controllo del flusso di informazioni.
Questa repository contiene un notebook Jupyter a corredo dell'articolo accademico "Securing AI Agents with Information-Flow Control". Il notebook è strutturato come un tutorial per guidare i lettori attraverso i concetti introdotti nell'articolo. Viene qui illustrata un'implementazione pratica di meccanismi per applicare deterministicamente policy di sicurezza in attività agentiche, ancorando i concetti a codice eseguibile con cui i lettori possono sperimentare.
Il notebook è stato testato con GPT-4o e GPT-4.1 utilizzando l'API Azure OpenAI Chat Completions, ma può essere facilmente adattato per utilizzare un endpoint OpenAI.
Il codice configura l'endpoint del modello nel client tramite un file di configurazione .env contenente le definizioni per AZURE_ENDPOINT, API_VERSION e AZURE_DEPLOYMENT.
Si prega di copiare il file .env.example fornito in .env e modificarlo come appropriato.
Il notebook autentica il servizio Azure OpenAI utilizzando Microsoft Entra ID, ma può essere semplicemente adattato per utilizzare l'autenticazione basata su chiave, se preferito.
Per comodità, forniamo un notebook già completamente eseguito per illustrare l'output atteso, ma incoraggiamo i lettori a configurare il proprio endpoint per sperimentare direttamente e riprodurre i nostri output.
Se desideri citare questo lavoro, si prega di citarlo come segue
@misc{securing_ai_agents_with_ifc,
title = {Securing {AI} Agents with Information-Flow Control},
author = {Costa, Manuel and
K{\"o}pf, Boris and
Kolluri, Aashish and
Paverd, Andrew and
Russinovich, Mark and
Salem, Ahmed and
Tople, Shruti and
Wutschitz, Lukas and
Zanella-B{\'e}guelin, Santiago},
year = {2025},
eprint = {2505.23643},
archivePrefix = {arXiv},
primaryClass = {cs.CR},
doi = {10.48550/arXiv.2505.23643}
}
Questo progetto accoglie contributi e suggerimenti. La maggior parte dei contributi richiede di accettare un Contributor License Agreement (CLA) che dichiara di avere il diritto di concederci, e di concederci effettivamente, i diritti di utilizzo del tuo contributo. Per maggiori dettagli, visita Contributor License Agreements.
Quando invii una pull request, un bot per il CLA determinerà automaticamente se devi fornire un CLA e decorerà la PR in modo appropriato (ad es. controllo di stato, commento). Segui semplicemente le istruzioni fornite dal bot. Dovrai farlo solo una volta per tutte le repository che utilizzano il nostro CLA.
Questo progetto ha adottato il Microsoft Open Source Code of Conduct. Per maggiori informazioni consulta le Code of Conduct FAQ oppure contatta [email protected] per eventuali domande o commenti aggiuntivi.
Questo progetto può contenere marchi o loghi di progetti, prodotti o servizi. L'uso autorizzato dei marchi Microsoft o dei loghi è soggetto e deve seguire Microsoft's Trademark & Brand Guidelines. L'uso di marchi o loghi Microsoft in versioni modificate di questo progetto non deve creare confusione né implicare il patrocinio di Microsoft. Qualsiasi uso di marchi o loghi di terze parti è soggetto alle policy di tali terze parti.