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