Suricata自定义DNS规则配置报错求助:基于Base64域名数据集
Suricata自定义IDS规则解析错误排查
问题详情
尝试配置Suricata自定义IDS规则,使用包含Base64编码域名的.lst格式数据集,规则内容如下:
alert dns $HOME_NET any -> any any (msg:"DNS Query to Malicious FQDN"; dns.query; dataset:isset, domains_iocs, type string, load /etc/suricata/rules/domains_threatfox_base64.lst, memcap 10mb, hashsize 1024; classtype: trojan-activity; sid:1234567891;)
规则文件已在suricata.yaml中配置引入,规则文件与数据集文件均存放于/etc/suricata/rules目录下。执行配置预检命令:
suricata -c /etc/suricata/suricata.yaml -i <interface>
出现解析错误:
8/8/2022 -- 23:53:16 - <Error> - [ERRCODE: SC_ERR_INVALID_SIGNATURE(39)] - error parsing signature "alert dns $HOME_NET any -> any any (msg:"DNS Query to Malicious FQDN"; dns.query; dataset:isset, domains_iocs, type string, load /etc/suricata/rules/domains_threatfox_base64.lst, memcap 10mb, hashsize 1024; classtype: trojan-activity; sid:1234567891;)" from file /etc/suricata/rules/ads-ioc-dataset.rules at line 1
排查与修复方向
- 调整数据集定义方式:多数Suricata版本要求数据集先在
suricata.yaml中预定义,而非直接在规则内加载。修改suricata.yaml,添加数据集配置:
然后简化规则中的datasets: domains_iocs: type: string load: /etc/suricata/rules/domains_threatfox_base64.lst memcap: 10mb hashsize: 1024dataset选项:alert dns $HOME_NET any -> any any (msg:"DNS Query to Malicious FQDN"; dns.query; dataset:isset, domains_iocs; classtype: trojan-activity; sid:1234567891;) - 检查数据集文件格式:确保
domains_threatfox_base64.lst中每行仅包含一个Base64编码的域名,无空行、多余空格或非#开头的注释。空行或格式错误的条目会导致规则解析失败。 - 验证文件权限:确认Suricata运行用户(如
suricata用户)拥有/etc/suricata/rules/domains_threatfox_base64.lst的读取权限,可执行chown suricata:suricata /etc/suricata/rules/domains_threatfox_base64.lst调整权限。 - 核对Suricata版本兼容性:若使用Suricata 5.x之前的版本,规则内直接使用
load/memcap/hashsize参数不被支持,必须采用yaml预定义数据集的方式;若版本符合要求,检查规则内参数的逗号分隔是否正确,无多写/漏写逗号的情况。
内容的提问来源于stack exchange,提问作者GangGreenTemperTatum
相关产品推荐
相关产品推荐

