
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は、1つ以上の悪用クラスに分類され、これが緩和の判断を導きます。vex8sは--classifierを介して2つの分類エンジンをサポートしています:
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に触発されました。