coding, photo, plant and demo

*webkitの脆弱性がとんでもない金になるらしい

tech webkit 20110530 001547
何気なくBlackHatのスライドを見ていた。
すると、とんでもないことが書いてあった。

Popping Shell on A(ndroid)RM Devicesより、
webkitの未公開の脆弱性を発見すれば、$35k~$95k、1$80円換算で280~760万円の相場らしい。

凄いな、年に1,2個脆弱性を見つければ、食っていけるじゃん。
そりゃハッカー頑張っちゃうよ。

このスライド、後半に書いてあることも凄い。Android2.1だと特定のJavaScriptを踏むだけで、webkitの脆弱性から任意のコードを実行、つまりremote shellを起動、さらにlinuxの脆弱性も突いていてroot権限で動くという最悪コンボが実現可能。

それはつまり、悪意のあるページを踏むだけで、例えば個人情報を丸ごと抜かれたり、勝手にメールを送信したり、勝手に何かをインストールして実行されたり、更なる攻撃の踏み台にされたり、二度と起動できなくしたり、ということが、使用者の気づかない内に可能ということ。
なるほど、それは数百万円の価値はあるかもしれない。むしろ安いくらい。

勿論この脆弱性は既にwebkitでは修正されているし、Android2.2からはそれが取り込まれているので問題ない。けどsecurity patchも適用されていないAndroid2.1以前は危険なわけだ。iPhone等もブラウザにwebkitを使っているので、アップデートを怠っていると大変なことになりかねない。


ちなみにこのスライドの作者はSamsungの研究所にお勤めらしい。
ブログは http://imthezuk.blogspot.com/

にしても、このスライドを見てハッキングの歴史が凄いことになっていてびっくりした。
NXビットがあろうと、return-to-libcでshellを起動できたり、RoP(Return Oriented Programming)で任意のコードの実行可能性があるとか、恐ろしすぎる。ただ、スライドだとrwxなメモリにコピーして実行する作戦なので、それはそんなメモリ空間を用意してしまったAndroidがアホすぎるという気がするけど *0

WindowsだとASLRがあるので、ret2libcは普通に考えたら無効化できる。ただ、アプリ自身も配置をランダム化できなければ、RoPは完全には防げないから、安全とは言い切れない。

てかさ、根本的にスタックにリターンアドレスや例外ハンドラを載せるという構造がダメなんじゃないの?命令アドレス専用スタックを用意して、callとretや例外フレーム生成命令以外ではそれにアクセスできないアーキテクチャなら、まずexploitは不可能に思えるけど。
それとも、そういったアーキテクチャでも同様に制御を奪われる可能性はあるのか?


参考
ハッキング・コンテスト「Pwn2Own」開催――iPhone、Safari、IE 8、Firefoxが初日に陥落
去年はChromeだけ生き残った。

Pwn2Own 2011: Day 2 - iPhone and BlackBerry hacked
iOS4.3からASLRを導入するもSafariがexploitされてしまった。prelinkとか言ってASLRの真逆を行ってロードを高速化しているAndroidはどうなんだろ。ソース丸見えだし普通に考えたら脆すぎるけど、逆にメーカーごとにビルドしてて、いい感じにfragmentしてて、汎用的な攻略は面倒って事だったりする?
Androidはjavaで書かれている部分が多いから、ASLRを導入してライブラリさえRoPから守れば結構硬いと思うんだけどなあ。やらないんだろうか。

中国発のサイバー攻撃に使われたIE脆弱性--エクスプロイトコードが出回る
中国のハッカーはIEの脆弱性を突いてバックドアやらVNCをGoogle社内に仕込んだらしいというのが、前回の騒ぎ。
*0 : と思ったけど、dalvikやv8がJITを使う以上、必ずrwxなメモリが存在するのであった。そしてそこが固定アドレスなら、攻撃者にとってはかなり攻略が楽なシステムである

11.06.12 17:53 morita
ぶっちゃけもうプロセス分離+サンドボックスないとムリっす。根本的にまずいのは unsandboxed でコードを動かすことだとおもいます。
11.06.17 00:38 mtm
ですよねえ。
ただ、OSにプロセスの権限を落とす仕組みがないと攻撃者から見たらサンドボックス+プロセス分離されててもあまり関係ない気がするので、まずはまともなOSが必要最低条件かな、という気がします。
コメントする