基于推测的多字节正则表达式匹配技术解析
在网络安全领域,签名匹配是一项关键操作,它对于检测攻击和漏洞起着至关重要的作用。传统的确定性有限自动机(DFA)匹配方法虽然经典,但由于其固有的串行性质,在处理大规模网络流量时性能受限。本文将介绍一种名为推测并行模式匹配(Speculative Parallel Pattern Matching,SPPM)的新方法,旨在突破传统DFA匹配的性能瓶颈。
1. 背景知识
1.1 正则表达式匹配的性能问题
签名匹配是将攻击或漏洞签名表示为正则表达式,并使用DFA进行匹配的过程。为了提高处理速度,不同签名的DFA会合并为一个单一的DFA。给定一个对应于一组签名的DFA和一个表示网络流量的输入字符串,入侵防御系统(IPS)需要判断DFA是否接受该输入字符串。
现代内存具有高吞吐量和高延迟的特点,一次内存访问可能需要多个周期才能返回结果,但每个周期可以发出一个或多个请求。传统的DFA匹配算法(Algorithm 1)是串行的,每个迭代都依赖于前一个迭代的结果,因此无法并行化。
Input: DFA = the transition table
Input: I = the input string, |I| = length of I
Output: Does the input match the DFA?
state ← start state;
for i = 0 to |I| do
input_char ← I[i];
state ← DFA[state][input_char];
if accepting(stat
超级会员免费看
订阅专栏 解锁全文

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



