DRAMがスパゲッティ状態に?メモリの複雑化と戦うための考察
Spaghettifying DRAM
Spaghettifying DRAM
近年のDRAM構造はかつてないほど複雑化しており、まるでスパゲッティのように入り組んだ状態にあります。このスケーリングの限界とメモリ設計の課題について、深掘りしていきます。
Black Hatでの関連トークが待ちきれない。Christopher Domasは、俺がこれまでで一番好きなハッカーの一人なんだ。彼の仕事の説明は本当に最高だよ。彼のお気に入りのトークをいくつか挙げておく:
Psychological Warfare in Reverse Engineering https://www.youtube.com/watch?v=HlUe0TUHOIc
The MoVfuscator https://www.youtube.com/watch?v=R7EEoWg6Ekk
Hardware Backdoors in redacted x86 https://www.youtube.com/watch?v=jmTwlEh8L7g
つまり、影響を受けるシステムでring 0のroot権限を取れば、マイナスリング領域に隠されていたほぼ全てにアクセスできるってことか。このページでは、この特定のAMD16h(古いAMDの低電力ファミリー)以外に、似たような他のプロセッサファミリーがあるのかどうかについてはあまり触れていないね?
大きな疑問は、これがKVMから脱出できるのか、そしてマイクロコードのパッチやその他の方法で修正できるのかどうかだ。
それに、そもそもこれが本当に実在するのかという話でもある。
OK、READMEによるとこれはAMD Jaguarで動くんだな。2013年のアーキテクチャだよ。Zen 3ではメモリコントローラのレジスタのベースアドレスが異なるといったメモはあるけど、それだけだ。実際、この攻撃はどの新しいCPUで動作するんだ?
自分のシステムを完全に自由に操作できるなんて、あるべき姿で最高だね。
XboxやPlayStationのセキュリティチームは今頃冷や汗をかいてるだろうけど。それらのマシンでring-0を取るのはほぼ不可能だけど、一度取ってしまえば全て丸裸だからな。
これって、(そこから先に進むために)すでにroot権限を持っていることが前提だよね?新たなローカル権限昇格のリスクを生むわけじゃないよな?
コンピュータを始めた頃のDRAMなら、ティーンエイジャーでも理解できたよ。RAS、CAS、読み取り、終わり。リフレッシュの処理は少し面倒だったけど、それでも管理可能な範囲だった。
最近じゃ、DRAMを積んだマイクロコントローラを動かすだけでも博士号が3つくらい必要な気がするし、DRAMアクセスに必要なプロプライエタリなバイナリブロブの話なんてしたくもない。PSRAMが流行るのも納得だ。
結論として、この巨大な攻撃対象領域に多くの機会が眠っているとしても驚くことではないよ。(もちろん、それを見つけるのが簡単だという意味じゃない。Christopher Domasには敬意を表するけど、こういうのは他にもたくさんあるはずだと思ってる)
俺がCコードを書くたびに、メモリがスパゲッティ状態になるんだけど。
で、Intel MEやAMD PSP、それに関連するファームウェアの中身はどうなってるんだ?焦らさないで教えてくれよ…
混乱してるんだけど。なんでこのリマッピングオプションがユーザースペースに公開されてるの?