※本記事は、マカフィー株式会社 コーポレートサポート本部 本部長 諸角昌宏によるものです。
前回は運用編の第1回としてドメイン8、9、10について説明を行いました。今回は運用編の第2回として、「ドメイン11:アプリケーション・セキュリティ」、「ドメイン12:暗号化と鍵管理」、「ドメイン13:アイデンティティ・アクセス管理」について説明します。
ドメイン11:アプリケーション・セキュリティ
稼働中あるいは開発中のアプリケーション・ソフトウェアを、クラウド環境に展開するかどうかを検討する場合、以下の2点を考える必要があります。
- アプリケーションをクラウド環境に移行すること自体が適切かどうか
- どのタイプ(IaaS, PaaS, SaaS)のクラウドプラットフォームを利用することが適切かどうか
この2点は、セキュリティにおいても同様であり、直接的なコントロールができなくなることによるガバナンスの観点、および、クラウドプラットフォームの違いへの対応の観点から考えていく必要があります。クラウド環境にアプリケーションを展開する場合には、そのセキュリティコントロールとして、アプリケーション・レベルのコントロールとクラウド事業者とのSLAの両方の観点から対処していくことが必要となります。
ここでは、クラウド提供モデルごとに、アプリケーション・セキュリティの問題点およびガイダンスについて説明します。
- IaaSにおけるアプリケーション・セキュリティ
IaaSがホスティングするアプリケーションは、Webベースのアプリケーションのような分散アプリケーションに対するセキュリティ対策を考える必要があります。IaaSでは、デフォルトでは分散されたホストを結ぶネットワークに対するセキュリティが存在していませんので、アプリケーション・レベルのコントロールを追加する必要があります。このような状況で、以下の5つの点を注意する必要があります。- 仮想マシンイメージの信頼:IaaS事業者が提供する仮想イメージには、IaaS事業者自身が提供するイメージと事業者が顧客に提供するものとがあります。仮想マシンイメージは、セキュリティ的に強固なものでなければならないことになります。利用者自身のセキュリティポリシーに従った自前の仮想マシンイメージを利用するか、信頼できる第三者の仮想マシンイメージを利用する必要があります。
- ホストに対する強化:IaaSインフラで稼働しているホストは、会社のネットワークのDMZで稼働しているホストと同等です。したがって、DMZに適用されているものと同等の予防策を仮想マシンイメージに対しても適用する必要があります。
- インターホスト間のセキュリティ・コミュニケーションを安全にする:クラウドベースのアプリケーションでは、ホスト間での機密情報の公開を防止するためのコントロールが必要になります。これは、データセンター内または同じハードウェアプラットフォーム上においても、ホスト間の安全な通信のために必要になります。
- アプリケーション・キーの管理:IaaSプラットフォームでは、有効なアカウントを特定するために、‘秘密鍵’を使用しています。この‘秘密鍵’を管理し、保護しなければなりません。
- 機密情報の取り扱いに対する追加的な要件:IaaSプラットフォーム上で稼働するアプリケーションは、処理中に機密情報が漏えいしないことを保証しなければなりません。
- PaaSにおけるアプリケーション・セキュリティ
PaaS事業者は、アプリケーションのためのプログラミング環境を提供しますが、その他に、同期メッセージのためのエンタープライズ・サービスバス(ESB)を提供します。プログラミング環境は、アプリケーションがPaaSのマルチテナント環境で動作することから、アプリケーションが行うサービスに対する制約を行うことがアプリケーションの責任になります。どのようなサービスをオペレーティングシステムに対して要求できるか、たとえば、ファイルシステムに対するアクセスをどのように制限するかを考える必要があります。また、ESBの観点からは、PaaSのマルチテナント環境において、メッセージを安全に保つこと、つまり、ESBのセグメント化のようなコントロールがアプリケーションの責任で行われる必要があります。以上の観点から、以下の2点について、注意が必要です。
- アプリケーション・キーの管理:PaaS上で展開されるAPIコールに対して、アプリケーションによる保守管理、安全性の確保を行う必要があります。
- 機密情報を取り扱うための追加的な要件:IaaSと同様ですが、アプリケーションが機密情報を取り扱う必要があります。
- SaaSにおけるアプリケーション・セキュリティ
SaaSにおけるアプリケーションは、プラットフォームとして提供されるプログラムと、エンドユーザー機能を提供したプログラムといえます。また外部アプリケーションは、SaaSプラットフォームが提供するAPIを通じてデータの交換を行います。したがって、SaaSにおけるアプリケーション・セキュリティは、エンドユーザー機能のためのカスタムコードの拡張に対して対応する必要があります。また、外部APIを通じたデータ交換に対する対応が必要になります。ハッカーは、脆弱性に対する知識をフルに活用して、クラウドの標準化されたインフラに対してテロ攻撃を仕掛ける機会を狙っています。クラウドを利用したアプリケーションを開発・利用する人々は、アプリケーション・レベルでのセキュリティ対策や、クラウド事業者が保証するSLAへのセキュリティ対策の明確化を行っていく必要があります。また、ハッカーが、どのようにクラウド環境に攻撃を仕掛けてくるのかという点についても、精通しておく必要があります。
ドメイン12: 暗号化と鍵管理
クラウドコンピューティングでセキュリティ問題が発生する場合の主な流れは、以下の通りです。
この新たなセキュリティ問題からクラウド環境におけるリソースの安全を守る唯一の方法が、「強固な暗号化と拡張性のある鍵管理」です。ガイダンスでは、暗号化によるデータの保護と鍵管理について、その問題点およびガイドラインを説明しています。
- 暗号化によるデータ保護
暗号化では、以下の3点に注意する必要があります。- 移送段階、保全段階の両方のデータを保護する:データが送られている時に保護を行うだけでなく、保存管理されているデータに対しても保護を行う必要があります。クラウド環境では、この移送段階であるのか、保全段階であるのかが不明瞭になります。したがって、どちらの状態においても幅広く暗号化が行われる必要があります。
- クラウド上で暗号化されていないデータは、喪失しているものとみなされる:クラウド環境では、すべてのコミュニケーションおよびストレージは、不特定の部外者に見られているものと考えなければなりません。クラウド上で暗号化されていないデータは、利用者にとって「失われたもの」と考えるべきです。
- 顧客と事業者の両方で、同等にデータの損失と漏えいを防御する手立てを講じる:クラウド環境では、顧客は事業者がデータを暗号化することを望んでいますし、事業者は、データを暗号化することで顧客の情報サプライチェーンを安全に保つことができます。
- 鍵管理
顧客のデータを分離する鍵管理スキームが必要です。これにより、すべての顧客が共通のデータ・リポジトリを共有する場合においても、顧客のデータを個別に分離することができるようになります。従来の情報管理では、データに対する機密性と完全性に対して、信頼できる管理者に委ねるということで対応していました。クラウドコンピューティングでは、暗号化されたデータとそのデータを暗号化する鍵の両方を利用することで、対応していく必要があります。
ドメイン13:アイデンティティ・アクセス管理
クラウドコンピューティング環境では、アイデンティティ管理(IAM)を統合しなくても、クラウドコンピューティングのサービスを利用することが可能です。しかし長期的には、企業のアイデンティティを先行してクラウドに広げることが、クラウドコンピューティングを戦略的に使用するためには必要です。クラウドベースのIAMは、従来のIAMと同様の問題を抱えています。
- 1個人がたくさんのアカウントを持っている
- 退職後もシステムのアクセス権を持っている
- 不当に高い特権を持っている
- シングルサインオン(SSO)に統合されていない
企業における管理の問題に対して、最適化された内部のIAM戦略を作成することは、そのままクラウドにも利用することができます。
アイデンティティ・アクセス管理に対して、クラウド事業者の能力を理解するために必要なこととして、以下の3点があげられます。
- クラウド事業者のサポートするユーザー管理プロセスの理解:プロビジョニング、非プロビジョニング、ユーザーのライフサイクル管理はどうなっているか。
- クラウド事業者の認証能力の理解:パスワード・ポリシーなどが要件を満たしているかどうか。
- クラウド事業者のフェデレーテッドID管理アーキテクチャの理解:SAML, WS-フェデレーション、Liberty ID-FFフェデレーション等の標準をサポートしているかどうか。
なお、アイデンティティ管理機能をアウトソースする可能性も考えられます。Identity as a Serviceと呼ばれるもので、企業とアイデンティティ・サービス事業者のディレクトリを、一貫したディレクトリで同期し維持することができるようになります。
次回は運用編の最終回として、クラウド・セキュリティ・ガイダンスの「ドメイン14:ストレージ」、「ドメイン15: 仮想化」について説明します。また、「クラウド・セキュリティを学んでみよう!」シリーズの最終回として、全体としてのまとめを行います。
*本記事は、弊社「クラウド・セキュリティ・勉強会」メンバーである、藤井大翼、桐谷彰一、中山幹夫の協力により、執筆されました。
関連記事
- [2011/07/08] クラウド・セキュリティを学んでみよう!:運用編 – 第1回
- [2011/07/22] クラウド・セキュリティを学んでみよう!:運用編 第3回 (最終回)
- [2011/06/10] クラウド・セキュリティを学んでみよう!:ガバナンス編 – 第1回
- [2011/06/17] クラウド・セキュリティを学んでみよう!:ガバナンス編 – 第2回
- [2011/06/24] クラウド・セキュリティを学んでみよう!:ガバナンス編 – 第3回
- [2011/07/01] クラウド・セキュリティを学んでみよう!:ガバナンス編 – 第4回
- [2011/06/03] クラウド・セキュリティを学んでみよう!:アーキテクチャ編
- [2011/02/08] クラウドコンピューティングにおけるセキュリティ対策 – 第1回
- [2011/02/15] クラウドコンピューティングにおけるセキュリティ対策-第2回
- [2011/02/22] クラウドコンピューティングにおけるセキュリティ対策-第3回
- [2011/03/01] クラウドコンピューティングにおけるセキュリティ対策-第4回