米国のバイデン大統領が署名したことで話題となった「国家のサイバーセキュリティ改善に関する大統領令」とは
こんにちは、吉田です。今回は、5月12日に米国のバイデン大統領が署名した「国家のサイバーセキュリティ改善に関する大統領令(Executive Order on Improving the Nation’s Cybersecurity)」について、その内容を解説していきます。
「国家のサイバーセキュリティ改善に関する大統領令」とは
「国家のサイバーセキュリティ改善に関する大統領令」は、一連のセキュリティ事件(SolarWinds社の大規模な情報漏えい事件やColonial Pipeline社のサイバー攻撃など)を受けて発表されたものです。この大統領令には、連邦政府および連邦政府と連携する民間業者が満たすべき高度なセキュリティ基準が以下の7つの側面から示されています。
- 脅威情報の共有を阻む障害を取り除く
- 連邦政府のサイバーセキュリティの近代化
- ソフトウェアのサプライチェーンセキュリティの強化
- 政府が運営するサイバー安全審査委員会の設立
- サイバーセキュリティの脆弱性やインシデントに対する政府の対応の標準化
- 政府のネットワークにおける脆弱性と問題の検出の強化
- 調査および修復能力の向上
ここで注目したいのは「ソフトウェアのサプライチェーンセキュリティの強化」です。もう少し詳しく言うと「各製品のソフトウェア部品表(SBOM(Software Bill of Materials))を購入者に直接または公開Webサイトで提供すること」を要求しており、「製品の一部に使用されているオープンソースソフトウェアの完全性と出所を実行可能な範囲で確保し、証明すること」が必要となります。また、この大統領令の中で、国家通信情報管理局(NTIA)は最低限のSBOM要件を定義するために幅広く意見を求めています。これに対してLinux Foundationでは「What is an SBOM?」というタイトルで回答しています。
その中で、昨年12月にオープンソースライセンスコンプライアンスに関するISO国際規格(OpenChain)では、提供されたSBOMを管理するプロセスが重要で、こればソフトウェアの透明性を高めるNTIAの目標と一致しており、SBOMのベストプラクティスであると主張しています。
「ソフトウェア部品表」または「SBOM」とは、ソフトウェアの構築に使用される様々なコンポーネントの詳細およびサプライチェーンの関係を含む正式な記録を意味します。 ソフトウェア開発者およびベンダーは、一般的に既存のオープンソースおよび商用ソフトウェアコンポーネントを組み合わせて製品を作成することが多くなります。
SBOMは製品に含まれるこれらのコンポーネントを列挙したもので、 食品のパッケージに記載されている成分リストに似ています。 SBOMは、ソフトウェアを開発または製造する人、ソフトウェアを選択または購入する人、およびソフトウェアを運用する人にとって有用なものです。SBOMを使用することで、システムを構築する人はこれらのコンポーネントが最新であることを確認し、新たな脆弱性に迅速に対応できますし、ソフトウェアの購入者はSBOMを使用して脆弱性分析やライセンス分析を行うことができ、これらはいずれも製品のリスクを評価するために使用できます。ソフトウェアを運用する人は、SBOMを使って新たに発見された脆弱性の潜在的なリスクにさらされているかどうかを迅速かつ容易に判断できます。SBOMは、他のアプリケーションやシステムから簡単に照会できるリポジトリにまとめて保存することで、より大きな価値を得られます。 ソフトウェアのサプライチェーンを理解し、SBOMを取得して既知の脆弱性を分析するためにSBOMを使用することは、リスク管理において非常に重要なことです。
NTIAが公開するSBOMの要件
次に、NTIAが4月に公開した資料に基づいて、SBOMの要件を説明します。
SBOMには、標準的なデータ形式で個々のコンポーネントを一意に識別する下記のBaseline Conponent情報を含める必要があります。
Baseline Component 情報 |
Author Name(開発者) |
Supplier Name(会社名) |
Component Name(コンポーネント名) |
Version String(バージョン) |
Component Hash(コンポーネントのハッシュ値) |
Unique Identifier(識別⼦) |
Relationship(関係) |
現状で、このBaseline Component情報を含めることができるデータフォーマットには、下記の3つがあります。
データ形式 | 仕様 | ツール |
SPDX | https://spdx.github.io/spdx-spec/ | https://tiny.cc/SPDX |
CycloneDX | https://cyclonedx.org | https://tiny.cc/CycloneDX |
SWID | ISO/IEC 19770-2:2015 | https://tiny.cc/SWID |
このような動きを受け、6月17日にLinux FoundationはSBOMの使用を促進するために、以下のSPDXに裏付けられた新しい業界調査、トレーニング、ツールを発表しました。
- SBOM標準:要件とデータ共有のデファクトスタンダードであるSPDXの管理
- SBOM調査:ベンチマークとベストプラクティスを確立するために、業界プラクティスの現状を明らかにする調査
- SBOMトレーニング:導入を促進するためにSBOM生成に関する新コースを提供
- SBOMツール:開発チームが自社のアプリケーション向けのSBOMを生成できるツール
【参照リリース】Linux Foundation、サイバーセキュリティを向上させるソフトウェア部品表 (SBOM) の業界標準、調査、トレーニング、ツールを発表
https://www.linuxfoundation.jp/press-release/2021/06/linux-foundation-announces-software-bill-of-materials-sbom-industry-standard-research-training-and-tools-to-improve-cybersecurity-practices/
以下に、それぞれもう少し詳しく紹介していきます。
SPDX(Software Package Data Exchange)
SPDXは、オープンソースソフトウェアコンポーネント、ライセンス、既知のセキュリティ脆弱性など、SBOM情報を伝えるためのファイル形式の仕様です。SPDXは、Linux Foundationの後援のもと、主要なSoftware Composition Analysis(SCA) ベンダーを含む数百の企業と協力することで過去10年間有機的に進化し、市場で最も堅牢で成熟したSBOM標準として採用されています。現在、Joint Development Foundationを通じて、JTC1((Joint Technical Committee1)のPAS Transpositionプロセスを用いてISOに提出されており、承認されると国際標準に認定されます。
最近では、日立、富士通、東芝などの企業が、SPDX2.2仕様リリースにおいて「SPDX Lite」のような任意追加プロファイルにより標準を拡張し、さらにプロプラエタリとオープンソースの自動化ソリューションでSPDX SBOMをサポートしたことが挙げられます。
SBOM調査
Linux Foundation Researchは、SBOM採用準備調査を実施しています。この調査では、ソフトウェアのサプライチェーンのセキュリティに関連してSBOMの採用を妨げる要因を調査し、それを克服するために必要な今後の活動を検討するために活用する予定です。先に挙げた米国のサイバーセキュリティ改善に関する大統領令ではSBOMが強調されていますが、今回の調査ではSBOM適用における業界のギャップの明確化に役立つことになります。この調査ではツール、セキュリティ対策やSBOMの生成と消費をリードする業界に関するトピックについて質問しています。
SBOMトレーニング
Linux Foundationは、無料のオンライントレーニングコース「Generating a Software Bill of Materials(LFC192):ソフトウェア部品表の生成」を発表しました。このコースでは、SBOMを生成するためのオプションや利用可能なツールの基礎知識と、サイバーセキュリティのニーズに対応する能力を向上させるためにSBOMをどのように利用するかを学習します。ソフトウェア開発企業のディレクター、プロダクトマネージャー、オープンソースプログラムオフィスのスタッフ、セキュリティ専門家、開発者を対象としています。受講者は、SBOMに必要な最低限の要素を特定し、それらをどのように組み立てるかを理解し、SBOMの生成と消費をサポートするために利用可能ないくつかのオープンソースのツールを理解できます。
SBOMツール
コマンドラインインターフェース(CLI)を使用してSBOM情報を生成するSPDX SBOMジェネレーターの提供を開始しました。SBOM情報はSPDX v2.2仕様を使用したアプリケーションのコンポーネント、ライセンス、コピーライト、セキュリティリファレンスを含み、NTIAが最近公表した最小要件に準拠しています。現在CLIはGoMod(go)、Cargo(Rust)、Composer(PHP)、DotNet(.NET)、Maven(Java)、NPM(Node.js)、Yarn(Node.js)、PIP(Python)、Pipenv(Python)、Gems(Ruby)をサポートしています。継続的インテグレーション(CI)パイプラインなどの自動化プロセスに簡単に組み込むことができ、Windows、macOS、Linuxに対応しています。
今後、ますますOSSの活用が盛んになると予想できる状況の中で、SBOMによりソースコードに関する情報を適切に管理することで、既知及び潜在的な脆弱性をチェックし修正することが容易になるだけではなく、OSSの管理全体でとても有益なことだと思います。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- OpenSSFを拡大・支援するため1,000万ドルの新規投資を調達、「The 2021 Open Source Jobs Report」を公開、ほか
- CNSC 2022、SBoMの概要と未来を展望するセッションを紹介
- Open Source Summit Japan 2023から、組込系システムにおけるサプライチェーンに関するセッションを紹介
- Open SSFがOSSのセキュリティ体制を改善する「Alpha-Omega Project」を発表。マイクロソフトとグーグルが主体的に参画、ほか
- KubeCon NA 2021、ソフトウェア開発工程のタンパリングを防ぐSLSAを解説
- LFとOpenSSF、OSSのセキュリティを向上させる具体的な計画を日本で発表
- プロジェクト支援、リサーチ活動、エンジニア教育など、年次報告書「The Linux Foundation Annual Report 2021」に見る、Linux Foundationの活動トピックス
- Open Source Summit NA 2022の2日目のキーノートからSBOMの事例などを解説
- LFとOpenSSFがオープンソースのセキュリティに関する会議「Open Source Software Security Summit II」を開催、ほか
- 「OpenSSF Meetup」開催、「OpenSSF Day North America」で発表された「OSSセキュリティのための動員プラン」の内容を解説