Snykが生成するSBOMに、プロジェクト内のオープンソースライブラリのライセンス情報が追加されました
2024年12月9日
0 分で読めますSnykのツールで生成されるSBOM(ソフトウェア部品表)に、ライセンス情報が含まれるようになりました。この新機能は、ソフトウェアサプライチェーンセキュリティソリューションの継続的な強化の一環です。開発者を第一に考えたソリューションのツールを活用することで、アプリケーションのサプライチェーンをより深く理解し、潜在的なリスクを特定して、先手を打つために必要な対策を講じられます。
ソフトウェアサプライチェーンの保護におけるSBOMの重要性
現代のソフトウェアの大半は、あらかじめ構築されたオープンソースの要素で構成されています。開発期間を短縮できる一方で、セキュリティ脆弱性やサプライチェーンのリスクを招く可能性もあります。こうした脅威の軽減を目的とした規制ガイドラインを受け、多くの組織がソフトウェア部品表(SBOM)の作成に取り組んでいます。SBOMは、アプリケーションの構成要素と依存関係を詳細に一覧化したものです。
SBOMは製造部品表に似ており、購入者や後続のツールに重要な情報を提供します。CycloneDXやSPDXなどの標準形式を使えば、人が読みやすく、ツールでも利用しやすいレポートを作成できます。AppSecチームにとって、この可視性はサプライチェーン攻撃を理解して対処し、規制要件を遵守するうえで不可欠です。
しかし、開発プロセスにSBOMの作成を組み込むのは、開発者にとって容易ではありません。Snykのようなツールを使えば、SBOMを簡単に生成できます。アプリケーションを構成する要素(オープンソースコンポーネントなど)と、それらがどのように相互作用するかを明確に把握できます。
重要なのは、SBOMの作成がイノベーションを妨げるのではなく、開発者がセキュリティと開発期間の両方を優先できるようにすることです。そして最終的には、組織のリスク低減に役立つツールとなります。
ソフトウェア開発におけるライセンスリスク
SBOMはソフトウェアに何が含まれているかを列挙するだけのものではありません。オープンソースライセンスに関連するリスクを把握するうえでも重要です。大きな懸念の一つは、知的財産を十分に保護しないライセンス契約のリスクです。たとえば、MIT Licenseのようなライセンスを利用すると、著作権侵害の問題にさらされる可能性があります。MIT Licenseでは帰属表示のみが求められ、利用や配布は制限されません。この柔軟性は利点である一方、許可なく他者がコードを再利用しやすくなるという側面もあります。
アプリケーションの依存関係がどのライセンスを使用しているかを把握すれば、アプリケーションに未知のライセンスリスクがないかを事前に確認できます。Snykが生成するSBOMに含まれるようになったライセンスメタデータは、法務、リスク管理、監査の各チームによるライセンスコンプライアンス管理に役立ちます。SBOMは、多くの場合、カスタムポリシーエンジンなどの後続ツールに保存または取り込まれたり、法務部門などを対象としたレポートの生成に使用されたりします。また、ライセンスデータは、必要なライセンス帰属表示を判断する際にも役立ちます。
SnykでSBOMにライセンス情報を追加
これまでは、SBOMの編集や注釈付け、あるいは他のツールのデータで情報を補完するなどの回避策が必要でした。Snykは、ecosyste.msなどのサードパーティーソースからデータを取得してSBOMを補完するオープンソースツールparlayを提供しています。ecosyste.msは、各依存関係に関連するライセンス情報に対応しています。Snykではすでに、コマンドラインインターフェイス(CLI)やWebインターフェイスなど、製品の他の領域でライセンスデータを提供していました。そのため、生成するSBOMにも含めるのは自然な流れでした。
実際、ライセンス情報は、米国国立標準技術研究所(NIST)の電気通信情報管理局(NTIA)がSBOMへの記載を推奨する重要項目の一つであり、FDAが必須項目として定めている情報でもあります。そのため、コンプライアンス上欠かせません。これまでは、開発者やAppSecチームが手動で注釈を追加したり、APIやParlayなどのツールを使ったりして、この重要な情報を補う必要がありました。現在はSnykのSBOMに標準で含まれています。
以下は、変更前にSnykが生成するSBOMに含まれていた依存関係情報の一部です。
ライセンス情報を追加する前のSBOMの一部:
今回のアップデートでは、対応するエコシステムについて、生成されるすべてのソフトウェア部品表(SBOM)にライセンス情報が含まれるようになりました。この新機能ではSPDX式を使用してライセンスデータを明確に表示します。単一のライセンスだけでなく、論理演算子で結合された複数のライセンスも検出できます。
追加されたライセンスメタデータは、次の2か所で確認できます。CycloneDX形式のSBOMではcomponents.licenses.expression、SPDX形式のSBOMではpackages.licenseConcludedです。この方法により、SnykのSBOM成果物の実用性が高まり、後続の利用者はアセット内の依存関係をより深く理解し、ライセンスコンプライアンスについて十分な情報に基づいて判断できるようになります。
ライセンス情報を追加した上記の例は、次のようになります。
ライセンス情報を追加した後のSBOMの一部(変更箇所は「>」で示しています):
Snykが生成するSBOMにライセンス情報を含めるには?
SnykでSBOMを生成すると、対応するすべてのエコシステムと環境で、ライセンスメタデータがデフォルトで自動的に含まれます。つまり、CycloneDX形式やSPDX形式のSBOMにライセンスメタデータを含めるための変更は不要です。Snyk CLIや各種SBOM生成APIを使用して生成したSBOMでも利用できます。
オープンソースセキュリティの現状を探る
オープンソースソフトウェアとサプライチェーンセキュリティの最新動向やアプローチを理解しましょう。
