
出典:Sergey Novikov(Alamy Stock Photoより)
セキュリティ研究者たちは、機密コンピューティングの防御を回避できる50ドルのデバイスを開発しました。このデバイスは、クラウド環境を支えるハードウェアで使用されているIntelおよびAMDプロセッサの両方に対応しており、攻撃者が機密データを保護するための暗号化を突破できるようになります。
「バッテリングRAM」と呼ばれる攻撃は、Intel SGXとAMD SEV-SNPの両方のプロセッサ防御を突破でき、「侵害されたホスト、悪意のあるクラウドプロバイダー、または不正な従業員から機密ワークロードを保護するために設計された」ものだと、この攻撃を開発したKU Leuven大学およびバーミンガム大学/ダラム大学の研究者は述べています。
「現代のコンピュータは、メモリモジュール(DRAM)を使って、写真やパスワードからクレジットカード番号まで、使用中のすべてを保存しています」と研究チームのウェブサイトは説明しています。「パブリッククラウドプロバイダーは、この機密データを保護するために、ハードウェアレベルのメモリ暗号化をますます導入しています。」
研究者たちは、クラウドベースのシステムが機密データを保護するために使用するプロセッサベースのメモリ暗号化のメモリパスに設置する、低コストのインポーザーを構築することで、この暗号化を破る方法を実演しました。このインポーザーはOSからは見えず、SGXで保護されたメモリを回避したり、他の脆弱性が存在しないシステムでもSEVのアテステーション機能を突破したりできます。
研究者たちは「スイッチを切り替えるだけで、私たちのインポーザーは悪意ある動作を開始し、保護されたアドレスを攻撃者が制御する場所へ静かにリダイレクトし、暗号化されたメモリの改ざんやリプレイを可能にします」と述べています。
バッテリングRAM攻撃の仕組み
商用のパッシブDRAMインポーザーは、高度なパッケージングシステムでDRAMメモリチップをプロセッサに接続するために使われ、10万ドル以上することが一般的です。しかし、研究者たちは、アナログスイッチを使ってプロセッサとメモリ間の信号を操作するカスタムインポーザーを、50ドル未満で開発した方法を説明しています。
プリント基板(PCB)は標準的な4層設計で、JLCPCB、PCBWay、Eurocircuitsなどの主要なPCB製造業者で製造可能だと述べています。インポーザーの回路図や基板ファイルは、研究チームのGitHubリポジトリでオープンソースとして公開されています。
バッテリングRAMは、研究者たちが以前開発したBadRAMという攻撃の進化版であり、同様に物理アドレスのエイリアシングを悪用してAMD SEV-SNPシステム上の暗号化メモリを改ざん・リプレイしていました。BadRAMは静的なゴーストアドレスラインを導入することでこれを実現していました。
これに対応して、IntelとAMDは、こうした静的エイリアスを検出・ブロックするための起動時チェックを追加したと、研究者たちは述べています。バッテリングRAMは、実行時に動的にメモリエイリアスを導入することで、BadRAMに対するIntelおよびAMDの緩和策を上回ります。
システムが起動した後、攻撃者がスイッチを切り替えると、インポーザーがアドレスメタデータを書き換え、保護されたメモリページを攻撃者が制御するメモリエイリアスに向けて暗号化データを取得します。その後、インポーザーが再構成され、攻撃者の場所が被害者の物理アドレスを占有し、取得した暗号文をリプレイします。これにより最終的にデータが復号され、攻撃者の場所に現れます。
ただし、この攻撃を成功させるには、一度だけ物理的にアクセスできる必要があり、たとえ短時間でもハードウェアシステムに触れる必要があります。したがって、攻撃者は内部関係者――例えば不正な従業員、データセンターの技術者や保守担当者、法執行機関のメンバー、あるいは出荷や製造中にメモリモジュールを改ざんできるサプライチェーン関係者――である必要があると、研究者たちは認めています。
プロセッサのメモリ防御の回避
この攻撃は、メモリを回避する方法がプロセッサによってやや異なります。Intel Scalable SGXで使われているIntel Total Memory Encryption(TME)技術の単一キー・ドメインでは、インポーザーによるエイリアスを通じて任意の平文アクセスが可能になると、研究者たちは説明しています。したがって、メモリ暗号化を回避するには、秘密鍵と物理アドレスへのアクセスだけが必要だと述べています。
「被害者の暗号文を取得し、その内容を自分のエンクレーブにリプレイすることで、攻撃者は被害者の平文データを読み取ることができます」と研究者たちは説明します。「同様に、攻撃者は任意の平文を被害者のエンクレーブに書き込むこともできます。」
AMDのSEV-SNPは、仮想マシン(VM)の起動時に初期メモリ内容を測定し、そのハッシュ値が顧客が提供した期待値と一致するかどうかで整合性を確保しています。
バッテリングRAM攻撃では、インポーザーが起動時の測定値を取得・リプレイできるため、SEVのアテステーションが破られます。「これにより、攻撃者は検知されることなく任意のバックドアをVMに導入できます」と研究者たちは述べています。また、この攻撃は動的メモリエイリアスを使って起動時のエイリアスチェックを回避し、メモリ保護も突破します。
チップメーカーからの対応
IntelとAMDの両社は、研究者たちが2月に報告したこのエクスプロイトを認識しています。しかし、「両社ともDRAMへの物理攻撃は現行製品の想定範囲外である」と述べており、潜在的な攻撃を緩和するためにプロセッサ技術に変更を加える予定はないと、研究者たちは述べています。
両社はまた、火曜日にこの攻撃に関する個別のアドバイザリを発表し、ほぼ同様の内容を述べています。Intelのアドバイザリでは、「Intel Total Memory Encryption-Multi-Key(Intel TME-MK)の暗号整合性保護モードは、エイリアスベースの攻撃に対する追加の保護を提供できる」とし、これは第5世代Intel XeonプロセッサおよびXeon 6プロセッサファミリー(Pコア搭載)で利用可能であるとしています。
Intelによれば、「利用者は、信頼するプラットフォームの物理的な保護特性を理解すべきです。プラットフォーム所有者は、アテステーション時に保有するプラットフォーム証明書を特定することで、どのプラットフォームを管理しているか(およびその物理的保護)を示すことができます。」
一方、AMDも「報告されたエクスプロイトはSEV-SNPの公開された脅威モデルの範囲外であるため、緩和策をリリースする予定はない」と述べています(詳細はAMD SEV-SNP技術文書の表1を参照)、と同社のアドバイザリで述べています。
最終的に、研究者たちは自分たちのエクスプロイトが機密コンピューティングが「無敵ではない」ことを示しており、防御側は物理攻撃をよりよく理解し備えるために脅威モデルを再評価すべきだと述べています。
「暗号化メモリは物理的な改ざんに対して本質的に安全ではありません」と研究者たちは述べ、「ファームウェアベースの緩和策だけでは、悪意のある内部関係者やサプライチェーンの侵害など、限定的な物理アクセスが関与する脅威シナリオには不十分です。」
翻訳元: https://www.darkreading.com/cloud-security/50-battering-ram-bust-confidential-computing