これはMITMですか

ITproにWebメール狙うサイド・ジャッキング | 日経 xTECH(クロステック)と言う記事が。

7月末に米国・ラスベガスで開催されたセキュリティ・カンファレンス「BlackHat USA2007」で,無線LAN越しにWebメールのセッションをハイジャックするデモが行われた。端的に言えばHTTPの通信の盗聴である。

ちょっと気になった点があるので、備忘録的に書いてみます。

特徴は,無線LANの通信パケットをキャプチャし,人がデータの内容を盗み見て解析する点である。いわゆるMan in the Middle(中間者)攻撃だ。

サーバーとクライアントの通信に割り込む訳ではないので、中間者攻撃とは言わないと思います。
中間者攻撃の権威ある定義・解説は中々見当たらないのですが、例えば、産総研の脚注で見つけた以下の解説。

◆ 中間者攻撃 (Man-in-the-middle Attack)
クライアントとサーバー間に割り込んだ攻撃者が、クライアントと攻撃者間の通信を攻撃者とサーバー間の通信として中継することによってセキュリティを破る攻撃手法の名称。いくつかのプロトコルはこの攻撃に対して弱いことが知られている【後略】

http://www.aist.go.jp/aist_j/new_research/nr20070323/nr20070323.html#B1

サイドジャッキングの場合、割り込みも、中継もしないので、無線LANのキャプチャを中間者攻撃と呼ぶのは無理があるかと。

では,ユーザーはどんな対策を講じればよいだろうか。サイドジャッキングに関して言えば,SSLもしくはVPNの利用は必須ということになる。

同意。

 多くのWebメール・サービスは,認証時にしかSSLを利用しない。Gmailの場合は,ログイン後にアドレスバーにある「http」を手作業で「https」に書き換えることでSSLに対応させることができる。

これはどうですかね。
『「http」を手作業で「https」に書き換える』前に、http(平文)でCookieが送出されるわけです。それと、kikuzouさんによるHamsterの追試記事東京都で興信所比較@完璧な調査会社はココ【最新版】によると、

●で、実際にどう使うの?
 ・攻撃者は「ferret」を実行して無線LAN上のパケットキャプチャを行い
  Webインターフェース「hamster」で誰かが接続するのを待つ。
 ・gmail等へのアクセスをキャプチャすると、「hamster」上にクライアントの
  IPアドレスが表示される。
 ・IPアドレスのリンクをクリックすると、どこにアクセスしたか表示されるので
  そのリンクをクリックするだけで、セッションハイジャックが可能。
【中略】
●で、実際にセッションハイジャック出来たの?
 ・ものの見事にハイジャック可能でしたヽ(´ー`)ノ
   - 実際に試したのは gmail のアクセス
   - あまりにも簡単に出来たのでkamezouさんとしばらく固まっていましたw

http://kikuz0u.x0.com/td/?date=20070817#p01

Hamsterが自動的にCookie値を窃取するようですから、一度でも平文でCookieが送出されたならば、Hamsterにより横取りされると思われます。ですから、手作業でhttpsに戻すのは、この場合無意味でしょう。セッションハイジャックされた後でhttps通信しても遅いと言うことです。

 ferretに関して言えばほかにも対策がある。ferretでは,ローカル・プロキシ(ポート番号8000番など)を介した通信はキャプチャされない。この方法でも若干の効果は期待できる。

ローカル・プロキシでは意味がないのでおそらく、「ハイポートに設定したプロキシ経由での通信」を指しているのだと思いますが、「若干の効果」と控えめな表現どおり、「やらないよりはマシかもしれない」程度のもので、あくまで現状のferret対策に過ぎません。他のツールないしferretの将来のバージョンに対しては無力かもしれない。解説記事として載せるほどのものではないと思います。

追記

最後の引用に関しては、別のブログでも突っ込みが入っていますね。
yamagataさんのプログから

ferretに関して言えばほかにも対策がある。ferretでは,ローカル・プロキシ(ポート番号8000番など)を介した通信はキャプチャされない。

えー。 本当かなぁ? 手元で軽く確認した限りでは、ポート番号に関係なく、TCP通信で、かつ、HTTP/0.9 や HTTP/1.0 や HTTP/1.1 が含まれている通信に対しては解析がかかるようですし、Proxy で使われる GET http://example.jp/aaa/ HTTP/1.x 形式のリクエストでも問題なく抜き出せました。

http://yamagata.int21h.jp/d/?date=20080107#p01

kikuzouさんのブログにも

後で試してみるが、これは怪しいw
ローカル・プロキシのリクエストが引っかかるような気がします。

http://kikuz0u.x0.com/td/?date=20080107#p05

私の論旨に影響するものではなく、むしろ補強する材料だと思います。読者の参考のため紹介します。