●ルールセットをチューニングする |
前回の最後にも触れたが、Snortを確実に運用するためにも、各ユーザーの環境に合わせたルールファイルのチューニングが大事だ。必要のないものを検出しないようにするだけでも、不要なログを減らすことができる。すべてを記録するような設定をしていればログが莫大になり、どれが重要かわからなくなってしまうだろう。また、サーバで運営しているサービスや設置状況によっては、ポート80番の通信は記録させない(パスさせる)などの使い分けをしたほうがよいこともあるだろう。逆にSnortが標準で読み込んでいないルールファイルを必要に応じて読み込むようにしたり、ルールファイルを新規に作成するなどして、各ユーザーの利用しやすいように改良していく必要がある。また、新しい攻撃パターンが記述されたルールファイルがあれば、ウイルス定義ファイルなどと同じく、頻繁にアップデートしなければならない。
●ルールセットの選択 |
まず、Snortの設定ファイル(/etc/snort.conf)の中にあるルールセットの読み込みに関する編集を行ってみよう。ルールセットに関する記述はsnort.confの後半に記述されている。
# vi /etc/snort/snort.conf
〜省略〜 #========================================= include $RULE_PATH/bad-traffic.rules |
この中で、たとえば「backdoor.rules」のように、「#」でコメントアウトされているルールファイルは起動時に読み込まれていない。もし読み込む必要があると判断した場合は、該当するルールファイルのコメントアウトを外せばよい。また、逆に読み込ませたくないルールファイルに関しては、先頭に「#」をつけてコメントアウトしておけば、そのルールファイルは起動時に読み込まれない。
次に個々のルールファイルから、不要と判断したものを検知しないようにする場合だが、これも同様に、alertの前に#をつけコメントアウトを行えばよい。
【例】「web-cgi.rules」からphfに関する検出をしないようにする ↓コメントアウト #alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-CGI phf access";flags: A+; uricontent:"/phf"; nocase; reference:bugtraq,629; reference:a rachnids,128; reference:cve,CVE-1999-0067;classtype:attempted-recon; sid:886; rev:3;) |
このように、必要なものと不必要なものをユーザの環境に合わせて選択し、構築していくわけだ。次回はルールファイルの編集や新規作成、そして、Snortのルールファイルを自動的に最新のルールファイルへアップデートするスクリプト「Oinkmaster」の導入などについて解説していく予定だ。
[TTS、ITmedia]
5/5 |