7. クラウドコンピューティングセキュリティ - NISTガイドラインより
7.1. はじめに
現在、多くの企業がクラウドを利用するようになってきたが、セキュリティについては十分理解されているとは言い難い状況にある。本報告では、米国標準技術研究所(NIST:National Institute of Standards and Technology)が2011年上半期に発行したドキュメントから、クラウドのセキュリティに関連した部分をまとめたものを報告する。
7.2. 調査対象文献
NISTが2011年上半期に発行した下記のふたつのドキュメントから、クラウドのセキュリティに関連した部分を調査した。
- Draft Special Publication 800-144, "Guidelines on Security and Privacy in Public Cloud Computing"(2011年1月)
- Special Publication 800-146, "DRAFT Cloud Computing Synopsis and Recommendations"(2011年5月)
7.3. NISTの定義するクラウドコンピューティング
クラウドコンピューティングは、ユーザがインターネット(クラウド)の向こう側からサービスを受け、利用料金を払う形態である。2006年8月9日、米GoogleのCEOであるエリック・シュミット氏が、米国カリフォルニア州サンノゼ市で開催された”Search Engine Strategies Conference”の中で「クラウドコンピューティング」と表現したのが始まりと言われている。
NISTでは、NIST Draft Special Publication 800-145 "NIST Cloud Computing Definition"の中で、クラウドコンピューティングの特徴とともに、サービスモデルとデプロイメントモデルのふたつの側面から以下のように分類している。
(1) クラウドコンピューティングの特徴
- On-demand self-service
- 人間の介在なしに、自動的に必要なリソースを必要な時に割り当てることができる
- Broad network access
- 携帯、ノートPC、PDAなどのさまざまな端末からネットワークを介してアクセス
できる
- Resource pooling
- ストレージ、CPU、メモリ、ネットワーク帯域、仮想マシンなどのリソースをロケー
ションに縛られずに、利用者の要求に応じてダイナミックに割り当てられる
- Rapid elasticity
- 能力(リソース)を、必要な時に、必要な量を、素早く、柔軟に提供できる
- Measured Service
(2) サービスモデル
- SaaS(Cloud Software as a Service)
- クラウドインフラ上で動作する、サービス提供者が提供するアプリケーションを利
用者が利用する
- PaaS(Cloud Platform as a Service)
- クラウド事業者によってサポートされたプログラミング言語やツールを使用して
利用者が開発したアプリケーションをクラウドインフラ上に配置できる
- IaaS(Cloud Infrastructure as a Service)
- 利用者がOSやアプリケーションを動作させるためのCPUやストレージ、ネット
ワーク等の基本的なコンピューティングリソースを提供する
(3) デプロイメントモデル
- Private Cloud
- クラウドインフラは、単一組織のみのために運用される。利用組織か、第三者が管
理し、オンプレミスまたはオフプレミスで配置される
- Community Cloud
- クラウドインフラは、複数組織で共有される。利用組織か、第三者が管理し、オン
プレミスまたはオフプレミスで配置される
- Public Cloud
- クラウドインフラは一般に公開、または、大企業グループ向けに提供され、クラウ
ド提供者が管理する
- Hybrid Cloud
- クラウドインフラは、上記の2つ以上の組み合わせで提供される
7.4. パブリッククラウド環境におけるセキュリティ/プライバシーの問題と対策
NISTのDRAFT SP 800-144 "Guidelines on Security and Privacy in Public Cloud Computing"では、パブリッククラウド環境におけるセキュリティやプライバシーの問題と対策について、表1のようにまとめている。
表1:セキュリティ/プライバシーの問題と対策(出典:NIST DRAFT SP 800-144)
| 問題となるエリア |
対策 |
ガバナンス |
管理規程を、設計、実装、試験、監視だけでなく、クラウドでのアプリケーション開発や、クラウドでのサービス提供におけるポリシー、手順、標準にまで拡張する |
コンプライアンス(データロケーション、法律と規制、Eディスカバリ) |
データのロケーションやプライバシー管理/セキュリティ管理などに関する、クラウドにインパクトを与える可能性のある法律や規制を理解しておく |
トラスト(内部犯行、データ所有権、複合サービス、見える化、リスク管理) |
クラウド提供者が行うセキュリティおよびプライバシーの制御やプロセスをいつでも確認できる仕組みを契約に入れ込む |
アーキテクチャ(攻撃対象領域、仮想ネットワーク保護、補助データ、クライアント側保護、サーバ側保護) |
クラウド提供者がサービスを提供するために使用する技術を理解しておく |
アイデンティティとアクセス管理(認証、アクセス制御) |
認証、承認、その他のアイデンティティ管理機能およびアクセス管理機能を安全に保つために適切な安全装置が存在することを確認する |
ソフトウェア隔離(ハイパーバイザの複雑性、攻撃手法) |
クラウド提供者が使用する仮想化およびその他のソフトウェア分離方法を理解し、リスクを評価する |
データ保護(データ隔離、データのサニタイジング) |
クラウド提供者のデータ管理手法が適したものであることを評価する |
可用性(一時的な停止、永久的な停止、サービス不能攻撃、価値への集中) |
災害時に、重要な運用を即座に再開し、タイムリーでよく練られた方法ですべての運用を再開することができることを確認する |
インシデントレスポンス |
組織にとって必要なインシデントレスポンスのために、契約約款と手順を理解し、交渉する |
7.5. クラウドコンピューティングのセキュリティ
NIST SP 800-146 "DRAFT Cloud Computing Synopsis and Recommendations" では、以下のセキュリティの要件について整理されている。
(1) 意図しないデータ漏えいのリスク(Risk of Unintended Data Disclosure)
(2) データプライバシー(Data Privacy)
(3) システムインテグリティ(System Integrity)
(4) マルチテナンシー(Multi-tenancy)
(5) ブラウザ(Browsers)
(6) 信頼に対するハードウェアサポート(Hardware Support for Trust)
(7) 鍵管理(Key Management)
以降、この7つの要件について概要を紹介する。
【意図しないデータ漏えいのリスク(Risk of Unintended Data Disclosure)】
- 機密扱いではない政府のシステムは、しばしば、下記のような機密情報を、機密でない公開情報と同じように処理してしまう。このため、機密データを適切な保護なしにクラウドに保管することがないように注意する必要がある。
- PERSONALLY IDENTIFIABLE INFORMATION (PII)
- FOR OFFICIAL USE ONLY (FOUO)
- 知的財産情報
【データプライバシー(Data Privacy)】
- 以下の理由から、クラウドコンピューティング環境では、プライバシーの保護はさらに複雑化している。
- クラウドは分散している
- クラウド環境では、どこにデータが保管されているのか、誰がアクセスしたのか、
誰がアクセスできるのか、ということに対する利用者の意識が低い
【システムインテグリティ(System Integrity)】
- クラウド提供者は、クラウドの機能の破壊や妨害から保護しなければならない。
- クラウドのインテグリティを維持するために、下記のステークホルダ間でアクセス権を分けることが必要である。
- サービス利用者
- サービス提供者
- 管理者
- 利用者にはクラウドの仕組みが分からないため、クラウド上で動作しているアプリケーションのインテグリティを確認することが難しいという問題がある。
【マルチテナンシー(Multi-tenancy)】
- クラウド提供者が使用する共有の仕組みでは、利用者を隔離するために複雑なユーティリティを使用するため、隔離が失敗するリスクが存在する。
- 論理隔離が物理隔離の適切な代替となるかどうかは長い間の研究課題となっている。この課題は、データをクラウド上に送る前に暗号化することによってある程度解決することができる。
- データ処理を行うクラウドにおいては、利用者は、処理するデータの種類を制限するか、VM毎に借りるのではなく、コンピュータシステム全体を借りるような、特別な隔離の仕組みを提供する契約を行うことが考えられる。
【ブラウザ(Browsers)】
- 多くのクラウドアプリケーションは、利用者側のブラウザをGUIとして利用する。しかし、ブラウザは複雑であるため、セキュリティ上の欠陥を持ち、不正アクセスに脆弱である。
- アプリケーション提供者は、ブラウザの種類やバージョン毎に動作検証を行わなければならない。
- 利用者が管理している端末やブラウザはセキュリティ管理がきちんと行われていない可能性があり、最新でない可能性がある。もし、利用者のブラウザに侵入されると、クラウドに委ねられているすべてのリソースはリスクにさらされる。このため、ブラウザがクラウドへのアクセスポイントとなる場合には、ブラウザがセキュリティ侵害されていないことが重要となる。
- 信頼性を確保するために、アプリケーションゲートウェイやファイアウォール越しにクラウドにアクセスしたり、ブラウザの種類やプラグインを制限したり、ブラウザが最新であることを確認したり、ブラウザ経由でアクセスするシステムをロックダウンしたりする方法があるが、コストや機能性や使い勝手の低下などの問題が生じる。
【信頼に対するハードウェアサポート(Hardware Support for Trust)】
- TPM(Trusted Platform Module)は、システム起動時に生成されたチェックサムのセットを保管することで、システムが本当に正しいコンポーネントから起動されたことを証明するが、仮想マシンが別の物理サーバに移動した場合は、TPMの信頼の連鎖が壊れてしまう。
- TPMの仮想化や、異動後のVMが別のハードウェア上で信頼を再構築する仕組みが研究されているが、この問題は未解決のままである。
【鍵管理(Key Management)】
- 利用者の鍵を適切に保護するためには、クラウド提供者の協力が必要となる。
- クラウド環境では、専用のハードウェアとは異なり、メモリバッファをゼロにしても以下の場合は鍵を削除できない可能性がある。クラウドの内部で暗号を安全に使用する方法に関する問題は、未解決のままである。
- ハイパーバイザが、メモリの一貫性を保とうとしている場合
- VMが、リカバリのためにスナップショットを取っている場合
- VMが、別のハードウェアへのマイグレーションのためにシリアライズされている場合
7.6. まとめと今後の展開
実際のビジネスでは問題が表面化していないが、クラウドコンピューティングを企業がビジネス利用するためには、セキュリティに関する潜在的な問題が多く存在する可能性がある。今回紹介したNISTの他にも、CSA(Cloud Security Alliance)の「Guidance for Critical Areas of Focus in Cloud Computing」など、他の組織もクラウドのセキュリティについて問題を指摘している。
クラウド事業者は、NISTやCSAのガイダンスを参考にセキュリティに関する取り組みを行うことが期待される。
以上