Firefox の拡張機能「Firesheep」公開から学べること

2010/11/01

暗号化の不十分な Wi-Fi上でTwitterやFacebookなどのアカウントが容易に乗っ取られ得ることを実証するFirefoxの拡張機能「Firesheep」をセキュリティ研究者エリック・バトラー(Eric Butler)氏がToorconにて公開しました。エリックが作成したFiresheepは、「保護されていない」ログイン情報を収集できるFireFoxのプラグインです。

以下は、FiresheepのWebサイトからの引用です。

Webサイトにログインする際、通常は最初にユーザー名とパスワードを送信します。送信後、サーバーは、この情報と一致するアカウントが存在するかどうかチェックし、存在する場合は「クッキー」を返します。ブラウザは、以降のすべてのリクエストの処理にこのクッキーを使用します。

最初のログインを暗号化して、パスワードを保護することは、Webサイトではごく一般的ですが、驚くことに、すべてを暗号化することはまれです。そのため、クッキー(とユーザー)は脆弱な状態になります。攻撃者がユーザーのクッキーを手に入れ、ユーザーが特定のWebサイトで実行できるあらゆることを実行できるようにすることを、HTTPセッションハイジャックといいます(「サイドジャック」と呼ばれることもあります)。オープンなワイヤレスネットワークでは、クッキーは基本的にワイヤレスで送信されるため、攻撃は非常に簡単です。

エリックが述べていること要約すると、Webサイトが少なくともSSLで暗号化されたログインを強制していない場合、ユーザーのアカウント情報が収集・再現される危険性があるということになります。以下も、Firesheepからの引用です。

これは、嫌というほど語られてきた、広く知られている問題ですが、複数の人気のあるWebサイトが今もなお、ユーザーの保護を怠っています。この問題の唯一の有効な解決策は、HTTPSやSSLとしてWebで知られる徹底した暗号化です。Facebookは、不満を抱くユーザーからの抗議の声を抑えるため、絶え間なく新しい「プライバシー」機能を発表し続けています。しかし、アカウントの完全な乗っ取りが可能になっているとき、そのような機能にどんな意味があるでしょうか。Twitterでは、すべてのサードパーティーの開発者に対し、OAuthの使用を義務づけ、その直後、保護されていないWebサイトの新しいバージョンをリリース(して普及を促進)しました。ユーザーのプライバシーに関して、SSLは誰もが無視している重要な事項です

Firesheepプラグインをローカルマシンにインストールすると、ログインにSSL暗号化を使用していないWebサイトにアクセスするユーザーのログイン情報(クッキー)を収集することができます。このconfigページに表示されているのは、FiresheepがターゲットにしているWebサイトのほんの一例です。

これは、クッキーが収集されるため、そのマシンからこれらのWebサイトにアクセスしたすべての人の名前と写真が表示されるということを意味しています。

この時点で、これらのさまざまなサイトのアカウント情報がすべて乗っ取られます。あとは、左側にある写真をクリックするだけで、そのユーザーとしてログインできます。なりすまし犯罪も非常に容易に実行可能です。

要点を整理しましょう。問題はこのプラグインではありません。安全でないログイン手順こそが問題です。SSLログインを必要としない、あるいは強力な暗号を強制しないWebサイトこそが問題なのです。ほとんどのユーザーはこのことに気づいていません。攻撃者が古くからのARPポイズニングとこのプラグインを組み合わせて何ができるかを考えてみましょう。以下は、ウィキペディアからの引用です。

攻撃者は、ARPスプーフィングにより、LANのデータフレームを盗聴し、トラフィックを改変し、トラフィックを完全に停止できます。攻撃は、ARPを実際に利用し、他のアドレス解決方法を使っていないネットワークでのみ、使用できます。ARPスプーフィングの原理は、偽の「なりすまされた」ARPメッセージをイーサネットLANに送信することです。一般的に、攻撃者のMACアドレスを別のノード(デフォルトのゲートウェイなど)のIPアドレスに関連づけることが目的で、そのIPアドレスに向けたトラフィックが攻撃者に誤送信されます。攻撃者はさらに、トラフィックを実際のデフォルトのゲートウェイに転送(パッシブスニッフィング)するか、転送前にデータを改変(中間者攻撃)するかを選ぶことができます。また、実際には存在しないMACアドレスをターゲットのデフォルトのゲートウェイのIPアドレスに関連づけることにより、サービス拒否攻撃を仕掛けることも可能です。

ARPスプーフィング攻撃は、乗っ取ったホスト、あるいはターゲットのイーサネットセグメントに直接接続された攻撃者のマシンから仕掛けることができます。

古くからある中間者攻撃では、トラフィックが、本来の送信先であるアドレスではなく、攻撃者に送られ、攻撃者がトラフィックを収集、盗聴し、思い通りに改変できるようにします。クッキーを盗聴、傍受、収集する極めて整然とした方法だと思われます。このプラグイン(Firefoxのみ)を共有マシン、公共のマシンにインストールされたら、その影響は計り知れないものとなることでしょう。この問題を解決するためには、ユーザーが自らコントロールして、Firesheepを無効化する必要があります。そのためには、Electronic Freedom Foundation(EFF)からHTTPS-Everywhereをダウンロードしましょう。

HTTPS-Everywhereは、さまざまなWebサイトとの通信を暗号化するため、Firesheepが実行することも無効化されます。多くのサイトへのすべてのリクエストをHTTPSに書き換えます。HTTPS-Everywhereは、すべてのユーザーがぜひインストールして使用すべきFirefoxの拡張機能です。

設定は非常に容易で、自分のWebサイトへの追加、またカスタマイズも簡単です。

HTTPS-Everywhereをインストールして実行すると、この種の資格情報への攻撃から身を守れるだけでなく、これらのWebサイトへの他のセッションも暗号化されます。

Firefox の拡張機能「Firesheep」は、ログイン情報が公開されると、ユーザーは脆弱な状態にさらされることを実証しました。ユーザーは、暗号化されたログインを強制または必要としない大半のWebサイトを当てにできないため、EFFのHTTPS-Everywhereのようなツールを探し、自分で自分の個人情報を守る必要があります。FiresheepとHTTPS-Everywhereの両方をダウンロードしましょう。これらを自分のマシンで賢く利用して、自分や同僚の知識を深めましょう。行動を改める唯一の方法は、責任を持ってこの種の問題を実証することです。

インターネットに接続するときは、安全に気をつけましょう。