はじめに
2度目の登場になります、日立ソリューションズの渡邊です。OpenChain Japan Planningリーダーを担当しています。今年は、自社における本務(SBOM/OSS管理コンサルタント)と兼務(自社のOSSコンプライアンス関連)とOpenChainの活動に加えて、The Linux Foundation Japanエバンジェリストを拝命し、さらに12月から日立製作所のOSPOのメンバーにもなりまして、役割と名刺がどんどん増えています。ありがたいことに、各所から情報も集まってきますし、いろいろな立場で発信することもできるようになり、来年はさらに人と人、プロジェクトとプロジェクトを繋げる活動に力を入れていきたいと考えています。いろいろな立場はありますが、私のライフワークはOSSの利活用とSBOMとサプライチェーン・トラスト。今回は、SBOMの専門家から見たいま時点のSBOMについて書かせていただきます。
SBOMがなぜ必要なのか?
米国大統領令、EU CRA、PCI DSS v4.0や薬機法における医療機器の基本要件基準などの各種業界規格で要件になっているから、というのが直近の理由かもしれませんが、SBOMの本質は、対象のソフトウェアの構成要素を可視化し、安心・安全に使えるようにすることにあります。規格等でも、SBOMを用いて既知の脆弱性への対策を講じることが要件になっているように、SBOMを作成することはゴール(目的)ではなく、通過点(手段)に過ぎません。きちんと構成管理をおこない、正確なSBOMを作成・伝達してサプライチェーン全体として各種リスクへの対策を講じることが、性能や機能と同様に、自分が頒布(リリース)するソフトウェアに対する責任のひとつという理解が広がると良いなと考えます。
SBOMとして整理するべき内容(項目)は?
米国大統領令を受けて2021年に発表されたNITAによるSBOMの最小要素の定義が、これまでの議論の拠り所とされてきました。個人的には、あくまで最小要素という位置づけであることや、これだけではコンポーネントの特定やリスクの把握に十分でないと思われることなどから、最小要素だけでプロセスやツールを固めないように、というメッセージを発信してきましたが、定義の発行から3年経ち、SBOMに関する検討が進んできたことを受けて、最小要素の定義の更新が検討されているという話も聞きます。今年9月に公開されたCISAのドキュメントFraming Software Component Transparency: Establishing a Common Software Bill of Materials (SBOM) Third Editionでは、新しくBaseline Attributesが定義されました。これ自体はNTIAの最小要素の定義を更新するものではありませんが、今後の方向性を推察するのには重要なドキュメントです。Baseline AttributesをSPDX v2.2.1、SPDX 3.0、CycloneDX v1.6の項目と比較すると下図のようになります。
SBOMの「粒度」と「深さ」は?
実務でSBOMを作成する際、必ず直面するのが粒度(ひとつのコンポーネントとしてカウントする単位)の問題と深さ(管理するべき依存関係の階層)の問題です。ベストプラクティスはあるものの、「ここまで」という明確な定義が無いため迷いがちなポイントです。独BSIにより今年9月に発行されたドキュメントCyber Resilience Requirements for Manufacturers and Products Part 2: Software Bill of Materials (SBOM) v2.0.0では、SBOMの粒度や深さについて議論する際の共通言語となり得るLevel of SBOMの定義が発表されました。前述のBaseline Attributeの定義でも引用されています。
図2 Level of SBOM (BSIドキュメントより引用)
このほか、SBOM Typesの定義を用いて議論されるシーンも見かけるようになってきました。SBOMという用語だけでは、人によってイメージするものが異なる場合がありますので、SBOM levelやSBOM Typeの定義を活用し、認識の相違を確認しながら議論すると良いと思います。
2025年のSBOMは?
10月10日、EU CRAがEU理事会と欧州議会で正式採択され、11月20日の官報掲載をもって、12月10日から適用されることが確定しました。本規則による義務が発生するまであと3年(脆弱性報告義務は2026年9月11日開始)となり、各企業においてSBOMの実用化が急速に進むと予想されます。ベストプラクティスや実務的な検討がまだまだ足りていない分野ですので、コミュニティを通じた連携や情報共有がますます重要になってきます。OpenChain Japanとしても、私個人としても、皆さんの参考になる有用な情報をたくさん発信していきたいと思います。