
vex8s v0.5.0
إخفاء نقاط الضعف من خلال تطبيق سياق Kubernetes على عمليات المسح
Vex8s
(هذا الشعار ليس مولّدًا بالذكاء الاصطناعي)
يقوم Vex8s بإنشاء مستندات VEX من خلال ربط ثغرات الحاويات بإعدادات Kubernetes لتحديد أي CVEs قابلة للاستغلال فعليًا في مجموعتك.
يرجى ملاحظة أن هذا مشروع تجريبي. قد تتغير الأمور بسرعة.
كيف يعمل
يهدف المشروع إلى تقييم قابلية استغلال CVEs المعروفة ضمن أعباء عمل Kubernetes من خلال الجمع بين تصنيف الثغرات وتحليل securityContext.

يعتمد على المفهوم التالي:
- يتم تصنيف كل CVE في فئة واحدة أو أكثر من فئات الثغرات (CWE)
- تتم معالجة وصف CVE بواسطة نموذج تعلم آلي مدمج للتنبؤ بفئة الاستغلال الخاصة به.
- يتم دمج كل من CWEs وفئات الاستغلال المتوقعة لتحديد ما إذا كان يمكن تخفيف CVE.
- كل فئة استغلال ترتبط بمجموعة من إعدادات Kubernetes التي يمكنها حظر التأثير أو تقليله.
- من خلال تحليل بيان Kubernetes، يمكننا فحص إعدادات الحاوية لتقييم ما إذا كانت الإعدادات ذات الصلة موجودة.
- يؤدي الجمع بين التحليلين إلى تمكين النظام من تحديد ما إذا كان CVE قابلاً للاستغلال في تكوين عبء عمل معين.
- إذا نتج عن ذلك تخفيف CVE، نضيف ذلك إلى مستند VEX النهائي.
للاطلاع على قراءة أكثر تعمقًا، يمكنك الرجوع إلى هذه الورقة البحثية: Environment-Aware Vulnerability Suppression Using Kubernetes Security Contexts and VEX
التثبيت
يمكنك تنزيل أحدث ثنائي من صفحة الإصدارات.
أو يمكنك بناؤه يدويًا:
make build
الاستخدام
يدعم vex8s حاليًا طريقتين لإنشاء مستندات VEX:
-
الوضع السلبي: تمرير تقرير ثغرات مُنشأ مسبقًا بواسطة
trivyأوgrype. -
الوضع النشط: فحص الصور بنشاط باستخدام محركات
trivyأوgrypeثم إنشاء المستند بناءً على النتائج.
الوضع السلبي (موصى به)
باستخدام trivy:
# إنشاء تقرير الثغرات.
trivy image --format json --output nginx.trivy.json nginx:1.21.0
# إنشاء مستند VEX من خلال معالجة تقرير الثغرات.
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json --output nginx.vex.json
# إعادة الفحص باستخدام مستند VEX لكتم الثغرات.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0
يمكن تطبيق الأمر نفسه باستخدام grype:
# إنشاء تقرير SBOM.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0
# إنشاء تقرير الثغرات.
grype sbom:./nginx.grype.json --output json --file nginx.grype-vr.json
# إنشاء مستند VEX من خلال معالجة تقرير الثغرات.
vex8s generate --manifest examples/nginx.yaml --report nginx.grype-vr.json --output nginx.vex.json
# فحص SBOM باستخدام مستند VEX لكتم الثغرات.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
الوضع النشط
باستخدام trivy:
# فحص الصورة وإنشاء مستند VEX تلقائيًا.
vex8s generate --manifest examples/nginx.yaml --scan.engine trivy --output nginx.vex.json
# إعادة الفحص باستخدام مستند VEX لكتم الثغرات.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0
يمكن تطبيق الأمر نفسه باستخدام grype:
# إنشاء تقرير SBOM.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0
# فحص الصورة وإنشاء مستند VEX تلقائيًا.
vex8s generate --manifest examples/nginx.yaml --scan.engine grype --output nginx.vex.json
# فحص SBOM باستخدام مستند VEX لكتم الثغرات.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
المصنفات
يتم تصنيف كل CVE في فئة واحدة أو أكثر من فئات الاستغلال، والتي توجه
قرار التخفيف. يدعم vex8s محركي تصنيف عبر --classifier:
embedded(الافتراضي): نموذج تعلم آلي ONNX دون اتصال مدمج في الثنائي. لا يتطلب وصولًا إلى الشبكة.gemini: يستخدم نموذج Gemini اللغوي الكبير من Google لتصنيف وصف CVE. يتطلب متغير البيئةGEMINI_API_KEY(واختياريًاGEMINI_MODEL).
export GEMINI_API_KEY="your-api-key"
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json \
--output nginx.vex.json --classifier gemini
راجع التوثيق — وبشكل خاص دليل المستخدم — للحصول على شرح كامل، وإعداد مصنف Gemini، ومرجع كامل للخيارات.
المراجع
استلهم هذا المشروع من مشروع أكيهيرو سودا vexllm.