Next Up Previous Contents References
Snortデータフロー

3.2 Snortデータフロー

最初に、トラフィックはネットワークからlibpcapを通じて収集されます。 パケットは最初にリンク層のプロトコル解析のため、パケットの構造体に データを書き込み、一連のデコーダルーチンを通り抜け、TCPやUDPポート などのためにさらにデコードされます。

次に、パケットは登録済みプリプロセッサセットへと送られます。各プリプ ロセッサは、そのパケットを調査するべきものかか確認します。

さらに、パケットは侵入検知エンジンへと送られます。侵入検知 エンジンはSnortルールファイルに列挙された様々なオプションに基づき 各パケットをチェックします。各キーワードのオプションはプラグインです。 これによって、拡張性が確保されます。

3.2.1 プリプロセッサ

たとえば、パケットにTCPヘッダが含まれていない場合に、TCP解析 プリプロセッサは簡単に処理から戻ってくることができます。 以下の説明で確認できます。

if (p->tcph==NULL)
   return;

同様に、パケットに``再構築済み''またはログ取得済みのフラグを 付けるため、多くのpacket_flagsが利用できます。PKT_*定数の リストについてはsrc/decode.hをご確認ください。。

3.2.2 検知プラグイン

基本的に、既存の出力プラグインを調査し、それを新しい項目にコピーし、 多少の変更を行います。後で、我々はこれらの多少の変更の内容を 文書化します。

3.2.3 出力プラグイン

総じて、新しい出力プラグインはSnortプロジェクトではなく、Barnyardプロ ジェクトに回されるべきです。現在、我々は利用可能な出力オプションに 関して調整している最中です。


Next Up Previous Contents References