あなたのお気に入りのブラウザがさっきハックされた、でもご安心を

あなたの“お気に入り”のブラウザがどうやってぼくに分かるのか? でも、実はそんなことはどーでもよい。人気上位の4つのブラウザ、ChromeとInternet ExplorerとFirefoxとSafariがどれも、先ほど、見事にやられてしまったのだ。

今週(3/15-21)は今年の(第8回の)Pwn2Ownが開かれ、世界中から集まったセキュリティの研究者たちが、その腕前を競った。今回の勝負は、人気ブラウザの最新のビルドをいためつけること。成功すると巨額の賞金がもらえる。

ただし、その手口の詳細は、ブラウザのメーカーがその穴にパッチを当てるまでは公開されない。だから、あなたをはじめ、一般ユーザが被害に遭う可能性は限りなく小さい。

たとえばMozillaは、Firefoxのパッチを今日(米国時間3/20)じゅうに当てる、と言っている。ほかの3社は、本誌からの問い合わせにまだ返事をくれない。

Pwn2Ownにおける、ブラウザ侵犯(エクスプロイト, exploit)の定義は簡単明瞭で、“プログラムの標準的な実行パスを変えて、任意の命令を実行可能にすること”、だ。

言い換えると、ブラウザのセキュリティを破って、想定外のコードを実行させること。ただし、そのエクスプロイトはユーザとの対話をしてはいけないが、“ユーザが悪質なコンテンツを閲覧するために必要なアクション”、なら許される。

挑戦者は、自分がまだ触ったことのないマシンの上で30分の時間を与えられる。各マシンの上のオペレーティングシステムは、完全にセキュリティパッチが当てられている。というよりバグは数日間/数週間にわたる調査研究の結果見つけたものであり、当日のわずか30分で見つけるというものではない。

各ブラウザの結果はこうだった:

  • Internet Explorerでは4つのバグが見つかった(Windows 8.1上)
  • Mozilla Firefoxでは3つのバグが見つかった(Windows 8.1上)
  • Safariでは2つのバグが見つかった(OS X Yosemite上)
  • Chromeでは1つのバグが見つかった(Windows 8.1上)

(注記: “ふん!ぼくはOperaを使ってるもんね!”と言いたいあなた、Operaは2013年5月以降Chrome/Chromiumがベースなのだ。ChromeのバグはOperaにも影響を与えるだろう。)

なお、このカンファレンスに集まった研究者たちは、Adobe ReaderとFlashとWindowsに対するエクスプロイトもデモした。

Chromeに1つだけ見つかったバグは、このコンテスト始まって以来の最高賞金額11万ドルを獲得した。Chromeは犯しにくいブラウザとして悪名高いので、これまでも賞金額は最高だったが、今回は研究者のJungHoon Leeが、そのボーナスをもらうことになった。内訳は、バグを見つけたことに75000ドル、自分のコードをシステムレベルで走らせたことに25000ドル、そしてそのバグがChromeのベータビルドにもあったために追加の10000ドルだ。

JungHoonは、Safariのバグの発見にも貢献して50000ドル、IE11でも貢献して65000ドルを獲得し、一日で22万5000ドルを稼いだ。悪くない一日だったね。

2日間のコンペで、総額55万7500ドルが賞金として支払われた。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa


BlinkとServoとRust: ブラウザの次の進化の方向性が見えてきた

先週は、ぼくのようにブラウザを追っているブロガーにとっておもしろい週だった。週の終わりには、Internet Explorer 11がWebGLとSPDYをサポートするらしい、という話も聞いた。その前の火曜日にはMozillaがメールで、MozillaのCTO Brendan Eichへの電話インタビューの可能性を打診してきた。その話題は次世代のブラウザエンジンServoと、それが書かれているプログラミング言語Rustだ。しかしMozilla Researchが単独でこれらを手がけているのではなく、この、マルチコアプロセッサと異種混成的なアーキテクチャ向けに最適化されている新型エンジンをAndroidとARMに実装する作業には、Samsungが協力しているのだった。MozillaはこれまでServoについてあまり何も発表しなかったから、今こうやって大きく発表することは少々意外だ。

おもしろいことに、GoogleのChromeのチームが話をしたいと言ってきたのも、先週の火曜日だ。おかしなことに、そのときの広報の連中は、いつもと違って、詳しい話を何もしない(通常は、何の話かぐらいは事前に教えてくれる)。Googleのエンジニアリング担当VP Linus UpsonとOpen Web PlatformのプロダクトマネージャAlex Komoroskeは、WebKitをフォークしてWebKitベースの独自のレンダリングエンジンBlinkをローンチする、と言った。ぼくは自分が話を聞き間違っていないか気になって、何度も彼らに念を押した。WebKit開発の外部の人間ににとっては、GoogleがWebKitの本流を去るという話を、にわかには信じられない。一般的にWebKitは、ChromeとSafariのおかげでデスクトップとモバイルで大成功した、と見られている。それを独自フォークする理由が、思い当たらない。

でもBlinkは正しい

だからGoogleのWebKitフォークは先週のいろんな発表やリークの中で、いちばん話題になった。Googleはフォークの理由を純粋に技術的なものと言うが、WebKitは今でもAppleとGoogleが仲良くやっている数少ないものの一つだから、政治的動機も疑われる。しかもWebKitへのコード貢献量は、このところGoogleが最大なのに。

今後の成り行きを予言するのは早すぎるが、ぼく自身はかなり楽観的だ。たしかに、Webデベロッパが自分のコードを試験すべきレンダリングエンジンが一つ増えてしまう。でもChromeのチームによれば、それは彼らにとって“苦渋の決断”だった。Googleはレンダリングのスピードを上げたいが、WebKitは今いろんなブラウザで使われている。だから、WebKit本流における抜本的な改作は難しい。

Chromeのチームは、“ブラウザが複数あることと同じく、レンダリングエンジンも複数あった方が、今後の健全なイノベーションを刺激し、オープンなWeb全体のエコシステムの健康にとって良い”、と考えている。たしかに、そのとおりだろう。2008年にChromeが突然現れてから、ほかのブラウザのイノベーションは加速した。当時の競争の中心は、高速なJavaScriptエンジンの開発だった(そしてWebKitを使っているブラウザも、JavaScriptエンジンはそれぞれ違っていた)。BlinkとServoという新しい馬が走り出した今は、レンダリングエンジンも重要な競争の要素になり、そしてその競争は、より速くてより安定的なブラウザを求めるユーザとデベロッパに利益をもたらす。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))


WebKitの独占状態の是非

icon-goldOperaが自前のレンダリングエンジンの開発を停止し、オープンソースのWebKitエンジンを採用することにしたというニュースは各所から大いに注目を集めた。WebKitはGoogleのAndroid向けブラウザでも、またAppleのiOS向けブラウザにも採用されている。すなわちモバイル環境においては、既に事実上の標準の地位を獲得している。そしてさらにその触手をデスクトップ環境にも伸ばしつつあるところだ。既にChromeは、Tridentを採用しているMicrosoftのInternet Explorerや、MozillaのGeckoを採用しているFirefoxと比べてかなりのリードを獲得している。こうした状況の中で、頭に浮かぶ疑問がある。各社が独自のエンジンを開発して、競い合う環境の方が良いのか、それともWebKitを標準として各社に採用してもらう方向が望ましいものなのだろうか。

WebKitはオープンソースのプロジェクトであるので、誰でも開発に参加することができる。Google、Apple、Mozilla、Microsoft、Opera、あるいはブラウザ関連のさまざまな企業が参加しているので、標準的に採用される技術を即座に実装することができる。レンダリングエンジンが統一されることで、開発者の苦労は大いに低減されることとなる。レンダリングエンジンの違いによる細々とした表示スタイルの違いに頭を悩ませないで済むようになるわけだ。

Hacker Newsのスレッドにも多くのコメントが寄せられている。WebKitの開発に集中することで、多くのイノベーションが生み出されるのであれば、WebKit独占の状態は開発者にとっても利用者にとっても良いものとなる可能性があるという論調もみてとれる。

こうした独占に向けた流れに抵抗する筆頭はMozillaだ。これまで独自のGeckoエンジンおよび、その後継となるServoに多大なリソースを割いてきた。Mozilla CTOのBrendan Eich曰く、Mozillaの存在意義をかけて独占には抗っていくつもりだとのこと。また、MozillaエンジニアのSteve Finkは、モバイルかデスクトップかを問わず、WebKit独占を許してしまえばイノベーションが阻害され、少数企業によるプラットフォーム独占を惹起してしまうと述べている。そのような状況になれば、結局は各社利益を追求する迷惑な混乱に支配されてしまうことになるとも述べている。

しかしWebKitはオープンソースであるので、もし開発が滞ったりあるいは特定のステークホルダーが開発を政治的理由によって妨害するようなことがあれば、即時に開発の道筋を分岐させることができるので、独占による悪影響などはないと考える人もいる。

From Google's Chrome Launch Comic Book

但し、ウェブの世界ではこれまでにも「独占の弊害」を経験したことがある。IE5やIE6の時代(Netscapeが舞台を去り、そしてIEは6のリリースが2001年で、IE7が登場したのは2006年だった)には、完全に「停滞」状況になっていた。そうした状況の中、2004年あたりからはFirefoxがスタートし、そしてWebKitをベースとしたGoogleのChromeも2008年に登場してきたのだった。Chromeのミッションはレンダリングエンジンの標準化を試み、そしてJavaScriptの高速化を行うということだった。独占を崩す存在が登場してきたことにより、ウェブプラットフォームは現在のような応用環境に進化したのだとも言えるだろう。

「ウェブ」が今後戦っていく相手は?

Operaは、「独占状態は良くない」と主張しつつ、その言葉とは正反対にも見える道を歩むことになった。Operaもそれなりのシェアを獲得しているにも関わらず、「多くの開発者たちがWebKitのみをターゲットに開発をしているという現状があります」と述べ「先頭に立って独自の道を追求していくことにメリットは少ないと判断しました」とのこと。

Operaの選択した方向は興味深いものだ。結局のところ、ウェブ技術は各社のレンダリングエンジンの違いで競っていくのではないと判断したわけだ。今後の競合相手はネイティブアプリケーションであると判断したわけだ。Operaは「閉鎖的な“アプリケーション”に対抗して、オープンなウェブ技術を推し進めていくつもりだ」とのこと。その戦いを効率的・効果的に進めていくためにWebKitの採用を決めたということだ。

開発者と利用者の着眼点の違い

理想を言えば、さまざまなベンダーが「標準」に則った開発を行って、レンダリングエンジンの違いによる差異などを意識しないで済むというのが良いのだろう。同じコードは同じように表示されるべきだろう。しかし、「標準」を意識しつつも実装により細かな違いがあり、同じような表示を実現するなどということはできなかった。

但し、たいていの利用者はレンダリング方式の違いによるウェブページやウェブアプリケーションの見え方にはほとんど意識を払わなかった。利用者は利用可能な機能(ブックマーク、プラグイン、タブなど)によってブラウザを選択していただけなのだ。そうした機能の多寡や使い勝手によって、利用者はブラウザを切り替えてきたのだ(もちろんあまりに速度が遅いものなどは排除されることになる)。

Mozillaは、魅力的な機能を提供していくためには、ブラウザ全体を自ら手がけていく必要があると述べている。今やWebKitに対する唯一の対抗勢力と言っても良い存在になったMozilla陣営は、自らの言葉を証明するために、利用者にとって真に魅力的な機能を提供していく必要がある。

個人的には、「標準」に基づいた競合がある方がイノベーションサイクルも早まると考えている。ウェブ技術というのは、まだひとつのエンジンに集約してしまうような枯れた技術ではないと思うのだ。レンダリングエンジンが複数存在すれば、余計な作業も増えるだろうし、迷惑に感じられることすらあるかもしれない。しかし将来的にきっと実を結ぶ、「若い時の苦労」になると思うのだ。

原文へ

(翻訳:Maeda, H)