バンクーバー発 -- ニュースの見出しを飾ったのはCharlie Miller氏だったかも知れないが、2009年のCanSecWest Pwn2Ownコンテストの勝者は、文句なしに「Nils」とだけ名乗るこれまで無名だったハッカーだ。
完全にパッチを適用した、デフォルト設定の3つの主要なウェブブラウザ(Microsoft Internet Explorer、Mac OS X上のMozilla FirefoxとSafari)をすべて破った1日後、Nils氏は私のインタビューに応え、同氏の動機と、より大きな報酬のために脆弱性を売ることを選ばなかった理由について語った。また、同氏が大学院を終えた後の就職先を探していることにも話が及んだ。
--それで、お名前は?
Nils氏: 名前はNilsです。私は25歳で、ドイツのUniversity of Oldenburgの学生です。私は今、計算機科学の修士論文を書いているところです。
--名字を名乗るのに消極的なのは何故ですか?今回のことで有名になることには興味はないということですか?
実のところ、私はニュースを飾るために参加しました。私は9月に大学を修了する予定で、就職先を探しています。私はここにネットワーク作りと、(Pwn2Ownの場を使って)私ができることを示すために来ました。ここには私を雇ってくれそうな人たちが集まっているからです。
フルネームを晒してしまうことの問題は、あらゆる種類の人が私に脆弱性を売らないかと連絡を取ろうとするということです。私は変な人々にあの情報を売るつもりはありません。私はバグには市場価値があることを理解していますし、これまでにもバグを売ったことがありますが、TippingPoint ZDIを通じてだけです。これは、バグをベンダーに報告してもらい、バグが修正されて欲しいからです。
--高く売ることもできる「価値の高い」バグを安く譲ったと言う人もいますが・・・
脆弱性に高い値段を付けるのは、それらを修正することに興味がない企業や組織だけです。私はそれに与したくはありません。私は自分が見つけたバグを修正して欲しいのです。この(CanSecWestでの)2日間、私はMicrosoftやMozillaのようなベンダーと話をし、これらのバグの修正に取り組むことができました。
(参照:Charlie Miller氏「無料のバグをなくそう」)
私は、変な組織にバグを売ることには興味がありません。そういう人たちは高い値段を払いますが、彼らはバグを修正することに興味のない人たちでもあります。
--あなたの専門はブラウザの脆弱性ですか。
むしろ、専門はクライアントサイドのバグです。私は、PDFリーダーとJavaの、多くのクライアントサイドのバグを(ZDIを通じて)報告しています。しかし、私はブラウザの問題について調べるのが好きです。私が報告したバグの多くはブラウザのもので、IEもFirefoxもSafariもあります。
--あなたの成果について振り返ってみましょう。あなたは、これらのバグを悪用することについての難易度に、10点満点で何点をつけますか。Mac OS X上のSafariから始めましょう。
あのバグについては、5点を付けます。Mac上のSafariが難しい標的だというわけではなく、脆弱性の種類の問題です。あまり話すことはできませんが(カンファレンススポンサーとの間で結ばれた守秘義務契約のため)、あのMacのバグを見つけるのは大変でした。Mac向けの攻撃コードを書く部分は、簡単です。
Dino(Dai Zovi氏)は、講演(.pdf)の中で素晴らしい発言をしています。「Macで攻撃コードを書くのは楽しい。Windows Vistaで攻撃コードを書くのは大変な仕事だ」という言葉に、私はまったく賛成です。
Mac OS X Leopardではランダム化が適切に実装されなかったので、攻撃コードを動かすのは非常に簡単です。Snow Leopardで彼ら(Apple)がどう対処してくれるのか、楽しみにしています。
--Windows上のFirefoxについてはどうですか。
訂正させてください。あれは、Mac OS X上のFirefoxの脆弱性と、それに対する攻撃でした。あのバグはWindowsにも影響がありますが、実際のところ、Windows上で信頼性のある攻撃コードを書くのはずっと大変でしょう。それが、私がMacのFirefoxを対象にした理由です。このバグについては話すことはできませんが、ASLR(Address Space Layout Randomization)とDEP(Data Execution Prevention)のため、これをWindowsで本当に悪用するのは難しいのです。Macでは、簡単にそれを利用し、攻撃を成功させることができました。
この理由から、この攻撃の難易度は3点というところでしょう。脆弱性はいいものでした。掌握してコードを実行するだけです。ただコードをメモリに置けばいいだけです。スプレイすれば、コードの場所は予想できます。Mac OS XにはASLRやDEPは存在しないため、簡単に(指を鳴らす)実行でき、うまくいきます。