
أداة تحليل ثابتة تعمل من سطر الأوامر تفحص الكود المولَّد بالذكاء الاصطناعي بحثًا عن الثغرات مثل حقن SQL والانعكاس غير الآمن والأسرار المضمَّنة، مع تصدير SARIF وبوابات CI/CD.
أداة تحليل ساكن سريعة ومستقلة للكشف عن المخاطر الأمنية في الشيفرة المولّدة بواسطة الذكاء الاصطناعي. تعمل CanoP محليًا وتُنتج نتائج قابلة للتنفيذ مع إرشادات المعالجة.
fixes.json للمعالجة بمساعدة نماذج اللغة الكبيرة (LLM).pip install canop
على macOS وLinux، استخدم pipx إذا كان التثبيت العام عبر pip مقيّدًا:
pipx install canop
تحقق من التثبيت:
canop --version
هيّئ .canop.yml و.canopignore:
canop init
افحص الدليل الحالي، أو الملفات المُعدّلة في Git فقط:
canop scan .
canop scan . --changed
يُحدّ عدد النتائج افتراضيًا عند 50. استخدم --all لإلغاء الحد أو --limit N لتحديد حد مخصص:
canop scan . --all
canop scan . --limit 10
تُرجع هذه الخيارات رمز خروج غير صفري عند عدم تحقق الحد المطلوب:
canop scan . --fail-on HIGH
canop scan . --min-score 85
canop scan . --json-out results.json
canop scan . --sarif results.sarif
canop scan . --prescriptions fixes.json
يمكن رفع مخرجات SARIF إلى GitHub لعرض النتائج ضمن الشيفرة. يحتوي fixes.json على مطالبات للمعالجة بمساعدة نماذج اللغة الكبيرة.
أضف .canop.yml إلى جذر المشروع لتحديد حدود السياسة والمسارات المتجاهَلة:
min_grade: B
fail_on:
- CRITICAL
- HIGH
ignore:
- "tests/**"
- "docs/**"
max_findings: 0
يستخدم .canopignore أنماطًا على غرار .gitignore لاستبعاد الملفات والأدلّة.
تُحمّل CanoP القواعد من canop/rules/*.yml وتفحص محليًا باستخدام محرك الأنماط المدمج. تفحص قواعد الأسرار التعليقات لاكتشاف بيانات الاعتماد التي تركتها وكلاء البرمجة بالذكاء الاصطناعي عن غير قصد في الشيفرة المصدرية للواجهة الأمامية؛ بينما تتجاهل القواعد الأخرى الأسطر التي تحتوي على تعليقات فقط لتقليل الضوضاء. إذا كان Semgrep مثبتًا، فإنه يضيف تحليلًا قائمًا على شجرة التركيب المجردة (AST). وهو اختياري ولا يُثبَّت مع CanoP.
git clone https://github.com/openbreach/CanoP.git canop
cd canop
pip install -e .
python -m unittest discover -s tests -v
ابنِ حزم التوزيع باستخدام:
pip install -r requirements-dev.txt
python -m build
تستخدم القواعد صيغة YAML الخاصة بـ Semgrep وتوجد في canop/rules/*.yml. راجع CONTRIBUTING.md للإرشادات.
للإبلاغ عن الأخطاء وطلبات الميزات، افتح مشكلة على GitHub أو راسلنا عبر [email protected].
هذا المشروع مرخّص بموجب MIT License.