ソフトウェア部品表(SBOM)は、ソフトウェアやアプリケーションを構成する「コンポーネント」の一覧、つまり、「部品の一覧」です。現在、企業に SBOMの公開を求める圧力がかかっているのは、ソフトウェアに問題が発生した場合に誰が責任を負うかという問題が生じるからです。
SBOMを理解するためには食品の例が分かりやすいでしょう。例えば、私の手元のチョコチップクッキーの原材料の欄には、小麦粉、砂糖、バター、チョコチップ、卵、バニラ、重曹、塩などが記載されています。さらにチョコレートチップには、砂糖、チョコレート、ココアバター、脱脂乳、乳脂肪、大豆レシチンが含まれていることが括弧書きされています。
もし、チョコレートチップに「汚染されたココアバター」が含まれていたとします。このココアバターを含むすべての製品のリコールを行う必要があるとしたら、誰が責任を負い、顧客が問題のあるクッキーを食べないようにするにはどうすればよいでしょうか。クッキーの製造会社は、自社で製造するクッキーの成分だけでなく、素材会社から購入しているココアバターの成分を認識することが重要なはずです。
チョコチップクッキーの製造業者がクッキーの成分に責任を負うのと同様に、ソフトウェアベンダーは、自社を保護しつつ最終的に顧客が「悪いクッキーを食べる」ことから保護するために、ソフトウェアアプリケーション内のコンポーネントを知る必要があります。セキュリティ上の脆弱性やソフトウェアライセンスの問題が潜んでいる可能性があるからです。
バイデン大統領は、2021年 5月 12日に「 Improving the Nation’s Cybersecurity(国家のサイバーセキュリティの向上)」に関する大統領令(EO)14028 を発令しました。この先端的な取り組みによって、SBOMはソフトウェア調達慣行の最前線での利用が始まったと言えます。大統領令によって、米国ではソフトウェアを連邦政府に販売する企業には、必要な SBOMの作成と流通が求められており、民間にも波及する可能性があります。
SBOMは「生きている」ドキュメントであり、ソフトウェアベンダーは SBOMを最新の状態に保つ必要があります。当該ソフトウェアの脆弱性が新たに特定されると、常にソフトウェアベンダーは次のように尋ねられます。
「いつこの脆弱性を知ったのか? 」そして「どのくらいの期間で修正したのか?」
これらは、EquifaxのCEOが、パッチが適用されていないオープンソース・コンポーネントの脆弱性に基づく同社のデータ侵害が広く報道された後に議会で答弁した際の質問そのものです。
多くの新しいプロセスと同様に課題があります。まずひとつ目は、ソフトウェアアプリケーションの変数の数が多いということ。いまひとつは、SBOMはコンポーネントを識別し、ID毎に標準的な命名法を使用する必要があるということです。 コミュニティとエコシステムは、グローバル・サプライチェーンのリスクを軽減するための標準、プロセス、教育、およびツールに共同で取り組む必要があります。
幸いなことに、サプライチェーン全体でより強力なソフトウェア・セキュリティ・プラクティスを実装するためのSBOM標準とツールがいくつかあります。Software Package Data Exchange(SPDX)やCycloneDXなどのSBOMの標準フォーマットは、企業がより簡単に情報を交換できるようにすることで、サプライチェーン全体でのソフトウェアの作成、配布、消費に際して信頼と透明性の構築を支援します。
2021年、SPDXは ISO/IEC JTC1 5962:2021標準となり、SBOMの標準フォーマットの 1つになりました。SPDXは、世界的な商用サプライチェーンにおいてソフトウェアのセキュリティと整合性を確保するため、すでに重要な役割を果たしています。Hitachi、Samsung、Microsoft、Intel、Cisco、Siemens、Googleなどの企業は、すでに何年にもわたってSPDXフォーマットでSBOMを作成し利用しています。
それでも、SBOM 市場はまだ未成熟です。標準フォーマットは企業間でSBOMの情報をやりとりを容易にしてくれますが、そのデータをどのように利用して追跡するか依然として課題です。また、SBOMの完全性と正確性にも対処する必要があります。例えば「チョコレートチップ」のSBOMに「カカオバター」を含めることで、「カカオバター」が汚染されていることが判明した時点で「チョコチップクッキー」が「汚染された原材料」を使っていることがわかるということです。
最新のOpen Source Security and Risk Analysis (OSSRA) レポートによれば、平均的なアプリケーションは約500個のソフトウェアコンポーネントを含んでいることがわかりました。しかし、アプリケーションを構成するすべてのコンポーネントを追跡するのは大変困難なため、自動化されたソフトウェア・コンポジション解析(SCA)ツールが必要です。シノプシスのBlack Duck® SCAは、ソフトウェア開発者によるSBOMの構築と管理を容易にし、SPDXやCycloneDX などのフォーマットでSBOMを出力して利用者に共有することで、ソフトウェア・サプライチェーンの保護を支援します。
また、今までSBOMを構築・管理したことがなくとも、構築の予定がある場合は、SBOMのインベントリに含める必要があるアプリケーションとコンポーネントの取り扱いに関して、SBOMの専門家からのガイダンスが必要になる場合があります。シノプシスのSCAツールは20年あまり市場をリードしてきました。また、当社の専門家は、お客様の会社が作成した、あるいはベンダーから受け取っているSBOMの、完全性と正確性に対する信頼を構築するためのガイダンスを提供し、サプライチェーンの保護を支援しています。