ブラックリストは役立たない

数週間前、私はJon Gallowayと、アンチウイルスソフトウェアの有効性について熱い議論を交わしました。アンチウイルスソフトウェアなんか最低だ、そもそも全然使い物にならない、というのが私の意見で、私は今までもそう主張してきましたたし、Jonにもそう言いました。

ウイルススキャンによるパフォーマンスの低下(ディスクのパフォーマンスが50%低下し、CPUスピードも数パーセント落ちる)は、取るに足りないプロテクションや33%の検出率と引き換えにするには割に合いません。保護されているという錯覚に陥ってしまうことも、非常に危険だと思います。

考えてみてください。どうしてMacユーザやUNIXユーザはアンチウイルスソフトウェアを実行しなくてもよいのでしょう? それは必要がないからです。彼らは管理者として実行しません。残念ながら、Windows上では標準ユーザとして実行することの代償はシビアです。MSは時期尚早にアーキテクチャに関して愚かな決断を下し、10年以上にわたってそれを存続させてきました。ただ、実際には恩恵もあります。標準ユーザとして実行していれば、ウイルスやマルウェア、そしてトロイの木馬などによる攻撃はほとんど受けません。

私は、理にかなっていることや機能することに対して、お金や時間、努力を費やす価値があると信じています。標準ユーザとして実行することも、そういうことに含まれます。結局のところ、アンチウイルスソフトウェアはブードゥー教のまじないのようなもので、これに無駄な時間を費やすことは避けるべきでしょう。

公平を期して言えば、アンチウイルスソフトウェアは私が思っていたよりは効果があるようです。2007年8月のAnti-Virus Comparatives(訳注: リンク切れ)によると、最も低い検出率は90%で、最高は99.6%でした。

しかし、この結果を導き出したテスト方法(訳注: リンク切れ)に関して私は疑問視しています。履歴に記録されたすべてのウイルスやマルウェアを使ってテスト用のライブラリをビルドするとしたら、検出率はバカらしいほど高くなるはずです。でも、もしKaperskyが3、4年前とは言わないまでも1年前のウイルスを検出できたとして、何のメリットがあると言うのでしょう? 大事なのは新たな脅威に対する検出率なのです。一番危険なのは、長く忘れ去られた古代のDOSのウイルスなどではなく、新しい不正ソフトだからです。アンチウイルスソフトの会社はこんな比較が好きですよね。「99.7%の不正ソフトを検出できます!」などというのは最高の宣伝文句になり得ます。でも一番下、脚注の陰に、4ポイントのサイズのフォントで書いてある残念なお知らせは、検出されるうち99.3%の不正ソフトは全く不適切で無意味なほどに古いという主旨です(アップデート: コメント欄でAndersが教えてくれたのですが、同サイトの11月27日付の”proactive/retrospective”テスト(訳注: リンク切れ)(pdf)では、ほんの1カ月前に出現した不正ソフトを利用していて、80%と33%の間というかなり低い検出率になっていたとのことでした)。

データを見てみましょう。Virus Radar(訳注: リンク切れ)の上位5番目までの不正ソフトのうち、6カ月以内のものは1つだけでした。しかし、12月4日から見てもっとも新しい(訳注: リンク切れ)ものはたった8日前のものでした。それも1つだけです。もしアンチウイルスソフトウェアが何かに突破されてしまうとしたら、アンチウイルスソフトウェアを全く使用していないのと同等の危険にさらされていることになります。

ここでは、これらの比較データが正確だと想定しましょう。勇敢なアンチウイルスチームは世の中すべての悪意のあるコードのうち99.7%を検出することができ、真実と正義とアメリカの名においてあなたを守ってくれるでしょう。しかし、まかせきりではダメです。シナリオに忠実でなければ機能してくれません。そう、以下のようなシナリオです。

1.最高で最も効率的なサードパーティ製のアンチウイルスソフトウェアをサブスクリプション方式で購入しましょう。ちゃんとインストールしてください。
2.リアルタイムのウイルスチェックによる重度のパフォーマンス低下を受け入れてください。
3.アンチウイルスソフトウェアをいつでも生真面目に最新状態にしておいてください(1時間ごと、毎日、それとも週1回?)。
4.インターネット上のウイルス、トロイの木馬やマルウェアが出現しペイロードが配信されるより早く、あなたが使用しているアンチウイルスソフトウェアの会社がシグネチャ更新を配信してくれることを祈りましょう。
バンザイ、これなら間違いっこありませんね。そして大きなトラブルに巻き込まれる可能性をたった0.33%(信頼するデータによっては20%)に抑えられるのです。問題解決です。

もしくは、標準ユーザとして実行すれば、それだけでトラブルに巻き込まれる可能性はゼロになり得るのです。ゼロです。少なくとも、トロイの木馬、マルウェア、ウイルスによるトラブル、という意味ですが。しかし、標準ユーザでは実行できない子ども向けプログラムがあること、標準ユーザとしてのプログラミング作業は難しいことから、Jonにはこの選択肢はありません。

このトピックについてJonと山ほど(文字どおり、山ほど)議論を繰り返した後、自分の見解はある信念に行き着くことに気づきました。

ブラックリストは役立たない。

つまり、アンチウイルスソフトは、本質的には見せかけのブラックリストに過ぎないのです。ブラックリストは不正なアプリケーションとそれら特有の署名バイトの内部リストを保守し、システムの中に不正なものを見つけると、代わりにやっつけてくれます。もちろん、ソフトの会社は、経験的法則だ、統計だ、などという宣伝文句で惑わすでしょう。要は(真顔で)こう言っているのです。「我々のソフトウェアはただのブラックリストではありませんよ。口紅を塗ったブラックリストです。美しくて、ピカピカで、何よりもキスしたくなるようなブラックリストですよ」と。

ブラックリスティングがいかに問題のあるセキュリティ対策であるか、くどくど書き始めたら止まりませんが、その必要はありません。私の旧友、Mark Pilgrimの誰も読んだことがない史上最強にラディカルなブラックリスティング脱構築論(訳注: リンク切れ)を見てみましょう。

JayのウェブサイトComment Spam Clearinghouseに、入手可能なものの中で最新かつ最も偉大なツールは、ドメインネームのマスター(ブラック)リストと、少数の正規表現だ、とありました。Jayや、リストに寄与した人たちを侮辱したくはないのですが、なんと古くさい! 信じられません。今この時を享受しようではありませんか。自分の子どもたちに、「皆がブログを始めたばかりの頃は、スパムのブラックリストは1枚の紙でおさまったんだよ」と話すのはいいでしょう。2、3列を使い、小さ目のフォントでリストを組む必要はあるかもしれないけれど、それでも1枚に印刷できたんだよ、と。あの頃は良かったですね。

そして良き日々は続かないものです。決して。ひと月も続きません。ドメインリストは息を飲む速度で増えていき、攻撃に備えるヒマもありません。あまりに膨大になり、ホスティングにリアルタイムの帯域幅を要するほどです。ダウンロードし続けていたら破産するでしょう。コードは無料でも、帯域幅はそうではないからです。何か事業計画はありますか。半年以内に必要ですよ。

そのうち、正規表現が自分たちのサイトにマッチすると文句を言う人が出始めます。あるいは、スパマーが実在のサイトをレポートしてリストに害を及ぼそうと、ニセのIDをセットアップし始めます。それら新規のレポートを手動でスクリーニングするのでしょうか。それでは対応し切れません。では、新規のレポートを手動でスクリーニングしない? それも問題でしょう。Whuffieシステムを使ってレポートを評価する? 機能する可能性はありますが、バランスが難しい上、意図的な操作をなくせるわけではありません。

どれも実際に行われてきました。全て過去に試みられたことなのですが、少しもうまくいかずただの無駄骨に終わりました。スパマーは日々新しいドメインを大量に登録し続けるので、まず対応が追いつきません。彼らはあなたよりも先にどんどん大きく、賢く、速くなっていきます。これは軍拡競争であり、あなたは負けます。その途中に犠牲者も出るでしょう。無知の傍観者たちが次々とブラックリストに載せられていくのです(ブラックリスト掲載に異議を唱えるプロセスを知っているから大丈夫ですって? そうですね、そのプロセスを悪用するスパマーがいなければ)。

このようにひたすら続きます。ここに挙げたのはほんの一部ですが、こちらから全文を読む(訳注: リンク切れ)ことができます。Mark同様、ブラックリストには私も怒りを感じています。なぜかって? それは、ふざけたブラックリストに手動で値を入力する時間を割かなくてならないからです。それに、リストそのものに全く価値がありませんし、全く同じことを翌日も、時計仕掛けのように規則正しく行わなければならないからです。何よりも、それが人間性の悪の部分を映し出す闇であることに腹が立つのです。

私は、ブラックリストに関しては、それなりの経験があります。スパマーのうち、ほんの数パーセントが私の”ナイーブCAPTCHA”を回避するリソースを持っており、彼らは生身の人間を雇ってコメントスパムを投稿してくるのです。ですから、私はまさにこのサイトのブラックリストに毎週URLを追加しているわけです。それは非常に不愉快で、有難いことではないのですが、必要なので仕方がありません。私はすべてのコメントを細かく精査していて、完全にスパムと分かるものや明らかに話題がズレているもの、下品なものについては、数は少ないですが削除させてもらっています。私はこの作業を”Webガーデンの手入れ”と呼んでいます。たくさんのコメントでWebガーデンを彩りたいのであれば、手入れに負荷をかけることは必要です。Joelがどう言おうと、大抵の場合、素晴らしい成果をもたらします。向上した設備があれば、仕事量は削減できるでしょうが、そこには常に何かしらの仕事が発生するものです。私はそれで構いません。強固なコメントエコシステムから得られる無数の利益は、わずかな保守の労力にも勝ります。

私は、手の込んだ分散型のクラウドソーシングのブラックリストにおいても、多少の経験があります。それは、ある種の同意された錯覚とも言うことができ、たくさんの手があれば仕事が楽になるかもしれませんが、根本的に破壊されたブラックリストのセキュリティモデルを驚異的に修復することはできません。先に特筆したように、私が維持している不愉快なブラックリストに対する真の問題と同じ問題をかかえることになるでしょう。世界で最も巨大な分散されたブラックリストでも、所詮、ブラックリストなのです。

最終的に、私はJonに謝罪すべきでしょう。かなりの精神的または物理的な代償ということを考えれば、アンチウイルスソフトウェアは、一応は機能します。どんなブラックリストにも言えるように、アンチウイルスのブラックリストを維持するために必要な労力は、すべての自由と時間を徐々に占領していくでしょう。哲学的に言えば、人の手によって、この厄介なリストを完璧かつ信頼のおける状態にしておくには、非常に大きな作業が必要であるということです。あなたが出来ることは、せいぜい、「もし110%の力を発揮できれば」とか「もしすべてを正しく正確に行えたら」といったようなことを願うことくらいです。それも毎日です。そして深く眠らないことです。なぜなら、翌朝、全く新しい厄介ごとであるホットバッチに直面することになるのですから。

もしブラックリストが唯一の選択肢であるのなら、是非、ブラックリストを使ってください。

コメントの投稿の問題に関しては、行き詰っています。CAPTCHAのバックアップとしてブラックリストを使用する以外、他に手段がありません。それに、コメントの究極の価値は、それが個人の意見であるということです。ですから、手動で手入れをすることが望ましいのです。しかし、アンチウイルスに関しては、他の選択肢があります。それもより良い選択肢です。標準ユーザとして実行すればいいのです。標準ユーザとして実行することは、アンチウイルスソフトウェアという概念がほとんど存在していないOS XやUNIXで、十分に効果的であるとういことが歴史的にも証明されています。

本来はこうあるべきではないですか? セキュリティをブラックリストモデルに頼るということは、それを使用し始める前に問題があると認めていることと同じです。しなくてもいいのに、なぜ、破壊されたアンチウイルスのブラックリストモデルを私たちは使用し続けるのでしょうか?