coding, photo, plant and demo

*Pwn2Ownのハッカー、Charlie Miller氏へのインタビュー

20090405 175146
http://japan.zdnet.com/sp/feature/07zeroday/story/0,3800083088,20390270,00.htm

ちょっと古い記事だけど面白かったのでメモ。

stackもheapも実行不可能で、textはroときたら、普通もう攻略は無理そうなんだけど、
それでも攻略する人がいるんですねえ。
カーネルのバグと組み合わせるのかな?

http://anchorage.2ch.net/test/read.cgi/bizplus/1237825081
によると、
107 名刺は切らしておりまして [sage] 投稿日:2009/03/24(火) 14:08:03 ID:iCro0TNF
WikipediaにはMac OS XはNXビットをサポートしてると書いてある
ttp://en.wikipedia.org/wiki/Executable_space_protection#Mac_OS_X
このプレゼンによるとライブラリアドレスのランダム化もやっているようだ
ttp://trailofbits.files.wordpress.com/2009/03/macosxploitation_source2009.pdf

109 名刺は切らしておりまして [sage] 投稿日:2009/03/24(火) 14:36:53 ID:iCro0TNF
ざっとまとめると
・VistaとLinuxはヒープとスタックの両方が実行不可だが、
 Mac OS Xはスタックのみ実行不可でヒープに書き込んだプログラムは実行可能
・VistaとLinuxはライブラリ、ヒープ、スタックの位置を動的にランダムに変えているが
 Mac OS Xはライブラリのみをインストール/アップデート時にランダム化するだけ

後で突っ込まれないように念のため付け加えておくと
・Linuxでも32bit版ではPAEを有効にしたカーネルでないとスタックは実行不可にならない。
 ほとんどのディストリビューションはデフォルトでPAE無効のカーネルをインストールする
・Linuxでprelinkを有効にしておくと、ライブラリ位置が変化するのは
 Mac OS Xと同様にインストール/アップデート時のみになる(手動で更新も可能)
 prelinkが有効になっているかどうかはディストリビューションによってまちまち
らしく、ヒープでNXを立てられないのが、macの弱点となっている模様。
てか、最近はアドレスのランダム化も当たり前ですか。
こうなると、素人目にはnativeで堕とすなんて不可能としか思えませんが…


それはそうと、この人、ここの発言が賢いと思った。

「ブラウザはあまりに複雑なので、間違いをなくすのはまず不可能です。あれだけのコードと依存関係があれば、完璧にするのは困難です。5年前には、今頃にはバッファオーバーフローの問題は解決されるだろうと言われていましたが、ごらんの通りそんなことはありません。バグは決してなくならないので、対抗措置や(攻撃に備えた)妨害の仕組みを作る方が賢いと言えます。」

ブラウザの仕様が枯れるのは何年後だろうか?
現在進行形のソフトウェアのバグを0にすることなどまず不可能。
それにプラグインのバグは防ぎようがない。

ということでchromeの実装手法が近い将来標準になるのだと思う。