
스캔에 Kubernetes 컨텍스트를 적용하여 취약점을 억제
(이 로고는 AI로 생성되지 않았습니다)
Vex8s는 컨테이너 취약점을 Kubernetes 설정과 상호 연관시켜 클러스터에서 실제로 악용 가능한 CVE를 판별하여 VEX 문서를 생성합니다.
이 프로젝트는 실험적인 프로젝트입니다. 사항이 빠르게 변경될 수 있습니다.
이 프로젝트는 취약점 분류와 securityContext 분석을 결합하여 Kubernetes 워크로드 내 알려진 CVE의 악용 가능성을 평가하는 것을 목표로 합니다.

다음 개념을 기반으로 합니다:
더 깊이 있는 내용은 다음 논문을 참조하세요: 환경 인식 취약점 억제: Kubernetes 보안 컨텍스트 및 VEX 사용
릴리스 페이지에서 최신 바이너리를 다운로드할 수 있습니다.
또는 직접 빌드할 수 있습니다:
make build
vex8s는 현재 VEX 문서를 생성하는 2가지 방법을 지원합니다:
수동 모드: 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
# VEX 문서로 sbom을 스캔하여 취약점 억제.
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
# VEX 문서로 sbom을 스캔하여 취약점 억제.
grype sbom:./nginx.grype.json --output table --vex nginx.vex.json --show-suppressed
각 CVE는 완화 결정을 주도하는 하나 이상의 악용 클래스로 분류됩니다. vex8s는 --classifier를 통해 두 가지 분류기 엔진을 지원합니다:
embedded (기본값): 바이너리에 포함된 오프라인 ONNX ML 모델. 네트워크 액세스가 필요하지 않습니다.gemini: Google의 Gemini LLM을 사용하여 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 분류기 설정 및 전체 플래그 참조는 문서 — 특히 사용자 가이드를 참조하세요.
이 프로젝트는 Akihiro Suda의 프로젝트 vexllm에서 영감을 받았습니다.