ここまでIDSについて簡単に解説をしてきた。これからはこの連載で取り上げるSnortについて簡単に紹介をしていく。次回以降、詳細な解説をしていく予定である。
SnortはGPL(GNU Public License)で配布されているため、当該ライセンスを順守している限り、自由に使用することができる。これはSnortが個人でも気軽に使用できるということを示している。
もし、GPLが悪影響を及ぼすような場合は、商用版のSnortを選択することも可能である(この連載では商用版についての解説は行わないので注意してほしい)。
そもそもSnortはパケットスニファ/パケットロガーとして開発された。Snortをコマンドラインから適切なオプションを付けて実行すれば、すぐに高機能なパケットスニファ/パケットロガーとして使用可能である(ただし、パケットスニファ/パケットロガーとしての使用方法については、この連載では触れない)。
Snortにはプリプロセッサという概念がある。このプリプロセッサは、パケットのデコードが行われた後に実行され、プリプロセッサが実行された後にSnortの侵入検知エンジンが実行される。
プリプロセッサには下記のようなものが用意されている。ここで紹介したものを含め、プリプロセッサについての詳細は、Tarball中に含まれる「snort_manual.pdf」を参照していただきたい(英文だが、設定方法を含め、詳しく書かれている)。
portscan:ポートスキャンの検出を行う
frag2:IPフラグメントの再構築を行う
stream4:TCPストリームの再構築とステートフルな解析を行う
telnet_decode:Telnetの制御文字を正規化する
Snortには豊富なアウトプットプラグインが用意されており、それらを使うことでさまざまな形式でアラートを出力することができる。テキスト形式のほかにもバイナリ形式、XML、データベースなどにも出力できるため、アラートの利用目的や連携するツールに合わせた柔軟な運用を行うことができる。
この連載では、Snortをデータベース(MySQL)とACIDというツールと組み合わせた運用について解説していく予定であるが、このようなことが可能となるのもこのアウトプットプラグインのおかげなのである。
SnortはGNU/Linux、Windows(NT/2000/XP)、*BSD(FreeBSD、OpenBSD、 NetBSDなど)、UNIX(Solaris、SunOS、IRIXなど)で動作する。つまり、IDS管理者が最も得意とするOS上でSnortを運用することができる。
SnortはTCP、UDP、ICMP、IPの解析を行うことができる。通常の運用上はこれで十分なはずである。これ以外のプロトコルについては解析が行われない。記録のみが行われ、Snortは統計解析にのみこれらの情報を使用する。
最後にSnortに関する情報源を2つ紹介しておきたいと思う。
もしSnortについての知識を深めたいのであれば、日本Snortユーザ会に入会することを強くお勧めする。上級者にとっては非常にコアな情報を日本語で交換できるという大きなメリットがあるだろう。初心者にとっては上級者からの有益な情報を得る貴重な場になるであろう(ただし、自助努力を怠った場合はこの限りではない)。
今回はIDSとSnortについて簡単に紹介した。次回は、実際にSnortをインストールする方法について解説していく。GNU/LinuxシステムとWindowsで、SnortとACIDを用いたIDS構築を行う予定だ。
Copyright © ITmedia, Inc. All Rights Reserved.