本稿の内容を検証する場合は、必ず影響を及ぼさない限られた環境下で行って下さい。本稿を利用した行為による問題に関しましては、筆者および株式会社アットマーク・アイティは一切責任を負いかねます。前回「誤検知を減らすためのSnortチューニング」では誤検知を減らすためのチューニング方法について解説した。誤検知を減らすためのポイントについて、ある程度は理解していただけたことと思う。今回はプリプロセッサについて解説を行っていきたい。プリプロセッサとは何かまず、「プリプロセッサとは何か」という点について紹介していこう。Snortにおけるプリプロセッサは、パケットを解析した後に、さまざまな処理を行うためのものである。プリプロセッサが存在するおかげで、Snortは非常に柔軟な処理を行うことができる。2.2.0に同梱されているsnort.confを参照すると、下記のプリプロセッサに関する設定項目が存在している。パフォーマンス統計ご覧のとおり、プリプロセッサによってさまざまな拡張機能が実現されている。それでは、よく使用されると思われるものについて、順に解説していこう。以降の説明についてはTarballに同梱されている各種ドキュメントを基に作成している。実際の設定ファイルと併せて見ていただければ、より理解しやすくなると思う。flow:フロー追跡このプリプロセッサは、状態を保持したままフローを追跡する機能を持っている。現時点ではflow-portscanがこのプリプロセッサに依存している。よって、flow-portscanを使用する場合は、このプリプロセッサを有効にしておく必要がある。このプリプロセッサで指定できるオプションは下記のとおりだ。ハッシュの作成方法を指定1を選択するとbyte、2を選択するとintegerで行うfrag2:IPのデフラグメンテーション(断片化解消)このプリプロセッサは、IPのデフラグメンテーション(断片化解消)を行う。これを用いることで、断片化攻撃(通常はDoSアタックである)を発見できるかもしれない。このプリプロセッサで指定できるオプションは下記のとおりだ。同じパケットの断片同士で許容されるTTL誤差の最大値を数量で指定するstream4:ステートフルインスペクションとストリームの再構築このプリプロセッサは、TCPステートフルインスペクションとストリーム再構築を実現する強力なものである。設定可能なオプションも多数存在する。TCPステートフルインスペクションに関するオプションから見ていこう。続いてストリーム再構築に関するオプションを見ていこう。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。