ロボットは冷却技術を使ってRAMチップからデータを引き抜くことができる

Table of Contents

ロボットは冷却技術を使ってRAMチップからデータを引き抜くことができる

メモリチップを冷却し、暗号キーを含むデータを盗み出すコールドブート攻撃は、2008年にすでに実証されていましたが、最近になって自動化されました。

このオリジナルタイプの攻撃は、メモリ窃盗マシンという形で改良され自動化されており、少しの自動誘導式電気操作だけで、約 2,000 ドルで入手できる。

金曜日、カナダで開催される REcon リバース エンジニアリング カンファレンスにおいて、Red Balloon Security の創設者兼 CEO である Ang Cui 氏が、「Ice Ice Baby: DIY Cryo-Mechanical Robot で RAM をコピー」と題した講演を行う予定です。

本発表では、Cui氏と同僚のGrant Skipper氏、Yuanzhe Wu氏がDDR3メモリモジュールから復号化されたデータを収集するために開発した、低温機械式RAMコンテンツ抽出ロボットに焦点を当てています。このロボットが開発された理由は、ハードウェアメーカーがJTAGデバッグインターフェースとUART回路を無効化し、ボールグリッドアレイ(BGA)パッケージと暗号化ファームウェアを使用することで、デバイスのリバースエンジニアリングを困難にしてきたためです。

クライオメカニカルRAM抽出機の画像

クライオメカニカルRAM抽出機の画像...クリックして拡大

「メーカーが多くのデバッグインターフェースを削除している、いわゆる『製品仕上げ』が進んでいる」と、崔氏はThe Registerのインタビューで語った。「必ずしも製品のセキュリティが向上するわけではないが、デバイスのイントロスペクションやリバースエンジニアリングが格段に難しくなる。ハードウェアの問題を回避するのは、時間の無駄でしかない」

「そこで、私たちは別の方法でこの状況を変えようと決意しました」と崔氏は語った。「これまで行ってきたようなフォールトインジェクションや、レーザーアブレーションによる非常に侵襲性の高いリバースエンジニアリングではなく、デバイス上のRAMチップを1つずつ文字通りフリーズさせる、非常に手頃な価格で驚くほど正確なロボットを開発しました。」

「物理RAMの内容を読み取りたいときは、デバイスから物理メモリを取り外し、小さなFPGAフィクスチャに差し込みます。基本的には、デバイスから物理メモリを取得し、それをリーダーに物理的に挿入することで読み取るだけです。そして、これは実際には驚くほどうまく機能しました」とCui氏は説明した。

  • ノートパソコンを盗んでBIOSをフラッシュし、再起動すると、何ができるか想像もつかないだろう。
  • 99個のセキュアデバイスを持っているが、ニンテンドースイッチは1つではない。NvidiaのTegraブートROMを使っているなら、気の毒に思うよ、息子よ
  • クラウドVMを不正サーバーから保護するAMDのSEV技術は、依然として極めて脆弱であることを意味する。
  • SKハイニックスがDRAMの欠陥を認め、大量生産での失敗の噂を否定

「ブートローダーでは、多くの場合、復号鍵が見られます。また、ブートローダーのコードも見られます。フラッシュメモリに暗号化されたファームウェアがあり、ブートROMが多少なりとも安全であれば、コードを読み取るためのアクセスさえ非常に困難になることがよくあります。しかし、このアプローチでは、コード、すべてのデータ、スタック、ヒープ、そしてすべての物理メモリが取得できます」と彼は説明した。

崔氏によると、最初のコールドブート攻撃は、圧縮空気の缶を逆さまにしてノートパソコンのDRAMを冷却することでメモリを凍結させるというものだった。メモリチップを約-50℃まで冷却できれば、内部のデータは一時的に凍結され、電源を切っても数分間は保持される。

「しかし、組み込み機器を見てみると、モジュール式のRAMは搭載されていません」とCui氏は述べた。「すべてはんだ付けされています。私たちは、非常にカスタマイズされたメモリコントローラーも数多く開発しました。今年初めにシーメンスの脆弱性開示作業を行った際にも、このアプローチを採用しました。」

1つのメモリチップが確実に動作し、正しく読み込めるようになったら、今度は1つではなく5つのチップを動作させる必要がありました。なぜなら、それらはすべてインターレース構造になっているからです。しかも、3つのチップはボードの片側に、残りの2つはボードの下部に配置されています。そのため、文字通り同じ命令で5つのメモリチップ全てを魔法のように動作させる方法を考え出さなければなりませんでした。これは、お分かりの通り、非常に複雑で、実際には実現不可能なことでした。

難しいのはタイミング

「私たちは、これを一つずつ実行するという、もう一つの非常にクールなトリックを思いつきました。決定論的な実行だけでなく、デバイスの電磁放射も調べて、CPU依存の動作期間中にデバイスがどこにいるのかを基本的に把握します。CPU依存の場合、何をしていないと思いますか?メモリから書き込んでいないのです」と彼は回想した。

「そのため、メモリチップを取り外す際に数十ナノ秒単位のタイミング分解能が必要になる代わりに、数十ミリ秒単位の周期でこれを行うことができました。こうして5つのメモリチップを同時に取り外し、ブートローダー、コード、データ用のメモリを再構築し、デバイスの可視性を確保したのです。」

崔氏は、数十ミリ秒は、AliExpressで約500ドルで購入して改造したコンピュータ数値制御(CNC)マシンが必要なチップ操作を実行するには十分な時間だと語った。

このロボットは、フィールドプログラマブルゲートアレイ(FPGA)で構築されたメモリリーダーと、MicroPythonを実行するESP32モジュールに基づくコントローラが接続されたCNCマシンであり、コールドブート攻撃手法を簡素化し、その煩わしさを軽減します。

崔氏によると、このロボットはモーターやX軸アクチュエーターといった不正確な部品を取り除いたCNCで構成されている。この攻撃を可能にしているのが、導電性エラストマーICテストソケットと呼ばれるものだという。

クラムシェルのような形状で金属ピンが付いている一般的なテスト ソケットとは対照的に、エラストマー テスト ソケットは硬いグミベアのような硬さで、導電性ピンが印刷されています。

ソケットの柔軟性により、ピストンを使ってメモリチップを安価なハードウェアで押し込むことが可能になり、回路基板やメモリチップに損傷を与えることなく設置できるようになりました。10年前には1個数百ドルもしたこれらのソケットは、今ではタオバオで30ドル程度で購入できます。

FPGAベースのメモリ読み出しシステムを組み込むことで、DRAMの内容をダンプするためにカスタムブートローダーを介してコードを実行する必要がなくなります。また、ロボットはターゲットデバイスと読み出しシステム間でDRA​​Mチップを物理的に転送することで、攻撃プロセスを簡素化します。

効果はありますが、すべてが失われたわけではありません

Cui氏らは、シーメンスSIMATIC S7-1500 PLC上でロボットのデモを行い、暗号化されたファームウェアバイナリの内容を復元することに成功しました。また、CISCO IP Phone 8800シリーズのDDR3 DRAMに対しても同様の攻撃を仕掛け、ARM TrustZoneランタイムメモリへのアクセスに成功しました。

彼らは、より高価な(例えば約 10,000 ドル)FPGA ベースのメモリ読み出しプラットフォームを使用すれば、この手法をより高度な DDR4 および DDR5 に適用できると考えています。このコストは時間の経過とともに低下すると予想されています。

コールドブート攻撃は物理メモリの暗号化によって対抗できるとCui氏は述べた。

「最近のCPUやゲーム機では、既に完全に暗号化されたメモリが使われています」と崔氏は説明した。「そうなると、このアプローチは通用しなくなります。たとえ物理メモリをリッピングできたとしても、デバイス内の別の場所にある物理キーが必要になるからです。」

「しかし、世界にとって重要であればあるほど、セキュリティは低くなります」と彼は述べた。「では、メモリ暗号化が何に搭載されているか想像してみてください。Xboxには搭載されています。PS5にも搭載されています。では、搭載されていないものは何か想像してみてください。地球上のすべてのPLC(プログラマブルロジックコントローラー)CPUに搭載されています。私たちが依存している多くの重要なインフラに組み込まれている機器は、この種の攻撃に対処しているものがほとんどありません。」®

Discover More