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がソフトウェアコンポーネントを安全に保つために重要な役割を果たし、新たに公開された脆弱性に対して組織が迅速に対応するのを助けることを示しています。