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

ويستند إلى المفهوم التالي:
- تُصنَّف كل ثغرة CVE ضمن فئة أو أكثر من فئات الثغرات (CWE)
- يُعالَج وصف الثغرة CVE بواسطة نموذج تعلّم آلي مضمَّن للتنبؤ بـفئة الاستغلال الخاصة بها.
- يتم الجمع بين كلٍّ من CWEs وفئات الاستغلال المتوقَّعة لتحديد ما إذا كانت ثغرة CVE قابلة للتخفيف.
- تُقابِل كل فئة استغلال مجموعة من إعدادات Kubernetes التي يمكنها حجب التأثير أو تقليله.
- من خلال تحليل ملف Kubernetes manifest، يمكننا فحص إعدادات الحاوية لتقييم ما إذا كانت الإعدادات ذات الصلة مُفعَّلة.
- يتيح الجمع بين التحليلين للنظام تحديد ما إذا كانت ثغرة CVE قابلة للاستغلال في إعداد حمل عمل معيّن.
- إذا أسفر ذلك عن تخفيف ثغرة CVE، نضيف هذا إلى مستند VEX النهائي.
لمزيد من القراءة المتعمقة، يمكنك الرجوع إلى هذه الورقة البحثية: Environment-Aware Vulnerability Suppression Using Kubernetes Security Contexts and VEX
التثبيت
يمكنك تنزيل أحدث ملف تنفيذي من صفحة الإصدارات.
أو يمكنك بناؤه يدويًا:
make build
الاستخدام
يدعم vex8s حاليًا طريقتين لإنشاء مستندات VEX:
-
الوضع السلبي (passive-mode): تمرير تقرير ثغرات مُنشأ مسبقًا بواسطة
trivyأوgrype. -
الوضع النشط (active-mode): فحص الصور بنشاط باستخدام محركات
trivyأوgrypeثم إنشاء المستند بناءً على النتائج.
الوضع السلبي (موصى به)
باستخدام trivy:
# generate vulnerability report.
trivy image --format json --output nginx.trivy.json nginx:1.21.0
# generate VEX document by processing vulnerability report.
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json --output nginx.vex.json
# scan again with VEX document to suppress vulnerabilities.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0
وينطبق الأمر نفسه باستخدام grype:
# generate sbom report.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0
# generate vulnerability report.
grype sbom:./nginx.grype.json --output json --file nginx.grype-vr.json
# generate VEX document by processing vulnerability report.
vex8s generate --manifest examples/nginx.yaml --report nginx.grype-vr.json --output nginx.vex.json
# scan sbom with VEX document to suppress vulnerabilities.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
الوضع النشط
باستخدام trivy:
# scan the image and automatically generate VEX document.
vex8s generate --manifest examples/nginx.yaml --scan.engine trivy --output nginx.vex.json
# scan again with VEX document to suppress vulnerabilities.
trivy image --vex nginx.vex.json --show-suppressed nginx:1.21.0
وينطبق الأمر نفسه باستخدام grype:
# generate sbom report.
grype --output cyclonedx-json --file nginx.grype.json nginx:1.21.0
# scan the image and automatically generate VEX document.
vex8s generate --manifest examples/nginx.yaml --scan.engine grype --output nginx.vex.json
# scan sbom with VEX document to suppress vulnerabilities.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
المصنِّفات (Classifiers)
تُصنَّف كل ثغرة CVE ضمن فئة أو أكثر من فئات الاستغلال، وهي التي توجّه
قرار التخفيف. يدعم vex8s ثلاثة محركات تصنيف عبر --classifier:
embedded(الافتراضي): نموذج تعلّم آلي ONNX يعمل دون اتصال ومضمَّن في الملف التنفيذي. لا يتطلب الوصول إلى الشبكة.gemini: يستخدم نموذج Gemini LLM من Google لتصنيف وصف ثغرة CVE. يتطلب متغير البيئةGEMINI_API_KEY(واختياريًاGEMINI_MODEL).ollama: يستخدم خادم Ollama قيد التشغيل محليًا لتصنيف وصف ثغرة CVE. اسحب نموذجًا مثلqwen2.5:3b-instructأولًا (واختياريًا اضبطOLLAMA_HOST/OLLAMA_MODEL).
export GEMINI_API_KEY="your-api-key"
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json \
--output nginx.vex.json --classifier ollama
راجع التوثيق، وتحديدًا دليل المستخدم للحصول على شرح كامل، وإعداد مصنِّفي Gemini وOllama، ومرجع كامل للخيارات (flags).
المراجع
استُلهم هذا المشروع من مشروع Akihiro Suda المسمّى vexllm.