「ネットワークの盗聴は可能か」

第6回 「ネットワークの盗聴は可能か」

ネットワーク上にはさまざまなパケットが流れている。メールを受信する際のデータやダウンロードしたファイルだけでなく,サーバへアクセスするために入力したユーザーIDやパスワードも,もちろん送信されている。これらのデータは第三者に盗み見されることはないのだろうか

 「メールの安全性を考える」では,メールをハガキにたとえて解説した。しかし,実際に盗聴されていたとしても,それが目に見えないやりとりであるだけに,理解するのは困難なことなのかもしれない。頻繁にやりとりする「メールの内容」,そして「メールを受信する際に必要なパスワード」など,個人にとって重要なデータが覗かれるということは,危険であると同時に不快なものでもある。

 しかし,ネットワークの盗聴は条件さえ揃っていれば決して難しいことではない。社内の人間が,同僚のメールの中身やパスワードを盗みている可能性もあるだろう。

 もちろんメール以外にも,インターネットを利用する際に必要なパスワード(オークションサイトのパスワードや,ホームページ用FTPサーバのパスワードなど)が盗聴できれば,悪意を持つ人物(クラッカー)がそれを悪用することはたやすいことだ。また,社内ネットワークなどであれば,こういった盗聴をストーカー行為に利用するケースもあるだろう。

 ネットワークを流れるパケットは,暗号化されていなければ,そのままの状態で流れている。メールの受信ではPOPアカウントのパスワードが,FTPサーバのログイン時にはFTPのパスワードがそのまま流れているわけだ。もちろんメールの内容も暗号化されていなければ読み取ることができる。このようなネットワークの盗聴は,「スニッファ」(Sniffer)と呼ばれるネットワーク管理ツールを利用して行われる。

 今回は実際にネットワークのパケット盗聴を行い,その対策方法について考えてみよう。

パケット盗聴の仕組み

 スイッチングハブなどでなく,安価なリピータハブなどを使用してネットワークを構成している場合,送られてくるパケットはネットワーク上のすべてのコンピュータに流される。各コンピュータはその中から自分宛のパケットのみを受け取り,それ以外は捨ててしまう(図1)。

図1■ネットワークを流れるパケット
図1

 パケット盗聴はこれを利用し,自分あて以外のパケット(つまり他人のコンピュータに向けて送られているパケット)も受信してしまうわけだ(※1:プロミスキャスモード)(図2)。

図2■自分あて以外のパケットも受信可能
図2


※1:プロミスキャスモード(Promiscuous mode)
ネットワークインターフェイスカード(NIC)が,ネットワークを流れるすべてのパケットを受信する状態

 前述したように通常,スニッファはネットワークを流れるパケットをモニタリングし,トラフィックの追跡などのネットワーク管理に用いられる。

 しかし,こういったスニッファをクラッカーが悪用すれば,ネットワークを流れるパケットを盗聴し,パスワードやメールの内容など,暗号化されていないさまざまな情報を手に入れることができるわけだ。

 スニッファは,パケットすべてを記録するものから,パスワードのみをログに残すものなどさまざまな種類があるが,フリーソフトウェアのものもあり,インターネットで検索すれば簡単にダウンロードできるツールだ。

無線LANでのパケット盗聴

 では,ケーブルで繋がれた通常のネットワークではなく,無線LANの場合はどうだろうか? 今回は内部のネットワークを想定して,無線LANでのパケット盗聴を試してみることにしよう。ここではメルコの「Air Station WLS-L11GW」を利用してネットワークを構築し,パケットの盗聴を行ってみた。

 ネットワークの構成は図3のようになっている。

図3■無線LANでのネットワーク構成
図3

 使用した無線LANは,外部からのアクセスを拒否するセキュリティ機能として,暗号化WEP機能(40/128bit)とMACアドレスによる制限が行えるようになっている。もちろん今回もその機能は使用しているが(WEP:128bit,MACアドレスフィルタリング),ここでは外部からではなく,ネットワーク内部からの盗聴を想定している。

 ネットワークにある3台のコンピュータのうち1台に,前述したスニッファーをインストールし,ネットワーク上のコンピュータで行われた通信を傍受してみる。

図4■ネットワーク盗聴に利用したモデル
図4

 今回は盗聴の内容をわかりやすくするために,フリーサービスのメールアカウント「zdnet2001@hotpop.com」を作成し,このアカウントでのメール受信を行う。

作成したアカウントの内容(POP3アカウント)
ユーザ名 zdnet2001
パスワード hogeghoge

 ここでは単純にスニッファとして「SniffIt V.0.3.7 beta」という,フリーソフトウェアのネットワーク管理ツールをLinux上で動作させているが,スニッファはWindowsで動作するもの(dsniffなど)や,Macintoshで動作するもの(EtherPeekなど)などさまざまな種類がある。

 ではネットワーク上のコンピュータ(Windows98SE+Outlook Express)でメールの受信を行い,その際に流れるユーザ名,パスワード,メール本文をスニッファで傍受した結果を見てみよう。

写真1■SniffItのGUI画面,流れているデータを参照できる
写真1

 スニッファーのログからメール受信を行った際のパスワードを参照してみる。

写真2■スニッファのログから,ユーザーIDとパスワードが分かる
写真2

リスト1■スニッファのログに残ったデータ
-
USER zdnet2001
PASS hogehoge
STAT
QUIT

 ユーザ名とパスワード,どちらも丸見えであることがわかる。またメールの本文も,ここでは本文に「TEST」と一言しか書いてないが,写真3のように参照できる。

写真3■メールの本文まですべて参照できてしまう
写真3


リスト2■スニッファのログに残ったメールの内容
-

HELO 192
MAIL FROM: <zdnet2001@hotpop.com>
RCPT TO: <zdnet200@hotpop.com>
DATA
From: "zdnet" <zdnet2001@hotpop.com>
To: <zdnet200@hotpop.com>
Subject: test
Date: Tue, 30 Oct 2001 11:32:52 +0900
Message-ID: <NFBBLNNBCLECPDNIPGLEEEACCAAA
.zdnet2001@hotpop.com>
MIME-Version: 1.0
Content-Type: text/plain;
charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3

test

 同様にFTPなど,そのほかの通信に使用されるパスワードも,暗号化がなされていないものは傍受することができる。


暗号化したWEP通信でも盗聴可能?
 無線LANのWEP(暗号化)に関しては,外部からアクセスポイントへの第三者アクセスを拒否することはできても,内部ネットワークでのパケット盗聴は可能である。逆に言えば「管理の無防備な無線LAN」(MACアドレスによるフィルタリングやWEPを設定せず,ESS-IDは「ANY」など)であれば,外部から無線LANにアクセスし,内部ネットワークの盗聴を行える。この場合,当然ファイヤーウォールなどは役に立たないことになる。

 また,WEPに関しても,すでに「AirSnort」などのクラックツールが出てきており,WEPのクラックが可能であるとうたっている。しかし今回は機器の関係で実践できなかったためどれほどの効果があるか,残念ながらここでは述べることができない。「AirSnort」,「WEP Crack」については機会を改めて紹介するつもりだ。

 いずれにしても,無線LANを使用しネットワークを構築しているのであれば,ネットワークに接続するコンピュータのMACアドレスを登録し,それ以外からのアクセスポイントへのアクセスは拒否するよう,必ずフィルタリングしておく必要がある。

写真4
写真4■ネットワークに接続するコンピュータのMACアドレスを登録し,それ以外からのアクセスポイントへのアクセスは拒否するよう,必ずフィルタリングしておこう



パケット盗聴に対する対策

 パケットの盗聴を発見するのは簡単ではない。スニッファで盗聴していたとしても,通常の通信との大きな違いがないからだ。発見する手段もないわけではないが,盗聴する側もそれを見つからないよう隠ぺいしている可能性もある。

 ネットワークのパケットを分析し,正常な状態と比較することでスニッファが仕掛けられているかを調べるツールとして,L0phtの「AntiSniff」というツールなどもある。しかし,これも絶対的なものではなく,またすでにそれに対して「AntiAntiSniff」というスニッファも出ている。「AntiSniff」はWindows9xでも動作するので,使用してみるのもいいだろう。

写真5
写真5■ネットワークのパケットを分析し,正常な状態と比較することでスニッファが仕掛けられているかを調べられる「AntiSniff」

 有線でのネットワークを構築している場合,使用しているハブがスイッチングハブでなければ,ハブをスイッチングハブに変更するという手もある。スイッチングハブはリピータハブと違い,目的のコンピュータのみに必要な情報を流すため,パケットの盗聴を防ぐことができる。しかし,サーバにスニッファを仕掛けられていては意味がないし,最近ではスイッチングハブでも盗聴できる危険性があるため,導入したからといって安全とは言い切れない。またこれは,会社などであれば個人でどうこうできる問題でもなくなってしまう。

 無線LANに関しては自分が管理しているのであれば,外部からのアクセスはWEPおよびMACアドレスフィルタリングで確実に遮断しておく必要がある。内部での盗聴に関しては,今回試したリピータハブと同様,パケットの盗聴が可能だ。

 個人で行える簡単な対策は,やはり暗号化することだろう。PGPでメールを暗号化するで述べたように,メールであれば重要な内容のものをPGPで暗号化すればよい。またパスワードに関しても,POPではなくパスワードを暗号化できる「APOP」を使用するといったように,のぞかれてもそのままでは理解できない状況にしておけば,万が一盗聴されていたとしても,暗号化されたデータしか分からない。

 盗聴や盗撮など,現社会でもいたるところで行われている覗き見行為は,人の「見たい,知りたい」という欲望の象徴にも思える。ネットワークでもまた「人のメールを覗きたい。」と思う人間がいるのも事実だ。ネットワークを利用するのであれば,個人でできる最低限の対策は立てておく必要があるだろう。