【OSDI '21】スケーラブルなsecure enclaveを実現するPENGRAIアーキテクチャとその要素技術
TL;DR
PENGRAI enclave systemに基づくスケーラブルなメモリ保護
enclave数を大幅に最適化
integrity protectionを備えたメモリ容量の確保
enclave起動待ち時間の短縮
はじめに
本文
クラウドベンダーへの最小限の信頼のもと、扱うデータの保護をAt rest(保存時)とIn transition(伝送中)だけでなく、In use(使用中)でも実現する技術としてsecure hardware enclave(例:Intel SGX)がある。マイクロサービスやサーバレスアーキテクチャは、単一目的のサービスを設計単位として構築することで高スケーラビリティを実現するが、既存のenclaveシステムでは以下のような制限があり、そのままの適用が難しい。
制限1:メモリ分離がスケーラブルでない
SGXには128/256MBの上限が存在
Physical Reserved Memory(PRM)を連続的に確保する必要がある
分離境界の動的調整・拡張が難しい
制限2:メモリのintegrity保護がスケーラブルでない
SGXは128/256 MB EPCのみをサポート
数千のenclaveを実行しようとするとEPCが不足 or swappingが頻発
制限3:セキュアメモリの初期化がスケーラブルでない
起動待ち時間が長い
EADD/EEXTEND命令でコンテンツを測定してからenclave作成に数秒
本論文では上記制限を解消し、以下を実現することをゴールとしている
セキュアメモリのきめ細かい制御(4KB単位)
十分な数のenclaveを同時に動作(1,000 enclaves)
enclaveの起動時間の短縮(host OSのネイティブアプリケーションに対して、26-46%程度のオーバーヘッド)
※括弧内はプロトタイプベースの評価値
https://gyazo.com/6b47f3192ef44af050fe84dadc497683
(論文中より引用)
PENGRAIアーキテクチャの概要は上記の通りであり、最も特権的な権限を持つSecure Monitor (SM)が存在する。これはArm TrustZoneなどと同様で、OSとユーザ空間ソフトウェアを2つの世界に分ける役割を果たす。SM自体はsecure bootでロードされ、ハードウェアのメモリ分離で物理メモリ攻撃から保護される。
PENGRAIでは3つのゴールを実現するために、2つのハードウェア・プリミティブと1つのソフトウェア・プリミティブを導入している。
ハードウェア・プリミティブ
Guarded Page Table (GPT)
pageレベルでメモリ分離を実現
各物理ページのステータスを記録
secure for monitor
secure for enclaves
nonsecure for untrusted OS
nonsecure for apps
nonsecure for TreeNode for SubTrees
https://gyazo.com/cdcc95ff24a513b8ab76536c92344ff6
(論文中より引用)
ホストOSのページテーブルをHPT Areaに配置
HPA Areaだけが唯一連続する領域になるが、ページテーブルページのみ(データページを含まない)を扱うため、スケーラビリティへの影響は軽微
物理ページのステータスとHPT areaを組み合わせてメモリ分離を実現
例:ページテーブルページのアドレスがHPT area外かつ、実行中ソフトウェアがenclaveでない→monitorへ例外を投げる
Mountable Merkle Tree (MMT)
物理メモリ保護抽象化
オンデマンドでスケーラブルなメモリintegrity保護と暗号化保護を実現
https://gyazo.com/ebf2754c8da861640d23fb07c4bc09f7
(論文中より引用)
セキュアメモリを動的に割り当て、SubTreeとして表現することで、Merkle Treeにmountが可能
rootのみをSoCに格納し、物理的に保護
→hash treeになっているので、すべてのSubTree rootのintegrityを保護
ソフトウェアプリミティブ
shadown enclave
forkベースでセキュアメモリを割り当てることで、enclaveの起動時間を短縮
終わりに
今回は、スケーラブルなメモリ保護を実現するPENGRAIアーキテクチャとその要素技術を紹介した。いわば独自のTEEアーキテクチャとその実装を試みる論文で、複数のセキュアプロセスが動作するという点では21/4/9に紹介したSpons & Shieldsに近しい研究と言える。 また、きめ細かい境界分離の実現という点では21/3/26に紹介したCUREが近い。今回紹介できなかったが、CUREとPENGRAIはサイドチャネル攻撃に対しても一定の保護を謳っている。これらのようにサーバレスアーキテクチャへの応用を見据えたきめ細かいメモリ分離やサイドチャネル攻撃への対策がなされたTEEアーキテクチャが登場しており、非常に興味深い。(文責・恩田)