効率と速度を最大限に高めるSnortのルールを書くために、、 念頭に置くべき一般的概念がいくつかあります。
適切なルールにはcontentsが含まれています。2.0 検知エンジンは、 第1段階で設定別のパターンマッチを実行することにより、Snortの動作を 少々変更します。contentオプションが長ければ長いほど、マッチはより ``正確''になります。ルールにcontentオプションが含まれていなければ、 システム全体の性能が低下してしまいます。
ルールを書き込む場合に、exploitの詳細(ここではこのシェルコード)では なく、脆弱性に的を絞った(たとえば、1025以上のoffsetでこの手順を呼び 出すことなど)ルールを書くように心掛けてください。
contentルールは大文字と小文字を区別します(ただし、nocaseオプションを 利用する場合を除く)。
Contentルールが大文字と小文字を区別し、多くのプログラムでは コマンドを表示するために一般に大文字を利用することを念頭に 置いてください。FTPはその好例といえます。次の2つのルールを ご覧ください。
alert tcp any any -> 192.168.1.0/24 21 (content: "user root"; \
msg: "FTP root login";)
alert tcp any any -> 192.168.1.0/24 21 (content: "USER root";\
msg: "FTP root login";)
上記の2つ目のルールはほぼすべての自動的なrootログイン試行を
検知しますが、userに小文字を利用する試行を検知できないので
注意する必要があります。インターネットデーモンは入力として
受け取るものに関して寛大です。ルールを書く際には、プロトコルが
受け付けるものを把握できれば、攻撃を見逃す件数を最小限に抑える
ことが可能となります。