Packet Sniffing
LAN内のいずれかのパソコンがspambot等に感染している場合、どこかにスパムメールを送信してしまう場合がある。 これを検出してくれるサイトには例えば以下がある。
いずれのパソコンが感染しているかは、それぞれウイルススキャンをしてみればよいことであるが、しかしウイルスがrootkitを利用している場合には、検出不可能な場合があるようだ。
このようなときは、LAN内を流れるパケットをチェックしなければならない。高価な機器を購入しなくとも、例えば以下のソフトで可能である。
満たすべきハードウェア条件
しかし、これらのソフトを使用するためのハードウェア的な前提条件がある。
スイッチングハブでないこと
スイッチングハブの場合、パケットの送信元と送信先のマシンにしかパケットが届かず、他のマシンでいくらsniffingを行なおうとしても無駄である。一般に通常のハブよりスイッチングハブの方が高価であるが、sniffingのためには安いハブの方がよい。
Promiscuous modeをサポートしたアダプタであること
Sniffingを行おうとするマシンのネットワークアダプタがPromiscuous modeに移行できるものでなければならない。 このモードがOFFのときには、やはり自分に向けられたパケットしか受け取ることができない。
前述のソフト二つは、起動すると対象とするネットワークアダプタを自動的にPromiscuous modeに変更する模様である。
ハードウェア条件を満たせないとき
上記のいずれかでも満たせない場合には、LAN内の他のマシンがやりとりするパケットを監視することはできない。 この場合には、監視用マシンをルータあるいはゲートウェイなどとして設定し、他マシンのネットとのやりとりはすべてこのマシンを経由させるようにするほかない。
BotHunterメモ
基本的にはマニュアル通りにインストールし、マニュアル通りに使用すれば自動的にSpambotを見つけてくれるはずなのだが、一点以下で多いにはまった。
snortが正常に動作しない
BotHunterはトラフィックを監視するために、snortという別ソフトを改造したものを使用しているらしい(リリースに同梱)。 つまり、BotHunter自身は以下のようにトラフィック監視を行う(らしい)。
- snortに監視させるためのルールを作成する。
BotHunterの起動時に自動的に自身のsnortを起動する。
- snortの出力を監視し、それに問題があればユーザに問題を報告する。
この仕組が正常に動作しているかどうかは、BotHunter testpageを表示させてみればわかる。
http://www.bothunter.net/bothunter/testpage-1.X.html
BotHunterの監視対象となっているマシンのブラウザで単に上のページを表示させればBotHunterが「問題」として報告してくれる。 BotHunter guiを使用している場合には、「Lines read」「Lines parsed」「Local bot profiles」等の値が0以外になるはず。
しかし、これが全く動作しない。上の三つのフィールドが0のままになっている。 この理由は以下に記述があった。
http://forum.bothunter.net/viewtopic.php?f=3&t=950
つまり、BotHunter/snort-2.8.3.2/rules/botHunter/local.confに
config checksum_mode: none
と記述する必要がある。