مستودع مفتوح المصدر للتحقق من صحة تطبيقات الذكاء الاصطناعي الوكيل: redteam, behavior, supply-chain, static analysis
NuGuard هي مجموعة أدوات أمان مفتوحة المصدر لتطبيقات الذكاء الاصطناعي. هدفها هو توفير أوسع نطاق من اختبارات الاختراق (redteaming) والتحقق السلوكي لتطبيقات الذكاء الاصطناعي العاملة بالوكالة (Agentic AI).
باستخدام NuGuard، يمكن لمطوري الذكاء الاصطناعي التركيز على بناء تطبيقاتهم بينما تقوم NuGuard باختبارها والتحقق منها باستمرار ضد مجموعة واسعة من المخاطر الأمنية، بما في ذلك هجمات سلسلة التوريد، وحقن المطالبات (prompt injection)، وإساءة استخدام أدوات MCP، وهجمات API، وسرقة البيانات، وغيرها. تتيح NuGuard للمطورين تسريع سير عملهم الأمني والوصول إلى مرحلة الإنتاج بثقة أكبر.
تتوفر نسخة تجارية من NuGuard كمنتج SaaS بميزات ودعم إضافيين، يمكنك الاطلاع عليها على http://nuguard.ai.
منفذة وقابلة للاستخدام الآن:
nuguard sbomnuguard analyzenuguard scannuguard policynuguard behaviornuguard redteamuv لسير العمل المحلي الموصى بهواجهة سطر الأوامر بايثون:
pip install nuguard
تصف الخطوات أدناه كيفية إعداد بيئة تطوير محلية. يوصى بهذا إذا كنت ترغب في تشغيل أحدث إصدار من الكود، أو المساهمة في المشروع، أو تشغيل واجهة سطر الأوامر مع ميزات مدعومة بنماذج لغوية كبيرة (LLM) تتطلب تكوين متغيرات البيئة المحلية.
uv sync --dev
تشغيل واجهة سطر الأوامر بـ:
uv run nuguard --help
أو، من البيئة الافتراضية:
. .venv/bin/activate
nuguard --help
اتبع التعليمات في docs/plugin-guide.md لإعداد إضافة NuGuard لـ Claude واستخدامها لتشغيل أوامر مثل /nuguard-sbom و /nuguard-analyze و /nuguard-redteam مباشرة من محادثاتك مع Claude.
nuguard sbom generate --source . --output app.sbom.json
يمكنك أيضًا فحص مستودع عن بُعد:
nuguard sbom generate \
--from-repo https://github.com/org/repo \
--ref main \
--output app.sbom.json
nuguard analyze --sbom app.sbom.json --format markdown
المخرجات النموذجية:
markdown للمراجعة البشريةjson للأتمتةsarif لخطوط مسح الكودnuguard behavior \
--sbom app.sbom.json \
--target http://localhost:3000 \
--format markdown
nuguard redteam \
--config nuguard.yaml \
--output reports/redteam.md \
--format markdown
لتغطية أكثر شمولاً لاختبار الاختراق (red-team)، يمكنك أيضًا توفير:
--policy--canary--confignuguard scan \
--source . \
--output-dir nuguard-reports
افتراضيًا، يقوم هذا بتشغيل إنشاء AI-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: مسار AI-SBOM الحاليsource: دليل المصدر للإنشاءpolicy: مسار السياسة المعرفيةllm: إعدادات النموذج للميزات المدعومة بنماذج لغوية كبيرةbehavior: عنوان URL الهدف، نقطة النهاية، وإعدادات ملف تعريف الاختبار للاختبارات السلوكيةredteam: عنوان URL الهدف، نقطة النهاية، ملف canary، ملفات التعريف، مرشحات السيناريو، إعدادات المحادثة الموجهة، وضوابط تشغيل النتائج (finding_triggers.*)analyze: الحد الأدنى لمستوى الخطورةdatabase: إعدادات التخزين المدعومة بـ SQLite أو Postgresoutput: تنسيق الإخراج وعتبة الفشلتتجاوز خيارات سطر الأوامر إعدادات nuguard.yaml، التي تتجاوز متغيرات البيئة والإعدادات الافتراضية المضمنة.
يمكن لـ NuGuard مراقبة قيم canary المزروعة أثناء الاختبار الديناميكي لإنتاج نتائج عالية الثقة حول سرقة البيانات. ابدأ من canary.example.json، وأنشئ ملف canary.json المحلي الخاص بك، وقم بزرع تلك القيم في النظام المستهدف، ثم وجه nuguard redteam إلى ذلك الملف باستخدام --canary.
مزيد من التفاصيل متوفرة في docs/redteam-engine.md.
تثبيت تبعيات التطوير:
make dev
تشغيل الاختبارات:
make test
تشغيل فحص الجودة (linting) والتحقق من الأنواع:
make lint
تنسيق قاعدة الكود:
make fmt
يتضمن هذا المستودع سير عمل GitHub Actions للنشر الموثوق (Trusted Publishing) إلى TestPyPI و PyPI:
قبل أن تتمكن سير العمل من النشر، قم بتكوين الناشرين الموثوقين (Trusted Publishers) في TestPyPI و PyPI لمشروع nuguard بـ:
NuGuardAInuguardpublish-testpypi.yml أو publish-pypi.ymltestpypi أو pypiسير العمل الموصى به للإصدار:
قبل النشر إلى TestPyPI أو PyPI، قم بتشغيل بوابة السلامة السريعة متعددة التطبيقات.
مشغل مرة واحدة:
bash tests/apps/prepublish-sanity.sh
يقوم هذا المشغل بـ:
nuguard --help بالإضافة إلى اختبارات محلية حرجة)intent_happy_pathprofile: 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/معلومات الترخيص متوفرة في ملف LICENSE.