※ご注意
本稿の内容を検証する場合は、必ず影響を及ぼさない限られた環境下で行って下さい。また、本稿を利用した行為による問題に関しましては、筆者および株式会社アットマーク・アイティは一切責任を負いかねます。ご了承ください。
前回「ACIDのインストールと設定」までで、SnortおよびACIDの環境構築は終了した。すでにテスト環境などで運用している方はお気付きと思うが、前回までの設定で運用を行うと、多くの誤検知が発生してしまう。
今回はSnortのチューニングをテーマに、Snortを稼働させるマシンや誤検知を減らす方法について考えていきたい。
Snortを稼働させるマシン(ハードウェア)
まずは、Snortを稼働させるマシンのハードウェア面について考えてみよう。
SnortはライトウェイトなIDSである。よって、よほどロースペックなマシンでない限り、Snortを稼働させることができる。しかしながら、Snortがその目的を完ぺきに遂行するためには、それなりのスペックを持つマシンでなければならない。
ここでいう「それなりのスペック」とは、監視対象のネットワークの規模によって大きく異なる。例えば、個人が運用している小規模なLANと大企業で運用している大規模なLANでは、後者の方がより多くのパケットをSnortが処理しなければならないことが容易に想像できるであろう。
ポイントとなる点を下記に列挙してみよう。
- CPU
- メモリ
- HDD
- NIC(Network Interface Card)
まず、CPUについて考えてみよう。CPUで考慮しなければいけないことはただ1つ。「十分な処理性能を持っているか」という点である。特に同一マシン上でSnort以外のシステムを稼働させている場合は注意が必要だ。CPUについては、ある程度余裕を持って選んでおきたい。
次に、メモリについて考えてみよう。メモリについての目安は、「スワップが発生しない程度」ということになるだろう。可能であれば、ある程度余裕を持たせておきたい。また、「容量」だけではなく、「速度」についても注意しておきたい。こちらも可能であれば、より速いメモリを選んでおきたい。
さらに、HDDについて考えてみよう。結論からいえば、Snortが出力するアラートを記録できるだけの容量が必要となる。この容量については、ネットワークを流れるパケットの総量などを考慮する必要があるため、一概にはいえない。ただし、数GBしか搭載されていないということでもなければ、不自由はしないだろう。可能であれば、大容量なHDDを搭載しておいた方がよい。
最後にNICについて考えてみよう。NICについては最も考慮しなければならない。大抵のネットワークは100Mbps以下の帯域幅で運用されているかと思う。そのようなネットワークで10Mbps対応のNICを使用した場合、ほぼ確実にパケットの取りこぼしが発生してしまう。それを考慮すると、100Mbps対応のNICは必須となるであろう。予算的に余裕があるのであれば、ギガビットクラスのNICを採用することも検討に値する。NICを接続するシステムの内部バス速度も考慮しなければならない。当然のことながら、速い方がパケットの取りこぼしが少なくて済む。
Snortを稼働させるマシン(ソフトウェア)
続いてソフトウェア面についても考えてみよう。
ポイントとなるのはただ一点、「どのOS上で稼働させるか」という点である。SnortはUNIX/LinuxやWindows上で動作する。ここで、「どちらのOSでシステムを稼働させればよいのか」という疑問が生じるかもしれない。
個人的に答えを出すとすれば、「使い慣れた方を選択すればよい」ということになる。UNIX/Linuxを選択するにせよ、Windowsを選択するにせよ、そのOSに不慣れであれば、運用コストも高くなってしまう。どちらでも動くのであれば、より慣れた方を選択するのが賢いといえよう。
参考までに付け加えておくが、当初SnortはUNIX/Linuxをターゲットとして開発されている。もし、どちらでも構わないのであれば、UNIX/Linuxの採用をお勧めしたい。
Snortを配置する場所
続いて、Snortを配置するネットワーク上の場所について考えていこう。配置場所を決定するうえでポイントとなるのは、「何を監視するのか」という点にほかならない。
例えばファイアウォールの手前に配置した場合、ファイアウォールに対して送られてくる全パケットが監視対象となる。つまり、本来ファイアウォールで破棄されるパケットについても、Snortの監視対象となるのである。
逆にファイアウォールの内側に配置した場合、ファイアウォールを通過したパケットのみが監視対象となる。つまり、ファイアウォールが破棄したパケットについては一切監視できない。
前者の場合と後者の場合を比較してみると、取り扱わなければならないパケットの総量は、前者の方が圧倒的に多くなる。また、前者の方がSnortを稼働させているマシンのセキュリティに対し、より注意が必要となる。
ここまで読み進めてきた方の中には、「結局のところ、結論は?」と思われた方が多数いらっしゃることであろう。そんな方にぜひ読んでいただきたいドキュメントがある。「Snort FAQ」がそれである。このドキュメントはSnortオフィシャルサイトで公開されている。
「英語はちょっと……」という方は、日本Snortユーザ会の有志の手により翻訳されたものがあるので、そちらの方を参照していただきたい。
このドキュメントの「2.5 Where's a good place to physically put a Snort sensor?」(日本語訳版なら「2.5 Snort センサーを設置する場所はどこが良いですか?」)を参照していただきたい。上記のドキュメントを参照のうえで、各自で判断していただければと思う。
Index
誤検知を減らすためのSnortチューニング
Page1
Snortを稼働させるマシン(ハードウェア)
Snortを稼働させるマシン(ソフトウェア)
Snortを配置する場所
Snortのチューニング
使用するシグネチャの選定
使用するプリプロセッサの選定
誤検知を減らすための絶対的な方法はない
Copyright © ITmedia, Inc. All Rights Reserved.