アップデート一覧に戻る
New releaseAug 23, 2026

vex8s v0.5.0

Kubernetesのコンテキストをスキャンに適用することで脆弱性を抑制する

共有

Vex8s

vex8s (このロゴはAI生成ではありません)

Vex8sは、コンテナの脆弱性とKubernetesの設定を関連付けて、クラスタ内で実際に悪用可能なCVEを特定し、VEXドキュメントを生成します。

注意:これは実験的なプロジェクトです。仕様は急速に変更される可能性があります。

動作の仕組み

このプロジェクトは、脆弱性の分類と securityContext 分析を組み合わせることで、Kubernetesワークロード内の既知のCVEの悪用可能性を評価することを目的としています。

vex8s-logic

以下のコンセプトに基づいています:

  • 各CVEは、1つ以上の脆弱性クラス(CWE)に分類されます。
  • CVEの説明は、埋め込みMLモデルによって処理され、その悪用カテゴリを予測します。
  • CWEと予測された悪用カテゴリの両方を組み合わせて、CVEが緩和可能かどうかを判断します。
  • 悪用カテゴリは、影響をブロックまたは軽減できるKubernetes設定のセットにマッピングされます。
  • Kubernetesマニフェストを解析することで、コンテナ設定を検査し、関連する設定が適用されているかどうかを評価できます。
  • 両方の分析を組み合わせることで、システムは特定のワークロード設定においてCVEが悪用可能かどうかを判断できます。
  • CVEの緩和が行われた場合、それを最終的なVEXドキュメントに追加します。

より深く理解するには、この論文を参照してください:Kubernetes Security ContextsとVEXを用いた環境認識型脆弱性抑制

インストール

最新のバイナリはリリースページからダウンロードできます。

または、手動でビルドすることもできます:

make build

使用方法

vex8s は現在、VEXドキュメントを生成する2つの方法をサポートしています:

  • パッシブモード: trivy または grype で作成された既存の脆弱性レポートを渡します。
  • アクティブモード: 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

参考文献

このプロジェクトは、Akihiro Suda氏のプロジェクト vexllm に触発されました。

カテゴリ