ソフトウェアのサプライ チェーン エコシステムを安全に再構築するための支援
Google Cloud Japan Team
※この投稿は米国時間 2021 年 1 月 16 日に、Google Cloud blog に投稿されたものの抄訳です。
新年を迎えて、SolarWinds などが巻き込まれて他のさまざまな組織への不正侵入を招いた攻撃について、新たな事実が次から次へと発覚しています。このようなソフトウェアのサプライ チェーン攻撃は政府、企業、非営利団体、個人に同様に深刻な脅威をもたらしています。Google では、ユーザーとお客様を保護するべく 24 時間体制で取り組んでいます。今回の攻撃について把握している内容に基づいて、SolarWinds 事件の影響を受けた Google システムは皆無であると確信しています。影響を受けたソフトウェアやサービスの使用は非常に限られており、サプライ チェーンのセキュリティ リスクを軽減するアプローチでは、付帯的な使用が制限され抑えられていました。こうした制御はネットワークとシステムの高度なモニタリングによって強化されました。
Google は今回の攻撃以外にも、あらゆる形式のサプライ チェーンのリスクから防御することに集中し続けており、お客様と業界の公共の利益に役立つソリューションに協力することに対して責任を痛感しています。そのため、本日は Google が導入しているおすすめのセキュリティ対策の一部と、安全なソフトウェア開発やサプライ チェーンのリスク管理への投資をご紹介します。私たちのセキュリティおよびリスク プログラムのこれらの主な要素に含まれるのは、Google でソフトウェアの安全な開発とデプロイを実施する取り組み、信頼できるクラウド環境の設計と構築による多層防御の大規模な提供、最新のセキュリティ アーキテクチャの推進、業界全体のセキュリティ対策の促進です。
クラウドのお客様に提供するソフトウェア製品とソリューションを保護するには、Google の従業員とシステムの潜在的なセキュリティ リスクをどんなにささいなものでも軽減する必要があります。これを行うために、テクノロジー スタックをモダナイズし、大規模に保護できるより防御しやすい環境を提供しています。たとえば、BeyondCorp などの最新のセキュリティ アーキテクチャによって従業員はどこからでも安全に作業できるようになり、Security Keys で従業員に対するパスワード フィッシング攻撃も効果的に排除されました。また、Chrome OS はマルウェアに対する高い復元性を重視して設計されています。従業員が働くための強固な基盤を構築することで、ソフトウェア サプライ チェーンのセキュリティなどの主要な問題に対処する準備が十分に整っています。これらのトピックの多くについては、私たちの著書『Building Secure and Reliable Systems』でより広範囲に扱っています。
Google がソフトウェアとハードウェアを安全に開発しデプロイする方法
ソフトウェアの安全な開発は、セキュアなインフラストラクチャの提供に始まり、デベロッパーが予測可能なセキュリティ上のミスを回避するための適切なツールとプロセスが必要です。たとえば、Google では安全な開発と継続的テストのフレームワークを利用して、プログラミングのよくある誤りを検出、回避しています。デフォルトでセキュリティを提供する組み込みのアプローチでは、サプライ チェーンのリスクをはじめ、開発プロセス自体へのさまざまな攻撃ベクトルも考慮されます。
安全なソフトウェア開発の課題に取り組む方法についての例をいくつかご紹介します。
信頼できるクラウド コンピューティング: Google Cloud のインフラストラクチャは、大規模な多層防御を実現するように設計されています。つまり、安全を維持するために 1 つのものに依存するのではなく、さまざまなチェックとコントロールのレイヤを構築しています。たとえば、Google が設計した独自のハードウェア、Google が制御するファームウェア、Google が厳選した OS イメージ、Google が強化したハイパーバイザ、データセンターの物理的なセキュリティとサービスなどが該当します。これらのセキュリティ レイヤで、Google ホストマシン用の Titan チップや Shielded VM などのルート オブ トラストを使用して保証します。ハードウェアとセキュリティ スタックを制御して、他の多くのプロバイダでは不可能な方法でセキュリティ対策の基盤を維持できます。このレベルの制御により、Google とお客様がサプライ チェーンのリスクにさらされることが減少すると考えています。ハードウェア サプライ チェーンのリスクを軽減する対策について詳しくは、こちらのブログ投稿をご覧ください。
Binary Authorization: Binary Authorization のホワイトペーパーで説明されているとおり、たとえば、レビューとテストが完了している適切にチェックインしたコードから、隔離された承認済みのビルド環境でソフトウェアを作成、署名したことが確認されます。こうした制御は、コードの機密性に応じてポリシーによるデプロイ時に適用されます。バイナリは、そのような制御チェックを通過した場合にのみ実行が許可され、ジョブの存続期間中はポリシーの遵守が継続的に検証されます。これは、害を及ぼす可能性のあるインサイダーや、アカウントを利用する他の脅威アクターが不正なソフトウェアを本番環境に挿入できないようにするうえで不可欠な管理機能です。Google Cloud のお客様は、Binary Authorization サービスを使用することで、コードの出所と整合性に基づいて本番環境のデプロイ ポリシーを定義し、自動的に適用できます。
変更の確認: デベロッパーによって送信されたコードと構成の変更は、作成者以外の少なくとも 1 人により、証明できる方法で確認されます。機密性の高い管理アクションには通常、別の担当者による承認が必要です。これは、誤りか悪意のある挿入かを問わず、予期しない変更を防ぐために行われます。
エコシステムを再構築する
また、サプライ チェーン攻撃に長期的に対処するには、より広範囲のエコシステムが多層防御へのアプローチを再構築する必要があると考えています。たとえば、ソフトウェア開発チームは、改ざん防止手法と透明性技術を組み合わせて導入し、サードパーティの検証と見つけやすさを可能にする必要があります。改ざんチェックをパッケージ マネージャーに追加するためのアーキテクチャ ガイドを公開しました。これは Golang 用に実装されています。デベロッパーはオープンソースの検証可能な Trillian ログを利用できます。このログは世界最大級で、最も使用され評価されている本番環境向け暗号台帳ベースのエコシステムである Certificate Transparency を強化します。
考慮対象のもう一つの分野は、最新のコンピューティング アーキテクチャを使用して、侵害された可能性のあるソフトウェア コンポーネントを隔離し、攻撃の影響を制限することです。このようなアーキテクチャの例としては、Android OS のアプリケーション サンドボックス、gVisor(コンテナ向けアプリケーション サンドボックス)、Google の BeyondProd(マイクロサービスのコンテナ化によって不正なソフトウェアの影響を制限可能)があります。こうした環境の上流のサプライ チェーン コンポーネントのいずれかが不正使用されている場合、そのような隔離メカニズムは、攻撃者の目的を達成させない最後の防御レイヤとして機能する可能性があります。
業界への取り組みと責任
ソフトウェアのサプライ チェーンは組織間のつながりを表しています。個々の企業が単独でできることは限られています。ソフトウェア コンポーネントをライフサイクル全体で構築、配布、追跡する方法を変えるために、業界として協力する必要があります。
コラボレーションの一例として、Google が昨年共同で設立した Open Source Security Foundation があります。この組織の目的は、オープンソースの依存関係におけるソフトウェア サプライ チェーンのセキュリティなどの問題に業界が取り組み、セキュリティの意識やベスト プラクティスを促進できるようにすることです。また、業界パートナーと協力してサプライ チェーンのポリシーを改善し、サプライ チェーンのリスクを軽減するだけでなく、ユーザーとお客様が Google のテクノロジーを使ってサプライ チェーンのリスクを管理する方法に関する情報を公開します。
ソフトウェア エコシステムを推進する
過去のソフトウェア サプライ チェーン攻撃については文書で十分に説明されていますが、新しい攻撃のたびに新たな課題が明らかになっています。SolarWinds 事件の深刻さがひどく憂慮されていますが、政府、業界、その他の利害関係者がベスト プラクティスについて協力し、効果的なテクノロジーを構築して、ソフトウェア エコシステムを根本的に改善できる機会も浮き彫りになっています。今後も多様な関係者と連携し、これらの課題に取り組み、より安全な未来に向け基盤を築くお手伝いをしてまいります。
-Google Cloud CISO、Phil Venables
-Google 情報セキュリティ担当ディレクター、Heather Adkins