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 sbom` - `nuguard analyze` - `nuguard scan` - `nuguard policy` - `nuguard behavior` - `nuguard redteam` ## आवश्यकताएँ - Python 3.12+ - अनुशंसित स्थानीय वर्कफ़्लो के लिए `uv` ## स्थापना **Python CLI:** ```bash pip install nuguard ``` नीचे दिए गए चरण बताते हैं कि स्थानीय विकास वातावरण कैसे सेट अप करें। यह अनुशंसित है यदि आप नवीनतम कोड चलाना चाहते हैं, परियोजना में योगदान करना चाहते हैं, या CLI को LLM-सहायित सुविधाओं के साथ चलाना चाहते हैं जिनके लिए स्थानीय पर्यावरण चर कॉन्फ़िगरेशन की आवश्यकता होती है। ```bash uv sync --dev ``` CLI को इसके साथ चलाएँ: ```bash uv run nuguard --help ``` या, वर्चुअल वातावरण से: ```bash . .venv/bin/activate nuguard --help ``` ### Claude उपयोगकर्ता प्लगइन कमांड का उपयोग कर सकते हैं। [docs/plugin-guide.md](https://github.com/nuguardai/nuguard/blob/develop/docs/plugin-guide.md) में दिए गए निर्देशों का पालन करके Claude के लिए NuGuard प्लगइन सेट अप करें और इसका उपयोग `/nuguard-sbom`, `/nuguard-analyze`, और `/nuguard-redteam` जैसे कमांड को सीधे Claude के साथ अपनी बातचीत से चलाने के लिए करें। ## त्वरित प्रारंभ ### 1. AI-SBOM उत्पन्न करें ```bash nuguard sbom generate --source . --output app.sbom.json ``` आप एक दूरस्थ रिपॉजिटरी भी स्कैन कर सकते हैं: ```bash nuguard sbom generate \ --from-repo https://github.com/org/repo \ --ref main \ --output app.sbom.json ``` ### 2. स्थैतिक विश्लेषण चलाएँ ```bash nuguard analyze --sbom app.sbom.json --format markdown ``` विशिष्ट आउटपुट: - मानव समीक्षा के लिए `markdown` - स्वचालन के लिए `json` - कोड स्कैनिंग पाइपलाइनों के लिए `sarif` ### 3. व्यवहारिक परीक्षण ```bash nuguard behavior \ --sbom app.sbom.json \ --target http://localhost:3000 \ --format markdown ``` ### 4. लाइव ऐप को रेड-टीम करें ```bash nuguard redteam \ --config nuguard.yaml \ --output reports/redteam.md \ --format markdown ``` अधिक समृद्ध रेड-टीम कवरेज के लिए, आप यह भी प्रदान कर सकते हैं: - `--policy` के साथ एक संज्ञानात्मक नीति - `--canary` के साथ कैनरी मान - `--config` के साथ एक कॉन्फ़िग फ़ाइल ### 5. एकीकृत पाइपलाइन चलाएँ ```bash nuguard scan \ --source . \ --output-dir nuguard-reports ``` डिफ़ॉल्ट रूप से यह एक ही पास में SBOM जनरेशन के साथ स्थैतिक विश्लेषण चलाता है। नीति और रेड-टीम सत्यापन शामिल करने के लिए, उन चरणों का चयन करें और आवश्यक इनपुट प्रदान करें: ```bash 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`](https://github.com/nuguardai/nuguard/blob/develop/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`](https://github.com/nuguardai/nuguard/blob/develop/canary.example.json) से शुरू करें, अपनी स्थानीय `canary.json` बनाएं, उन मानों को लक्ष्य प्रणाली में सीड करें, फिर `--canary` के साथ `nuguard redteam` को उस फ़ाइल पर इंगित करें। अधिक विवरण [`docs/redteam-engine.md`](https://github.com/nuguardai/nuguard/blob/develop/docs/redteam-engine.md) में उपलब्ध है। ## विकास Dev निर्भरताएँ स्थापित करें: ```bash make dev ``` परीक्षण चलाएँ: ```bash make test ``` Linting और टाइप जाँच चलाएँ: ```bash make lint ``` कोडबेस को फ़ॉर्मेट करें: ```bash make fmt ``` ## प्रकाशन इस रिपॉजिटरी में TestPyPI और PyPI के लिए Trusted Publishing के लिए GitHub Actions वर्कफ़्लो शामिल हैं: - [publish-testpypi.yml](https://github.com/nuguardai/nuguard/blob/develop/.github/workflows/publish-testpypi.yml) - [publish-pypi.yml](https://github.com/nuguardai/nuguard/blob/develop/.github/workflows/publish-pypi.yml) वर्कफ़्लो प्रकाशित होने से पहले, TestPyPI और PyPI में `nuguard` परियोजना के लिए Trusted Publishers कॉन्फ़िगर करें: - owner/org: `NuGuardAI` - repository: `nuguard` - workflow file: `publish-testpypi.yml` या `publish-pypi.yml` - environment: `testpypi` या `pypi` अनुशंसित रिलीज़ प्रवाह: 1. GitHub Actions से TestPyPI वर्कफ़्लो को मैन्युअल रूप से चलाएँ। 2. TestPyPI से पैकेज स्थापना और CLI व्यवहार सत्यापित करें। 3. PyPI प्रकाशन वर्कफ़्लो को ट्रिगर करने के लिए एक GitHub रिलीज़ बनाएँ। ### प्रकाशन-पूर्व सैनिटी जाँच TestPyPI या PyPI पर प्रकाशित करने से पहले, त्वरित मल्टी-ऐप सैनिटी गेट चलाएँ। वन-शॉट रनर: ```bash bash tests/apps/prepublish-sanity.sh ``` यह रनर निम्न कार्य करता है: - एक तेज़ रिपॉजिटरी स्मोक जाँच (`nuguard --help` और महत्वपूर्ण स्थानीय परीक्षण) - `intent_happy_path` वर्कफ़्लो के साथ डायनामिक मोड में व्यवहार रन - `profile: ci` के साथ रेडटीम रन - आर्टिफैक्ट और गुणवत्ता गेट (गैर-रिक्त रिपोर्ट, गैर-शून्य निष्पादित परिदृश्य, सख्त एंडपॉइंट-स्रोत जाँच, और परिवहन-त्रुटि सुरक्षा कटघरा) रनर द्वारा उपयोग की जाने वाली प्रीपब्लिश कॉन्फ़िग फ़ाइलें: - `tests/apps/openai-cs-agents-demo/nuguard.prepublish.yaml` - `tests/apps/Gemini-Auto-app/nuguard.prepublish.yaml` - `tests/apps/pinnacle-bank-app/nuguard-azure.prepublish.yaml` प्रति ऐप मैन्युअल रूप से चलाएँ (यदि आवश्यक हो): ```bash # 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](https://github.com/nuguardai/nuguard/blob/develop/LICENSE) फ़ाइल में उपलब्ध है।