ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索

2012-03-14

はてなが信頼を回復するためにすべきもうひとつのこと

最近、はてなが提供するはてなブックマークのボタンによってユーザーの行動情報を第三者に販売していたことが問題になっている。問題の詳細については下記のページが詳しい。


これに対してはてなはすぐに販売をとりやめ、謝罪するに至った。このことはいくつかのニュースメディアでも取り上げられている。


今回のことはいちユーザーとして残念ではあるが、どのような判断によって今回のような事故が起きたかということを追及しようとは思わない。人間誰しも間違いはあるし、自らの過ちを率直に認めて謝罪する姿勢は好感すら持てるからだ。はてなの中の人には、今回の反省を活かして引き続き良いサービスの提供に邁進して頂きたいと思う。

とはいえ、一度失ってしまった信頼を取り戻すのが難しいのも事実である。謝罪だけでは足りない。そこで、筆者からはてなに向けてひとつ提言をさせて頂きたい。

そもそも何故今回のような事故が起きてしまったのか。それは、はてなブックマークボタンのブログパーツがプロプライエタリであり、はてなだけがそのJavascriptをコントロール出来るという点が今回のような問題を可能にしたという点は見逃せない。無料のプロプライエタリソフトウェアが気づくと勝手に広告を表示したり情報を送信するようになったというのと問題の構造は同じであると筆者は思う。このような問題が二度と起きないようにするということを示す最良の方法は、はてなブックマークのブログパーツをフリー(自由な)ソフトウェアもしくはオープンソースとして提供することである。そうすればボタンの設置者は自分でJavascriptをコントロールできるので、第三者にトラッキングされるという事態を防ぐことができる。(自分のサイトのプログラムが勝手に書き換えられるということはクラッキング被害にあわないかぎり起こらないし、新しいバージョンのものを設置する際には安全であるかどうかを自分で確認することができる。問題があれば古いバージョンを使い続ければいいので誰も文句は言うまい。)ライセンスは当然GPLが望ましい。誰でも自由にそのボタンを利用することが保証されるし、なおかつはてな自身も誰かが行った改良を利用することができるからだ。

今はまだウェブサービスに直結したJavascriptプログラムをフリーソフトウェアで提供するということは一般的ではない。だからこそ、先駆者としてその有効性を示すというのはインパクトがある。フリーソフトウェアで提供するということはユーザーへプログラムのコントロールを譲り渡すことを意味する。だからこそ信頼の回復につながるのだ。ブログパーツをフリーソフトウェアで提供するにはウェブAPIも標準化する必要があると思うが、それは報われる努力になると思う。かつては、GPLのJavascriptプログラムをどのようにウェブページ上で利用するかという課題があったため、GPLのプログラムを提供しても利用者に戸惑いがあっただろう。だが、ちょうどタイミングよく(?)先日フリーソフトウェア財団がJavaScript License Web Labelsを発表したので、今なら具体的な方法も明確である。

二度と今回のような問題を起こさないという態度を示すにはこれ以上の方法はないと思うので、ぜひ検討して頂きたいところである。

※ 補足 @2012/03/21

エントリを読みなおしてかなり説明不足だったように感じたので、もう少し詳細に解説を加えようと思う。

なぜJavascriptプログラムをフリー(自由な)ソフトウェアにすると効果があるのか
はてなブックマークについたいくつかのコメントなどを見ると誤解があるようなのでこの点についてまず補足しておく。今回の問題は、はてなブックマークボタンを設置するためにJavascriptで書かれたプログラムが、第三者の広告配信業者であるマイクロアドへ情報を送信していたというものである。もう少し短く言うと、データの送信を行っていたのはJavascriptプログラムだったということだ。なのでJavascriptが自由なソフトウェアとして頒布されていれば、ユーザーははてなが配信しているものをロードするのではなく、自分のサイトからJavascriptプログラムを配信できるようになるため、今回のように「気づかないうちに広告配信業者へデータが送信されていた!」というような事態にはならない。データを送信するプログラムをロードしなければデータは送信されないという至極当たり前の話である。

Javascriptの脆弱性について
Twitterで@akiyan氏から下記のような指摘を頂いた。



確かに仰る通り、Javascriptプログラムに脆弱性があった場合にどのように事態を収拾するかは課題である。GPLはNO WARRANTYだから自分で対処するのが原則と言ってしまえばそれまでだし、ウェブサービスやコンテンツを提供する者の責任としてそのウェブページ上で実行されるJavascriptの安全性には責任を持たなければいけないという建前もあるがが、対処が遅れて被害が出てしまっては大変である。オプションとして、対策に自信がない人ははてなが配布しているものも従来通りそのまま使えるようにしておくというのはリーズナブルな解決策だろう。もしくは、最新版のJavascriptプログラムを配布するということ、をホスティングまたはレンタルサーバー業者がサービスの一環として提供するのもいいかも知れない。ユーザーがJavascriptライブラリの更新から解放されれば嬉しいので、業者にとって新たなビジネスチャンスとなるのではないだろうか。

どんなJavascriptプログラムが脆弱なのか
筆者がJavascriptに疎いのがバレてしまうが、実は@akiyan氏から上記の指摘をもらったときに「Javascriptプログラム自体の脆弱性ってどんなのだっけ?」とひとしきり考えてしまった。本題とは話がそれるが少し解説しようと思う。

Javascriptを利用した攻撃としては、ウェブサイトの脆弱性を利用するXSSやXSRFや、Javascript実行環境の脆弱性をついてOS上でユーザーが意図しないプログラムを実行するといったものが有名である。だが、Javascriptプログラムはサンドボックス内で実行されているため、Javascript自身の脆弱性にはピンとこなかったのである。そこで思い出したのがjQueryにおけるXSSを引き起こしやすい問題である。確かにこれはJavascriptプログラム自身の脆弱性だ(意図的な誤動作を起こさせられる危険性がある)と言える。

はてブはjQuery使ってないから関係ねーよという声が聞こえて来そうだが、同様の脆弱性は何もjQueryに限った話ではない。ユーザーの入力値をバリデーションせずに利用するようなすべてのJavascriptには脆弱性が存在する可能性がある。(入力値はformの値だけでなくページ内のすべての要素を含む。)悪意ある入力値がどのような攻撃をすることが出来るかは、入力値がどのように使われるかに拠る。はてブを利用するためのJavascriptプログラムに脆弱性があれば、ブックマークするURLに細工をしてフィッシングサイトに誘導するというようなことが可能かも知れない。(はてブとは関係ないが)最悪のケースはJavascriptプログラム内でバリデーションしていない入力値をevalするというようなものだろう。その結果どうなるかは言わずもがな。

Javascriptはユーザーが使用しているコンピュータから見ると「安全なサンドボックス内」で動作しているように見えるが、実際は外の世界とつながっている。安全なのはコンピュータに対してだけで、Javascriptプログラムは閉じ込められているどころかアクセスできる世界が無限に広がっているのだ。悪意のあるJavascriptプログラムをロードしてしまえば、いくらでも悪事が働き放題である。サードパーティクッキーの問題もあるし、Javascriptの脆弱性を突いた攻撃はこれからますますヒートアップしてくるんじゃないかと思う。

どこまでをフリーにするべきか
筆者がはてなに提案しているのは、ボタンを設置するためのブログパーツをGPLで頒布すればどうかということである。今回の失態を穴埋めしてユーザーの信頼を取り戻すのに役立つし、どうせブックマークボタンをビジネスに有効活用する道は今回の件で閉ざされたのだろうから、フリーで頒布しても損はしないじゃないかという思いがあるからだ。ただしこれは筆者の勝手な思いであり、もしかするとはてなは今回の件を帳消しにして、なおかつブックマークボタンをビジネスに有効利用できるようなミラクルな戦法を考えていたかも知れない。筆者はあくまでも第三者、当事者ははてなであるため、筆者の提案はさらりと聞き流してしまって頂いても一向に構わないのだが、苦境に陥っているはてなにとって、筆者の提案が何かの手助けになればと思った次第である。

はてなが稼ぐ方法についての考察
恐らく「フリーでプログラムを提供するならサービス提供者はどうやって食べていくんだ?」という疑問を抱いたからだろうが、「はてなが稼ぐ方法についてもお願いします!」というコメントを頂いたので、スレチだと思いつつも少しだけ自分の考えを書いてみる。

先程も書いたが、ブックマーク用のブログパーツのソースコードを公開しても、はてなが稼ぐ機会を逸するというようなことはないと思っている。むしろ信頼を失うことになった今回の失態を埋めたほうが、のちのち大きな利益をもたらす結果になるだろうと。今回フリーでプログラムを提供する決断をしても、サービス自体が信頼を取り戻せば将来の利益につながるはずだ。

ブックマークボタンを配布するということは、そのボタン表示用プログラムへのアクセスログを失うことも意味している。ブックマークボタンのアクセスログは何かのビジネスに役立つかも知れないし、はてながそれを使って何かをしようと考えてるのかも知れない。信頼をとるか、アクセスログをとるか。現在、はてなにはその2つの選択肢がある。(次に第三者へデータを送信するようなボタンをリリースしたら、もっと酷い拒絶反応が起きると思う。)筆者はもちろん信頼を取るべきだと思っている。端的に言えば損切りをすべき局面だと思うからだ。(ただし、そう思ってはいるが、はてなが筆者の意見を鵜呑みにして決断を下してその結果損を被ったとしても責任は取れないのでその点は了承頂きたい。)

外部のページに設置されたブックマーク追加ボタンは、もちろん主目的であるブックマークを提供する役割を持っているが、集客の意味合いのほうが強いと思う。ボタンからはてなのページにどれだけの人が誘導されているだろうと考えただけでも胸が熱くなる。「ボタンを設置したこと」そのものよってはてなが儲かるわけではなく、ブックマークボタンを通じて人々がはてなのサイトに訪れた時が稼ぐチャンスなのだ。はてな(特にブックマーク)に訪れる人々は、おそらくははてなのページから何らかの有益な情報が得られると期待しているだろう。はてなは言ってみれば「情報を得るためのプロキシ」のような存在だ。人々は欲しい情報を得るためにはてなを"通過"する。通過する人々から如何にお金を掠め取るかがポイントではなかろうか。

そういう意味では、はてなというサービスの性質は極めてGoogleやYahoo!などに近いと思う。それがはてなが目指すべき道(ないしは模倣すべき相手)ではないだろうか。

そもそも、マイクロアドにユーザーの追跡情報を提供するぐらいなら、はてなは自ら広告業者となる道もあったはずだ。"通過点"たるはてなのサービスには広告ビジネスは相性がイイ。今はAdSenseやAmazonの広告が貼られているが、自ら広告を提供したほうが実入りが大きいのではないか。(これによりAPRUが向上するだろう。)

はてなブックマークはソーシャルから出発しているが、これからは反対に機械化を進めてみてはどうかと思う。ズバリ、検索エンジンの自作だ。ブックマークやスターの数を重み付けに利用すれば、Googleには真似できない検索結果ができ、一定のユーザーを獲得できるのではないかと思う。はてなはまだユーザー数を伸ばす余地があると思うので、他にもユーザー数増加につながるサービスをどんどんやればいいと思う。

まったくもって至極当たり前のことしか言えないが、サービス企業にとっての王道である「いかにユーザー数を増やし、APRUを向上させるのか」がはてなにも当てはまるだろう。そして、それはJavascriptのブログパーツをGPLで配布することとは矛盾しない。

Javascript License Web Labelの仕様はダサいよね
ぜひメーリングリストで議論を。

※ 補足 @2012/03/22


Bansheeプロジェクトがアフィリエイトの上前をはねられた話

id:atsushieno氏から次のようなブコメを頂いたのでコメントさせて頂く。

bansheeがGNOME Foundationに寄付するためにreward部分のコード(AmazonMP3サポート)のコードをオープンソースで配布していたらCanonicalやらLinux Mint配布元が勝手にアフィリエイト書き換えてただ乗りされて収益は当然減ったんだわ。

まず言っておきたいのは、どのように改造をしようともライセンス違反ではない。例えそれがアフィリエイトに関する部分であれ、MIT(FSF的にはExpat)ライセンスには書き換えてはいけないという制約はないからだ。(改造に制約を課せられたら、それはオープンソースライセンスとは言えない。)その点ではCanonical等々は責められることはないと思うので、オープンソース(ないしは自由なソフトウェア)の問題であるような発言は差し控えて頂きたいところである。

これはライセンスの問題ではなく、仁義的の問題である。GNOMEプロジェクトへ寄付するという名目で使用しているアフィリエイトを自社の利益に付け替えるというのは仁義を逸している。その点はCanonicalを追及すべきだと思うし、筆者にも何か出来ることがあればぜひ言って欲しい。(誰にメールを送ればいいかとか。)

ところで、Bansheeのケースははてなのブログパーツをフリーにするケースには当てはまらない。誰がブログパーツを作ったとしても、最終的にははてなへトラフィックが誘導されることになるからだ。Bansheeの例では、GNOMEプロジェクトは収益が減ったかも知れないが、Amazonは一切損益を被っていない。誰にアフィリエイトを払おうがAmazonには関係ないからだ。同じように、ブックマークのデータを管理しているサービス提供者がはてなである限り、誰がブログパーツを提供したとしてもはてなが損を被ることはない。

1 コメント:

batta さんのコメント...

勉強になります!

コメントを投稿