
nuguard v0.9.1
opensource repo for validating agentic AI applications: redteam, behavior, supply-chain, static analysis एजेंटिक AI अनुप्रयोगों को मान्य करने के लिए ओपनसोर्स रिपॉज़िटरी: redteam, behavior, supply-chain, static analysis
NuGuard ओपन सोर्स
NuGuard एक ओपन सोर्स AI एप्लिकेशन सुरक्षा टूलकिट है। इसका लक्ष्य एजेंटिक AI अनुप्रयोगों का सबसे व्यापक रेडटीमिंग और व्यवहारिक सत्यापन प्रदान करना है।
NuGuard के साथ, AI डेवलपर्स अपने अनुप्रयोगों को बनाने पर ध्यान केंद्रित कर सकते हैं, जबकि NuGuard लगातार उन्हें सुरक्षा जोखिमों की एक विस्तृत श्रृंखला के विरुद्ध परीक्षण और सत्यापित करता है, जिसमें सप्लाई चेन अटैक, प्रॉम्प्ट इंजेक्शन, MCP टूल दुरुपयोग, API अटैक, डेटा एक्सफिल्ट्रेशन और बहुत कुछ शामिल है। NuGuard डेवलपर्स को अपने सुरक्षा वर्कफ़्लो को तेज़ करने और आत्मविश्वास के साथ तेज़ी से प्रोडक्शन तक पहुँचने में सक्षम बनाता है।
NuGuard का एक व्यावसायिक संस्करण अतिरिक्त सुविधाओं और समर्थन के साथ SaaS उत्पाद के रूप में उपलब्ध है, इसे http://nuguard.ai पर देखें।
यह क्या करता है
- स्थानीय कोडबेस या Git रिपॉजिटरी से AI-SBOM उत्पन्न करें
- संरचनात्मक AI सुरक्षा जोखिमों और सप्लाई-चेन मुद्दों के लिए SBOM का विश्लेषण करें
- SBOM के आधार पर AI व्यवहारिक नीति (behavioral policy) प्रस्तावित करें
- AI-SBOM और व्यवहारिक नीति के इर्द-गिर्द निर्मित स्थैतिक और रनटाइम व्यवहारिक परीक्षण करें
- सैंडबॉक्स किए गए AI अनुप्रयोग को रेड-टीम करें: हमले के वैक्टरों की सबसे व्यापक और अद्यतन सूची के साथ-साथ कस्टम-निर्मित परिदृश्य। इसमें प्रॉम्प्ट इंजेक्शन, टूल दुरुपयोग, डेटा एक्सफिल्ट्रेशन, और संबंधित हमले के परिदृश्य शामिल हैं जो लक्ष्य प्रणाली के विभिन्न उप-एजेंटों, टूल्स और क्षमताओं का अभ्यास करते हैं।
- निष्कर्षों के लिए स्वचालित उपचार सुझाव, जिसमें कोड स्निपेट और नीति समायोजन शामिल हैं
- निष्कर्षों को टेक्स्ट, JSON, Markdown, और SARIF-उन्मुख वर्कफ़्लो में निर्यात करें
वर्तमान CLI सतह
आज लागू और उपयोग योग्य:
nuguard sbomnuguard analyzenuguard scannuguard policynuguard behaviornuguard redteam
आवश्यकताएँ
- Python 3.12+
- अनुशंसित स्थानीय वर्कफ़्लो के लिए
uv
स्थापना
Python CLI:
pip install nuguard
नीचे दिए गए चरण बताते हैं कि स्थानीय विकास वातावरण कैसे सेट अप करें। यह अनुशंसित है यदि आप नवीनतम कोड चलाना चाहते हैं, परियोजना में योगदान करना चाहते हैं, या CLI को LLM-सहायित सुविधाओं के साथ चलाना चाहते हैं जिनके लिए स्थानीय पर्यावरण चर कॉन्फ़िगरेशन की आवश्यकता होती है।
uv sync --dev
CLI को इसके साथ चलाएँ:
uv run nuguard --help
या, वर्चुअल वातावरण से:
. .venv/bin/activate
nuguard --help
Claude उपयोगकर्ता प्लगइन कमांड का उपयोग कर सकते हैं।
docs/plugin-guide.md में दिए गए निर्देशों का पालन करके Claude के लिए NuGuard प्लगइन सेट अप करें और इसका उपयोग /nuguard-sbom, /nuguard-analyze, और /nuguard-redteam जैसे कमांड को सीधे Claude के साथ अपनी बातचीत से चलाने के लिए करें।
त्वरित प्रारंभ
1. AI-SBOM उत्पन्न करें
nuguard sbom generate --source . --output app.sbom.json
आप एक दूरस्थ रिपॉजिटरी भी स्कैन कर सकते हैं:
nuguard sbom generate \
--from-repo https://github.com/org/repo \
--ref main \
--output app.sbom.json
2. स्थैतिक विश्लेषण चलाएँ
nuguard analyze --sbom app.sbom.json --format markdown
विशिष्ट आउटपुट:
- मानव समीक्षा के लिए
markdown - स्वचालन के लिए
json - कोड स्कैनिंग पाइपलाइनों के लिए
sarif
3. व्यवहारिक परीक्षण
nuguard behavior \
--sbom app.sbom.json \
--target http://localhost:3000 \
--format markdown
4. लाइव ऐप को रेड-टीम करें
nuguard redteam \
--config nuguard.yaml \
--output reports/redteam.md \
--format markdown
अधिक समृद्ध रेड-टीम कवरेज के लिए, आप यह भी प्रदान कर सकते हैं:
--policyके साथ एक संज्ञानात्मक नीति--canaryके साथ कैनरी मान--configके साथ एक कॉन्फ़िग फ़ाइल
5. एकीकृत पाइपलाइन चलाएँ
nuguard scan \
--source . \
--output-dir nuguard-reports
डिफ़ॉल्ट रूप से यह एक ही पास में SBOM जनरेशन के साथ स्थैतिक विश्लेषण चलाता है। नीति और रेड-टीम सत्यापन शामिल करने के लिए, उन चरणों का चयन करें और आवश्यक इनपुट प्रदान करें:
nuguard scan \
--source . \
--steps sbom,analyze,policy,redteam \
--policy cognitive_policy.md \
--target http://localhost:3000 \
--output-dir nuguard-reports
कॉन्फ़िगरेशन
NuGuard nuguard.yaml के माध्यम से परियोजना कॉन्फ़िगरेशन का समर्थन करता है। एक संपादन-योग्य उदाहरण nuguard.yaml.example पर उपलब्ध है।
उदाहरण कॉन्फ़िग में मुख्य क्षेत्र:
sbom: मौजूदा SBOM पथsource: जनरेशन के लिए स्रोत निर्देशिकाpolicy: संज्ञानात्मक नीति पथllm: LLM-सहायित सुविधाओं के लिए मॉडल सेटिंग्सbehavior: व्यवहारिक परीक्षण के लिए लक्ष्य URL, एंडपॉइंट, और परीक्षण प्रोफ़ाइल सेटिंग्सredteam: लक्ष्य URL, एंडपॉइंट, कैनरी फ़ाइल, प्रोफ़ाइल, परिदृश्य फ़िल्टर, निर्देशित वार्तालाप सेटिंग्स, और निष्कर्ष ट्रिगर नियंत्रण (finding_triggers.*)analyze: न्यूनतम गंभीरता सीमाdatabase: SQLite या Postgres-समर्थित भंडारण सेटिंग्सoutput: आउटपुट प्रारूप और विफलता सीमा
CLI फ़्लैग nuguard.yaml पर प्राथमिकता लेते हैं, जो पर्यावरण चर और अंतर्निहित डिफ़ॉल्ट पर प्राथमिकता लेता है।
रेड-टीम कैनरी
NuGuard गतिशील परीक्षण के दौरान सीड किए गए कैनरी मानों पर नज़र रख सकता है ताकि उच्च-विश्वास वाले एक्सफिल्ट्रेशन निष्कर्ष उत्पन्न किए जा सकें। canary.example.json से शुरू करें, अपनी स्थानीय canary.json बनाएं, उन मानों को लक्ष्य प्रणाली में सीड करें, फिर --canary के साथ nuguard redteam को उस फ़ाइल पर इंगित करें।
अधिक विवरण docs/redteam-engine.md में उपलब्ध है।
विकास
Dev निर्भरताएँ स्थापित करें:
make dev
परीक्षण चलाएँ:
make test
Linting और टाइप जाँच चलाएँ:
make lint
कोडबेस को फ़ॉर्मेट करें:
make fmt
प्रकाशन
इस रिपॉजिटरी में TestPyPI और PyPI के लिए Trusted Publishing के लिए GitHub Actions वर्कफ़्लो शामिल हैं:
वर्कफ़्लो प्रकाशित होने से पहले, TestPyPI और PyPI में nuguard परियोजना के लिए Trusted Publishers कॉन्फ़िगर करें:
- owner/org:
NuGuardAI - repository:
nuguard - workflow file:
publish-testpypi.ymlयाpublish-pypi.yml - environment:
testpypiयाpypi
अनुशंसित रिलीज़ प्रवाह:
- GitHub Actions से TestPyPI वर्कफ़्लो को मैन्युअल रूप से चलाएँ।
- TestPyPI से पैकेज स्थापना और CLI व्यवहार सत्यापित करें।
- PyPI प्रकाशन वर्कफ़्लो को ट्रिगर करने के लिए एक GitHub रिलीज़ बनाएँ।
प्रकाशन-पूर्व सैनिटी जाँच
TestPyPI या PyPI पर प्रकाशित करने से पहले, त्वरित मल्टी-ऐप सैनिटी गेट चलाएँ।
वन-शॉट रनर:
bash tests/apps/prepublish-sanity.sh
यह रनर निम्न कार्य करता है:
- एक तेज़ रिपॉजिटरी स्मोक जाँच (
nuguard --helpऔर महत्वपूर्ण स्थानीय परीक्षण) intent_happy_pathवर्कफ़्लो के साथ डायनामिक मोड में व्यवहार रनprofile: ciके साथ रेडटीम रन- आर्टिफैक्ट और गुणवत्ता गेट (गैर-रिक्त रिपोर्ट, गैर-शून्य निष्पादित परिदृश्य, सख्त एंडपॉइंट-स्रोत जाँच, और परिवहन-त्रुटि सुरक्षा कटघरा)
रनर द्वारा उपयोग की जाने वाली प्रीपब्लिश कॉन्फ़िग फ़ाइलें:
tests/apps/openai-cs-agents-demo/nuguard.prepublish.yamltests/apps/Gemini-Auto-app/nuguard.prepublish.yamltests/apps/pinnacle-bank-app/nuguard-azure.prepublish.yaml
प्रति ऐप मैन्युअल रूप से चलाएँ (यदि आवश्यक हो):
# 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
महत्वपूर्ण:
- प्रकाशन-गेटिंग रन में
|| trueका उपयोग न करें। - निकास कोड
2निष्कर्षों या नीति गेट का संकेत दे सकता है; इसे एक संकेत के रूप में मानें और पास/फेल तय करने के लिए रिपोर्ट-गुणवत्ता जाँचों पर भरोसा करें।
रिपॉजिटरी नोट्स
- रिपॉजिटरी में वर्तमान में
tests/output/के अंतर्गत उदाहरण आउटपुट और बेंचमार्क फिक्स्चर शामिल हैं - कुछ रेड-टीम और बेंचमार्क परीक्षण ऑप्ट-इन हैं और पर्यावरण चर द्वारा गेटेड हैं
- LLM-सहायित सुविधाएँ पर्यावरण चर के माध्यम से उपलब्ध प्रदाता क्रेडेंशियल्स पर निर्भर करती हैं
लाइसेंस
लाइसेंस जानकारी LICENSE फ़ाइल में उपलब्ध है।