お使いのブラウザは最新版ではありません。最新のブラウザでご覧ください。

CNET Japan ブログ

不具合と信頼性

2005/09/07 12:54
  • このエントリーをはてなブックマークに追加

プロフィール

kondo

人力検索やダイアリー、アンテナなどユニークなサービスでおなじみの「はてな」。そんなはてなを率いる近藤淳也氏が、ネットのコミュニティやサービスのあり方について独自の視点で切り取ります(このブログの更新は2006年2月9日で終了しました)。
ブログ管理

最近のエントリー

2003年1月、国内では初期のブログサービスとしてはてなダイアリーベータ版を開始しました。それまでのブログやウェブ日記には無いキーワード機能などを備えたはてなダイアリーは、無料で利用できることもあり当初から利用申し込みが多く、100名のベータテスター枠はすぐに埋まってしまいました。

初期のベータテスト段階では、システムにはまだバグや脆弱性が含まれていました。本来動作するはずの機能がうまく動作しない、という不具合に加え、ログイン中のユーザーのCookieを抜き取ることのできるXSS(クロスサイトスクリプティング)脆弱性が一部に存在していました。

XSS脆弱性は、ユーザーがHTMLやCSSを記述可能なサービスについてまわる問題で、しっかりとした対策を行わないと悪意のあるJavaScriptを動作してアカウントののっとり行為などが可能になってしまいます。

正直なところ、当時の社内ではXSS脆弱性について少し無知な部分がありました。XSSという言葉や、JavaScriptを実行してCookieを盗むことによる危険性については理解していましたが、JavaScriptが実行できるあらゆる方法についての知識や、それらを防ぐためにどう対処することが推奨されているか、といった知識は乏しかったのです。

XSS脆弱性は主にユーザーからの報告により発覚し、さらに社内のそうした状況を見兼ねたユーザーからは、「大丈夫か?」といった意見を頂きました。

社内では、寄せられた脆弱性情報を元に、安全性の確保のための修正作業を優先的に行いました。その中には特定の文字列を削除する、といった単純な処理だけでなく、HTMLタグを全てリストアップし、その中から安全なものだけをピックアップして利用可能なタグと属性のホワイトリストを作成する、といった抜本的な作業も含まれていました。

こうした作業を進めると共に、作業の内容やその結果を随時はてなダイアリー日記というブログ上で公表していきましたが、それでもまた新たな脆弱性が発見され、それを修正する、という作業が何度か続きました。

作業が完了するまでの間、ブログや掲示板上では多数の批判的な意見や不安を煽る書き込みなどが増加しました。こうした書き込みで、どうしても社内は暗い雰囲気になってしまいます。自分たちのやっていることが正しいのかどうかすら不安になる時もありましたが、こういう時にやれる事はただ、指摘された内容を完全に理解し、可能な限りの知識を吸収し、どうすれば克服できるかを理性的に考え、答えを出していくしかありません。自分たちの無知を反省しながら、同じ過ちを繰り返さないよう様々な仕組みを順番に構築していきました。

こうした作業を何度か繰り返して数日間ほど経った頃に、脆弱性の指摘を頂くユーザーからの声に変化が表れました。これまで批判的な意見ばかりだった中から、「もう少しです」とか「きっとはてなならすぐに直せます」といった前向きな意見が交じるようになったのです。そして、様々なシステムの抜本的な変更を行い、既知の脆弱性を全て修正した頃には、「はてなは安全だ」といった書き込みすら登場していました。不安や怒りの一部は、信頼に変わったのです。

不具合の有無よりも重要なこと

この体験から僕たちが学んだことは、場合によっては「不具合が存在するかどうか」よりも重要なことがあるということです。確かに不具合や脆弱性は無いに越したことはありません。しかし、「あるバージョンのInternet Explorerでは、スタイルシート内で"@i"と書くだけで外部スタイルシートを呼び出すことができ、外部スタイルシート内でのJavaScript実行が可能になる」といった未知の脆弱性に対して、事前に完全な対策をすることなど不可能です。

インターネット技術は日々変化して複雑化しているわけですし、「これからも未知の不具合や脆弱性が発見される」ということを出発点にした方が現実的な場合もあります。こうした事実を前提に据えた場合に重要になるのは、サービス提供者が不具合や脆弱性にどのように対処するのか、そして、それらの情報がどのように公開されるのかではないでしょうか。

はてながXSS脆弱性を修正し信頼を得る事ができた理由は、可能な限りの力で修正に取り組み、不利な情報も含めて作業に関する情報を隠さずに公開したからではないかと考えています。

はてなダイアリー日記のように、サービス運営会社が直接サービスについてのブログを運用する事例は以前はそれほど多くはありませんでしたが、最近ではこうしたブログが随分一般的になってきています。

少しはてな以外に目を向けてみると、例えばオープンソースソフトウェアにも同じようなことが言えるかも知れません。オープンソースソフトウェアはソースコードが公開されているため、システムの信頼性が高い、といったようなことがよく言われます。しかし、この信頼性を獲得している一番の要因はソースコードが公開されていること自体ではなく、不具合が発生した際に修正されるプロセスが公開されていることではないかと思います。

つまり、不具合が発覚すれば世界中のプログラマが修正パッチを作成して早期に穴は塞がれ、そのプロセスはメーリングリストのアーカイブとして公開されている、という安心感が他の製品を上回っているからこその信頼ではないかと感じます。

「不具合をゼロにする」事と同時に、「不具合対処のプロセスをオープンにする」事の重要性が増している気がします。

※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
運営事務局に問題を報告

最新ブログエントリー

個人情報保護方針
利用規約
訂正
広告について
運営会社