バンクーバー発 -- CanSecWestセキュリティカンファレンスで、私はCharlie Miller氏と話をする機会を得ることができた。同氏はSafariのコード実行脆弱性を利用して、完全にパッチを適用したMacBookに侵入した。
われわれはウェブブラウザのセキュリティの現状、脆弱性市場、現代のオペレーティングシステムでの耐攻撃措置の必要性について議論した。
--今回の脆弱性について、話せることはありますか。
Charlie Miller氏:あまりありません。コンテストのルールの一部として、私は技術的な詳細に関する守秘義務契約に縛られています。あのコンピュータ(MacBook Air)には、完全にパッチが適用されていたということは言ってもいいでしょう。使った攻撃はSafari 4に対するものですが、これはSafari 3でも使えます。本当は、私はこのバグを去年のPwn2Ownの前に見つけていたのですが、当時はこのバグを悪用するのが難しい状況でした。去年のCanSecWestでは2つのバグを知っていましたが、攻撃コードは1つしか持っていませんでした。去年のルールでは、勝てるのは1度だけだったので、2つめのバグは取っておきました。結局今年になってもそのバグは残っていたので、それを利用するコードを書き、それを今年使ったのです。
--Safari for Windowsでも有効なのですか。
分かりません。調べていません。
--脆弱性をAppleに報告することは考えなかったのですか。
私は決して無料でバグを提供することはしません。私は新しい運動をしています。これは、「NO MORE FREE BUGS(無料のバグ提供をなくそう)」という運動です。脆弱性には市場価値があるため、がんばってバグを探し、それを利用するコードを書き、それを無料で渡すことには意味がなくなっています。Appleは同じ仕事をする人たちに給料を払っているので、われわれはこの仕事に価値があることを知っている訳です。無料でのバグ提供はなくさなくてはなりません。
--今回のSafariのバグはどのくらいの価値がありますか。
おそらく、私が受け取った5000ドル以上の価値があります。しかし、例のIE 8の脆弱性(Nils氏によって別に突かれた脆弱性)に比べれば何十分の1でしょう。私は5000ドル以上手に入れることもできましたが、自分の働いている会社(Independent Security Evaluators)のために、ここに来て私ができることを示してみせ、ニュースの見出しになるのもいいと考えました。
--なぜSafariだったのですか。IEやFirefoxでなかったのは?
簡単なことです。Mac上のSafariの方が攻撃が簡単だからです。Windows上のいくつかの技術は攻撃を成功させるのを難しくしていますが、Macではそういうことはしていません。Macをハッキングする方がずっと簡単です。曲芸をして、Windows上で見られる耐攻撃措置を相手にする必要がないからです。
これは、対象となるプログラムではなくオペレーティングシステムの問題です。Mac上のFirefoxも比較的簡単です。その下にあるOSに、攻撃に対抗する仕組みが組み込まれていないからです。
(参照:10 questions for MacBook hacker Dino Dai Zovi)
私が使ったSafariに対する攻撃では、コードをプロセスに埋め込むと、そのコードの場所を正確に知ることができます。ランダム化されたりはしません。そこにジャンプすれば、コードはそこにあり、そこから実行することができます。Windowsでは、コードは現れるかもしれませんが、それがどこにあるか分かりません。コードの場所にたどり着いたとしても、実行できません。これら2つの障害は、Macにはないものです。
3つすべてのブラウザ(Safari、IE、Firefox)にバグがあるのは明らかです。コードを実行できるセキュリティホールがあちこちにあります。しかし、それは公式の片側の辺に過ぎません。もう一方の辺には、それを悪用するということがあります。Mac OS Xでは、そこにほとんど障害がありません。
--バグを見つけるのと、攻撃コードを書くのではどちらが難しいですか。
それは変わりつつあります。昔は、バグを見つける方がずっと難しかったのですが、一度何かが見つかってしまえば、信頼できる攻撃コードを書くのは簡単でした。今では(ソフトウェア会社は)賢くなっており、バグを悪用するのはずっと難しくなっています。最近ではよいバグを見つけるのは難しくなっているのですが、それを利用し、対抗措置を迂回するのはそれ以上に難しくなっています。それが、Dino(Dai Zovi氏)と私がよいチームである理由です。彼は攻撃コードを専門にしており、私はよいバグを見つけるのに集中できます。