23、高速漏洞签名匹配技术解析

高速漏洞签名匹配技术解析

1. 协议解析与漏洞签名编写基础

在处理协议消息时,协议字段可分为两类:核心字段和应用字段。核心字段定义了协议的结构和语义,例如HTTP中的 Content-Length ,它决定了协议中后续消息体的大小;而应用字段对应用有意义,但对于理解消息的其他部分并非必需,如 Accept-Charset

在编写漏洞签名时,采用的方法是仅解析和存储核心字段以及与漏洞相关的应用字段,跳过其余部分。这样可以避免存储无关字段,将资源集中在必要的字段上。

对于许多文本协议,尽管在RFC中使用递归BNF语法定义,但往往可以使用一些技术在不进行递归解析的情况下识别核心字段。例如,HTTP头部在单独的行中指定,因此可以通过简单的字符串搜索在消息中定位特定的头部。多字符串匹配器会跳过与漏洞无关的头部字段,而不涉及解析器的其他部分。其他文本协议也有类似结构,如SMTP使用“MAIL FROM”和“RCPT TO”等带标签的命令,可在消息流中轻松识别。

2. 二进制协议处理
  • 匹配原语 :与文本协议不同,二进制协议通常缺乏明确的字段标签。解析器通过字段在消息中的位置(相对于消息起始位置或其他字段)来推断其含义。在简单情况下,解析器可以使用固定偏移量来查找字段;在更复杂的情况下,字段的位置会根据字段间的依赖关系而变化(例如可变长度数据),这使得解析依赖于数据。因此,解析器通常需要遍历许多或所有前面的字段,但这仍比完全解析简单,因为解析器只检查与结构相关的字段的长度和值。
  • 二进制遍历器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值