MEGAZONEブログ
Protect sensitive data in use with AWS confidential computing
AWSコンフィデンシャルコンピューティングで使用中の機密データを保護
Pulisher : Cloud Technology Center イ・ヨンジン
Description : Security Computingの基本概念とAmazon EC2機能(AWS NitroシステムとAWS Nitro Enclaves)の紹介
はじめに
最近では、公共分野でもAWSを導入するケースが増えてきています。公共分野で特に重要視されているのが、機密情報の取り扱いですが、AWS環境において、公共機関が次々と利用し始めた経緯や、技術的な背景を知りたいと思い参加しました。
セッションの概要紹介
AWSのセキュリティコンピューティングは、コードとデータを不正アクセスから保護する必要がある場合、必然的に使用する必要があります。 このセッションでは、セキュリティコンピューティングの基本的な概念を説明し、組織の機密データを隔離して処理するために、セキュリティ基準を高めるのに役立つAmazon EC2機能(AWS NitroシステムとAWS Nitro Enclaves)を紹介しました。
最後に、アーキテクチャについて学び、ブロックチェーンの鍵管理、金融サービス、決済処理、および多国間コラボレーションのユースケースについて学びました。
AWSのEC2は仮想化環境をNitroシステム上で動作します。この時、AWSオペレータは基本的にNitroシステムにアクセスしてデータを確認することができないようになっています。 また、EC2 instanceが仮想化上で動作する場合、Nitro Enclavesとの通信において、その内容の閲覧もブロックされている構造です。仮想化内でもbackplaneに流れているデータへのアクセスを原則的に遮断しています。
このような構造と機能は様々な分野で使用することができ、ここに列挙された個人情報、セキュリティキー、ヘルスケア、金融、そして知的財産保護などに活用することができます。
Nitroでは、仮想化による制御に加え、Nitro Enclavesという追加機能を持ち、コンピューティングリソースと完全に隔離された環境を提供します。
もっと詳しい構造を見ると、元々仮想化とはDom0とXen Hypervisorなどを通じてインスタンスと通信することになります。こうなると、Dom0が他の環境との通信の中間的な役割をすることになります。 AWS Nitro Systemではこの部分を分離することになります。
結局、Host CPUで動くHypervisorはfirmware程度の非常に軽くて薄いコードで構成されており、仮想化のみに関与することになります。実際のデータ交換はNitroが担当することになり、このNitroは他のAWSサービスとの接続の起点と終着点として機能します。
結局、Nitroは外部IOを担当するNitro Card、セキュリティを担当するNitro Security Chip、そして仮想化を担当するNitro Hypervisorで構成されています。
外部接続を管轄するNitro Cardは、AWSオペレータであってもアクセスできないように、SSHのようなアクセスポイント自体を持っていません。 そして、Nitroシステム間には、セキュリティアクセス制御とモニタリングが行われています。これは、管理システムでロギングおよびモニタリング用のAPIのみ開いており、いかなる顧客データへのアクセスは不可能になるようにハードウェアが設計されています。セキュリティを最大限強化した方法でH/W設計されていることが分かります。
それでは、Nitro Enclavesの主な機能と利点について説明します。
仮想化されたEC2インスタンス内部では、OS上段の層と下段の連動するデータ間には分離され、暗号化されていますが、結局、暗号化されたデータのフォーマットと処理はplaintext基準になります。
Nitro Enclaveは、OSの下で流れる暗号化されたデータ自体を取り込んで実行させる完全隔離された場所です。
Nitro Enclave自体も独自の資格情報を介してNitro Hypervisorと通信します。この資格情報はハッシュアルゴリズムを利用して処理されています。
このクレデンシャルはAWS KMSと連動しており、最終的にはAWS KMS key policyに入管して証明することになります。
このような完璧な隔離環境を使うのに、追加料金がかからないのは大きなメリットです。
では、このようなNitor Enclaveはどこで使用できるのでしょうか? その答えは、機密情報を扱うあらゆる場所で使用できるということです。
この機能を活用するお客様は、セキュリティ機能が必要なところであれば、業種を問わず、ほぼ全ての業種で活用されています。
これをうまく活用している代表的な企業の一つであるStripeから発表していただきました。
Stripeは電子決済APIサービスを提供する企業です。
Stripeは、金融サービスに関連するすべての機密情報の処理が最も重要なサービスであると考えています。 結局、認証情報とそれに対する鍵管理への対応が必要でした。
理想的な解決策としては、セキュリティキーへのアクセス制御、監査用ソフトウェアで使用されるキーの利用、そして検証済みのソフトウェア上での利用が可能でなければなりませんでした。
このような要件に合致し、また、拡張と使用量課金の心配を解消し、AWS KMSと連動できるNitro Enclavesがその答えになったそうです。
Enclave上の状態を確認するため、vsockと”/dev/nsm”を通じてEC2仮想化instanceと通信し、Nitro Hypervisorとデバイス接続が可能になります。 結局、”/dev/nsm”を通じてenclaveを認識し、enclaveの中の状況を見ることができる窓口がvsockになります。
StripeではGo SDKを使って開発し、vsock通信のためにGoで作ったTCP/UDP proxyサービスを実装したそうです。
ただ、限界はあります。一つのrequestに対してresponseでは多くのpayloadが伴うため、あまりにも多くのrequestが発生すると遅延が発生する可能性があるそうです。
結局、StripeはNitro Enclaveを活用することで、別に管理しなければならなかった機密情報の処理が円滑になり、簡素化された構造と速度の改善の恩恵をたくさん受けたといいます。
その他の人気のある活用法は以下の通りです。
知的財産を保護するサービスに活用することができます。 特にMLモデルの場合、簡単に他のサービスに活用される危険性が存在します。このモデル自体をEnclave内に格納することで、流出の心配をなくすことができるようになりました。
Cookieを基準にユーザーを追跡する伝統的な広告サービスでは、個人追跡防止に対する社会的な認識が高まっています。Enclave内でUID2トークン生成アプリケーションを回すことで解消できるようになります。
複数の組織が協力してサービスを行う場合、暗号化された形式でenclave内で回すことで、外からは全く見ることができず、復号化もできませんが、安全なenclave内ではお互いのdata setを融合させることができるので、データ漏洩の心配なく協力することができます。
ブロックチェーンでのワークロードも、機密情報の交換や暗号化処理についてはenclave内で実行させることで、そもそも漏洩を完全に防ぐことができます。
この場合、それぞれのEC2ではKMS proxy > vsockを通じてenclaveと通信して資料を処理し、ブリッジ形式でお互いに後見人としての役割が可能です。 また、分散キー共有を通じた認証ノードの役割も果たします。
セッションを終えて
公共および金融など、個人情報および認証が要求されるワークロードを処理する場合、仮想化インスタンスにおけるデータ通路がHypervisorおよびそれを管轄するDom0によってセキュリティが脆弱になる可能性があります。AWSはHypervisorを完全に分離して管理するNitroシステムを適用しています。これは仮想化構造自体が従来のHypervisorとは異なり、専用IO及びSecurity chipを通じてこれを処理します。これにより、Nitro Enclaveという隔離されたサービスを作り出し、どんなadministratorも直接入って内容を確認できないように構成されています。
Nitro System及びNitro Enclaveを利用してシステムの機密情報処理に活用すれば、公共及びFintech企業が事業進行のためのcompliance取得に現実的な効力を持つと思われます。 実際、海外では金融compliance取得のためにも採用する事例が増えています。
参考
Security Design of the AWS Nitro System
3rd party validation – Nitro Security
NCC Group report – “no gaps in the Nitro System that would compromise these security claims”
https://aws.amazon.com/jp/service-terms/?nc1=h_ls
Delivering on the AWS Digital Sovereignty Pledge: Control without compromise
Updated Service terms, to reflect “no operator access”
https://research.nccgroup.com/2023/05/03/public-report-aws-nitro-system-api-security-claims/