
オープンソースソフトウェアとソフトウェアサプライチェーンのセキュリティリスクは、開発者や組織にとって依然として大きな懸念事項です。電子設計・自動化企業Synopsysが2023年に実施した調査によると、オープンソースソフトウェアのコードベースの84%に少なくとも1つの既知の脆弱性が含まれており(前年比で約4%増加)、48%に高リスクの脆弱性が含まれていました。
オープンソースソフトウェアに潜む脅威への対応として、Google Cloud は Java および Python エコシステム向けの Assured Open Source Software サービスを無償で提供します。この無料 Assured OSS により、あらゆる組織が Google のワークフローで使用されている Google が検証したコードベース パッケージにアクセスできます。
この動きは、Google Cloud が、政治的動機による DDoS 攻撃の増加を受けて、政府サイト、ニュースおよび独立系ジャーナリスト、選挙および投票に関連するサイト、人権を扱うサイトに Project Shield 分散型サービス拒否 (DDoS) 防御を提供する決定をしたのに続くものである。
参照: DevSecOps がソフトウェア ライフサイクルのセキュリティ保護に何を意味するか。
Assured OSS、オープンソース コードベースのウォールド ガーデン
Googleのセキュリティとプライバシー担当グループプロダクトマネージャー、アンディ・チャン氏によると、Googleは2022年5月にAssured OSSを導入した。これは、オープンソースサプライヤーを狙ったサイバー攻撃の急増に対処するためでもある。チャン氏は、OSSの利用が劇的に増加した2021年にソフトウェアサプライチェーン攻撃が650%増加したという業界筋の報告を引用した。
同氏は TechRepublic に対し、同社が Assured OSS を初めて発表してリリースして以来、このサービスが、DevSecOps チームと開発者が現在日常的に使用し活用しているパイプラインとツールに対応できるようにすることを目指していたと語った。
「オープンソースを標的としたソフトウェアサプライチェーン攻撃は増加し続けています。オープンソースパッケージの安全な取り込みは、コード構築の場を問わず、組織や開発者にとって広く課題となっています」と彼は述べています。「Googleは長年にわたりオープンソースソフトウェアの貢献者、メンテナー、ユーザーとして活動し、堅牢な技術、プロセス、セキュリティ機能、そして管理体制を構築してきたため、この分野で支援を行う上で独自の立場にあります。」
彼は、攻撃増加の背景にある4つの重要な要素を次のように説明した。
- OSSの普及
- 特にコンテナ、マイクロサービス、クラウド データ サービスの増加といったトレンドの推進により、導入ペースが加速しています。
- スタックのすべての層(ハードウェア、インフラストラクチャ システム、オペレーティング システム、ミドルウェア、アプリ サービス、API、そして最も脆弱なエントリ ポイントである人間)を攻撃する攻撃ベクトルが多数あります。
- 製品サイクルを総合的に管理するために必要なツールに関する標準化と、セキュリティおよびリスク情報におけるギャップ (図 A )。
図A

シノプシスのアプリケーションセキュリティ事業部門であるソフトウェア整合性グループのシニアソフトウェアソリューションマネージャー、マイク・マグワイア氏は、オープンソースコミュニティが可能な限り安全であることにグーグルは直接的な関心を持っていると説明した。
「オープンソースコミュニティとはまさにその名の通り、メンバーがただ受け取るだけでなく、貢献することで最も効果的に機能する『コミュニティ』です。Googleは常にそのことを行動でサポートしてきました」と彼は述べた。「Googleは、依存関係と開発パイプラインの整合性を確保するためのツール、プロセス、フレームワークを数多く整備しています。つまり、Googleはそうした努力の成果をより広範なコミュニティと共有しているのです。」
同氏は、Google がクラウドネイティブ アプリケーション開発プラットフォームの構築に取り組んでいると付け加え、「このプラットフォームを使用すれば、複雑なソフトウェア サプライ チェーンの脅威を心配する必要がなくなるため、その価値はさらに高まります」と述べた。
Assured OSSの特徴
Google によると、Google Assured OSS プログラムの一部として利用可能なコード パッケージは次の通りです。
- 定期的にスキャン、分析、および脆弱性のファズ テストが行われます。
- コンテナ/アーティファクト分析データを組み込んだ対応する強化されたメタデータを持ちます。
- 検証可能な SLSA 準拠の証拠を含む、Cloud Build を使用して構築されています。
- Google によって検証可能な署名がされています。
- Google によってセキュリティ保護された Artifact Registry から配布されます。
ファズテストからSLSAコンプライアンスまでコードベースのセキュリティ保護
コードベースを保護するということは、攻撃者の潜在的な侵入口に対処すること、また、いわゆるコーナーケース、つまり予期しない領域の弱点についてソフトウェアのクラッシュ テストを実行することを意味します。
マグワイア氏は、Google はどのパッケージを信頼するかに関して厳格な基準を設けており、信頼するパッケージについては、基本的にそれを公に推奨し、これらのコンポーネントを審査する際の努力の証拠を示していると述べた。
「Assured OSSは、広大なオープンソースの世界の中でどのパッケージが信頼できるかを判断するための指針を求めている組織にとって、明らかに価値を提供します」と彼は述べた。「しかし、問題のあるコンポーネントが開発パイプラインに入らないようにするためのツールも導入し、以前は信頼できていたコンポーネントでも新たな問題が発見されないように継続的に監視することが重要です。」(図B)
図B

ファズテスト
チャン氏は、ファズテスト(別名「ファジング」)では、無効、予期しない、またはランダムな入力を使用して、メモリリーク、クラッシュ、文書化されていない機能などの異常な動作を明らかにすると説明しました。
ソフトウェアのためのサルサ
SLSA(「ソフトウェア成果物のサプライチェーンレベル」(発音は「サルサ」))フレームワークは、ソフトウェア開発ライフサイクルに高いレベルの保証を追加します。「今日、ソフトウェア開発者は、自社システムに導入する外部ソフトウェアについて、十分な情報に基づいた意思決定を行うという課題に直面しています」とチャン氏は述べています。「特に、そのソフトウェアがサードパーティによって所有・運用されている場合はなおさらです。」
同氏は、SLSA はソフトウェア サプライ チェーンの整合性に関する基準を正式なものにし、今日の業界全体で最も一般的な脅威に対処するためのセキュリティ ガイドラインを追加することで、企業がより安全なソフトウェア サプライ チェーンに向けて段階的に進むことを支援すると述べました。
「ソフトウェアが保証され、証明されたSLSAレベルで提供される場合、顧客はプロバイダーによってどのリスクがすでに軽減されているかを事前に知ることができます」と彼は説明した。
「簡単に言うと、SLSAはGoogleが導入したフレームワークで、ソフトウェアパッケージと、それらを構築・提供する開発ライフサイクルの両方のセキュリティを評価するために使用できます」とマグワイア氏は付け加えた。「Assured OSSに関しては、Googleがこのプログラムの一環としてサポートするパッケージは、SLSA標準に準拠して構築、評価、提供されています。SLSA標準は、コミュニティにパッケージの完全性を保証することを目的としています」と彼は述べた。
強化されたメタデータ
チャン氏によると、コンテナ分析データを組み込んだ強化されたメタデータが重要なのは、「使用されているオープンソース ソフトウェアについて詳しく知るほど、DevSecOps チームはポリシーの適用とリスクに関してより適切な選択を行えるようになる」からです。
彼は、顧客が Assured OSS パッケージで強化されたメタデータをどのように使用できるかについて、例を挙げて説明しました。
- 提供されている推移的依存関係のリストを確認して、他に何が影響を受ける可能性があるかを理解します。
- SLSA レベルを確認して、パイプライン内でパッケージを進行させるために設定した入場およびガードレール ポリシーをガイドします。
- VEX (脆弱性、悪用可能性、交換) データを確認して、オープンソース コンポーネントで最も影響の大きい脆弱性がどれであるかをより深く理解します。
- 提供されたライセンス ファイル データを理解して、顧客が必要に応じてポリシーを適用し、社内のオープン ソース プログラム オフィス ポリシーに準拠できるようにします。
ソフトウェアの署名
チャン氏によると、署名付き小切手のように、Assured OSS がバイナリとメタデータの両方に提供する検証可能な署名により、顧客はバイナリとメタデータが Google からのものであり、配布中に改ざんされていないことを簡単に検証できるという。
「さらに、メタデータは署名されているため、パッケージの構築方法、ビルド手順、コードに影響したビルドツール、コードに対して実行されたセキュリティスキャンツールなど、メタデータに含まれる詳細がすべてGoogleが作成した時点のままであると顧客は確信できます」と彼は述べた。
参照: DevSecOps はシフトレフト以上のものです。
JavaとPythonのパッケージに焦点を当てる
Googleは、Assured OSSプログラムにより、組織は検証済みのソースからOSSパッケージを入手し、そのソフトウェアの構成を把握できるようになると述べています。これは、Googleのソフトウェア部品表(SBOM)が含まれているためです。同社によると、Assured OSSプロジェクトには1,000個のJavaおよびPythonパッケージが含まれており、DevOpsチームが独自のOSSセキュリティワークフローを構築・運用する必要性を軽減します。
「ファズテストなどの手法を用い、コンテナやアーティファクトの分析結果のメタデータを含めることは、実施されたセキュリティ対策を証明するのに役立ちます」とマグワイア氏は述べています。「実際、依存関係に対してこの種のセキュリティテストを実行し、このレベルの情報を提供できることは、ソフトウェア開発者、特に規制の厳しい業界で事業を展開している企業にとって、近い将来に何が起こるかを示唆するかもしれません。」
参照:サプライ チェーンのセキュリティを2023 年の DevOps 計画に含めるべき理由。
OSSの急速な成長とOSSの脆弱性
シノプシスの第 8 回年次オープンソース セキュリティ & リスク分析 (OSSRA) レポートは、17 の業界にわたる 1,700 件の監査に基づいており、次のような結果が出ています。
- EdTech 分野における OSS の利用が 163% 増加しました。
- 航空宇宙、航空、自動車、運輸、物流部門における OSS の使用が 97% 増加し、高リスクの脆弱性が 232% 増加しました。
- 製造業およびロボット工学分野における OSS 利用が 74% 増加しました。
- 2019 年以降、小売および電子商取引分野における高リスクの脆弱性は 557% 増加しました。
- 全コードの 89% がオープンソースであり、同時期に高リスクの脆弱性が 130% 増加しました。
- コードベースの 31% は、識別可能なライセンスがない、またはカスタマイズされたライセンスを持つオープンソースを使用しています。