SBOM(エスボム)とは?
ソフトウェア脆弱性・
ライセンス管理のリスクを低減しよう
2023年5月18日
ご相談・無料お見積りソフトウェアサプライチェーン攻撃を防ぐための対策として、コンポーネントを可視化するSBOM(エスボム)が注目を集めています。
この記事では、SBOMとは何か、注目される背景やメリットについて解説します。
SBOM(エスボム)とは
SBOM(エスボム)とは、ソフトウェア部品表(Software Bill of Materials)と呼ばれるソフトウェア管理⼿法の一つで、ソフトウェアコンポーネントやそれらの依存関係を一覧化したリストを指します。
SBOMを活用することで、サプライチェーンに潜む脆弱性やライセンス違反など、リスクの可視化が可能です。
近年、あらゆる分野でデジタル化が進んでおり、IT業界の市場は拡大し続けています。
ソフトウェアの開発現場ではスピードを求められることも多く、オープンソースソフトウェア(OSS)の利用は当たり前の時代になっています。
しかし、その一方でOSSに関する脆弱性情報は次々に出てきています。
脆弱性に対応するためには、ソフトウェアでどのOSSを活用しているかを適切に把握する必要があります。
利用しているOSSがさらに別のOSSを利用している(推移的依存)等、複雑になっていることが多く、管理できていないというプロジェクトも多く見られます。
サイバー攻撃による被害を防ぐには、効率的でかつ適切なソフトウェア管理が必要です。
SBOMを導入することで、ソフトウェア開発で使用されるすべてのコンポーネントを正確に把握、可視化し、セキュリティリスクを最小限に抑えることができるようになります。
SBOM(エスボム)が注目される背景
ソフトウェアの脆弱性を管理できるSBOMは、深刻化するセキュリティリスクへの対策として、2021年5月に米国で発行された「サイバーセキュリティ向上を目的とした大統領令」が起点となり、世界的に普及が進みつつあります。
同年同月、米国では大手石油パイプラインの会社が壊滅的なランサムウェアの攻撃を受けて、1週間にわたり操業停止に追い込まれるというトラブルが起こりました。
燃料の使用が不可欠な航空・鉄道等の交通機関はもちろん、一般市民に向けたガソリンや灯油などの供給も正常に行われなくなり、パニックに陥るという事態が発生したのです。
この状況を受け、米国政府は契約する情報通信サービス企業に対し、政府機関への情報共有と、サイバー攻撃の情報を開示するよう義務付けました。
バイデン大統領が署名をした大統領令には「ソフトウェアサプライチェーンセキュリティの強化」が盛り込まれ、デジタルインフラの透明性を高める具体的な対策としてSBOMによる管理が挙げられています。
また、日本でSBOMが注目を集めるようになった要因としては、「Log4jの脆弱性」が挙げられます。
Log4jとは、Javaベースのアプリケーションで使用されているAPIの一つで、2021年12月に複数の脆弱性が報告され、日本の大手メディアでも取り上げられました。
脆弱性が報告されたのは、Log4jのJNDI Lookupという機能を悪用したもので、「Log4Shell」とも呼ばれています。
JNDI Lookupには、特定の文字列が含まれている文字列がログとして記録されていた場合、変数として置換し、指定したサーバからjava classファイルを読み込んで実行するという特徴があります。
悪意あるコードを送信した場合も比較的簡単にリモート実行できてしまうため、情報漏洩やマルウェア感染等のリスクが高いというものでした。
現在は解消されているものの、Log4jは非常に深刻な脆弱性の一つとして問題視され、世界中から注目を集めることになりました。
これらをきっかけとして、ソフトウェア管理の重要性が再認識され、世界各国でSBOMを促進する動きが見られるようになったのです。
SBOM(エスボム)の代表的な2つのフォーマット
SBOMには複数のフォーマットがありますが、代表的なものは以下の2つです。
SPDX
SPDXにはコンポーネントの出どころ、ライセンス、セキュリティなどに関連するデータが含まれおり、SBOMに記載されている情報の共有と利用方法の標準化を目的としています。
CycloneDX
CycloneDXは、アプリケーションのセキュリティの背景、サプライチェーンのコンポーネント分析のために設計されており、アプリケーションを構成するソフトウェアコンポーネントに関する重要な情報の提供する際に利用されています。
Cyclone DXでは次の4つカテゴリで、ソフトウェアの関連情報をサポートしています。
フォーマットの種類 | 内容 |
---|---|
Bill of Materialsメタデータ | SBOMの作成ツール、サプライヤーメーカーなど、アプリケーションや製品に関する情報 |
依存関係 | ソフトウェアにおける依存関係の表示 |
コンポーネント | プロプライエタリおよびオープンソースコンポーネントの一覧(ライセンス情報を含む) |
サービス | ソフトウェアが呼び出し可能な外部API |
SBOM(エスボム)を導入するメリット
SBOMの導入にあたっては、ツールの活用が有効です。
SBOMツールを活用することで、以下のようなメリットがあります。
ソフトウェア管理コストの削減
SBOM ツールを⽤いた⾃動管理を行うことで、OSSなどのソフトウェアの脆弱性に対する対応のコストが抑えられます。
また、IT統制監査などでリストの提出を求められたときにも、すぐに提出が可能です。
脆弱性リスクの低減
SBOMツールを活用することで脆弱性に関する情報を自動で検出でき、検出された脆弱性の影響範囲を速やかに特定することが可能です。
これにより、脆弱性に対する対応期間が短縮されるため、脆弱性リスクが低減できます。
ライセンス違反リスクを低減
SBOMの導入により、ソフトウェアコンポーネントやそれらの依存関係の情報も含めた情報を可視化することは、開発遅延を防ぎつつ、脆弱性やライセンス違反のリスクをヘッジすることにもつながります。 これにより、生産性・安全性の向上、製品や企業の価値向上にもつながるメリットがあります。
SBOM(エスボム)の導入における課題
システムの脆弱性を狙ったサイバー攻撃の手口も複雑かつ高度化しており、米国におけるサイバー攻撃の事例からも分かるように、攻撃された企業だけではなく、国民の生活にも重大な影響を及ぼすものです。
巧妙化しているサイバー攻撃の被害を防ぐためにも、SBOMの導入は有効な手段であると言えます。
ですが、SBOMを導入するにあたっては、以下のような課題もあります。
- 環境整備や知識・情報が不十分なケースが多い
- ツールを導入しただけでは検出漏れが起こりやすい
- 既存ツールとの連携ができない
- 不具合や分からないことがあったときに、問い合わせ窓口が海外(英語)のケースが多い
このような課題をどのように解決するのかを十分に検討したうえで、SBOMツールを選定することが重要です。
SBOM(エスボム)ツールの選定基準
SBOMツールを導入する際は、選定基準を明確にしたうえで比較検討しましょう。
主に注目したいポイントは、以下の4つです。
①機能
SBOMツールには、「コンポーネントの解析機能」「リスクの定量化機能」などの機能があります。
また、SBOMを有効活用すべく、以下のような追加の機能を備えたものもあります
- 脆弱性情報・ライセンス情報の⾃動マッチング機能
- 依存関係や脆弱性情報等の可視化機能
- 脆弱性情報・ライセンス情報の⾃動追跡機能
- 新たな脆弱性が検出された際のアラート機能
- アドバイザリー情報の⾃動レポート機能
- SBOM データのインポート機能
機能性に優れたツールを選ぶことも必要ですが、使いこなせなければ意味がありません。
操作性やコストも考慮したうえで、使いたい機能がそろったツールを導入しましょう。
②検出スコープ
SBOMの自動生成にあたり、システムのどのレイヤーまでのSBOMを作成するのか、各レイヤーでどのライブラリやパッケージまで検出してくれるかを確認することが大切です。
ツールによっては、OSレイヤーは検出しないものや、サードパーティのパッケージを検出しないものもあります。
作成要件にあったツールを選ぶようにしましょう。
③外部ツールとの連携
SBOM の自動作成による効率化を図る目的であれば、既存ツールとの連携を図れるものが望ましいと言えます。
すでに構成管理ツールやプラットフォームを使用している場合は、連携が可能かどうかも確認しておきましょう。
④サポート体制(日本語対応含む)
海外のSBOMツールの場合、マニュアル等の資料がすべて英語、問い合わせも英語でメールのみといったケースは珍しくありません。
日本語でのサポート体制が整ったツールを選ぶほうが、不明な点や不具合が生じた場合もスムーズに対応してもらえて便利です。
SBOM(エスボム)ツールのおすすめ
ここからは、ソフトウェア管理におけるさまざまな課題を解決できるおすすめのSBOMツールを2つ紹介します。
GitLab Ultimate
GitLab(ギットラボ)は、Gitリポジトリをホスティングするソフトウェアです。
GitLab Ultimateは、GitLabの他のプランの機能に加えて、より充実したセキュリティ分野の機能が利用できるのが特徴です。
GitLab Ultimateの主な機能 | 概要 |
---|---|
動的アプリケーションテスト機能(DAST) | 起動中のWebアプリに対してサーバ設定やセキュリティ制御等に関する脆弱性を解析する |
依存関係スキャン機能 | パッケージマネージャの依存関係を解析することで、脆弱性が含まれているか解析する |
ライセンスコンプライアンス | 依存関係のあるライセンスを検索し、使用許可を管理する |
セキュリティダッシュボード機能 | 検出した脆弱性をダッシュボードで一覧管理できる |
CycloneDX for Gradle
CycloneDX for Gradleは、OWASPが提供しているOSSのSBOM作成ツールです。
Gradleのプロジェクトであれば、簡単に直接的および推移的な依存関係のSBOMを作成することができます。
CI/CDに組み込みやすいのも特徴です。
SBOM(エスボム)導入に関するお問い合わせ
株式会社野村総合研究所(NRI)は、GitLab Ultimateを提要するGitLab社と販売代理店契約を締結し、ソフトウェアの脆弱性管理に適したSBOMツールの提案および導入サポートを行っています。
SBOM導入に関するお問い合わせは、株式会社野村総合研究所(NRI)にお問い合わせください。