当前位置: 首页 > 专利查询>凯为公司专利>正文

用于处理有限自动机的方法和装置制造方法及图纸

技术编号:11856106 阅读:54 留言:0更新日期:2015-08-11 02:36
本发明专利技术的各实施例涉及用于处理有限自动机的方法和装置。提供了一种方法和相应的装置和系统用于通过以投机方式行走至少一个有限自动机来优化在输入流中的至少一个正则表达式图样的匹配。该投机方式可以包括在该输入流中的一个数据包的一个有效载荷之内的一个给定偏移下用一个区段并行地行走该至少一个有限自动机中的一个给定有限自动机的至少两个节点。该行走可以包括在该至少两个节点中的每一个节点处在该有效载荷之内的该给定偏移下确定对于该区段的一个匹配结果。该行走可以进一步包括基于所确定的每个匹配结果的集合来确定用于行走该给定有限自动机的至少一个后续行动。

【技术实现步骤摘要】

本专利技术的各实施例涉及用于处理有限自动机的方法和装置
技术介绍
开放系统互连(OSI)参考模型定义了用于通过传输介质进行通信的7个网络协议层(L1-L7)。上层(L4-L7)表示端到端通信并且下层(L1-L3)表示本地通信。联网应用感知系统需要处理、过滤和切换L3到L7网络协议层的范围,例如,L7网络协议层诸如超文本传输协议(HTTP)和简单邮件传输协议(SMTP),以及L4网络协议层诸如传输控制协议(TCP)。除了处理网络协议层以外,联网应用感知系统需要以线速(即,在其上传输和接收数据的网络的物理介质上的数据传输速率)通过L4-L7网络协议层来同时通过基于访问和内容的安全性来保护这些协议,这些协议层包括防火墙、虚拟专用网(VPN)、安全套接字层(SSL)、入侵检测系统(IDS)、互联网协议安全(IPSec)、防病毒(AV)和防垃圾邮件功能。网络处理器可用于高吞吐量L2和L3网络协议处理,S卩,执行数据包处理从而以线速转发数据包。通常,通用处理器用于处理需要更多智能处理的L4-L7网络协议。虽然通用处理器可以执行此类计算密集型任务,但是没有足够用于处理数据使得其能够被以线速转发的性能。入侵检测系统(IDS)应用可以检查流过网络的各个数据包的内容,并且可以标识可能指示试图侵入或损害系统的可疑图样。可疑图样的一个示例可以是数据包中的特定文本串,该特定文本串在100个字符以后跟随另一特定文本串。此类内容感知联网可能要求以线速检查数据包的内容。可以对内容进行分析,以确定是否存在安全漏洞或入侵。可以应用大量的处于正则表达式形式的图样和规则(本文中也称为正则表达式图样)以确保检测到所有的安全漏洞或入侵。正则表达式是用于描述字符串中的图样的一种紧凑的方法。通过正则表达式匹配的最简单的图样是单个字符或字符串,例如/c/或/cat/。正则表达式还可以包括具有特殊含义的运算符和元字符。通过使用元字符,正则表达式可以用于更复杂的搜索,如“abc.*xyz.”。即,在“abc”和“xyz”之间的无限量字符的情况下,找到字符串“abc”,之后是字符串“xyz”。另一示例是正则表达式“abc..abc.*xyz ; ”,即,找到字符串“abc”,后面两个字符,然后是字符串“abc”并且在无限量字符后由字符串“xyz”跟随。通常使用搜索算法(如用于处理正则表达式的确定有限自动机(DFA)或非确定有限自动机(NFA))执行内容搜索。
技术实现思路
本专利技术的实施例提供了一种可以使用至少一个有限自动机对输入流搜索至少一个正则表达式图样的方法、装置、计算机程序产品、和相应的系统。根据一个实施例,一种方法可以在至少一个存储器中存储包括从至少一个正则表达式图样生成的多个节点的至少一个有限自动机。该方法包括将该至少一个存储器操作地耦合到至少一个处理器。该至少一个处理器可以被配置成用于以经由操作地耦合到网络的一个硬件网络接口接收的一个输入流的多个区段来行走该至少一个有限自动机,以对该输入流中的该至少一个正则表达式图样进行匹配。该行走可以包括在该输入流中的一个数据包的一个有效载荷之内的一个给定偏移下用一个区段并行地行走该至少一个有限自动机中的一个给定有限自动机的至少两个节点。该行走可以包括在该至少两个节点中的每一个节点处在该有效载荷之内的该给定偏移下确定对于该区段的一个匹配结果。该行走可以进一步包括基于所确定的每个匹配结果的集合来确定用于行走该给定有限自动机的至少一个后续行动。该区段在此还可以被称为有效载荷区段或该有效载荷的一个区段。该区段可以是该有效载荷的一个正在被检查的部分,以确定该区段与正在用该区段遍历(即,行走)的该至少一个有限自动机的一个节点所指示的元素的匹配。该区段可以是值、字符、字母、字节或其他适合的类型的数据。该区段可以具有任何合适的粒度(如,长度或大小)。例如,该区段的粒度可以是一个字节、多个字节、小于一个字节、任何数量的位、或任何其他适合的粒度。该元素的类型可以是字符、字符串、字符类、或任何其他适合的元素类型。该至少一个有限自动机可以包括一个确定型有限自动机(DFA)和至少一个非确定型有限自动机(NFA)。至少一个有限自动机中的该给定的有限自动机可以是该至少一个NFA中的一个给定的NFA。在该至少两个节点中的每个节点处的该确定可以是在该至少一个处理器的同一个处理周期之内。该至少两个节点可以包括一个元素节点和一个并行节点,该元素节点可以被配置成用于匹配在该有效载荷中的一个第一元素的单个实例。该第一元素可以是一个第一字符或第一字符类。该并行节点可以是如下各项之一:(i)被配置成用于匹配在该有效载荷中的一个第二元素的可变数目的连续实例的一个可变计数节点,或者(ii) 一个投机节点。该投机节点可以被配置成用于基于从一个分离节点或到改分离节点的转换弧线来匹配在该有效载荷中的一个第二元素的可变数目的连续实例。该第二元素可以是一个第二字符或第二字符类。该可变计数节点可以是该分离节点和该投机节点的集合。该分离节点可以被配置成用于独立于该有效载荷并且不从该有效载荷进行消耗(即,处理)而将该行走经由ε转换弧线前进到该元素节点和该投机节点并且用在该给定偏移下的该区段并行地行走该元素和投机节点。该投机节点可以被配置成用于将该行走前进回到该分离节点,并且基于在该投机节点处与该第二元素的肯定匹配,通过更新该给定偏移来消耗该区段。该给定的有限自动机可以是NFA图形,该NFA图形可以包括一个从该可变计数节点到该元素节点的转换弧线。在NFA图形中,该可变计数节点可以在该元素节点之前。该可变计数节点可以是一个与或直接或间接地标识该元素节点的元数据相关联的懒惰型节点,以基于在该有效载荷中的该第二元素的该可变数目的连续实例中的单个匹配实例使该行走前进到该元素节点。与该可变计数懒惰节点相关联的该元数据可以包括一个用于追踪在该有效载荷中匹配的该第二元素的连续实例总数的计数,以允许该总数与该可变数目的比较。基于该并行节点为该投机节点,该给定的有限自动机可以包括该多个节点中的一个分离节点。该元素节点和该投机节点可以基于与该分离节点相关联的元数据来标识。该分离节点可以被配置成用于独立于该有效载荷并且不从该有效载荷进行消耗而将该行走经由ε转换弧线前进到该元素节点和该投机节点,并且基于包括在与该分离节点相关联的元数据中的一个投机处理指示符,用在该给定偏移下的该区段并行地行走该元素和投机节点。该方法可以基于在与该分离节点相关联的该元数据中不包括该投机处理指示符而不并行地行走该元素和投机节点。在该给定偏移下用该区段行走该投机节点可以是基于在该元素节点处在该给定偏移下对于该区段的一次。在该给定偏移下用该区段行走该投机节点可以是进一步基于存储和取回未探索的上下文。该未探索的上下文可以或直接或间接地标识该投机节点和该给定偏移。存储该未探索的上下文可以包括在一个堆栈条目中存储该未探索的上下文并且将该堆栈条目推送到一个堆栈上。取回该未探索的上下文可以包括从该堆栈弹出该堆栈条目。该投机节点可以被配置成用于基于在该投机节点处与该第二元素的肯定匹配将该行走前进到该分离节点。基于该集合包括在并行行走的该至少两个节点中的每个节点处的一个否定匹配结果,该至少一个后续行动可以包括在并本文档来自技高网
...
用于处理有限自动机的方法和装置

【技术保护点】
一种操作性耦合到网络的安全装置,该安全装置包括:至少一个存储器,该至少一个存储器被配置成用于存储包括从至少一个正则表达式图样生成的多个节点的至少一个有限自动机;至少一个处理器,该至少一个处理器操作地耦合到该至少一个存储器并且被配置成用于以经由网络接收的一个输入流的多个区段来行走该至少一个有限自动机,以匹配在该输入流中的该至少一个正则表达式图样,该行走包括:在该输入流中的一个数据包的一个有效载荷之内的一个给定偏移下用一个区段并行地行走该至少一个有限自动机中的一个给定有限自动机的至少两个节点;在该至少两个节点中的每一个节点处在该有效载荷之内的该给定偏移下确定对于该区段的一个匹配结果;以及基于所确定的每个匹配结果的集合来确定用于行走该给定有限自动机的至少一个后续行动。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:R·戈亚尔S·L·比拉A·迪克西特
申请(专利权)人:凯为公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1