迈向高覆盖率漏洞签名生成的技术解析
在网络安全领域,生成高覆盖率的漏洞签名对于及时发现和防范网络攻击至关重要。下面将详细介绍相关技术的核心要点。
1. 协议层路径谓词提升
请求行字段包含方法、请求 URI 和 HTTP 版本三个子字段。例如,条件 strstr(linebuf,"../") != 0 会转换为 strstr(FIELD Request-Line,"../") != 0 ,对整个消息的条件会转换为对特殊 MSG 字段的条件。
这种转换的好处显著:
- 打破了流级路径谓词对漏洞消息中字段位置的人为限制。像 HTTP 协议,消息中部分字段(除请求行/状态行外)顺序改变不影响消息含义。因此,两个等效的漏洞消息字段顺序不同时,基于其中一个生成的字节级漏洞点可达性谓词可能无法识别另一个也能到达漏洞点。
- 若漏洞消息存在可变长度字段,改变其大小会影响后续字段位置,这种小变化可能使流级签名失效。而使用字段符号表达约束,协议级签名自然允许字段在输入中改变位置。
2. 字段条件泛化器
字段条件泛化器接收字段条件生成器生成的协议级路径谓词、协议规范和发送给程序的输入,输出去除解析相关条件的字段约束链。具体操作步骤如下:
1. 为输入的每个字节分配一个符号变量,并根据给定协议规范处理输入,生成捕捉输入约束的符号条件,这些条件限制输入消息格式与解析器返回的格式相同,称为解析条件。
2. 通过快速语法等价检查从协议级路径谓词中移除解析条件。若快速语法检查失败,则使用更昂贵的基于决策过程的等价检查。
去除解析条件的好处有:
超级会员免费看
订阅专栏 解锁全文
1041

被折叠的 条评论
为什么被折叠?



