« なぜWindowsのウイルスが多いのか | トップページ | 二重解放の脆弱性 »

2004.08.31

トラフィック特性から通信内容を推測

INTERNET Watchによれば、ソフトイーサ株式会社では SoftEather の通信プロトコルを検知するソフトウェアを開発したとのこと。

SoftEther と言えば、イーサパケットを SSL によってトンネリングすることによって VPN を実現するソフトであるが、HTTPS (HTTP + SSL) 用の proxy サーバを透過する機能があるため、組織内の PC からも容易に外部に接続する事ができる。この事がネットワーク管理者から問題視されていた。

今回のソフトウェアはこの問題を解決するために作られたらしい。それは良いのだが、どうやって実現しているのか興味を持った。なぜならば、通常 SSL で通信している場合、内容はいっさい第三者には解らないからである。解るのは通信相手と(特定の時間における)通信量くらいしかない。例え製造元であっても内容が判るはずはない(わかるならセキュリティ上の欠陥になる)からである。記事によれば、方法は

具体的には、SoftEtherプロトコルの持つネットワークトラフィックの特性(トラフィックパターン)を自動的に判別し、特定のTCPセッションがSoftEtherのものであるか、別のアプリケーションによるHTTPS通信であるのかを判別できるとしている

とのこと。つまり、特定のタイミングにおける通信の量、すなわちトラフィックパターンで通信プロトコルが判定できるということだ。これなら確かに SSL によって暗号化されていても解る。良く考えたものである。同じ方法を利用すれば、HTTPS で特定のサイトに接続している場合でも、見ているページの種類や行動パターン(商品の検索や購入など)くらいは解ってしまうかもしれない(もちろん、通信内容はわからないので購入した商品やクレジットカードの番号などは解らない)。これは盲点であった。

« なぜWindowsのウイルスが多いのか | トップページ | 二重解放の脆弱性 »

セキュリティ」カテゴリの記事

コメント

なるほど、こういう脆弱性ってのもあるんですね。勉強になります。
ところで、VC++ .NET のデバッグモードにはベンリなメモリリーク検出が付いているので、二重開放検出もあるのかな?と思ってやってみたら、2重目の開放の所で必ず例外が発生します。まぁ、メッセージがそれとわかるようなモノじゃないけれど、発生箇所がメモリ開放している所となれば、調べるのは関係ないデータの受け渡しや二重開放でしょうから、それなりに役立つって事ですね。
しかし、メモリリークの検出も含めて UNIX 上の古い開発環境とかだと当然サポートされないので、潜在的に含まれているバグだったりすると、検出はかなり難しいでしょうね。いやぁ、最新の環境さまさまですね。
まぁ、もっともGCが付いた Java や C# ならこんな苦労はしなくて良い訳ですが・・・
by 最近はVC++プログラマのMC

最近の unix 上の gcc などでは、二重開放で標準エラーに警告メッセージを出してくれるようです(gcc の問題じゃなくて標準ライブラリの問題かもしれません)。良い時代になったものです。
#でも警告メッセージだと見落とすかもしれないので例外になってくれたほうが嬉しいですね。
ちなみに free() は値を返さないのでプログラムからエラーを判定する方法はないようです(signal でも送ってくれればわかりますが)。

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: トラフィック特性から通信内容を推測:

« なぜWindowsのウイルスが多いのか | トップページ | 二重解放の脆弱性 »

最近のトラックバック

無料ブログはココログ

Googleアナリティクス

  • Googleアナリティクス