多字节正则表达式匹配与内核恶意软件行为分析
多字节正则表达式匹配
现有匹配方法对比
在网络入侵检测领域,不同的正则表达式和字符串匹配方法各有特点。传统方法中,有的是由部分传感器分析每个切片。而本文采用的方法则是将单个数据包或流进行细分,对每个片段进行并行的推测性匹配,并依赖快速验证。与Kruegel的工作不同,本文的方法能受益于日益普及的多核、SIMD和其他n路处理环境。
并行算法分析
在入侵检测上下文之外,已经开发和研究了用于正则表达式和字符串匹配的并行算法。例如:
- Hillis和Steele的算法表明,给定n * a个处理器(a为字母表大小),大小为n的输入可以在Ω(log(n))步内完成匹配。该算法能处理任意正则表达式,但适用于拥有大量可用处理器的连接机风格架构。
- Misra推导了一个使用O(n * length(string))个处理器的O(log(n))时间的字符串匹配算法。同样,这些算法都需要大量的处理器。
TCAM技术及其局限性
许多技术都采用了三元内容可寻址存储器(TCAMs)。如Alicherry等人提出了基于TCAM的多字节字符串匹配算法,Yu等人提出了基于TCAM的简单正则表达式或字符串匹配方案,Weinsberg等人引入了旋转TCAM(RTCAM)以进一步提高匹配速度。然而,所有基于TCAM的方法都存在一些限制:
| 限制类型 | 具体描述 |
| ---- | ---- |
| 模式长度 | 模式长度受限于TCAM的宽度 |
| 正则表达式复杂度 | 可接受的正则表达式复杂度大大受限 |
| 硬件成本 |
超级会员免费看
订阅专栏 解锁全文
2万+

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



