• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

SecPath F1000-AI-25自定义IPS特征

4小时前提问
  • 0关注
  • 0收藏,48浏览
粉丝:0人 关注:0人

问题描述:

阻断恶意域名的规则这样写有问题么?
alert udp any any -> any 53 (msg:"test5"; content:"lky213|02|cn";fast_pattern:only; nocase; classtype:attempted-admin; sid:351; rev:1;)
如果要增加
策略该怎么写,这里导入的文件好像也不是常规的.rules的文件

4 个回答
粉丝:7人 关注:9人

现有规则问题
1. 动作仅为alert(告警),未实现阻断,需改为drop或reject;
2. 域名分隔符十六进制错误:|02|应为|2E|(对应ASCII的".")。
修正后规则示例
drop udp any any -> any 53 (msg:"block_malicious_domain"; content:"lky213|2E|cn"; fast_pattern:only; nocase; classtype:attempted-admin; sid:351; rev:2;)
增加策略步骤
1. 编辑规则文件:保存为.rules格式,确保sid全局唯一、rev版本号递增;
2. 导入文件:先将文件上传至设备flash,执行命令:

ips custom-signature import file flash:/xxx.rules

3. 创建IPS策略并引用自定义特征:

ips policy test
signature-set custom
rule 10 permit signature-id 351
quit

4. 应用策略到接口:

interface GigabitEthernet x/x/x
ips apply policy test

注意事项
H3C SecPath支持.rules格式导入,若导入失败需检查文件格式、sid冲突;操作前务必备份配置。

暂无评论

粉丝:112人 关注:11人

看看有没有用:


 

防火墙和IPS的自定义规则,跟snort规则文件格式是一致的。可以先搭建一个snort环境测试规则文件,测试无问题再直接导入我们的设备进行测试,可以减少语法错误导致来回导入规则文件的时间消耗。

以Snort的一条IE规则为例:

alert tcp any 80 -> any any (msg:"BROWSER-IE Microsoft Internet Explorer CacheSize exploit attempt";flow: to_client;file_data;content:"recordset"; offset:14;depth:9;content:".CacheSize"; distance:0; within:100;pcre:"/CacheSize\s*=\s*/";byte_test:10,>,0x3ffffffe,0,relative,string;sid:10000004;rev:1;)

alert 是动作配置为告警,这个字段可以填写alert,reject,drop等

tcp是指协议,这个字段可以填写tcp,udp,ip,icmp

any 80 -> any any对应我们的安全域配置,这里是检测从任意ip、80端口返回到任意ip,任意端口的会话

msg:”BROWSER-IE Microsoft Internet Explorer CacheSize exploit attempt”是攻击名

Sid 指自定义的规则id

Rev指revision版本号。


alert tcp any 80 -> any any (msg:"BROWSER-IE Microsoft Internet Explorer CacheSize exploit attempt";flow: to_client;file_data;content:"recordset"; offset:14;depth:9;content:".CacheSize"; distance:0; within:100;pcre:"/CacheSize\s*=\s*/";byte_test:10,>,0x3ffffffe,0,relative,string;sid:10000004;rev:1;)

flow: to_client; 规则检测服务器返回给客户端的报文负载

file_data; 检测的是应答包负载,也就是html页面的内容。

content:”recordset”; offset:14;depth:9; 检测的是recordset字符串,从file_data负载的14个字节处开始查找,查9个字节深度,如果找到了recordset,表示命中,如果在此范围未查到,就表示未命中。

content:”.CacheSize”; distance:0; 在上一处content,也就是找到recordset之后的位置开始,偏移0字节,范围100字节,找到.CacheSize字符串(默认是大小写均可)

pcre:”/CacheSize\s*=\s*/”; 在报文内匹配正则表达式


alert tcp any 80 -> any any (msg:"BROWSER-IE Microsoft Internet Explorer CacheSize exploit attempt";flow: to_client;file_data;content:"recordset"; offset:14;depth:9;content:".CacheSize"; distance:0; within:100;pcre:"/CacheSize\s*=\s*/";byte_test:10,>,0x3ffffffe,0,relative,string;sid:10000004;rev:1;)

byte_test:10,>,0x3ffffffe,0,relative,string;相对从上一处匹配到的数据开始,偏移0,长度10提取字符串类型数据,转换成数值,跟 0x3fffffffe比较,提取的数据要比后者大。


将测好的规则文件,导入到我们的防火墙

配置关键点

参考资料:

snort_manual.pdf

Snort_rule_infographic.pdf

暂无评论

粉丝:15人 关注:1人

你的这条 alert 规则语法本身没有错误,可以用来记录日志;但它的动作是 alert(告警/允许),所以不能阻断恶意域名。要真正实现阻断,需要把 alert 改为 drop



 导入 .rules 文件的正确方法

H3C 防火墙导入的自定义特征文件,就是 .rules 格式的文件,不是别的格式。你可以按照以下步骤操作,导入文件来覆盖系统中的旧的自定义规则:

  1. 创建 .rules 文件:在电脑上用记事本新建一个文件,把编写好的规则逐条写好,保存时将文件名设为 block_domain.rules(名字可以自己定),编码选择 UTF-8

  2. 上传文件到防火墙:将 block_domain.rules 文件通过FTP或TFTP等方式上传到防火墙上。

  3. 执行导入命令:在防火墙的命令行中用 ips signature import snort tftp://你的电脑IP/block_domain.rules 导入。

  4. 验证导入结果:使用 display ips signature user-defined 命令,检查导入的自定义特征及其ID。


 更多阻断规则写法示例

这里为你准备了几个更完善的阻断规则写法,可以参考:

  • UDP DNS请求阻断(基础版)

    drop udp any any -> any 53 (msg:"Blocked Malicious Domain UDP Query"; content:"lky213|02|cn"; fast_pattern:only; nocase; classtype:bad-unknown; sid:1000001; rev:1;)说明:这是UDP 53端口的丢弃规则。fast_pattern:only指令能提升性能。
  • TCP DNS请求阻断(补充版)

    drop tcp any any -> any 53 (msg:"Blocked Malicious Domain TCP Query"; content:"lky213|02|cn"; fast_pattern:only; nocase; classtype:bad-unknown; sid:1000002; rev:1;)说明:这是对TCP 53端口的补充规则。
  • 同时匹配UDP与TCP的复合规则

    drop tcp or udp any any -> any 53 (msg:"Blocked Malicious Domain DNS Query"; content:"lky213|02|cn"; fast_pattern:only; nocase; classtype:bad-unknown; sid:1000003; rev:1;)说明:这是仅匹配DNS协议的复合规则。此时端口可以不指定为53。


暂无评论

粉丝:18人 关注:0人

您这条规则存在关键性错误,会导致完全无法匹配目标域名,而且关于导入文件的问题也有常见的误解。下面直接说明问题并给出正确写法。


1. 当前规则的核心问题

snort
alert udp any any -> any 53 (msg:"test5"; content:"lky213|02|cn"; fast_pattern:only; nocase; classtype:attempted-admin; sid:351; rev:1;)

问题①:把域名中的点号 · 错写成了 |02|

  • |02| 是十六进制 0x02(STX 控制字符),而域名的点是 0x2E

  • 如果想用十六进制写点号,应该是 |2E|,或者直接写点 .

问题②:即使纠正了点号,依然匹配不到 DNS 请求中的域名

DNS 请求报文里的域名不是直接以点号分隔的字符串,而是采用“标签长度 + 标签内容”的编码。
比如 ***.*** 经编码后字节流为:

text
06 6c 6b 79 32 31 33 02 30 32 02 63 6e 00 | l k y 2 1 3| |0 2| |c n| 结束 (长度6) (长度2)(长度2)

你的 content:"***.***" 根本不会出现在数据流里。

问题③:fast_pattern:only 使用不当

fast_pattern:only 表示仅将这一段内容作为“快速匹配”模式,其他内容将不被做为快速匹配。这里只有一段内容且匹配逻辑有问题,加了反而限制。


2. 正确的规则写法(两种方案)

方案A:使用 dns_query 关键字(强烈推荐)

如果 H3C SecPath F1000-AI-25 的 IPS 引擎支持 dns_query(绝大多数基于 Snort 的系统都支持),直接匹配已解析的查询域名,简单可靠:

snort
alert udp any any -> any 53 (msg:"Block malicious domain ***.***"; dns_query; content:"***.***"; nocase; classtype:attempted-admin; sid:351; rev:2;)

这种写法完全不用管底层编码,直接写域名本身即可,支持 nocase 忽略大小写。

方案B:匹配原始 UDP 负载(无 dns_query 支持时)

需要按照 DNS 编码写出真实字节:

snort
alert udp any any -> any 53 (msg:"Block malicious domain ***.***"; content:"|06|lky213|02|02|02|cn"; fast_pattern; nocase; classtype:attempted-admin; sid:351; rev:2;)

字节含义

  • |06| —— 第 1 个标签长度 6 字节(lky213)

  • lky213 —— 明文字符

  • |02| —— 第 2 个标签长度 2 字节

  • 02 —— 明文字符(数字 0 和 2)

  • |02| —— 第 3 个标签长度 2 字节

  • cn —— 明文字符

如要匹配更多域名,只需按同样格式改写。

两种方案都别忘了在 IPS 策略里把该特征的动作设置为“阻断/丢弃”,因为规则中写的是 alert 只是告警,实际阻断需要在策略动作中配置。


3. 如何增加更多恶意域名策略

逐条添加规则(推荐)

每个域名一条规则,只需改动 sidmsg 和 content

用 dns_query 示例(如果支持)

snort
alert udp any any -> any 53 (msg:"Block ***.***"; dns_query; content:"***.***"; nocase; classtype:attempted-admin; sid:352; rev:1;) alert udp any any -> any 53 (msg:"Block test.me"; dns_query; content:"test.me"; nocase; classtype:attempted-admin; sid:353; rev:1;)

用原始负载匹配示例
恶意域名 ***.*** 编码为 04 65 76 69 6c 03 63 6f 6d 00,规则:

snort
alert udp any any -> any 53 (msg:"Block ***.***"; content:"|04|evil|03|com"; fast_pattern; nocase; classtype:attempted-admin; sid:352; rev:1;)

sid 每条不能重复,范围通常在 1000000 之内自定义。


4. 关于“导入的文件不是 .rules 格式”

H3C SecPath F1000-AI-25 的自定义 IPS 特征并不强制要求 .rules 后缀,设备通常支持:

  • 直接粘贴规则文本:在 Web 界面的“安全防护 → IPS → 自定义特征”中,可逐条粘贴上述规则,无需文件。

  • 导入文本文件:将多条规则保存为纯文本文件(后缀可以是 .txt.cfg 甚至无后缀),只要内容格式为标准 Snort 规则,在导入界面选择该文件上传即可。

  • 部分版本可能要求特定封装格式:如果你看到的是 .dat 或 .sec 等文件,那通常是官方发布的特征库更新包,不是自定义入口。自定义特征导入一般就是纯文本。

操作建议

  1. 先在记事本中写好所有规则,保存为 .txt 文件。

  2. 登录设备 Web → “安全防护 → IPS → 自定义特征” → 选择“导入” → 浏览并上传该 txt。

  3. 如果页面提示格式错误,注意规则必须一行一条,换行使用 Unix/Windows 风格均可,不含中文标点。

若仍然无法导入,可以查阅随设备附带的《IPS 配置指导》中“自定义特征导入格式说明”一节,确认该型号的具体要求。


按照上述方案修正后,规则即可生效,实现阻断对 ***.*** 的 DNS 解析请求。如果测试时发现未阻断,可以通过抓包确认 DNS 报文中的域名是否带 AAAA 或其他查询类型,默认匹配所有类型,不需要额外改动。

暂无评论

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明