repository open source per la validazione di applicazioni AI agentiche: redteam, comportamento, catena di fornitura, analisi statica
NuGuard è un toolkit di sicurezza open source per applicazioni AI. Il suo obiettivo è fornire il red teaming più esteso e la validazione comportamentale delle applicazioni AI Agentiche.
Con NuGuard, gli sviluppatori AI possono concentrarsi sulla creazione delle loro applicazioni mentre NuGuard le testa e le valida continuamente contro un'ampia gamma di rischi di sicurezza, inclusi attacchi alla supply chain, prompt injection, uso improprio degli strumenti MCP, attacchi API, esfiltrazione di dati e altro ancora. NuGuard consente agli sviluppatori di accelerare i flussi di lavoro di sicurezza e arrivare in produzione più rapidamente e con fiducia.
Una versione commerciale di NuGuard è disponibile come prodotto SaaS con funzionalità aggiuntive e supporto, consultabile all'indirizzo http://nuguard.ai.
Implementato e utilizzabile oggi:
nuguard sbomnuguard analyzenuguard scannuguard policynuguard behaviornuguard redteamuv per il flusso di lavoro locale consigliatoCLI Python:
pip install nuguard
I passaggi seguenti descrivono come configurare un ambiente di sviluppo locale. Ciò è consigliato se si desidera eseguire il codice più recente, contribuire al progetto o eseguire la CLI con funzionalità assistite da LLM che richiedono la configurazione di variabili d'ambiente locali.
uv sync --dev
Esegui la CLI con:
uv run nuguard --help
Oppure, dall'ambiente virtuale:
. .venv/bin/activate
nuguard --help
Segui le istruzioni in docs/plugin-guide.md per configurare il plugin NuGuard per Claude e usarlo per eseguire comandi come /nuguard-sbom, /nuguard-analyze e /nuguard-redteam direttamente dalle tue conversazioni con Claude.
nuguard sbom generate --source . --output app.sbom.json
Puoi anche scansionare un repository remoto:
nuguard sbom generate \
--from-repo https://github.com/org/repo \
--ref main \
--output app.sbom.json
nuguard analyze --sbom app.sbom.json --format markdown
Output tipici:
markdown per la revisione umanajson per l'automazionesarif per pipeline di scansione del codicenuguard behavior \
--sbom app.sbom.json \
--target http://localhost:3000 \
--format markdown
nuguard redteam \
--config nuguard.yaml \
--output reports/redteam.md \
--format markdown
Per una copertura di red team più ricca, puoi anche fornire:
--policy--canary--confignuguard scan \
--source . \
--output-dir nuguard-reports
Per impostazione predefinita, esegue la generazione dell'SBOM più l'analisi statica in un unico passaggio. Per includere le validazioni di policy e red team, opta per questi passaggi e fornisci gli input richiesti:
nuguard scan \
--source . \
--steps sbom,analyze,policy,redteam \
--policy cognitive_policy.md \
--target http://localhost:3000 \
--output-dir nuguard-reports
NuGuard supporta la configurazione del progetto tramite nuguard.yaml. Un esempio pronto per la modifica si trova in nuguard.yaml.example.
Aree chiave nella configurazione di esempio:
sbom: percorso dell'SBOM esistentesource: directory di origine per la generazionepolicy: percorso della policy cognitivallm: impostazioni del modello per le funzionalità assistite da LLMbehavior: URL target, endpoint e impostazioni del profilo di test per i test comportamentaliredteam: URL target, endpoint, file canarino, profili, filtri degli scenari, impostazioni della conversazione guidata e controlli di attivazione dei risultati (finding_triggers.*)analyze: soglia di severità minimadatabase: impostazioni di archiviazione basata su SQLite o Postgresoutput: formato di output e soglia di fallimentoI flag CLI hanno la precedenza su nuguard.yaml, che a sua volta ha la precedenza sulle variabili d'ambiente e sui valori predefiniti incorporati.
NuGuard può monitorare valori canarino seminati durante i test dinamici per produrre risultati di esfiltrazione ad alta confidenza. Parti da canary.example.json, crea il tuo canary.json locale, semina quei valori nel sistema target, quindi punta nuguard redteam a quel file con --canary.
Maggiori dettagli sono disponibili in docs/redteam-engine.md.
Installa le dipendenze di sviluppo:
make dev
Esegui i test:
make test
Esegui linting e controlli di tipo:
make lint
Formatta il codebase:
make fmt
Questo repository include flussi di lavoro GitHub Actions per Trusted Publishing su TestPyPI e PyPI:
Prima che i flussi di lavoro possano pubblicare, configura Trusted Publishers in TestPyPI e PyPI per il progetto nuguard con:
NuGuardAInuguardpublish-testpypi.yml o publish-pypi.ymltestpypi o pypiFlusso di rilascio consigliato:
Prima di pubblicare su TestPyPI o PyPI, esegui il gate di integrità rapido multi-app.
Esecutore one-shot:
bash tests/apps/prepublish-sanity.sh
Questo esecutore esegue:
nuguard --help più test locali critici)intent_happy_pathprofile: ciFile di configurazione prepublish utilizzati dall'esecutore:
tests/apps/openai-cs-agents-demo/nuguard.prepublish.yamltests/apps/Gemini-Auto-app/nuguard.prepublish.yamltests/apps/pinnacle-bank-app/nuguard-azure.prepublish.yamlEsegui manualmente per app (se necessario):
# OpenAI CS agents demo
uv run nuguard sbom generate --config tests/apps/openai-cs-agents-demo/nuguard.prepublish.yaml --format json -o tests/apps/openai-cs-agents-demo/openai-cs.sbom.json
uv run nuguard behavior --config tests/apps/openai-cs-agents-demo/nuguard.prepublish.yaml --mode dynamic --format json --format markdown --output tests/apps/openai-cs-agents-demo/reports/openai-cs-prepublish-behavior --verbose
uv run nuguard redteam --config tests/apps/openai-cs-agents-demo/nuguard.prepublish.yaml --format json --format markdown --output tests/apps/openai-cs-agents-demo/reports/openai-cs-prepublish-redteam --verbose
# Gemini Auto app
uv run nuguard sbom generate --config tests/apps/Gemini-Auto-app/nuguard.prepublish.yaml --format json -o tests/apps/Gemini-Auto-app/gemini-auto.sbom.json
uv run nuguard behavior --config tests/apps/Gemini-Auto-app/nuguard.prepublish.yaml --mode dynamic --format json --format markdown --output tests/apps/Gemini-Auto-app/reports/gemini-auto-prepublish-behavior --verbose
uv run nuguard redteam --config tests/apps/Gemini-Auto-app/nuguard.prepublish.yaml --format json --format markdown --output tests/apps/Gemini-Auto-app/reports/gemini-auto-prepublish-redteam --verbose
# Pinnacle Bank app
uv run nuguard sbom generate --config tests/apps/pinnacle-bank-app/nuguard-azure.prepublish.yaml --format json -o tests/apps/pinnacle-bank-app/pinnacle-bank.sbom.json
uv run nuguard behavior --config tests/apps/pinnacle-bank-app/nuguard-azure.prepublish.yaml --mode dynamic --format json --format markdown --output tests/apps/pinnacle-bank-app/reports/pinnacle-bank-prepublish-behavior --verbose
uv run nuguard redteam --config tests/apps/pinnacle-bank-app/nuguard-azure.prepublish.yaml --format json --format markdown --output tests/apps/pinnacle-bank-app/reports/pinnacle-bank-prepublish-redteam --verbose
Importante:
|| true nelle esecuzioni di gate di pubblicazione.2 può indicare risultati o gate di policy; trattalo come un segnale e affidati ai controlli di qualità dei report per decidere superato/non superato.tests/output/Le informazioni sulla licenza sono disponibili nel file LICENSE.