
vet v1.19.0
احمِ نفسك من حزم المصادر المفتوحة الخبيثة 🤖
اكتشف الحزم الخبيثة والثغرات وسير عمل CI المحفوفة بالمخاطر قبل أن تصل إلى بيئة الإنتاج.
[!NOTE] هذا الفرع هو vet v2، في مرحلة ألفا. يقع vet v1 على
mainويبقى أحدث إصدار. توضّح ملاحظات إصدار v2.0.0 كيف يُقابل كل أمر وكل علامة في v1 نظيرها في v2.
لماذا vet
تبعياتك وسير عمل GitHub Actions وإعدادات وكيل الذكاء الاصطناعي لديك تشغّل شيفرة لم تكتبها أنت. يعثر vet على المخاطر فيها.
- الحزم الخبيثة. يفحص vet كل حزمة مقابل SafeDep Threat Intel. يحلّل Threat Intel إصدارات الحزم الجديدة عند نشرها في السجلات.
- الثغرات المعروفة، مع الإصدار المُصلَح الذي يجب الترقية إليه.
- سير العمل المحفوف بالمخاطر. المحفّزات الخطرة، وحقن القوالب، والأسرار المكشوفة، والإجراءات التي لا تحتوي على commit SHA مثبّت.
- التلاعب بملفات القفل والإصدارات الحديثة. الإدخالات الواردة من سجل غير موثوق، والإصدارات الواقعة ضمن نافذة فترة التهدئة.
- السياسات كشيفرة. تحدد القواعد المكتوبة بلغة CEL متى يفشل الفحص. يمكنك اختبار قاعدة على فحص محفوظ.
- جرد الذكاء الاصطناعي والتشفير. يسرد vet مكتبات الذكاء الاصطناعي وخوارزميات التشفير التي تستدعيها شيفرتك، ويكتب CycloneDX xBOM وCBOM.
لا يحتاج vet إلى حساب ولا يرسل أي شيفرة مصدرية.
البدء السريع
brew install --cask safedep/tap/vet@edge
vet scan
vet scan --fail-on high # exit 1 on a high or critical finding
vet scan --base-ref origin/main --fail-on high # report only what a pull request changes
vet report show --report sarif=vet.sarif # write SARIF from the saved scan, with no new scan
التثبيت
| القناة | الأمر |
|---|---|
| Homebrew | brew install --cask safedep/tap/vet@edge |
| mise | mise use -g 'github:safedep/vet[prerelease=true]@2' |
| Go | go install github.com/safedep/vet/v2/cmd/vet@latest |
| الحاوية | docker run --rm -v "$PWD:/src" -w /src ghcr.io/safedep/vet:v2-latest scan |
يقوم mise بتثبيت الإصدار بعد يوم واحد من نشره. يحتوي install.md على الأمر الخاص بأحدث إصدار، وملفات الإصدار الثنائية، وشهادات البناء.
ما الذي يفحصه vet
| الهدف | مثال |
|---|---|
| مجلد (الافتراضي) | vet scan، vet scan ./service |
| مستودع git | vet scan https://github.com/safedep/vet |
| صورة حاوية | vet scan oci://alpine:3.20، vet scan image.tar |
| ملف SBOM (CycloneDX أو SPDX) | vet scan sbom.cdx.json |
| حزمة واحدة | vet scan pkg:npm/[email protected] |
| الأدوات الموجودة على هذا الجهاز | vet endpoint audit |
يقرأ vet ملفات القفل والبيانات الوصفية الخاصة بـ npm وPyPI وGo وMaven وGradle وCargo وRubyGems وNuGet وPackagist وPub وغيرها. كما يقرأ سير عمل GitHub Actions وإعدادات وكيل الذكاء الاصطناعي الخاصة بالهدف. وهو لا يثبّت أو يشغّل أيًا منها. تحوّل عناصر التحكم هذه البيانات إلى نتائج. راجع controls.md.
السياسة
تحدد السياسة متى يفشل الفحص. احفظ هذا الملف باسم vet-policy.yml:
version: 2
rules:
- id: no-malware
description: A malicious or suspicious package fails the build.
when: finding.family == "malware"
action: fail
- id: no-workflow-injection
when: finding.control_id in ["dangerous-trigger", "template-injection"]
action: fail
- id: no-critical-vulnerability
when: finding.control_id == "vulnerability" && finding.severity == "critical"
action: fail
- id: new-dependency-age
description: A pull request cannot add a version that is less than 14 days old.
when: package.change == "ADDED" && has(package.days_since_publish) && package.days_since_publish < 14
action: fail
suppressions:
- purl: pkg:npm/[email protected]
reason: The upgrade to 4.18.1 is in pull request 42.
expires: 2026-12-31
اختبره على آخر فحص، دون فحص جديد. ثم طبّقه على طلب سحب:
vet report show last --policy vet-policy.yml
vet scan --base-ref origin/main --policy vet-policy.yml
بعد تاريخ انتهاء صلاحيتها، لم يعد الكتم يخفي النتيجة. اقرأ policy.md للاطلاع على حقول القواعد والمزيد من القواعد و Agent Skill الذي يكتب سياسة نيابةً عنك.
حالات الاستخدام
- فحص طلب السحب (Pull request). يعلّق إجراء vet على GitHub على طلب سحب
يضيف حزمة أو سير عمل أو نتيجة، ويفشل الفحص عند وجود هجوم. يضيف
vet ci initالإجراء إلى مستودع. - بوابة CI. رموز الخروج، وSARIF لفحص شيفرة GitHub، وتقارير GitLab وBitbucket. راجع ci.md.
- مراجعة طلب السحب. يبلّغ
--base-refفقط عن الحزم وسير العمل التي يضيفها التغيير. - xBOM وCBOM. جرد CycloneDX 1.7 لمكتبات الذكاء الاصطناعي والتشفير التي يستخدمها شيفرتك. راجع inventory.md.
- وكلاء الذكاء الاصطناعي. يكتشف vet Claude Code ووكلاء آخرين، ثم يكتب JSON ولا يطلب أي إدخال أبدًا.
- تدقيق نقاط النهاية. يسرد
vet endpoint auditأدوات الذكاء الاصطناعي وخوادم MCP وإضافات المحرر وحزم npm العامة على جهاز المطوّر، ويفحصها بحثًا عن البرمجيات الخبيثة.
التوثيق
| الصفحة | اقرأها من أجل |
|---|---|
| Install | جميع قنوات التثبيت وكيفية التحقق من إصدار |
| Commands | كل أمر وخياراته ورموز الخروج الخاصة به |
| Controls | عناصر التحكم وخياراتها |
| Policy | القواعد والكتم والبوابة |
| Output | تنسيقات التقارير والفحوصات المحفوظة والإعدادات |
| CI and AI agents | GitHub Actions وGitLab وBitbucket ووضع الوكيل |
| Inventory | استخدام الشيفرة والذكاء الاصطناعي والتشفير وxBOM وCBOM |