Hyperscan
Hyperscan是Intel开发并开源的高性能正则表达式匹配库,利用x86向量指令做了极致优化。华为基于鲲鹏平台做了arm指令集适配和优化,并针对实际数据分流业务规则集的弱点做了算法革新(例如短规则旁路混合模型)。
Hyperscan的工作流程有两个主要时期:编译期和运行期。编译期将一条或者一组规则编译成一个只读数据库;运行期不需要读入规则,而是借助编译好的数据库进行匹配。
存在短规则的规则集会导致Hyperscan规则匹配陷入性能瓶颈。研究表明,Suricata开源规则集里表现最差的子集,去除八条单字节规则后,整体匹配性能上升50%,原因主要是短规则参与了太多不必要的向量计算和精确校验。最近版本交付的短规则旁路混合模型将规则集里的短规则用TBL查表指令优化的高速旁路算法绕过主算法流程,用20%的额外开销处理短规则,最终能够取得整体30%+的性能提升。
Hyperscan在十万以下常规数量规则集匹配场景是世界最快,被广泛应用于应用分类、IDP、WAF(Web Application Firewall)等场景。在以Suricata为代表的典型开源方案中,其检测引擎为第一计算热点,集成和优化Hyperscan可有效提升数据分流业务端到端性能。
Hyperscan的关键技术包括:高速预过滤算法;多模式匹配算法;自动机算法。
Hyperscan的适用场景包括:网络安全入侵检测,运营商数据精细分流,公安、技侦数据分流等。
父主题: 方案特性