SBOMを解説:ソフトウェア部品表(Software Bill of Materials)とは?

ソフトウェア部品表(SBOM)は、ソフトウェアコンポーネントを把握し、ソフトウェアサプライチェーンを保護するのに役立ちます。知っておくべきポイントは次のとおりです。

ソフトウェア開発と自動車生産には、思っている以上に共通点があります。ソフトウェア部品表(SBOM)について知っておくべきことをお読みください。

ソフトウェア開発と自動車生産には、思っている以上に共通点があります。ソフトウェア部品表(SBOM)について知っておくべきことをお読みください。

写真:Ju1978 – shutterstock.com

ソフトウェア部品表(Software Bill of Materials)とは、ソフトウェアの構成要素などについて詳細な情報を提供するガイドです。部品表の一種として、SBOMは提供者と購入者の双方がコンポーネントの全体像を把握し、ソフトウェアサプライチェーンのセキュリティを向上させるのに役立ちます。

SBOM – 定義

ソフトウェアの部品表(Bill of Materials)とは、次の内容を

  • ソフトウェア製品のコンポーネント、および

  • ソフトウェアサプライチェーン内におけるそれらの関係

記述する、正式で構造化された記録です。つまりSBOMは、一方でアプリケーションに取り込まれたパッケージやライブラリを示し、他方でそれらのパッケージやライブラリと、さらに上流の別プロジェクトとの関係も示します。これは、再利用コードやオープンソースコンポーネントが関わる場合に特に重要です。

新車に関連して「部品表」をご存じかもしれません。この場合、それは新しい車両に含まれるあらゆる部品を詳細に記述した文書です。たとえあなたの車がトヨタやゼネラルモーターズによって組み立てられたとしても、多くの部品は世界中の下請け企業から供給されています。部品表は、それぞれの部品がどこから来たのかを明らかにします。これは透明性のためだけでなく、安全性のためでもあります。特定のエアバッグのロットがリコールされた場合、自動車メーカーはそれがどの車両に搭載されているかを迅速に突き止めなければなりません。

しかし、コンテナ化された分散アプリケーションを構築するために、サードパーティ製のオープンソースライブラリの人気が高まるにつれ、ソフトウェア開発と自動車製造は、思っている以上に共通点を持つようになりました。開発者も利用者も、ソフトウェア部品表を使って、どの要素がソフトウェアに取り込まれ、どのように配布・利用されたのかを追跡できます。これにより、とりわけセキュリティの観点から、重要な示唆を数多く得られます。

ソフトウェア部品表 – 利点

モノリシックでプロプライエタリなコードベースの時代は、すでに過去のものです。現代のアプリケーションは、多くの場合、再利用コードを大きく基盤としており、しばしばオープンソースライブラリが関与しています。こうしたアプリケーションはまた、より小さく自己完結した機能コンポーネント、いわゆるコンテナへと分割される傾向が強まっており、Kubernetesのようなオーケストレーション基盤で管理され、ローカルまたはクラウドで実行されます。

概して、これらの変化はソフトウェア開発にとって恩恵であり、開発者の生産性向上とコスト削減に寄与してきました。セキュリティの観点から見ると、状況はそれほど楽観的ではありません。内部プロセスを十分に把握していない(あるいは部分的にしか把握していない)可能性のあるサードパーティのコードに大きく依存することで、開発者は、物理製品メーカーのそれと同じくらい複雑なソフトウェアコンポーネントのサプライチェーンを作り上げてしまいました。しかし、アプリケーションの安全性は最も弱いコンポーネントに左右されるため、こうしたやり方は深刻な脆弱性を招きかねません。2020年代には、見出しを飾ったソフトウェアサプライチェーン攻撃が相次ぎました。

  • 2020年末、ロシアの情報機関と関係があるとされるハッカーが、SolarWindsのネットワーク監視プラットフォームにバックドアを仕込むことに成功しました。このプラットフォームは他のセキュリティ製品でも利用されており、その結果、それらも侵害されました。

  • 2021年末、システムイベントのログ記録に用いられるJavaライブラリApache Log4jで深刻な脆弱性が発見されました。これは、ほぼすべてのJavaアプリケーションが何らかの形でLog4jを使用しており、その結果攻撃対象になり得ると気づくまでは、退屈な話に聞こえるかもしれません。

これらのセキュリティ危機は、セキュリティ領域におけるソフトウェア部品表の潜在的な役割を浮き彫りにしています。多くの利用者は、こうした脆弱性について耳にしたことはあっても、自分がLog4jや他のSolarWindsコンポーネントを使っているとは認識していなかったかもしれません。SBOMがあれば、どのパッケージをインストールしているのか、そして何より、それらのパッケージのどのバージョンなのかを正確に把握できます。必要に応じて更新し、安全を確保できるのです。

ソフトウェア部品表はセキュリティにとどまらない用途もあります。たとえばSBOMは、アプリケーションを配布する際に重要となる、各種ソフトウェアコンポーネントのオープンソースライセンスの把握を開発者が維持するのにも役立ちます。

SBOM – 米国では義務化、欧州でもまもなく

SolarWindsへのハッキングは、とりわけ米国政府に警鐘を鳴らしました。というのも、多くの米連邦機関が侵害されたコンポーネントを使用していたからです。そのため、バイデン政権が2022年5月に発令したサイバーセキュリティに関する大統領令には、ソフトウェア部品表に関する指針も盛り込まれました。米商務省は、SBOMに含めるべき基本要素についてのガイドを公表しました。

この命令は米連邦機関と直接関係する者を対象としているものの、規制はより広範な影響を及ぼすでしょう。結局のところ、米政府に販売される製品は、今後SBOMを添付して出荷しなければならず、それらの製品の大半は他の企業や組織にも販売されるからです。多くのソフトウェアメーカーは、民間企業の顧客もSBOMを付加価値として捉えることを期待しています。

さらに、政府調達そのものもサプライチェーンであると、バンク・オブ・アメリカの元Chief Security Scientistで、現在はJupiterOnのCISO兼リサーチ責任者であるSounil Yuは強調します。「米政府と直接取引し、この命令の影響を受ける企業の数は限られています。二次サプライヤー層への影響は、さらに大きいのです」

欧州でもSBOMは義務化されます。具体的には、Cyber Resilience Actの実施の枠組みの中で、2027年末までに義務化される予定です。

ソフトウェア部品表 – 構成

大統領令への対応として、National Telecommunications and Information Administration(NTIA)は2021年7月に「The Minimum Elements For a Software Bill of Materials」(PDF)というガイドを公開しました。この文書は業界全体におけるSBOMの事実上の標準となる可能性があり、各SBOMが含むべき7つのデータ項目を定めています。

翻訳元: https://www.csoonline.com/article/3491814/sbom-erklart-was-ist-eine-software-bill-of-materials.html

ソース: csoonline.com