SBOM (ソフトウェア部品表) とは何か?
ソフトウェア部品表 (SBOM) は、ソフトウェアを構成するコンポーネントの詳細な目録であり、サードパーティやオープンソースのライブラリ、フレームワークのバージョンを含みます。これはアプリケーション内の成分リストのようなものです。
アプリケーション内のすべてのコンポーネントを追跡することで、開発チームは新しい脆弱性が発見されたときに迅速に検出することができます。
サイバーセキュリティにおけるSBOMの重要性
現代のアプリケーションは、開発を加速するために数百または数千のサードパーティ依存関係やオープンソースライブラリを組み合わせて構築されています。それらの一つに脆弱性があると、アプリケーション全体がリスクにさらされます。
SBOMは開発者チームを以下のように支援します:
- 影響を受けるコンポーネントをマッピングすることで、脆弱性を早期に特定
- 米国のNIST、ISO、または大統領令14028のような標準に対するコンプライアンスを向上
- ソフトウェア構成の透明性を確保することでサプライチェーンのセキュリティを強化
- 含まれているコンポーネントを示すことで顧客やパートナーとの信頼を構築
SBOMの主要要素
適切なSBOMには通常以下が含まれます:
- コンポーネント名 (例:
lodash) - バージョン (例: 4.17.21)
- ライセンス情報 (オープンソースまたはプロプライエタリ)
- サプライヤー (プロジェクトまたはベンダーが管理)
- 関係性 (コンポーネント間の依存関係)
実践例: Apache Strutsの侵害 (Equifax, 2017年)
2017年、攻撃者はEquifax(アメリカの多国籍消費者信用報告機関)のウェブアプリケーションで使用されていたApache Strutsフレームワークの重大な脆弱性(CVE-2017-5638)を悪用しました。この脆弱性のパッチは利用可能でしたが、Equifaxはタイムリーに適用できませんでした。
アプリケーション内のすべての依存関係とライブラリの可視性が欠如していたため、Strutsライブラリの欠陥は見過ごされ、歴史上最大級のデータ侵害の1つにつながり、1億4700万以上の個人データが流出しました。
もしSBOMが存在していれば、Equifaxは迅速に以下を行えたでしょう:
- アプリケーションが脆弱なバージョンのApache Strutsを使用していることを特定
- 脆弱性が公開された時点でパッチ適用を優先
- 攻撃者が弱点を悪用する時間を短縮
このケースは、SBOMがソフトウェアコンポーネントを安全に保つために重要な役割を果たし、新たに公開された脆弱性に対して組織が迅速に対応するのを助けることを私たちに示しています。
関連用語
- SCA(ソフトウェア構成分析)
- サプライチェーン攻撃
- オープンソースセキュリティ
- 脆弱性管理