
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 |
| Container | 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 الذي يكتب سياسة نيابة عنك.
حالات الاستخدام
- فحص طلبات السحب. يعلّق إجراء 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 العامة على جهاز المطوّر، ويفحصها بحثًا عن البرمجيات الخبيثة.
التوثيق
| الصفحة | اقرأها من أجل |
|---|---|
| التثبيت | جميع القنوات وكيفية التحقق من إصدار |
| الأوامر | كل أمر وعلاماته ورموز الخروج الخاصة به |
| عناصر التحكم | عناصر التحكم وخياراتها |
| السياسات | القواعد والتجاوزات والبوابة |
| المخرجات | صيغ التقارير والفحوصات المحفوظة والإعدادات |
| CI ووكلاء الذكاء الاصطناعي | GitHub Actions و GitLab و Bitbucket ووضع الوكيل |
| الجرد | استخدام الشيفرة، والذكاء الاصطناعي والتشفير، وxBOM و CBOM |
الخصوصية
يرسل vet هوية كل حزمة (نظامها البيئي واسمها وإصدارها) إلى SafeDep للحصول على البيانات المتعلقة بها. ولا يرسل vet أي شيفرة مصدرية أو محتوى ملفات.