8月 20

snort の threshold.conf [threshold] メモ

[snort]を運用していると、度々、報告されるアラートの中には出力回数を制限したいと思うものがでてくると思います。
残念ながら[snort]のシグネチャのみではこの出力回数制限を行うことはできません。
そこで[snort]では、シグネチャとは別に[threshold.conf]の[threshold]を利用することで可能となります。

実際の記述例を見てみましょう。threshold gen_id 1, sig_id 2050, type limit, track by_src, count 1, seconds 30これは、「MS-SQL version overflow attempt(SID:2050)」を抑制するルールで30秒以内の同じ送信元からアラートは初めの1つのみをアラートとして報告する。という意味になります。[threshold]はこのように閾値を決めて、抑制したいルールごとに記述していくことになります。
記述方法はthreshold gen_id <gen-id>, sig_id <sig-id>, type <limit|threshold|both>, track <by_src|by_dst>, count <s>, seconds <m>といった感じで
オプションの説明は下記の通りです。

オプション 説明
gen_id ジェネレータIDを指定。
sig_id 抑制したいルールのSID(SnortID)を指定。
type 抑制の仕方を指定(limit | thresohld | both)
track 送信元か送信先を指定(by_src | by_dst)
count イベントの数を指定
seconds インターバルとなる秒数を指定

それでは次に[threshold]の要となるtypeの引数の説明です。

引数 説明
limit 指定した時間内(seconds)に検知したアラートに関しては
始めから数えて、指定した回数(count)のアラートを報告する。
threshold 指定した時間内(seconds)に
指定した回数(count)以上のアラートが発生した場合にアラートとして報告する。
both 指定した時間内(seconds)に
指定した回数(count)以上のアラートが発生した場合にアラートとして1回報告する。

thresholdとbothの説明の違いが、分かりにくいので少し補足を入れます。
時間(seconds)を「30秒」、回数(count)を「5回」と指定し、
30秒間にアラートの回数が「10回」発生した場合
で説明すると
thresholdの場合は2回として報告され、bothの場合は1回の報告がされるということです。


Copyright 2021. All rights reserved.

Posted 2009年8月20日 by ntsuji in category "memo", "packet