詳細不明部門より。
あるAnonymous Coward 曰く、
Intelチップの構造的欠陥を利用してローカル攻撃やリモート攻撃が可能であることを実演する講演が、今年10月にクアラルンプールで開催されるHITB(Hack In The Box)カンファレンスで行われるそうだ(Computer Worldの記事)。
JavaScriptやTCP/IPパケット攻撃、Javaなどを利用してこの脆弱性を突くことが可能で、講演ではJavaのよくある命令シーケンスを使ってJava Compilerを乗っ取るというデモも予定されている。この攻撃はOSにほとんど依存せず、デモはきちんとパッチがあてられたWindows XP、Vista、Windows Server 2003、Windows Server 2008、Linux及びBSDに対して行われるとのこと。なお、デモには含まれていないが、MacのIntelチップにも同様の脆弱性が存在する可能性があるとのこと(本家/.・講演概要)。
この講演を行うKris Kaspersky氏は、CPUの構造的欠陥をターゲットとしたマルウェアは既に開発されており、このようなエラッタがネットを通じた悪質な攻撃に利用されるのは時間の問題であるとしている。
脆弱性の内容はまだ公開されていないようだが、特定の命令シーケンスを実行させると想定外の挙動を示す、といったものなのだろうか?
本家の反応 (スコア:5, 興味深い)
仮想メモリの扱いに不備があればページ保護やセグメント保護が破られることはあだろうけど、侵入コードを書くとなったら難しいから、そこんとこを上手くやる工夫があるんじゃね [slashdot.org]とか、BIOSアップデートなんかでmicrocodeもアップデートできるよ [slashdot.org]とか、microcodeだけで解決しない問題もあるよ [slashdot.org]とか、CPUが仮想化されてる場合もあるから結局OS関係あるんじゃね [slashdot.org]とか、そんな感じの反響みたいです。
# そんだけなのでACで。
注意 (スコア:3, 参考になる)
Re:注意 (スコア:2, おもしろおかしい)
# ごめん。
親コメント
javascriptでローカル攻撃 (スコア:3, おもしろおかしい)
エラッタ多いですね…。 (スコア:2, 参考になる)
AMDのエラッタはどれくらいなんでしょう。TLBのエラッタは結構な大騒ぎになったみたいですけど。
想像しかできませんが (スコア:1)
・チップセットで回避できないのか
・IA32、IA64に共通の問題か
・コア数に依存しないのか
・NetBurstやCoreとかのアーキテクチャに依存しないのか
詳しく知りたいのはこのくらい?
Re:想像しかできませんが (スコア:4, 参考になる)
・BIOSで回避できるか
Y(Pen2以降Microcode読み込みで回避可能です。BIOS以外にCPUドライバや仮想化等で対策可能。
ただしサポート終了等で最新のエラッタ回避のMicrocodeが入ってないと実質的には回避不能。)
・チップセットで回避できないのか
N(CPUエラッタなのでチップセットはあまり関係ない。特定の組み合わせで起きるなら別ですが。)
・IA32、IA64に共通の問題か
Y&N(IA64のみのエラッタならIA32なら無関係等その悪用したいエラッタ依存です。)
・コア数に依存しないのか
Y(コア数が違うとエラッタが消える場合は依存しますが。)
・NetBurstやCoreとかのアーキテクチャに依存しないのか
N(アーキテクチャどころかリビジョン依存で環境依存は高いです、ただし数も膨大ですが。)
詳しいわけじゃないので間違ってる部分もあるかもしれないですが、上記の通りかと。
現実的には結構難しいかもしれませんが、バイナリコードを直接動かせる一般ユーザーが権限からの昇格を狙うなら結構危険かも。
まずはバイナリコード、次にJITといった中間コード系統、最後にスクリプトでしょうか?
# そのうち、一般ユーザーではJITやVM経由でしかプログラムを実行できなくなるのであった。
# もしかして、UACの一歩先はこうなのかしら?.NET以外のアプリケーションを動かす前に警告が出るようにとか。
誰も信じちゃいけない、裏切られるから。
私を信じないで、貴方を裏切ってしまうから。
親コメント
Re:いつも思うんですが (スコア:1)
もはや隠しコマンドの代表パターンw
親コメント
Re:いつも思うんですが (スコア:3, おもしろおかしい)
ということは、バージョンアップ後にバカの一つ覚えのように同じ脆弱性を突くと、
逆にこっちが自爆するような痛い目に会うということですね?
親コメント
Re:あなたはどぉれ?(-5,やめなさいってば) (スコア:1, おもしろおかしい)
intelにあるバグがきちんと再現できない互換CPUなんて
完全互換じゃないじゃないか!
っていう派。
# 昔聞いた覚えがあるなぁ
親コメント
Re:単なるJava JITコンパイラのバグの話では? (スコア:1, 参考になる)
最終的に動かしたいパターンのアセンブリコードが生成できるならなんでもOK(それこそJavaScriptやTCPスタックとかでも)なんです。
例えばPentiumのF00Fバグとか。
もしも対処が必要となった場合、その特定命令が実行されないようにするルーチン追加が必要になりますが、影響範囲が広いですし、速度低下やテスト工数が爆発する気がします。
# 速度低下の例で行くと同じくPentiumのFDIVバグとか
ただし、現在のCPUはマイクロコードによってBIOS/CPUドライバレベルで対処が可能ですし、
OSはマルチタスクが基本ですから、スイッチされたりして任意のパターンになる可能性が高いとはお世辞にも言えないかと。
ですが、注意はやはり必要だとは思いますす。
今後特定エラッタの脆弱性を突くようなバイトコードを各JIT向けに自動生成できる様になったら恐ろしいです。
# JITを使うのは最終的に多種多様なアセンブリコードが作成&結果が推測可能で、サンドボックス縛りがなければ同じバイトコードで多プラットフォーム対応できる点としても便利なのかなぁ?
親コメント