AMOにおける審査とはいったい何なのか

■ 自作ソフト Posted by ひぐま (Higmmer) on 2010-02-09 at 23:17:04

◆共有テーマ: Firefox [コンピュータ]

昨日「Sage 1.4.5 に今も残る深刻な脆弱性について」書いたことを開発者ブログのコメント欄を通じて作者に連絡したところ「再現方法を教えて欲しい」とのことでしたので早速テストファイルを送りました。なので近いうちに修正版がリリースされると思います。と、そんなやり取りをしていた矢先、これまでサンドボックスに入っていたはずの本家Sageが、いつの間にかAdd-ons for Firefox (AMO)のサイト上で通常公開されてしまっていました。

AMO上で Sage 1.4.5 がサンドボックスから出されている様子

AMO上で Sage 1.4.5 がサンドボックスから出されている様子
(2月9日20時現在)

種明かしをすると、昨日のような日本語+(拙い)英語の長文エントリをSageの最新版が公開されたその日に書き上げることができるわけもなく、あれは先月24日にバージョン1.4.4がリリースされてから少しずつ書き進めていたものに1.4.5で更新された内容を加筆したものです。実は1.4.4において脆弱性が修正されていないことはリリース直後に把握していましたが、作者によると「Firefox 3.6 compatibility release following shortly」とのことでしたので公開は保留していました。ですが、恐らくバージョン1.4.5になっても脆弱性が修正されない可能性も十分にあり得ると踏んでいました。そして実際その通りになったわけです。

昨日書いた問題点のうち、不正なリンクURIを使った攻撃については発見者によって脆弱性の実証が可能なテストファイルを含む形で公開されていますし、それ以外に関しても(当時とは若干状況が違いますが)3年前に私がIPAを通じて報告した脆弱性の中に類似のものが含まれています。これが、先のエントリに「一体何を修正して何を確認したのか、大いに疑問を感じざるを得ません」と書いた所以です。

AMOに対する疑問

しかし、それ以上に今回疑問に思ったのは「AMOにおけるアドオンの審査体制はいったいどうなっているのか」ということです。

今回の経緯を見ていくと(かなり推測が入っていますが)、まずWizz RSS News Readerの作者であるMike Kroger氏に対してAMOのレビュアーから「2週間以内に脆弱性の修正のみならず『十分安全』な状態にし、かつ最新のアドオンポリシーに完全に従わなければサンドボックス送りにする」という警告が送られたことに端を発します(*1)。その高飛車な態度に彼はぶち切れてAMOから彼のアドオン(Sage-Tooを含む)を削除してしまったわけですが、本家Sageがサンドボックスに入れられたのも丁度その頃だったように記憶しています。恐らく一方だけを特別扱いするわけにはいかなかったからでしょう。

その後、Mike氏はAdBlock Plusの作者であり、脆弱性の発見者でもあるWladimir Palant氏のアドバイスに従って nsIScriptableUnescapeHTML#parseFragment によるサニタイズ処理を実装するわけですが、その過程で、そのメソッドだけでは数年前に修正したはずの別の脆弱性が再発してしまうことに気づきます(*2)。結果として彼はそのメソッドと独自の処理の組み合わせによって脆弱性を修正したバージョンを彼自身のサイト上で公開しました。

一方、本家Sageの作者は、単純に nsIScriptableUnescapeHTML#parseFragment を採用しました。そして既に報告されていた内容を確認すれば簡単に発見できたはずの脆弱性を見過ごし、それを「security improvements」と称してリリースしました。

――今日現在、前者はAMOから削除され(本人が削除したわけですが)、後者は晴れてサンドボックスから出て通常公開されています

ここから分かることは、AMOのレビュアーと言われる人々は実際にそのアドオンに問題があるかどうかには殆ど関心がなく、もっぱら機械的に「○○メソッドを使っていればOK」「△△メソッドを使っていればNG」という白黒判定しかしていないのではないかということです(*3)。実際、Bugzillaで公開されているファイル[ZIP]を使えば1分で発見できる脆弱性を見過ごしているわけですから。

勿論、星の数ほどあるアドオンをいちいち隅から隅までチェックしろなどと言うつもりはありません。しかし、何かの理由があって一度サンドボックス送りにしたアドオンを再び通常公開するときくらいは、もう少し慎重に検証した方がいいのではないでしょうか。

そして、nsIScriptableUnescapeHTML#parseFragment の問題点を把握してもいないのに他人のアドオンに口出しするのみならず、レビュー方針全般にも影響を与えていると思しきWladimir Palant氏とはいったい何者なのでしょうか。そんなに偉い人なのですか(誰か教えて下さい)。

ましてや広告ブロックは「他人の権利を踏みにじる行為」と考えているMike氏にとって、そんなアドオンを作っている人間から(中途半端に間違った知識で)文句を付けられたことには相当腹に据えかねるものがあったとしても不思議ではありません(勝手な想像です、念のため)。

(*3) なんとタイムリーなことにこんな事例を発見 → Latest topics > evalが危険でそれ以外の方法が安全だと思ってる人へ - outsider reflex

私が Sage++ (Higmmer's Edition) をAMOに登録しない理由

かく言う私は、これまで一貫してこのひまグをSage++の唯一の公開場所としています。Sage++はもともと本家Sageに「フィードを新しいタブで開く」という機能を付け加えたことに端を発し、それが本家Sageに脆弱性が発見されたことでこちらも対応を余儀なくされ、そんなこんなでずるずると続いて今に至るわけですが、元を正せば「他人のアドオンを自分の好きなように改造しただけ (=Higmmer's Edition)」に過ぎないものを、あたかも自分の成果物であるかのようにAMOに登録するのは違うと思ったこと、それがその理由です。

そしてもうひとつの理由として、AMOの中の人やそれに関連する動きに振り回されたくないという思いがあります。今回の一連の動きを見て、その思いを更に強くしました。

ですがユーザーの方にとってみれば「AMOへの登録を拒んでいるひぐまは信用ならん、奴が作ったアドオンなど使いたくない」と思われても仕方ないでしょう。ましてや作者は過去にこんな問題を起こしたこともある人物なわけで、それは当然の判断だと思います。実際、piro氏も指摘している通り、Firefoxのアドオンとは「Firefox自体を改造するパッチ」そのものであり、ひとつ間違えば深刻な問題を引き起こす可能性を常に内包しているわけで、その導入・使用に当たってはどんなに注意してもし過ぎることはありません。

ですから、一般論として、信頼に足ると思われる複数の人物によるチェックを受けたアドオンが登録されていると考えられるサイトを選択するのは賢明な判断です。少なくともこんな野良サイトに転がっている野良アドオンに手を出すことに比べれば、そのリスクはずっと低いでしょう。

ですが、そんなチェックを経たはずの、しかもサンドボックスからも出されているアドオンの中に、既に報告済みの脆弱性が何年にもわたって放置され続けているものが含まれている――という事実は知っておいた方がいいでしょう。

……なんだか書いているうちに「ひぐまは本家Sageを潰したいと思ってる」と受け取られかねない文章になってしまいましたが、そんな意図は毛頭ありません、というか逆に潰れて欲しくありません。膨大な数に上ると見られる本家Sageのユーザー達が乗り換え先を探してSage++に雪崩れ込んできたりでもすればとてもじゃないですが対応できるわけありませんから(^^;

トラックバック

この記事について書く(FC2ブログユーザー)
※言及リンクの無いトラックバックは無効です

PageTop▲

コメント

PageTop▲

コメントの投稿

 
 
 
 
 
 (後で編集・削除したいなら必須)
 
  

PageTop▲