Open-Source-Repo zur Validierung von Agentic-AI-Anwendungen: Redteam, Verhalten, Supply-Chain, statische Analyse
NuGuard ist ein Open-Source-Sicherheits-Toolkit für KI-Anwendungen. Ziel ist es, die umfassendsten Redteam- und Verhaltensvalidierungen für agentische KI-Anwendungen bereitzustellen.
Mit NuGuard können KI-Entwickler sich auf die Entwicklung ihrer Anwendungen konzentrieren, während NuGuard diese kontinuierlich gegen eine breite Palette von Sicherheitsrisiken testet und validiert, darunter Supply-Chain-Angriffe, Prompt Injection, MCP-Tool-Missbrauch, API-Angriffe, Datendiebstahl (Data Exfiltration) und mehr. NuGuard ermöglicht es Entwicklern, ihre Sicherheitsworkflows zu beschleunigen und mit mehr Vertrauen schneller in die Produktion zu gehen.
Eine kommerzielle Version von NuGuard ist als SaaS-Produkt mit zusätzlichen Funktionen und Support verfügbar. Weitere Informationen finden Sie unter http://nuguard.ai.
Heute implementiert und nutzbar:
nuguard sbomnuguard analyzenuguard scannuguard policynuguard behaviornuguard redteamuv für den empfohlenen lokalen WorkflowPython-CLI:
pip install nuguard
Die folgenden Schritte beschreiben, wie Sie eine lokale Entwicklungsumgebung einrichten. Dies wird empfohlen, wenn Sie den neuesten Code ausführen, zum Projekt beitragen oder die CLI mit LLM-gestützten Funktionen verwenden möchten, die eine lokale Konfiguration von Umgebungsvariablen erfordern.
uv sync --dev
Führen Sie die CLI aus mit:
uv run nuguard --help
Oder aus der virtuellen Umgebung:
. .venv/bin/activate
nuguard --help
Befolgen Sie die Anweisungen in docs/plugin-guide.md, um das NuGuard-Plugin für Claude einzurichten und damit Befehle wie /nuguard-sbom, /nuguard-analyze und /nuguard-redteam direkt aus Ihren Unterhaltungen mit Claude auszuführen.
nuguard sbom generate --source . --output app.sbom.json
Sie können auch ein entferntes Repository scannen:
nuguard sbom generate \
--from-repo https://github.com/org/repo \
--ref main \
--output app.sbom.json
nuguard analyze --sbom app.sbom.json --format markdown
Typische Ausgaben:
markdown für die menschliche Überprüfungjson für die Automatisierungsarif für Code-Scanning-Pipelinesnuguard behavior \
--sbom app.sbom.json \
--target http://localhost:3000 \
--format markdown
nuguard redteam \
--config nuguard.yaml \
--output reports/redteam.md \
--format markdown
Für eine umfangreichere Redteam-Abdeckung können Sie außerdem angeben:
--policy--canary--confignuguard scan \
--source . \
--output-dir nuguard-reports
Standardmäßig führt dies die SBOM-Generierung plus statische Analyse in einem Durchgang aus. Um Richtlinien- und Redteam-Validierungen einzuschließen, aktivieren Sie diese Schritte und geben die erforderlichen Eingaben an:
nuguard scan \
--source . \
--steps sbom,analyze,policy,redteam \
--policy cognitive_policy.md \
--target http://localhost:3000 \
--output-dir nuguard-reports
NuGuard unterstützt die Projektkonfiguration über nuguard.yaml. Ein bearbeitungsfertiges Beispiel befindet sich unter nuguard.yaml.example.
Wichtige Bereiche in der Beispielkonfiguration:
sbom: Pfad zu einer vorhandenen SBOMsource: Quellverzeichnis für die Generierungpolicy: Pfad zur kognitiven Richtliniellm: Modelleinstellungen für LLM-gestützte Funktionenbehavior: Ziel-URL, Endpunkt und Testprofileinstellungen für Verhaltenstestsredteam: Ziel-URL, Endpunkt, Canary-Datei, Profile, Szenariofilter, Einstellungen für geführte Unterhaltungen und Steuerung der Befundauslöser (finding_triggers.*)analyze: Mindestschweregrad (Minimum Severity Threshold)database: Speichereinstellungen für SQLite oder Postgresoutput: Ausgabeformat und FehlerschwelleCLI-Flags haben Vorrang vor nuguard.yaml, das wiederum Vorrang vor Umgebungsvariablen und integrierten Standardwerten hat.
NuGuard kann während dynamischer Tests nach eingebetteten Canary-Werten suchen, um hochsichere Exfiltration-Befunde zu erzeugen. Beginnen Sie mit canary.example.json, erstellen Sie Ihre lokale canary.json, betten Sie diese Werte in das Zielsystem ein und weisen Sie dann nuguard redteam mit --canary auf diese Datei.
Weitere Details finden Sie in docs/redteam-engine.md.
Dev-Abhängigkeiten installieren:
make dev
Tests ausführen:
make test
Linting und Typprüfungen ausführen:
make lint
Codebasis formatieren:
make fmt
Dieses Repository enthält GitHub-Actions-Workflows für Trusted Publishing zu TestPyPI und PyPI:
Bevor die Workflows veröffentlichen können, konfigurieren Sie Trusted Publisher in TestPyPI und PyPI für das Projekt nuguard mit:
NuGuardAInuguardpublish-testpypi.yml oder publish-pypi.ymltestpypi oder pypiEmpfohlener Release-Ablauf:
Vor der Veröffentlichung auf TestPyPI oder PyPI führen Sie das schnelle Multi-App-Sanity-Gate aus.
Einmaliger Runner:
bash tests/apps/prepublish-sanity.sh
Dieser Runner führt Folgendes aus:
nuguard --help plus kritische lokale Tests)intent_happy_path-Workflowprofile: ciVom Runner verwendete Prepublish-Konfigurationsdateien:
tests/apps/openai-cs-agents-demo/nuguard.prepublish.yamltests/apps/Gemini-Auto-app/nuguard.prepublish.yamltests/apps/pinnacle-bank-app/nuguard-azure.prepublish.yamlManuell pro App ausführen (falls erforderlich):
# 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
Wichtig:
|| true.2 kann auf Befunde oder Richtlinien-Gates hinweisen; behandeln Sie ihn als Signal und verlassen Sie sich bei der Entscheidung über Bestehen/Nichtbestehen auf die Berichtsqualitätsprüfungen.tests/output/Lizenzinformationen finden Sie in der Datei LICENSE.