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

ويستند إلى المفهوم التالي:
للاطلاع على قراءة أكثر تعمقًا، يمكنك الرجوع إلى هذه الورقة: 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
يُصنَّف كل CVE إلى واحد أو أكثر من أصناف الاستغلال، وهي التي توجّه قرار
التخفيف. يدعم vex8s ثلاثة محرّكات تصنيف عبر --classifier:
embedded (الافتراضي): نموذج ONNX ML
يعمل دون اتصال ومضمَّن في الملف التنفيذي. لا يتطلب الوصول إلى الشبكة.gemini: يستخدم نموذج Gemini LLM من Google لتصنيف وصف CVE.
يتطلب متغيّر البيئة GEMINI_API_KEY (واختياريًا GEMINI_MODEL).ollama: يستخدم خادم Ollama يعمل محليًا لتصنيف
وصف CVE. اسحب نموذجًا مثل
qwen2.5:3b-instruct أولًا (واختياريًا عيّن OLLAMA_HOST / OLLAMA_MODEL).export OLLAMA_HOST="http://localhost:11434"
export OLLAMA_MODEL="qwen2.5:3b-instruct"
vex8s generate --manifest examples/nginx.yaml --report nginx.trivy.json \
--output nginx.vex.json --classifier ollama
راجع التوثيق، ولا سيما دليل المستخدم للحصول على شرح كامل، وإعداد مصنّف Gemini وOllama، ومرجع كامل للأعلام.
استُلهم هذا المشروع من مشروع Akihiro Suda vexllm.