SBOMとは?3つのフォーマットと日本企業の関心の背景にある脆弱性対策の必要性
企業活動にさまざまなソフトウェアが関与している昨今、企業においてサイバーセキュリティ対策は喫緊の課題です。
近年活用が進むオープンソースソフトウェア(OSS)では、ソフトウェアサプライチェーンの安全性向上のためのソフトウェア部品表「SBOM」の活用が広がっています。ソフトウェア開発に携わる方、これから携わりたい方に向け、米国政府も注力するSBOMとは何か、国内の動向も合わせ解説します。
Contents
SBOMとは
SBOM(Software Bill of Materials、読み方:エスボム)とは、ソフトウェアを構成する要素を一覧できるリストのことです。製造業の部品表であるBOM(Bill Of Materials)のソフトウェア版ともいえます。
企業が活用する大規模なソフトウェアはさまざまな要素から構成されています。独自開発のソースコードだけでなく、外部のコンポーネントやライブラリ、モジュールなども組み合わせてつくられているため、一部に脆弱性があればサイバー攻撃の標的となってしまうリスクは否定できません。
このようなセキュリティリスク対策として、開発元やバージョン、ライセンス、依存関係をすぐに確認できるSBOMが求められているのです。
また、近年ではコネクテッドカーや自動運転などの実現に向けてオープンソースソフトウェア(以下OSS)活用の動きが加速しています。OSSでは、無償で公開されたソースコードを誰でも自由に利用・改良・再配布できます。しかし無償であるために品質が保証されておらず、誰かが行った改良によって不具合が発生してしまうことも少なからずあります。
便利で開発コストも抑えられるOSSですが、このような課題を抱えているためにSBOMの重要性はますます高まっています。
「国家のサイバーセキュリティ改善に関する大統領令」とは
2021年5月12日、ジョー・バイデン米国大統領は、サイバーセキュリティ強化(Improving the Nation’s Cybersecurity:国家のサイバーセキュリティの向上)のための大統領令に署名しました。これは、政府、公的機関、民間企業等のネットワークを保護するとともに、政府と企業間の情報共有を改善するための施策で、「ソフトウェアの構成要素に関する詳細の開示」要件としてSBOMに言及しています。
この大統領令では、政府と契約する企業に対して情報共有とサイバー攻撃の情報を開示することを義務づけています。なお、大統領令は、2021年5月に起きたコロニアル・パイプラインへのサイバー攻撃を契機としており、米国においてもサイバーセキュリティの重要性が非常に高まっていることがわかります。
国内においても、かねてからサイバーセキュリティに関する検討が行われてきました。2023年を目処に各種の基準等の改正を予定しており、SBOM導入に向けた取り組みも進められています。
OSSの活用とサプライチェーンリスクの関係
悪意のあるサイバー攻撃者は、セキュリティが脆弱な部分を狙い攻撃をしかけてきます。
たとえば製造業など、ひとつの製品を作るにあたり複数の企業が関わる業態では、セキュリティが強固な大企業ではなくサプライチェーン内の中小企業などをターゲットに攻撃を行うことが考えられます。サプライチェーン内にある企業が攻撃され、攻撃された企業の機密情報が漏えいすれば、その企業だけでなく全取引企業が損害を被ることも考えられます。
懸念されるOSSの脆弱性
また、比較的強固なセキュリティ対策を施している大企業であっても、OSSを活用したソフトウェアを利用している場合、OSSに脆弱性があればそこからサイバー攻撃を受けてしまう可能性があることにも注意しなければなりません。
近年、OSSにおいては提供ソフトウェア数だけでなく需要も伸び続けています。2021年には、世界中のエンジニアが2兆2,000個のオープンソースパッケージを要求しており、ダウンロード数も前年比で73%増加しています。
しかし、人気のOSSであっても脆弱性は排除しきれません。OSSプロジェクトの人気上位10%には平均で29%の確立で脆弱性が含まれているとの調査もあり、OSSを活用したソフトウェアを開発・導入している企業は企業規模によらず注意が必要です。
加えて、OSSのサプライチェーン攻撃は直近で大幅に増加しています。米Sonatype社の「2021 State of the Software Supply Chain Report」によると、OSSのサプライチェーン攻撃は2021年時点で前年比650%まで増加しており、OSSにおけるセキュリティ対策は急務といえるでしょう。
OSSに潜む脆弱性を見える化する
ではどのような対策を行えばよいのでしょうか? OSSの脆弱性への攻撃に対しては、従来のファイアウォールやウイルス対策ソフトでの防御は難しいでしょう。必要なのは、OSSにある脆弱性を見える化し、事前に防御策を講じながらインシデントの際には迅速に対応・復旧できる体制をつくることです。
そのために、次の手順でセキュリティ対策を実行しましょう。
- 利用するOSSの問題点を把握する
- セキュリティ対策を講じる
- サイバー攻撃を事前あるいは早期に検知できるようにする
- インシデント後から復旧までの対応を事前に決めておく
まずはOSSのソースコードを検査しセキュリティ上の問題点を把握します。次に、検出された脆弱性への対応を行います。OSSでは、利用者側で検出された脆弱性を修正することが難しいため、脆弱性を自動で検出し保護する仕組みを導入するとよいでしょう。
これらの対策を行っても対処しきれない問題に対しては、サイバー攻撃を事前あるいは早期に検知できるシステムを用いつつ運用管理を行い、攻撃に備えます。万が一攻撃を受けた場合には、早期に事業を再開できるよう復旧までの手順や方法を定めて起きましょう。
SBOMとソフトウェアのリスク
最近のソフトウェア開発では、さまざまなOSSを使用しています。これは、OSSを用いることでソフトウェアをゼロから開発する必要がなくなり、開発効率の向上や生産コストの削減を実現できるためです。
このようなメリットがある一方で、OSSライセンス違反や脆弱性をはじめとするセキュリティリスクなどの問題は続々と発生しています。SBOMによる管理は、これらOSS運用上の課題に有効な手法になりえるものです。
ソフトウェア開発にOSSを使用する際には、脆弱性の有無やライセンス準拠について確認するなどのリスク管理が欠かせません。そこで、ソフトウェアに使用されているOSSやコンポーネント、開発元などが一覧化されているSBOMがあれば、セキュリティ上の問題が発生した際にも適切かつ迅速な対応を行えます。
また、一覧化することにより事前対策も容易になります。ソフトウェアの脆弱性やライセンスに関する調査をおこなう際にも、SBOMがあれば何をどのように調査すればよいのかがわかりやすく、迅速に対応できるようになるのです。
SBOMのフォーマット
SBOMには、主に次の3つのフォーマットがあります。これら共通のフォーマットを用いてソフトウェアに関する情報を管理することで、情報の可視性が高まり管理も効率化されます。
SBOMを導入するあたっては、これらフォーマットを活用し、適切に情報を管理しましょう。
- SPDX
- SWIDタグ
- Cyclone DX
SPDX 、Cyclone DXは国際標準として認定された、もっとも一般的なSBOMフォーマットです。SWIDタグには4つのポイントがあり、それぞれソフトウェア開発の中の異なるフェーズで使用されます。
SPDX
SPDXとは、SBOMに記載されている情報の共有と利用方法の標準化を目的として生まれたものです。SPDXには、コンポーネントやライセンス、セキュリティに関するデータが含まれています。
SWIDタグ
SWIDタグとは、ソフトウェアの構成要素を識別するために標準化されたフォーマットです。SWIDタグにはCorpus Tags、Primary Tags、Patch Tags、Supplemental Tagsの4つがあり、それぞれはソフトウェア開発ライフサイクルの異なるポイントで使用されます。
- Corpus Tags:プレインストールソフトウェアを識別・説明するためのタグ
- Primary Tags:インストール後のソフトウェア製品を識別・説明するためのタグ
- Patch Tags:パッチを識別・説明するためのタグ
- Supplemental Tags:ライセンスキーや関係者の連絡先などの関連情報を提供するためのタグ
Cyclone DX
Cyclone DXは、比較的軽量のSBOMフォーマットです。アプリケーションのセキュリティの背景やサプライチェーンのコンポーネント分析に使用するために設計されており、SPDXやSWIDタグと同様の目的を果たせるよう構成されています。
また、Cyclone DXでは次の4つカテゴリでソフトウェアの関連情報をサポートします。
- Bill of Materials:SBOMの作成ツールやサプライヤー、メーカーなど、アプリケーションや製品に関する情報
- コンポーネント:ライセンス情報、オープンソースコンポーネントなどの一覧
- サービス:外部APIに関する情報
- 依存関係:ソフトウェアにおける依存関係を表示
日本でも急速に高まるSBOMへの関心
前述した通り、SBOMは国際的に必要と判断されたソフトウェアの管理ツールです。国内においても今後はさまざまな企業に欠かせないものとなっていくでしょう。
ADAS(自動運転支援システム)の組み込みソフトウェアはその最たる例です。そのほか、生活のいたるところにIT技術が活用されるようになった昨今、それらのサービス・製品を開発・製造する企業、またそうした企業のサプライヤーにとって、OSSを用いたソフトウェア開発は必要不可欠なものになっています。
しかし、完全なセキュリティ性を有するソフトウェアは存在しません。複雑化するソフトウェアのどこに脆弱性があるのか、どのサプライヤーが何のソフトウェアをどのように使用しているかを明確化できるSBOMが、企業の情報を守るベースとなることが期待されています。
- SBOMは、ソフトウェアを構成する要素を一覧できるリストのこと
- コネクテッドカーや自動運転などの実現に向けて、近年活用が進むオープンソースソフトウェア(OSS)では、ソフトウェアサプライチェーンの安全性向上のためのソフトウェア部品表として、SBOMの活用が広がっている
- バイデン米国大統領が署名した「国家のサイバーセキュリティ改善に関する大統領令」においてもSBOMは言及され、米国においてもサイバーセキュリティの重要性が非常に高まっていることが示唆されている
- SBOMには「SPDX」「SWIDタグ」「Cyclone DX」の3つのフォーマットがあり、ソフトウェアに関する情報を効率的に管理できる