SBOM(ソフトウェアの構成管理表)やツールについてのまとめ
Jan 22, 2023 23:40 · 2746 words · 6 minute read
ソフトウェアの構成情報を管理するSBOM(Software Bill of Materials)の話を耳にするようになりました。 直近のニュースによると、近い将来日本でもアメリカと同じ水準でソフトウェアの安全性を管理することが求められそうです。
「セキュリティのアレ」というPodcastでSBOMについて聞いたことはあったものの、「どんなデータ形式か?」「どのようなツールがあるのか?」などわからないことだらけだったので調べてみました。
第158回 備えよ常に!OEMでSDK問題にブルルンパンダ!スペシャル « podcast - #セキュリティのアレ (tsujileaks.com)
※本記事の内容は2023年1月に調査した内容です。調査以降に情報が更新される可能性があります。予めご了承下さい。
目次
SBOMとは
SBOMは(Software Bill of Materials)は、ソフトウェアに含まれる外部のソフトウェアやライブラリのバージョン情報や依存関係をまとめた一覧です。
米国では既に標準化の流れ、日本企業も対応を迫られる「SBOM」とは:OSSのサプライチェーン管理、取るべきアクションとは(3) - @IT (itmedia.co.jp)
SBOMの必要性
SBOMの必要性を解説する材料として、Log4jの脆弱性が有名です。
Log4jの脆弱性を突いた攻撃「Log4Shell」が成功すると、システム上で任意のコードが実行されてしまいます。非常に危険度が高いにも関わらず攻撃が容易であることから、多くのシステム管理者が緊急対応に追われました。
現代のシステムは非常に複雑で、構成の全てを把握できている管理者の方が少ないのではないでしょうか。そのため、「Log4Shellに対応済み」としている場合でも、管理者が把握できていない部分でLog4jが使われており、攻撃が成功する事例もあるようです。
継続する「Log4Shell」脆弱性の被害が証明したSBOMの価値 - ZDNET Japan
SBOMのフォーマット
構成一覧を各社がそれぞれの形式で作成すると、使いづらい上に膨大な管理コストがかかります。 一覧を使った管理コストを最適化するためには、各社が統一されたフォーマットでデータを管理しなければなりません。
SBOMの主要なフォーマットは、「Software Package Data Exchange(SPDX)」と「CycloneDX」の2種類あるようです。 SPDXはLinux FoundationのSPDX Workgroupが開発、CycloneDXは、Open Web Application Security Project(OWASP) Foundation が開発しています。 CycloneDXはOWASPが開発しているだけあって、セキュリティを重視したフォーマットのようです。
SBOMの2大フォーマット「SPDX」「CycloneDX」の違いとは?:解決!OSSコンプライアンス(10) - @IT (itmedia.co.jp)
業界や業種によって必要な情報は様々なので、完全にフォーマットを統一するのは難しそうです。 しかし、利便性をあげるために業界や業種によってある程度定型化したフォーマットに落ち着くのではないでしょうか。
SPDXは基本的にはツールを使って管理する前提のフォーマットです。手動で管理したい人に向けて、SPDX Liteというフォーマットも開発されています。
- SPDX Documentを理解する|OSS管理ブログ|オープンソース管理ソリューション|日立ソリューションズ (hitachi-solutions.co.jp)
- SPDX-LiteでSBOMを作ってみよう|OSS管理ブログ|オープンソース管理ソリューション|日立ソリューションズ (hitachi-solutions.co.jp)
日本企業への影響
今後日本でもアメリカと同じ水準のソフトウェア管理を求められます。 政府や官公庁周りのシステムにおいて、SBOMへの対応を迫られる開発会社も増えるでしょう。
PwC Japanの「2023年 Cyber IQ調査 ―インテリジェンス活用によるダイナミックなセキュリティ対策への転換」によると、「機関投資家がサイバー脅威を企業の価値に対して直接影響を及ぼすリスクとして捉えている」という1文があります。
2023年 Cyber IQ調査 ―インテリジェンス活用によるダイナミックなセキュリティ対策への転換 | PwC Japanグループ
このことから、政府や官公庁以外のシステムにおいても、お客様からSBOMの提示を求められるシステム開発会社は増えると考えます。 将来的にはSQLインジェクションの判決と同じく「SBOMによるソフトウェアの品質管理をすることは開発会社の責任である」という判決がでるかもしれません。
SQLインジェクション対策もれの責任を開発会社に問う判決 | 徳丸浩の日記 (tokumaru.org)
既にSBOMに取り組んでいる日本企業の事例
ルネサスエレクトロニクス、トヨタ自動車、日立ソリューションズの事例を紹介した記事です。
日本でも一部では実運用段階に入ったSBOM、今後の普及に向けた課題は何かを話し合った:OSSのサプライチェーン管理、取るべきアクションとは(4) - @IT (itmedia.co.jp)
- 納品時にSBOMを確認し、お客様に伝える。お客様から問い合わせがあった場合は「納品時にお知らせしたツールで確認できるので、ご自身で確認してください」と回答する。
- トヨタでは部品を発注するときに使ったOSSの情報を開示することを条件にしている。
- SBOMに対応するコストは悩ましい問題。SBOMに対応することでSIerとしての評価が高まったり、情報共有や脆弱性修正の運用コストが抑えられるなどのプラスの側面が理解されて広まっていくことが望ましい。経営層の理解があれば、SBOMへの対応を投資として捉えられる場合もある。
などの事例が紹介されていました。詳細は参照元の記事を御覧ください。 会員登録すると記事の全文を読めます。 会員登録は無料です。
SBOMに対応するツール
SBOMはまだ発展途上なので、スタンダードと呼べるツールは存在しないようです。 調査した中で複数回見かけた主要そうなツールのリンクを貼っておきます。
- GitHub - eclipse/sw360: SW360 project
- Home - FOSSology
- GitHub - spdx/tools: SPDX Tools
- Welcome to the Yocto Project Documentation — The Yocto Project ® 4.1.2 documentation
DockerHubにもいくつかImageがありました。
Explore Docker’s Container Image Repository | Docker Hub
海外の状況
著名な海外メディアのSBOMに関する記事一覧です。
その他リンク
- SPDX Becomes Internationally Recognized Standard for Software Bill of Materials - Linux Foundation
- International Open Standard (ISO/IEC 5962:2021) - Software Package Data Exchange (SPDX)
- GitHub - spdx/spdx-examples: Examples of SPDX files for software combinations
最後に
今後数年以内に業務でSBOMに出会う確率は高そうです。 まだまだ内容が固まっていないので、継続して状況の確認が必要ですね。