IDSを使ったLinuxセキュリティアップ入門(11)
前回は、ルールセットの種類と概要、および更新に関する知識について説明した。設定の見直しやルールセットの絞込みというメンテナンス作業と同様、ルールセットの更新も重要な意味を持っていることがお分かりいただけただろうか。今回は、そのルールセットの更新を自
特集
特集
●ルールセット更新の重要性とOinkmaster
本稿の第1回で述べたように、Snortはネットワーク上を流れるパケットを監視し不正なパケットを検知するネットワーク型IDSであり、不正パケットの検知方法としては、あらかじめパターン化しておいた不正パケットのパターンと現在流れているパケットのパターンを照合させることで不正パケットを発見する方式(シグネチャ型)を採用している。シグネチャは、既知のさまざまな攻撃や不正アクセスの特徴をルール化したもので、いわば、アンチウイルスソフトのパターンファイルのようなものだ。Snortでは、ルールセットと呼ばれる各ファイル(.rules)がそれに当たる。
つまり、Snortにおけるルールセットの更新は、アンチウイルスソフトのパターンファイルの更新と同じ意味合いを持っていることになる。パターンファイルを更新しないアンチウイルスソフトが新種のウイルスに無力なように、Snortの場合も、ルールセットが更新されなければ、新手の攻撃や不正アクセスの前にはまったく役に立たないといってもいいだろう。それだけルールセットの更新作業は、Snortの運用に当たって重要な作業なのである。
前回述べたように、ルールセットの更新作業そのものは難しくない。新しいアーカイブファイルをサイトからダウンロードし、解凍後、既存ファイルへ上書きするだけである。問題なのは、誤検知対策などでルールセットに修正を加えていたり、ユーザ独自のルールを追加していたりするような場合である。上記の方法では、ルールセットの更新のたびに.rulesファイルの内容を修正しなければならなくなってしまう。
Oinkmasterによるルールセット更新の自動化は、まさにこの部分の自動化に他ならない。Oinkmasterを使うことによって、ユーザが手を加えた部分を保持した状態で、シグネチャを最新のものと置き換えることができるようになるのだ。設定によっては、更新を行った後に、ユーザが加えた修正を自動的に反映させるといったことも可能だ。また、Oinkmasterは詳細なログを出力するので、ルールセットの更新の内容を細かく把握することもできるようになる。もちろん、システムと連携させれば、定期的にルールセットの更新を行うように指定することもできる。
なお、ルールセットのアップデート自体は、アンチウイルスソフトのパターンファイルほど頻繁には行われていないようだ。アップデートの内容については、ルールの新規追加は少なく、ルールの修正が大半である。修正の多くはルールの詳細化だ。ルールの修正だけでも誤検知が減少することがあり、結果的に、不正アクセスの兆候を見つけ出しやすくなる。ルールの新規追加が少なくても、ルールセットの更新は怠ってはいけないのだ。
●Oinkmaster導入の準備
まず、Oinkmasterの動作環境について説明しよう。
Oinkmasterは、いわゆる実行ファイルとして提供されるものではなく、Perlで書かれたスクリプトだ。そのため、動作環境としてPerl5がインストールされている必要がある。また、Perl以外に、tar、gzip、wgetが必要になる。
tarはアーカイブファイルの作成・展開プログラムで、Oinkmasterがダウンロードしてきたルールセットのアーカイブファイルを展開する際に使われる。gzipはファイルの圧縮・伸長プログラムで、こちらは、Oinkmasterが既存の.rulesファイルを圧縮し、指定ディレクトリにバックアップする際に利用する。どちらもLinuxではスタンダードな存在であり、まずインストールされていないということはないはずだ。
【執筆:磯野康孝】
(詳しくはScan本誌をご覧ください)
http://www.ns-research.jp/cgi-bin/ct/p.cgi?m-sc_netsec
《ScanNetSecurity》