
SnortおよびSuricataのルール管理のためのPulled Pork(Google Codeより)
Snort および Suricata ルール管理のための PulledPork(Google Code より)
Libera.Chat (IRC) で私たちを見つけてください #pulledpork
Copyright (C) 2009-2021 JJ Cummings, Michael Shirk and the PulledPork Team!
PulledPork をご利用いただきありがとうございます!このファイルは PulledPork の基本的な使い方のガイダンスを提供します。何かを見逃さないように、このファイルをよく読んでください。
Usage: pulledpork.pl [-dEgklnRTPVvv? -help] -c <config filename> -o <rule output path>
-O <oinkcode> -s <so_rule output directory> -D <Distro> -S <SnortVer>
-p <path to your snort binary> -C <path to your snort.conf> -t <sostub output path>
-h <changelog path> -H <signal_name> -I (security|connectivity|balanced) -i <path to disablesid.conf>
-b <path to dropsid.conf> -e <path to enablesid.conf> -M <path to modifysid.conf>
-r <path to docs folder> -K <directory for separate rules files>
Options:
-help/? このヘルプ情報を表示します。
-b dropsid 設定ファイルの場所。
-C snort.conf へのパス。
-c pulledpork 設定ファイルの場所。
-d ルール tarball の署名を検証しない(VRT や ET 以外の場所からダウンロードする場合など)。
-D so_rules 用のディストリビューション。対応ディストリの最新情報は http://www.snort.org/snort-rules/shared-object-rules を参照。
有効なディストリタイプ:
Alpine-3-10
Centos-6, Centos-7, Centos-8
Debian-8, Debian-9, Debian-10
FC-27, FC-30
FreeBSD-11, FreeBSD-12
OpenBSD-6-2, OpenBSD-6-4, OpenBSD-6-5
OpenSUSE-15-0, OpenSUS-15-1, OpenSUSE-42-3
RHEL-6, RHEL-7, RHEL-8
Slackware-14-2
Ubuntu-14-4, Ubuntu-16-4, Ubuntu-17-10, Ubuntu-18-4
-e enablesid 設定ファイルの場所。
-E 有効なルールのみを出力ファイルに書き込みます。
-g grabonly(tarball ルールファイルをダウンロードし、処理は行いません)
-h sid_changelog のパス(保持する場合)。
-H 設定ファイルにリストされた PID に signal_name を送信します(SIGHUP または SIGUSR2)。
-I ベースルールセットを指定します(-I security,connectivity,balanced。README.RULESET を参照)。
-i disablesid 設定ファイルの場所。
-k ルールを個別のファイルに保持します(読み取り時のファイル名と同じ名前を使用)。
-K 個別のルールファイルを配置するディレクトリ。
-l 重要な情報を Syslog に記録します(エラー、成功実行など、すべての項目は WARN 以上として記録)。
-L sid-msg.map に含める local.rules を読み込む場所。
-m sid-msg.map ファイルを配置する場所。
-M modifysid 設定ファイルの場所。
-n 新しいファイルのダウンロード以外はすべて実行します(disablesid など)。
-o 汎用ルールファイルを配置する場所。
-O コマンドラインで oinkcode を定義します(一部のユーザーに必要)。
-p Snort バイナリへのパス。
-P 新しいルールがダウンロードされていなくてもルールを処理します。
-R enablesid を処理する際、ルールを元の状態に戻します。
-r リファレンスドキュメント (xxxx.txt) を配置する場所。
-S 使用している Snort のバージョン(2.8.6 または 2.9.0 が有効な値)。
-s so_rules を配置する場所。
-T テキストベースのルールファイルのみ処理(so_rules は処理しません)。
-u ルール tarball を取得する場所(例:ET、Snort.org。値のアイデアは pulledpork 設定の rule_url オプションを参照)。
-V バージョンを表示して終了。
-v 詳細モード(トラブルシューティングなどに便利)。
-vv 超詳細モード(深いトラブルシューティングなどに便利)。
-w SSL 検証をスキップ(ルールファイルのダウンロードに問題がある場合)。
-W LWP の一部の実装が pulledpork のプロキシ設定と動作しない問題を回避するために使用。
PulledPork を使用する簡単な例として、すべての設定ディレクティブを PulledPork.conf ファイル内で指定することができます。最小限の機能(Shared Object ルール処理なし)の場合は、少なくとも rule_file、oinkcode、temp_path、tar_path、rule_path の値を定義する必要があります。以下にいくつかの例を示します。
./pulledpork.pl -o /usr/local/etc/snort/rules/ -O 12345667778523452344234234 \
-u http://www.snort.org/reg-rules/snortrules-snapshot-2973.tar.gz \
-i disablesid.conf -T -H
上記は、指定された oinkcode 12345667778523452344234234 を使用して snort.org から snortrules-snapshot-2973.tar.gz の tarball を取得し、その tarball 内のルールファイルを出力パス /usr/local/etc/snort/rules/ に配置します。-i オプションで disablesid.conf の場所を、-T オプションで Shared Object ルールを処理しないことを、最後の -H オプションで pulledpork.conf で定義された Snort PID に Hangup シグナルを送信するよう指示します。
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -T -H
最初の例と似ていますが、すべてのオプションが pulledpork.conf ファイル内で指定されています(disablesid と -H を除く)。
./pulledpork.pl -c pulledpork.conf -i disablesid.conf \
-m /usr/local/etc/snort/sid-msg.map -Hn
上記は、定義された disablesid を読み取り、sid-msg.map を指定された場所に生成した後、Hangup シグナルを送信しますが、何もダウンロードしません。チューニングや変更を行う際に非常に便利です。
次の例では、ドロップおよび無効化したいルールをインラインで使用し、sid-msg.map を作成して変更情報を sid_changes.log に書き込んだ後、デーモンに HUP を送信します。
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-m /usr/local/etc/snort/sid-msg.map -h /var/log/sid_changes.log -H
次の例は上記と同じですが、デフォルトの "security" ベースのルールセットを実行し、enablesid.conf で指定されたルールを有効にするよう指定しています。
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-e enablesid.conf -m /usr/local/etc/snort/sid-msg.map \
-h /var/log/sid_changes.log -I security -H
次の例も同じですが、-K(Keep)を使用して元の tarball 名を保持し、/usr/local/etc/snort/rules/ に書き出すように指定しています。
./pulledpork.pl -c pulledpork.conf -i disablesid.conf -b dropsid.conf \
-e enablesid.conf -m /usr/local/etc/snort/sid-msg.map \
-h /var/log/sid_changes.log -I security -H -K /usr/local/etc/snort/rules/
Suricata ユーザーの場合、インストールファイルの場所に応じて同じ手順が必要ですが、PulledPork がルールファイルを処理するために必要なのは、-S フラグを使用している Suricata のバージョン(例:suricata-3.1.3)に設定することだけです。
./pulledpork.pl -c pulledpork.conf -S suricata-3.1.3
PulledPork は Suricata および ET/ETPro ルールで動作する「はず」です。ただし、Talos ルールを Suricata で実行するサポートはありません。
PulledPork はデフォルトで以下の順序でルール変更(有効化、ドロップ、無効化、変更)を実行します。
つまり、無効化ルールが常に優先されます。そのため、有効化設定ファイルと無効化設定ファイルで同じ gid:sid を指定した場合、その sid は無効化されます。範囲についても同様です。ただし、マスター設定ファイルで state_order キーワードを使用して別の順序を指定することもできます。
後でさらに情報を追加するかもしれません。--help または --? ですべての実行時オプションが表示され、pulledpork.conf はかなりよく注釈が付けられています... もし理解できなければ、もっと努力してください!そして理解できたら、追加の README やヘルプの改善に自由に貢献してください。ありがとう!
余談ですが、PulledPork の命名に協力してくれた友人 Bruce に感謝したいと思います! 「これで彼も黙るだろう ;-)」