連載 [第10回] :
  月刊Linux Foundationウォッチ

米国のバイデン大統領が署名したことで話題となった「国家のサイバーセキュリティ改善に関する大統領令」とは

2021年7月30日(金)
吉田 行男

こんにちは、吉田です。今回は、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の管理全体でとても有益なことだと思います。

2000年頃からメーカー系SIerにて、Linux/OSSのビジネス推進、技術検証を実施、OSS全般の活用を目指したビジネスの立ち上げに従事。また、社内のみならず、講演執筆活動を社外でも積極的にOSSの普及活動を実施してきた。2019年より独立し、オープンソースの活用支援やコンプライアンス管理の社内フローの構築支援を実施している。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています