SBOM を適切に管理する方法

ソフトウェア サプライ チェーンに対する最近の攻撃の増加以来、ソフトウェア部品表 (SBOM) の生成は、ソフトウェアを安全に構築して出荷するためにチームが完了しなければならない開発の中核ステップとなっています。 SBOM は、ソフトウェア製品で使用されるすべてのソフトウェア コンポーネントの詳細を記載した包括的なリストです。 SBOM セキュリティの目的は、ソフトウェア サプライ チェーン内の透明性と追跡可能性を確保し、組織が潜在的なセキュリティ脆弱性とコンプライアンス リスクを特定して修正できるようにすることです。

しかし、SBOM の作成と管理は、特に大規模なソフトウェア ポートフォリオを持つ組織にとっては複雑な作業です。製品で使用されているすべてのソフトウェア コンポーネントを特定し、すべてのアップデートとパッチを追跡しながらその正確性を確保するには、体系的なアプローチが必要です。

この記事では、SBOM を効果的に管理するためのベスト プラクティスと戦略、SBOM 管理に関連する課題、およびソフトウェア サプライ チェーンの安全性を維持するためにこのプロセスを簡素化する方法について説明します。

SBOMマネジメントとは何ですか?

ソフトウェア部品表の作成は、ソフトウェアのセキュリティを維持するプロセスの最初のステップにすぎません。しかし、ソフトウェア コンポーネントのリストを作成するだけでは十分ではありません。 SBOM を追跡、検証、編集、管理する必要があります。これにより、ソフトウェアのコンポーネントを認識するだけでなく、個々のコンポーネントのすべてのリスクとソフトウェアへの影響を実際に理解することができます。

SBOM 管理は、DevOps パイプライン全体で生成されるソフトウェア部品表を追跡するプロセスです。 SBOM の管理には、SBOM ドキュメントの生成、保存、分析、監視が含まれます。アプリのライフサイクル全体にわたってこれらの SBOM 管理タスクを完了すると、ソフトウェアの依存関係を特定し、サプライ チェーンのセキュリティを向上させるのに役立ちます。

SBOM が生成されたビルド ディレクトリ内で休止状態のままでは、SBOM は役に立ちません。 SBOM 管理は、このデータを活用して実用的な洞察を生成し、ソフトウェア パッケージのオープンソース コンポーネントとソフトウェア サプライ チェーンへの影響をより深く理解するのに役立ちます。脆弱性のスキャンとレポートも SBOM 管理の側面です。

したがって、ソフトウェア部品表の生成は DevOps プロセスの重要な部分ですが、SBOM 管理の継続的なプロセスはさらに重要です。これにより、脆弱性警告システム、ゼロトラスト ポリシー、および長期的なソフトウェア サプライ チェーン インテリジェンスを最大限に活用して実装することができます。

SBOM管理に関する洞察

サプライチェーン全体にわたるさまざまなソフトウェアに対する脅威の増加に対応するため、ガートナーは、ソフトウェアを重要なインフラストラクチャとして依存している組織の最大 60% が、今後数年のうちに SBOM の使用を義務化し始めると予測しています。これは、によると、 Gartner の SBOM に関する 2022 年イノベーション インサイト レポート これは、SBOM 管理プログラムの実装の重要性に関する重要な情報を提供します。

このレポートは、ソフトウェア サプライ チェーンで使用されるコードの可視性、完全性、透明性、セキュリティを向上させるための SBOM サイバーセキュリティの重要性を認識しています。ソフトウェアのコンポーネントを知らなければ、このソフトウェアのリスクと脆弱性の範囲を理解することは困難です。最善の解決策は、アプリケーション内のすべてのソフトウェアを単純に追跡し、既知の脆弱性のデータベースと照合して安全であることを確認することです。

Gartner のレポートによると、すべての組織は、構築するソフトウェア パッケージごとに SBOM の生成に投資する必要があります。次に、使用するすべてのソフトウェアの SBOM を検証する必要があります。また、アプリの展開後でもデータを再評価して新たなセキュリティ リスクを理解できるように、継続的な SBOM 管理も必要です。

効果的なソフトウェア部品表管理のための戦略

組織は、SBOM 管理を優先することで、構築または使用するソフトウェアのセキュリティとコンプライアンスを確保できます。以下は、組織のソフトウェア部品表を効果的に管理するための戦略の一部です。 

SBOM生成を自動化する

ソフトウェア部品表は、ソフトウェアの反復ごとに作成する必要があります。しかし、ビルドごとに SBOM を手動で生成する必要がある場合、開発者はこれを達成するのに苦労するでしょう。これが理由です SBOMの生成 ソフトウェア配信パイプラインに組み込む必要があります。自動化により、国家電気通信情報局 (NTIA) が推奨する SBOM 生成の「マシン速度」を実現できます。 

SBOMの自動化 また、SBOM ドキュメントの整合性と信頼性も向上します。開発パイプライン内で生成された自動化された SBOM には暗号署名を付けることができ、SBOM 内のソフトウェア コンポーネントのリストが本物であることをユーザーに証明できます。

構造化フォーマット

ソフトウェア部品表管理に表示されるすべてのデータは、標準形式に基づいて構造化されている必要があります。他にもいくつかありますが、SPDX、SWID、および CycloneDX の 3 つは最も人気のある形式です。公式の SBOM 推奨事項や一般化された業界標準は存在しないため、各組織は自分たちにとって最適な形式を選択することができます。ここで最も重要な要素は、選択した SBOM 形式に関係なく、一貫性です。

SaaS向けSBOMの提供

ソフトウェアのサイバーセキュリティ対策を導入する場合、組織は多くの場合、自社がクラウドまたはオンプレミスに導入するアプリやソフトウェアに重点を置き、使用する SaaS アプリは無視されます。

ただし、これらの Software as a Service アプリに SBOM を提供することも推奨されます。 SaaS モデルの顧客は、ソフトウェアの更新や新しいリリースを自分側で管理する必要がありません。ただし、顧客の SaaS アプリケーションが脆弱性の結果侵害された場合、アプリケーションに SBOM を提供することで早期警告として機能し、顧客自身のサイバーセキュリティ対策にも貢献する可能性があります。 

各リリースの定期的なアップデート

最も効果的にするには、SBOM はバージョン固有である必要があります。開発者は、アプリケーションの更新をロールアウトするたびに SBOM を改訂する必要があります。リリース間で手動で更新するのは難しいため、開発者は SBOM を一度作成したら、それを時々アップグレードするだけという罠に陥りがちです。企業は、ソフトウェアの新しいバージョンが利用可能になったときは常に、ソフトウェア部品表管理を直ちに更新する必要があります。これは、更新をリリースするたびに SBOM の更新バージョンを生成することが容易になるため、SBOM 生成の自動化が重要であるもう 1 つの理由です。

明確なコミュニケーションチャネルを確立する

SBOM 管理には、何らかの形でソフトウェア製品に関係する複数の関係者が関与します。これには、ソフトウェア サプライヤー、開発チーム、顧客などが含まれます。効果的な SBOM 管理を確保する方法の 1 つは、これらの関係者間に明確なコミュニケーション チャネルを確立することです。これにより、誰もが製品内のソフトウェア コンポーネントに関する新しい情報にアクセスでき、必要に応じて更新を実装できるようになります。

メタデータを含める

SBOM ドキュメントに含めるメタデータ (ライセンス データやパッチ適用ステータスなどの追加情報) の量は、使用している形式によって異なります。一部の形式はデフォルトで他の形式よりも多くのメタデータをサポートする場合がありますが、開発者はできるだけ多くのメタデータを SBOM に追加することを優先する必要があります。この追加情報により、ユーザーは必要になるたびにこれらの情報を手動で検索する必要がなくなるため、SBOM の管理が容易になります。また、メタデータにより、セキュリティ上の欠陥が発表されるたびに、製品内の脆弱なコンポーネントを特定して更新することが容易になります。

SBOM管理の課題

SBOM が広く採用されているにもかかわらず、SBOM 管理の多くの側面はユーザーにとって依然として課題です。おそらく最大の課題は、業界全体で SBOM 形式が標準化されていないことです。 SBOM の作成と共有に関して同じ基準を遵守することで、全員にとって最高の価値が保証されますが、コンセンサスが得られるまでにはしばらく時間がかかります。

もう 1 つの課題は、SBOM を最新かつ関連性の高いものに保つ必要があることです。ほとんどの組織が作成するソフトウェアは動的です。これは、アップデートが定期的にリリースされ、新しいコンポーネントが追加されることを意味します。関連性を保ち、安全に使用できるようにするには、ソフトウェアの新しいリリースごとにソフトウェア部品表を更新する必要があります。すべての組織は、ソフトウェアの新しいリリースごとに、よりシームレスに新しい SBOM をリリースできるように、SBOM の生成および管理ツールの計画を立てる必要があります。

さらに、SBOM 内に不正確または欠落が発生するリスクがあり、脆弱性やコンプライアンス上の問題にさらされる可能性があります。一部の SBOM 生成ツールは、開発者がソース コードに含めた生のコードまたはバイナリを文書化できません。この方法で生成された SBOM は、完全であるという誤った感覚を生み出し、安全ではなくなります。セキュリティと透明性を確保するために、SBOM は非常に詳細であり、できるだけ多くのコンポーネントをリストし、これらのコンポーネント間の関係を示す階層情報を最適に提供する必要があります。

最後に、SBOM 自体のセキュリティを管理するリスクがあります。SBOM には、潜在的なセキュリティ脆弱性を含む、開発プロセス中に使用されるソフトウェア コンポーネントに関する機密情報が含まれているためです。したがって、組織は SBOM を不正なアクセスや開示から保護するための措置を講じる必要があります。

まとめ 

最後に、ソフトウェア製品を作成または使用する組織にとって、ソフトウェア部品表を適切に管理することの重要性を強調することが非常に重要です。 SBOM を作成するだけでなく、効果的な SBOM 管理慣行を実装することは、企業が自社のソフトウェア製品を安全に保ち、関連する規制に準拠するのに役立ちます。

効果的な SBOM 管理フレームワークの主要なコンポーネントには、ソフトウェア コンポーネントの包括的なインベントリの保持、定期的な更新のスケジュール設定、必要に応じたリスク評価の実行、SBOM の生成と管理の自動化などが含まれます。

これらのベスト プラクティスに従うことで、組織はソフトウェア サプライ チェーンをより深く理解し、セキュリティ侵害のリスクを最小限に抑え、その他の潜在的な問題を回避できます。最終的に、効果的な SBOM 管理は、顧客とすべての関係者のニーズを満たす、安全で信頼性の高いソフトウェア製品を構築するのに役立ちます。