suricata 规则管理
1.Suricata-Update
1.1.使用Suricata-Update进行规则管理
suricata-update与Suricata 4.1及更高版本捆绑在一起。它也可以与旧版本一起使用。在这种情况下,必须单独安装。
要下载Emerging Threats Open规则集,只需运行即可:
sudo suricata-update
这会将规则集下载到 /var/lib/suricata/rules/
Suricata的配置必须更新为具有如下规则配置:
default-rule-path:/var/lib/suricata/rules
rule-files:
-suricata.rules
1.2.更新规则
sudo suricata-update
1.3.使用其他规则集
Suricata-Update还可以访问其他规则集,要查看可用内容,请从OISF主机获取主索引:
sudo suricata-update update-sources
然后看一下可用内容;
sudo suricata-update list-sources
每个规则集都有一个名称,该名称具有“供应商”前缀,后跟一个集名称。例如,OISF的流量ID规则集称为“oisf / trafficid”。
要启用“oisf / trafficid”,请输入:
sudo suricata-update enable-sourceoisf/trafficid
sudo suricata-update
现在再次重新启动Suricata,并加载OISF TrafficID规则集中的规则。
要查看当前处于活动状态的规则集,请使用“list-enabled-sources”
1.4.控制使用哪些规则
默认情况下,suricata-update会将所有规则合并到一个文件“/var/lib/suricata/rules/suricata.rules”中。要启用默认禁用的规则,请使用'/etc/suricata/enable.conf':
同样,要禁用规则,请使用/etc/suricata/disable.conf,
更新这些文件后,再次重新运行suricata-update:
2.Oinkmaster
2.1 使用Oinkmaster进行规则管理
要安装Oinkmaster,请输入:
sudo yum install oinkmaster
有几个规则集。例如,Emerging Threats(ET)Emerging Threats Pro和VRT。在这个例子中,我们使用的是Emerging Threats。Oinkmaster必须知道规则的位置。这些规则可在以下位置找到:https://rules.emergingthreats.net/open/suricata-3.2/emerging.rules.tar.gz
打开oinkmaster.conf,输入以下命令添加此链接:
sudo nano /etc/oinkmaster.conf
下一步是为新规则创建目录。输入:
sudo mkdir /etc/suricata/rules
下一步输入:
cd /etc
sudo oinkmaster -C /etc/oinkmaster.conf -o /etc/suricata/rules
在新规则目录中,可以找到classification.config和reference.config。必须在suricata.yaml文件中添加两者的目录。输入以下内容
sudo nano /etc/suricata/suricata.yaml
并添加新文件位置而不是已存在的文件位置,要查看一切是否满意,请运行Suricata:
suricata -c /etc/suricata/suricata.yaml -i wlan0(or eth0)
您会注意到有几个规则文件Suricata尝试加载,但不可用。可以通过删除它们或在它们前面放一个#来禁用suricata.yaml中的那些规则集。要停止Suricata运行,请按ctrl c。新兴威胁包含的规则多于Suricata中加载的规则。要查看规则目录中可用的规则,请输入:
ls /etc/suricata/rules/*.rules
查找尚未出现在suricata.yaml中的那些,并根据需要将其添加到yaml中,您可以输入以下内容:
sudo nano /etc/suricata/suricata.yaml
如果您通过在其前面放置一个#来禁用规则文件中的规则,则下次运行Oinkmaster时将再次启用该规则。您可以通过输入以下内容通过Oinkmaster禁用它:
cd /etc/suricata/rules
并找到要禁用的规则的sid。
随后输入:
sudo nano /etc/oinkmaster.conf
并一直到文件的末尾。输入:
disablesid 2010495
而不是2010495,键入要禁用的规则的sid。也可以通过输入以逗号分隔的sid来禁用多个规则。
如果再次运行Oinkmaster,您可以看到已禁用的规则数量。您还可以启用默认禁用的规则。输入以下内容:
ls /etc/suricata/rules
在此目录中,您可以看到几个规则集Enter,例如:
sudo nano /etc/suricata/rules/emerging-malware.rules
在此文件中,您可以查看哪些规则已启用而哪些规则未启用。只需删除#,就无法长期启用它们。因为每次运行Oinkmaster时,规则将再次被禁用。相反,请查找要启用的规则的sid。将sid放在oinkmaster.config的正确位置:
sudo nano /etc/oinkmaster.conf
输入以下命令:
enablesid: 2010495
而不是2010495,键入要启用的规则的sid。通过输入用逗号分隔的sid,也可以启用多个规则。
在oinkmaster.conf中,您可以修改规则。例如,如果您将Suricata用作内联/ IPS并且您希望修改在匹配时发送警报的规则,并且您希望规则丢弃数据包,则可以通过输入以下内容来执行此操作:
sudo nano oinkmaster.conf
在可以修改规则的部分,键入:
modifysid 2010495 “alert” | “drop”
sid 2010495就是一个例子。请改为输入您想要更改的规则的sid。
重新运行Oinkmaster以注意到这一变化。
2.2 更新规则
如果您已经下载了规则集(按照此文件中描述的方式),并且您想要更新规则,请输入:sudooinkmaster-C/etc/oinkmaster.conf-o/etc/suricata/rules
3.添加自己的规则
开始为您的规则创建文件。在控制台中键入以下内容:
sudo nano local.rules
打开yaml
sudo nano /etc/suricata/suricata.yaml并确保将local.rules文件添加到规则列表中。
现在,运行Suricata并查看是否正在加载规则。
suricata -c /etc/suricata/suricata.yaml -i wlan0
如果您的规则无法加载,请检查您是否在规则中的任何位置出错。记住细节; 寻找特殊字符,空格,大写字符等的错误
接下来,检查您的日志文件是否已在suricata.yaml中启用。
如果您必须更正规则和/或修改yaml,则必须重新启动Suricata。
如果您看到规则已成功加载,则可以通过执行应触发规则的操作来仔细检查规则。
输入:
tail -f /var/log/suricata/fast.log
如果你要制定这样的规则:
alert http any any->any any(msg:"Do not read gossip during work";content:"Scarlett";nocase;classtype:policy-violation;sid:1;rev:1;)
您的提醒应如下所示:
05/1/2019-16:50:27.725288[**][1:1:1]Donotreadgossipduringwork[**][Classification:PotentialCorporatePrivacyViolation][Priority:1]{TCP}192.168.0.32:55604->68.67.185.210:80
4.规则重载
可以告诉Suricata重新加载它的规则而不重新启动,这可以通过向Suricata发送信号或使用unix套接字来实现。当Suricata被告知重新加载规则时,这些是基本步骤:
加载新配置、加载新规则、构建新的检测引擎、交换旧的和新的检测引擎、确保所有线程都已更新、免费旧检测引擎。
Suricata将在此过程中继续正常处理数据包。但请记住,系统应该有足够的内存用于两个检测引擎。
信号:
kill -USR2 $(pidof suricata)
Unix套接字有两种规则重载方法:
阻塞重新加载:
suricatasc -c reload-rules
非阻塞重载:
suricatasc -c ruleset-reload-nonblocking