VEXでセキュリティ脆弱性の誤検知を除外する

開発チームとセキュリティチームは、増え続けるセキュリティ脆弱性のバックログに圧倒され、注意を迫られています。 これらの脆弱性に関する洞察は、組織とその顧客を潜在的な脅威から保護するために不可欠ですが、調査結果は、特に誤検知による大量のノイズで肥大化していることがよくあります。 

2022 Cloud Security Alert Fatigue Reportによると、セキュリティツールからのアラートの40%以上が誤検知であり、実際にはリスクをもたらさない脆弱性がチームに氾濫する可能性があることを意味します。これらの誤検知の影響には、リリースの遅延、生産性の浪費、社内摩擦、燃え尽き症候群、顧客の信頼の失墜などがあり、これらはすべて組織にとって大きな経済的損失を蓄積します。

開発者やセキュリティの専門家は、脆弱性をより効果的に管理し、本当に重要なことに集中できるように、ノイズをカットするにはどうすればよいでしょうか? そこで、 VEX(Vulnerability Exploitability eXchange) の出番です。

この記事では、VEXが Docker Scout とどのように連携するかを説明し、どのように始めることができるかを見ていきます。 

V2 長方形の誤検知は、あなたを悩ませました

VEXとは?

VEXは、米国国家電気通信情報局(NTIA)によって開発された仕様で、製品内の悪用可能な脆弱性に関する情報をキャプチャして伝達することを目的とした仕様です。 特に、このフレームワークは脆弱性ステータスを4つの主要なカテゴリに分類し、VEXドキュメントの中核を成しています:

  • 影響を受けない — この脆弱性に関して修正は必要ありません。
  • 影響を受ける — この脆弱性を修復または対処するためのアクションが推奨されます。
  • 修正済み — これらの製品バージョンには、脆弱性に対する修正が含まれています。
  • 調査中 — これらの製品バージョンが脆弱性の影響を受けるかどうかはまだ不明です。 アップデートは今後のリリースで提供される予定です。

VEXからコンテキストを取り込むことで、組織はノイズと確認された悪用可能な脆弱性を区別し、攻撃対象領域をより正確に把握し、修復活動に集中することができます。 例えば、VEXドキュメントで"影響を受けない"ステータスが割り当てられた脆弱性は、誤検知として除外され、注意散漫を最小限に抑えるためにツール出力から隠される可能性があります。

ソフトウェアの脆弱性コンテキストを文書化すること自体は目新しいものではありませんが、VEX自体は、メール、スプレッドシート、Confluenceページ、Jiraチケットなど、従来脆弱性管理プロセスを支配してきたソリューションよりも進歩したものです。 

VEXを際立たせているのは、標準化された機械可読な機能で、組織の脆弱性エコシステム内の統合と自動化にはるかに適しており、不必要なリソースを浪費することなく、脆弱性管理へのより合理的で効果的なアプローチを実現します。 しかし、これらの結果を繰り返し、かつ大規模に生み出すためには、VEXを取り巻くテクノロジーランドスケープを進化させ、VEXデータを検証可能、自動化可能、かつ有意義な方法でうまく行動に移すことができるツールとエクスペリエンスを提供する必要があります。 

VEXの詳細については、NTIAによる 1ページの要約 (PDF)を参照してください。

VEXを始めてみませんか?Dockerがお役に立ちます

VEXの実装は業界ではまだ初期段階にあり、そのポテンシャルを最大限に引き出すには、広く利用され、採用されることが鍵となるでしょう。 DockerもVEXの導入はまだ始まったばかりですが、私たちがどのようにユーザーを支援しているかをお読みください。

Docker ScoutをローカルのVEXドキュメントで使う

VEXがDocker Scoutとどのように連携するか試してみたい場合、起動して実行する最も簡単な方法は、 vexctlなどの任意のツールでローカルVEXドキュメントを作成し、コマンドのdocker scout cvesフラグで--vex-location画像解析に組み込むことです。

$ mkdir -p /usr/local/share/vex
$ vexctl create [options] --file /usr/local/share/vex/example.vex.json
$ docker scout cves --vex-location /usr/local/share/vex <image-reference>

VEXドキュメントをアテステーションとして埋め込む

新しい docker scout attestation add コマンドでは、VEXドキュメントをin-totoアテステーションとして画像に添付することができ、これはVEXステートメントが画像上で利用可能であり、画像と一緒に配布されることを意味します。

$ docker scout attestation add \
  --file /usr/local/share/vex/example.vex.json \
  --predicate-type https://openvex.dev/ns/v0.2.0 \
  <image>

Docker Scoutは、CLIでイメージを解析する際に、VEXアテステーションを結果に自動的に組み込みます。 また、Sigstore で署名され、 を使用して vexctl attest --attest --signアタッチされた構成証明でも機能します。

SysdigでVEXドキュメントを自動作成

Docker ScoutのSysdigインテグレーションは、ランタイム環境のメモリにロードされているパッケージを検出し、該当しないCVEを除外するためのVEXステートメントを自動的に作成します。

試してみよう

私たちは、上記の機能などをDocker Scoutに埋め込むことで、ユーザーが簡単にVEXを生成して適用し、誤検知を完全に排除できるようにすることに取り組んでいます。 同時に、上流のメンテナがイメージ内で適用できないCVEを示せるようにするために、 Docker公式イメージ 用のVEXを検討しており、VEXを考慮に入れればツール(スキャナなど)の精度を向上させることができます。 

それまでの間、これが実際にどのように機能するのか興味がある方のために、VEXドキュメントの作成、画像解析への適用、VEX認証の作成の手順を順を追って説明する ガイド を作成しました。 

さらに詳しく