市谷:何か他の手はありませんか。

室長:うーん。じゃあ,こういうのはどうじゃ。今どきのウイルスは,外に向けて通信しようとするのが普通じゃから,その通信を監視するという手じゃ。

市谷:怪しい通信がないかを監視するってことですか?

室長:そうじゃな。

 確度はやや落ちるが,対策ソフトにもフォレンジック的な手法にも頼らずウイルス感染を検出する方法もある。手軽なのは,ウイルスの通信に着目する方法である。

 「今どきのウイルス」の多くは,自分から外部に通信をしかける。盗み出した情報は外に送信しなければ意味がないからだ。また,指令を受けるために外部と通信することもある。

通さなかった通信をチェックする

 そこで,社内のクライアント・パソコンからインターネットへの通信をすべて禁止するようにファイアウォールを設定しておく。パソコンからインターネットへは,プロキシ・サーバーやメール・サーバー,DNSサーバーなど,DMZに設置したサーバー群経由で通信させる。

 その上でクライアント・パソコンからインターネットに向けた「通さなかった通信」のログをチェックするのである(図4)。同じパソコンから通信が繰り返ししかけられていれば,そのパソコンはウイルス感染している可能性がある。

図4●ウイルスによって公開するつもりのない情報がWinnyネットワークに流出する
図4●ファイアウォールのログでウイルス感染を検出する
ウイルスの多くはインターネットに向けて通信を試みる。ファイアウォールでインターネットに向けてアクセスしようとする通信をチェックすれば、ウイルスの感染がわかることがある。 [画像のクリックで拡大表示]

 このように直接通信できなくするのは,検出に有効なだけでなく,万一感染したときの「保険」としての意味もある。今どきのウイルスは,感染を防ぐことが困難で,感染してしまうとすぐに気づくのは難しい。となると,例え感染したとしても,組織に致命的なダメージを与えないようにしなければならない。

 そこで内側からインターネットの通信を絞り込んで制限しておけば,少なくとも機密や個人情報,それにパスワードなどの「情報漏えい」を防げる可能性が高い。こう考えると,内側からインターネットへ自由に通信できる設定は,そろそろ危険になりつつあるのがわかるだろう。

外部との通信はDMZ経由にしておく

 検出に必要な通信制御はそれほど難しいものではない。DMZを構築し,内側のネットワークからインターネットに出ていく通信は,必ずDMZ上のサーバーを経由させる。例えばメールならメール・サーバー,Webアクセスならプロキシ・サーバーを経由させるわけだ。

 ウイルスは,高度に進化しているといってもプロキシ・サーバーがどこにあるのかを知る機能は今のところ持っていない。もちろん今後は,DMZのサーバーを経由して外とつながるボットなどやスパイウエアが出現するかもしれない。万一そのようなウイルスが登場したとしても,DMZのサーバーで通信内容まで監視すれば,存在を検出したり通信を遮断できる可能性は高い。

市谷:これなら,被害の防止と感染の検出が同時にできちゃうわけですね。完璧ですね。

室長:…。完璧とは言えないじゃろうなあ。

市谷:え!? どういうことですか。

室長:実は二つ問題があるんじゃよ。一つは,検出に時間がかかってしまう危険があることじゃ。ファイアウォールのログをリアルタイムで監視しているわけにもいかんじゃろう…。

市谷:感染しても被害を防止できるのなら,すぐに検出できなくてもかまわないのじゃないでしょうか。

室長:見つけるまでの間に,ほかのパソコンに感染が広がる可能性があるじゃろう。大きなネットワークでは,駆除が面倒なことになるんじゃよ。

市谷:なるほど…。で,もう一つの問題は何でしょう。

室長:パソコンから直接インターネットに通信しなければならないネットワークでは使えないんじゃよ。

市谷:「そういう設定はそろそろ危険」じゃありませんでしたっけ。

室長:そうもいかないことがあるんじゃ。例えばIPセントレックス・サービスを使っている場合じゃよ。

市谷:確かに,IPセントレックスの電話通信はDMZのサーバー経由にはできないでしょうね…。つまり,ファイアウォールのログを調べる方法は,大きなネットワークでは不十分だし,インターネットと直接通信する端末があるネットワークでは使えないということですね。

室長:そういうことじゃな。

市谷:じゃあ,そういうところはどうしたらいいんですか?

室長:そうじゃなあ,まずはIDSの利用を考えることじゃろうなあ。

 ファイアウォールのログで検出が間に合わなかったりできなかったりするネットワークでは,今どきのウイルスを検出する別の方法を使う必要がある。代表的なのは,侵入検知システム(IDS)を使って検出する方法だ(図5)。

図5●要所にIDSを設置して感染拡大のための通信を検出する
図5●要所にIDSを設置して感染拡大のための通信を検出する
ウイルスは感染を広げるためにセキュリティ・ホールを突く通信を仕掛けることが多い。IDSでこの通信を検出すれば,ウイルスが侵入していることがわかる。 [画像のクリックで拡大表示]