SBOM説明:Software Bill of Materials(SBOM)とは何か?

Software Bill of Materials(SBOM)は、ソフトウェアコンポーネントを把握し、ソフトウェアサプライチェーンを保護するのに役立ちます。これについて知っておくべきことがあります。

Image

写真:Ju1978 – shutterstock.com

Software Bill of Materialsは、特にソフトウェアのコンポーネントに関する洞察を提供する詳細なガイドです。ソフトウェアBOMは一種の部品表として機能し、ベンダーと買い手の双方がコンポーネントの概要を把握し、ソフトウェアサプライチェーンのセキュリティを向上させるのに役立ちます。

SBOM – 定義

ソフトウェアBill of Materialsは、以下を説明する正式な構造化記録です。

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

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

つまり、SBOMは一方では、アプリケーションに含まれるパッケージとライブラリを示し、他方では、これらのパッケージとライブラリ、および他の上流プロジェクトとの関係も示しています。これは、再利用されたコードやオープンソースコンポーネントに関しては特に重要です。

新車に関連して部品表をご存じかもしれません。この場合、新しい車に含まれるすべてのコンポーネントを詳細に説明するドキュメントです。トヨタまたはゼネラル・モーターズによって組み立てられた場合でも、自動車の多くのコンポーネントは世界中の下請け業者から供給されています。部品表には、これらの各部品がどこから来ているかについての情報が記載されています。これは透明性だけでなくセキュリティにも役立ちます。特定のエアバッグシリーズがリコールされた場合、自動車メーカーはそれがどこに装着されているかをすばやく確認できる必要があります。

しかし、サードパーティ製のオープンソースライブラリはコンテナ化された分散アプリケーションの作成に人気が高まっているため、ソフトウェア開発と自動車製造には、思われているよりも多くの共通点があります。開発者とユーザーの両方がSoftware Bill of Materialsを使用して、ソフトウェアにどのコンポーネントが含まれ、どのように配布・使用されたかを追跡できます。これにより、特にセキュリティの観点から、多くの重要な結論が可能になります。

Software Bill of Materials – メリット

モノリシックで独自のコードベースの時代は遠い過去のものです。最新のアプリケーションは、多くの場合、大部分が再利用されたコードに基づいており、多くの場合、オープンソースライブラリが含まれています。これらのアプリケーションは、コンテナと呼ばれるより小さな独立した機能コンポーネントに分割されることが増えており、Kubernetesなどのオーケストレーションプラットフォームで管理され、ローカルまたはクラウドで実行されます。

全体的に、これらの変更はソフトウェア開発に有益をもたらし、開発者の生産性を向上させ、コストを削減するのに役立っています。セキュリティの観点からは、見た目ほど素晴らしくはありません。サードパーティのコードに大きく依存することにより(その内部プロセスを完全に理解していない場合がほとんど)、開発者は物理製品の製造業者と同じくらい複雑なソフトウェアコンポーネントのサプライチェーンを作成しました。しかし、アプリケーションは最も弱いコンポーネントと同じくらいセキュアであるため、このような行動は深刻な脆弱性につながる可能性があります。2020年代は、多くの注目を集めたソフトウェアサプライチェーンへの攻撃によって特徴づけられています。

  • 2020年の終わりに、ロシアの情報機関と関連していると言われるハッカーが、SolarWindsネットワーク監視プラットフォームにバックドアを挿入することができました。これは他のセキュリティ製品によって使用されており、その侵害につながりました。

  • 2021年の終わりに、JavaライブラリであるApache Log4jの深刻なセキュリティ脆弱性が発見されました。これはシステムイベントのログに使用されます。ほぼすべてのJavaアプリケーションがLog4jを何らかの形で使用し、したがって攻撃可能であることが判明するまで、退屈に聞こえます。

これらのセキュリティ危機は、セキュリティランドスケープ内でのSoftware Bill of Materialsの潜在的な役割を強調しています。多くのユーザーは、これらの脆弱性についてはたまたま聞いたかもしれませんが、Log4jまたは別のSolarWindsコンポーネントを使用していることに気付いていません。SBOMを使用すれば、インストールされているパッケージを正確に知ることができます。何よりも、これらのパッケージのバージョンを知ることができます。必要に応じて更新して、安全を保つことができます。

Software Bill of Materialは、セキュリティ以上の目的があります。例えば、SBOMはソフトウェアコンポーネントのさまざまなオープンソースライセンスの追跡を開発者が管理するのに役立ちます。これはアプリケーションを配布する際に重要です。

SBOM – 米国での義務化、ヨーロッパでも近く義務化

SolarWindsハックは特に米国政府にアラーム信号を鳴らしました。特に、多くの米国連邦機関が侵害されたコンポーネントを使用していたためです。そのため、2022年5月にバイデン政権によって発行されたサイバーセキュリティ令には、Software Bill of Materialsに関連するガイドラインも含まれていました。米国商務省は、SBOMに含める必要がある基本要素についてのガイドを公開しました。

この命令は、米国連邦政府と直接関係にある人々に特に言及していますが、規制はより広範な影響を与えるでしょう。結局のところ、米国政府に販売されている製品は、現在SBOMとともに提供されなければならないものの、ほとんどは他の企業や組織にも販売されています。多くのソフトウェアメーカーは、民間部門の顧客もSBOMを付加価値として見なすことを望んでいます

さらに、政府調達自体がサプライチェーンです。Sounil Yu元バンク・オブ・アメリカチーフセキュリティサイエンティスト、およびJupiterOnのCISOは強調しています。「米国政府と直接協力し、この命令の影響を受ける企業の数は限定されています。第2層の下請けレベルでの影響ははるかに大きいです。」

ヨーロッパでもSBOMは義務化されます。Cyber Resilience Actの実装の範囲内で、2027年末までに義務化されます。

Software Bill of Materials – 構造

行政命令への対応として、国立電気通信情報行政局(NTIA)は、2021年7月に「The Minimum Elements For a Software Bill of Materials」(PDF)のガイドを公開しました。このドキュメントは、業界全体でSBOMsの事実上の標準になる可能性があり、すべてのSBOMに含める必要がある7つのデータフィールドを定義しています:

  • ベンダー名:コンポーネントを作成、定義、識別する企業の名前。

  • コンポーネント名:元のサプライヤーによって定義されたソフトウェアユニットに割り当てられた指定。

  • コンポーネントバージョン:サプライヤーが、ソフトウェアの変更を以前に識別されたバージョンと区別するために使用する識別子。

  • その他の一意な識別子:コンポーネントを識別するか、関連するデータベースの参照キーとして機能する他の情報。これは、NIST CPE Dictionaryからの識別子である可能性があります。

  • 依存関係:上流コンポーネントXがソフトウェアYに含まれている関係を示します。これはオープンソースプロジェクトで特に重要です。

  • SBOM作成者:SBOMデータを作成した企業の名前。

  • タイムスタンプ:SBOMデータの編集日時の記録。

さらに、SBOMは以下の要件も満たす必要があります:

  • SBOMは、マシンで読み取り可能にするために、3つの標準化されたフォーマットのいずれかである必要があります – SPDXCycloneDX、またはSWID-Tags

  • 新しいソフトウェアバージョンのたびに新しいSBOMを生成する必要があります。これにより、それが最新の状態であることが保証されます。

  • SBOMは依存関係を含むだけでなく、このような関係が存在する可能性のある場所についての洞察も提供する必要があります。ただし、SBOMを作成した組織には未知です。

SBOMの作成方法 – 方法は次のとおりです

この記事を読んでいる場合、Software Bill of Materialsを作成することは、やりがいのあるタスクと感じられるかもしれません。結局のところ、すべての情報を手動で収集することは悪夢でなければなりません。幸いなことに、ほとんどの場合、SBOMはSCA(Software Composition Analysis)ツールを使用して自動的に作成されます。これらのツールはDevSecOpsパイプラインで頻繁に使用され、SBOMsの作成だけでなく役割を果たしています。

SCAツールは、コードディレクトリをパッケージについてスキャンし、それらをオンラインデータベースと比較して既知のライブラリと照合します。しかし、ソフトウェアビルドプロセス中にSoftware Bill of Materialsを作成するツールもあります。OWASP財団は、シンプルなオープンソースコマンドラインツールから専門的で商用製品まで、SCAツールの包括的なリストをまとめました。このエリアに詳しく掘り下げたい場合は、「ソフトウェアサプライチェーンを保護する7つのツール」という記事も見てください。

分散ソフトウェアを開発している場合、SBOMを開発実践に統合することが次第に重要になります。米国政府との契約を結んでいない場合でも、現在の脅威環境を考慮すると、ソフトウェアサプライチェーンのセキュリティについて真摯に考える必要があります。

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

ソース: csoonline.com