アカウント名:
パスワード:
バカは引っ込んどけ。
電源供給なしでも内容を保持できるものは DRAM とは呼びません。
DRAM に見せかけたなにかを作れるとして、それをどうやって活用するかは難しいですね。DRAM に書かれた内容をすべて WiFi で外部に送るとか?
POSTコード辺りはまだ固定値だと思うので、初期化時にBIOSを改竄>ROM領域から仮想マシン注入>正規OS起動とかでしょうかねぇ?
DRAMの場合、1本だけ使うのならともかく、複数挿して使う場合にどのようにメモリの中身をマシンから見えるようにするかは実装依存ですよね。極端な話、データバス側をてんでバラバラに接続してても各ビットが確実に読み書きできれば問題ないし、SDRAMのようにメモリチップ内部が高速アクセスのため複数のバンク構成を採っている場合でも、どのアドレスにどのスロットのどのバンクを割り振るかはホスト側で決められることで、それをDRAM自体が知っている必要は全くない。おそらく物理アドレスと仮想アドレスの関係も知らんでしょう。確かにメインメモリ上にアドレス変換テーブルは展開されているでしょうが、どのアドレスにそれが来るのか、おそらくDRAM側では見当もつかないだろうと思います。それをチェックするロジックはかなり大規模になるでしょう。当然、DRAMとしては貴重な回路面積を多量にもっていかれて容量が減ってしまいます。しかも確実にそのチップに変換テーブルが載るかどうか確実ではない。その上、たいていのCPUはキャッシュを持ってますから、正確にデータの書き換えられた履歴を追っかけるのも難しい。
そう考えると、確実にどう読まれるか予想できるROM上のファームウェアと比較して、苦労の多さに比較して得られるモノは少ないので、何が書かれるか分からないDRAMのほうに何か仕込むのは難しいと思いますよ。
まず、私が想定してるのは単なるDRAMチップでなく、DRAMモジュールを想定していました。現行のPCを攻撃ターゲットとした場合、CPUとメモリコントローラーに関しては種類が限られます。特にAMDは既に長期に渡りCPUに内蔵されており、Intelもi7から内蔵されていますのでメモリアクセス方法はかなり固定されます。マッピングテーブルに関して実は資料が公開されてる場合もありまして、AMDに関してはBIOS and Kernel Developer’s Guide [amd.com]を参照すれば詳しく載っています。
そもそも、攻撃対象が判明してるなら、電源投入直後に書き込まれる内容を元にどのバンクが割り当てられたか各々のメモリが判別可能と思われます。# 極論、対象のどのスロットに差し込まれてもOK、それ以外だったら無効化される程度の自由度さえあればOK(むしろ発覚させない為にその方が好ましい)。
また現行メモリはヒートスプレッダが装備されるケースもあり、その際は物理的に基盤パターンやチップを隠蔽可能となります。この場合別にDRAMモジュールの内部に実装する必要すらなく、隙間から見える形さえ気にすればある程度堂々と仕込めます。例えば片面は本物のDRAMで、反対側のDRAMは偽装されたROMと高周波デバイスのような形ですね。BGAなら、足の本数もわからないでしょうし
攻撃手法として今のPOSTコードやBIOSはまだASLRの様な所まで辿り着いていないのではないでしょうか?でしたら、本物のBIOSが起動する前や途中に独自の攻撃コードをスタックオーバーラン等のようなアドレス書き換えの要領で起動させ、ハイパーバイザとして起動後に本物のBIOSのように振舞ってしまえば外部からは簡単には判らなくなります。そして後の全てのコードは攻撃者のハイパーバイザ上で稼動するのでお好きに煮るなり焼くなりすれば良いのです。場合によっては、POSTコード・BIOSがキャッシュに全て収まってしまうので実際には無理という可能性もありますが・・・
もちろん、言う程この手法は簡単ではないでしょうね。少なくともメモリに使われる信号を読めて改竄する必要がありますし、本当に可能なのか?記憶領域の問題等がありますから。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
ぱらのいや (スコア:5, 興味深い)
・組込機器のチップの外部調達が増えている。
・悪意のあるチップ設計者によって、余計な機能が組み込まれるかもしれない。(機器を停止したり、情報を外部に転送したり)
・各ブロックが互いを信用しない構成をとり、不正な動作を検出・停止する必要がある。
・回路規模は数%増えるかもしれないが国防関係者なら評価してくれるだろう。
つまり……
中国やイスラエルの情報収集機関が、情報を横取りしたり機器を強制停止する蟲を仕込む*かもしれない*から対策しておけ、という事でしょうか?
(個人で行っても旨味はないよね。 愉快犯ならありえるけど経歴を棒に振る程の喜びが得られるものなの?)
notice : I ignore an anonymous contribution.
Re: (スコア:2, おもしろおかしい)
DRAMにだってやろうと思えば、ウィルス入れられるよね。
政府調達が無茶苦茶になってきてるから、確かに国防レベルだと
心配した方がいいと思う。
Re: (スコア:-1, フレームのもと)
バカは引っ込んどけ。
Re: (スコア:0)
DDR3とかだと、どのOSに刺さるか大体解るしだろうしね。
1Gチップに512バイトほど不正コードを突っ込んで、ある種の
条件でのみアクセスさせるってのは可能だよ。
Re: (スコア:0)
電源供給なしでも内容を保持できるものは DRAM とは呼びません。
Re: (スコア:1, 興味深い)
君がDRAMと思っているものに
攻撃者がROMでもフラッシュメモリでもなんでも積んでる
って可能性を考えたことはないのかい?
Re: (スコア:0)
DRAM に見せかけたなにかを作れるとして、それをどうやって活用するかは難しいですね。
DRAM に書かれた内容をすべて WiFi で外部に送るとか?
Re:ぱらのいや (スコア:1)
POSTコード辺りはまだ固定値だと思うので、初期化時にBIOSを改竄>ROM領域から仮想マシン注入>正規OS起動とかでしょうかねぇ?
Re:ぱらのいや (スコア:4, 興味深い)
DRAMの場合、1本だけ使うのならともかく、複数挿して使う場合に
どのようにメモリの中身をマシンから見えるようにするかは実装依存ですよね。
極端な話、データバス側をてんでバラバラに接続してても各ビットが確実に読み書きできれば問題ないし、
SDRAMのようにメモリチップ内部が高速アクセスのため複数のバンク構成を採っている場合でも、
どのアドレスにどのスロットのどのバンクを割り振るかはホスト側で決められることで、
それをDRAM自体が知っている必要は全くない。おそらく物理アドレスと仮想アドレスの関係も知らんでしょう。
確かにメインメモリ上にアドレス変換テーブルは展開されているでしょうが、どのアドレスにそれが来るのか、
おそらくDRAM側では見当もつかないだろうと思います。それをチェックするロジックはかなり大規模になるでしょう。
当然、DRAMとしては貴重な回路面積を多量にもっていかれて容量が減ってしまいます。
しかも確実にそのチップに変換テーブルが載るかどうか確実ではない。
その上、たいていのCPUはキャッシュを持ってますから、正確にデータの書き換えられた履歴を追っかけるのも難しい。
そう考えると、確実にどう読まれるか予想できるROM上のファームウェアと比較して、苦労の多さに比較して
得られるモノは少ないので、何が書かれるか分からないDRAMのほうに何か仕込むのは難しいと思いますよ。
Re:ぱらのいや (スコア:1)
まず、私が想定してるのは単なるDRAMチップでなく、DRAMモジュールを想定していました。
現行のPCを攻撃ターゲットとした場合、CPUとメモリコントローラーに関しては種類が限られます。
特にAMDは既に長期に渡りCPUに内蔵されており、Intelもi7から内蔵されていますのでメモリアクセス方法はかなり固定されます。
マッピングテーブルに関して実は資料が公開されてる場合もありまして、AMDに関してはBIOS and Kernel Developer’s Guide [amd.com]を参照すれば詳しく載っています。
そもそも、攻撃対象が判明してるなら、電源投入直後に書き込まれる内容を元にどのバンクが割り当てられたか各々のメモリが判別可能と思われます。
# 極論、対象のどのスロットに差し込まれてもOK、それ以外だったら無効化される程度の自由度さえあればOK(むしろ発覚させない為にその方が好ましい)。
また現行メモリはヒートスプレッダが装備されるケースもあり、その際は物理的に基盤パターンやチップを隠蔽可能となります。
この場合別にDRAMモジュールの内部に実装する必要すらなく、隙間から見える形さえ気にすればある程度堂々と仕込めます。
例えば片面は本物のDRAMで、反対側のDRAMは偽装されたROMと高周波デバイスのような形ですね。
BGAなら、足の本数もわからないでしょうし
攻撃手法として今のPOSTコードやBIOSはまだASLRの様な所まで辿り着いていないのではないでしょうか?
でしたら、本物のBIOSが起動する前や途中に独自の攻撃コードをスタックオーバーラン等のようなアドレス書き換えの要領で起動させ、
ハイパーバイザとして起動後に本物のBIOSのように振舞ってしまえば外部からは簡単には判らなくなります。
そして後の全てのコードは攻撃者のハイパーバイザ上で稼動するのでお好きに煮るなり焼くなりすれば良いのです。
場合によっては、POSTコード・BIOSがキャッシュに全て収まってしまうので実際には無理という可能性もありますが・・・
もちろん、言う程この手法は簡単ではないでしょうね。
少なくともメモリに使われる信号を読めて改竄する必要がありますし、本当に可能なのか?記憶領域の問題等がありますから。