适用于 Snort 和 Suricata 规则管理的 PulledPork(来自 Google Code)
在 Libera.Chat (IRC) 上找到我们 #pulledpork
版权所有 (C) 2009-2021 JJ Cummings、Michael Shirk 和 PulledPork 团队!
感谢您选择使用 PulledPork!本文档提供一些关于 PulledPork 使用的基本指导。请务必仔细阅读本文件,以免遗漏任何内容!
用法: pulledpork.pl [-dEgklnRTPVvv? -help] -c <配置文件名称> -o <规则输出路径>
-O <oinkcode> -s <共享对象规则输出目录> -D <发行版> -S <Snort版本>
-p <Snort二进制文件路径> -C <snort.conf路径> -t <共享对象存根输出路径>
-h <变更日志路径> -H <信号名称> -I (security|connectivity|balanced) -i <disablesid.conf路径>
-b <dropsid.conf路径> -e <enablesid.conf路径> -M <modifysid.conf路径>
-r <文档文件夹路径> -K <单独规则文件目录>
选项:
-help/? 打印此帮助信息。
-b dropsid 配置文件所在路径。
-C 您的 snort.conf 路径。
-c pulledpork 配置文件所在路径。
-d 不验证规则压缩包的签名,即从非 VRT 或 ET 位置下载。
-D 您运行的发行版类型,用于共享对象规则。
最新支持的选项请参见 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 仅抓取(下载压缩包规则文件但不处理)
-h 如果您希望保留 sid_changelog 的路径?
-H 向配置文件中列出的 PID 发送信号名称(SIGHUP 或 SIGUSR2)
-I 指定基础规则集(-I security、connectivity 或 balanced,请参阅 README.RULESET)
-i disablesid 配置文件所在路径。
-k 将规则保留在单独的文件中(使用读取时相同的文件名)
-K 您希望我将单独规则文件放在哪个目录?
-l 将重要信息记录到系统日志(错误、成功运行等,所有项目记录为 WARN 或更高级别)
-L 您希望我在哪里读取您的 local.rules 以包含到 sid-msg.map 中
-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 您希望我从哪里拉取规则压缩包
** 例如,ET、Snort.org。请参阅 pulledpork 配置中的 rule_url 选项以获取值参考
-V 打印版本并退出
-v 详细模式,用于故障排除等无聊事务。
-vv 超级详细模式,用于深入故障排除等无聊事务。
-w 跳过 SSL 验证(如果拉取规则文件时出现问题)
-W 用于解决某些 LWP 实现无法与 pulledpork 代理配置配合使用的问题。
一个使用 PulledPork 的简单示例是将所有配置指令指定在 PulledPork.conf 文件中。特别地,对于最小功能(即不处理共享对象规则),您至少需要定义 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
以上命令将从 snort.org 使用指定的 oinkcode 12345667778523452344234234 获取 snortrules-snapshot-2973.tar.gz 压缩包,并将该压缩包中的规则文件放入输出路径 /usr/local/etc/snort/rules/,同时 -i 选项告诉 pulledpork disablesid.conf 文件的位置,-T 选项告诉 pulledpork 不处理任何共享对象规则,最后的 -H 选项告诉 pulledpork 向您在 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 信号,而不下载任何内容。
在调优/进行更改等情况下非常有用。
下一个示例,内联式 Snort,包含我们想要丢弃和禁用的规则,然后在创建 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(保留)原始压缩包名称,并将它们写入 /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-3.1.3 或您使用的任何 Suricata 版本。
./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 / help 文档,谢谢!
另外,我想向我的哥们 Bruce 致敬,感谢他帮助命名 PulledPork! “希望这能让他闭嘴 ;-)”
J