本发明专利技术的各实施例涉及基于存储器层次的有限自动机的编译。至少一个每图样非确定型有限自动机可以对于单个正则表达式图样而生成并且可以包括一组对应的节点。所生成的每个每图样NFA的该组对应的节点的节点可以基于映射到该多个存储器的层级和被配置成用于这些层级的单图样NFA存储分配设定而被分配用于存储在该多个存储器中,从而优化用于匹配在一个输入流中的正则表达式图样的运行时间性能。
【技术实现步骤摘要】
本专利技术的各实施例涉及基于存储器层次的有限自动机的编译。
技术介绍
开放系统互连(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))执行内容搜索。 概述本专利技术的实施例提供一种用于有限自动机的编译和运行时间处理的方法、装置、计算机程序产品和相应的系统。根据一个实施例,在操作地耦合到一个网络的一个安全装置中的至少一个处理器中,一种方法可以包括生成至少一个每图样非确定型有限自动机(NFA)。该至少一个处理器可以被操作地耦合到多个存储器,该多个存储器被映射到在一个存储器层次中的多个层级中。每个每图样NFA可以对于单个正则表达式图样而生成并且可以包括一组对应的节点。该方法可以分布每个每图样NFA的该组对应的节点的节点以基于所映射的层级和为这些层级配置的每图样NFA存储分配设定来将其存储在该多个存储器中。该方法可以包括基于该分布在该多个存储器中静态地存储所生成的每个每图样NFA的该组对应的节点的这些节点。生成该至少一个每图样NFA可以包括指定从一个给定节点经由一个与该给定节点相关联的下一节点地址到一个下一节点的转换并且配置该下一节点地址以标识该下一节点和分布给该下一节点用于进行存储的该多个存储器中的一个给定存储器。该方法可以包括配置这些每图样NFA存储分配设定中的每个每图样NFA存储分配设定用于这些层级中的一个对应的层级,以表示所生成的每个每图样NFA的该组对应的节点的目标数量的唯一节点,以分布用于在该多个存储器中的一个映射到该对应的层级的给定存储器中进行存储。该组对应的节点中的唯一节点可以是按一种连续方式安排在该至少一个每图样NFA的一个包括该组对应的节点的给定的每图样NFA内。该方法可以包括对于该对应的层级配置每个每图样NFA存储分配设定,其方式为,在为一组正则表达式图样中的每个正则表达式图样生成一个每图样NFA的事件中,使得该给定存储器能够提供足够的存储容量用于存储从所生成的每个每图样NFA表示的该目标数量的唯一节点。该方法可以包括经由一个绝对值来表示该目标数量的唯一节点。该绝对值可以是对于每组对应的节点的一个共用值,从而使得每组对应的节点能够具有对于该目标数量的唯一节点的一个相同的值,以便存储在被映射到该对应的层级的该给定存储器中。该方法可以包括经由一个百分比值来表示该目标数量的唯一节点,该百分比值用于应用到每组对应的节点的对应的节点总数,从而使得每组对应的节点能够具有对于该目标数量的唯一节点的一个单独的值,以便存储在被映射到该对应的层级的该给定存储器中。该多个存储器中的每个存储器可以基于该多个存储器的性能排序以降序连续地映射到这些层级的一个对应的层级。该多个存储器中的一个性能排序最高的存储器可以被映射到这些层级中一个排序最高的层级。这些每图样NFA存储分配设定可以包括一个第一每图样NFA存储分配设定和一个第二每图样NFA存储分配设定。这些层级可以包括一个排序最高的层级和一个排序次高的层级。该第一每图样NFA存储分配设定可以被配置成用于该排序最高的层级。该第二每图样NFA存储分配设定可以被配置成用于该排序次高的层级。分布所生成的每个每图样NFA的该组对应的节点的这些节点可以包括以一种连续方式分布,该分布包括该组对应的节点的这些节点的一个第一分布,用于存储在该多个存储器中的一个第一存储器中。该第一存储器可以被映射到这些层级中的一个排序最高的层级。该分布可以包括该组对应的节点中的这些的节点的一个第二分布,基于在该组对应的节点中剩余的至少一个未分布的节点。每个至少一个第二分布可以是用于在该多个存储器中的一个给定存储器中进行存储。该给定存储器可以被映射到这些层级中的一个给定的层级,对于该组对应的节点的这些节点的每一次分布,该给定的层级连续地低于该排序最高的层级。如果该给定的层级是这些层级中排序最低的层级,则该至少一个第二分布中的一个给定的分布可以包括在该组对应的节点中的所有剩余的未分布节点。该方法可以包括将在该第一分布中的节点数目最大化,并且该最大化后的数目可以是由这些每图样NFA存储分配设定中的一个被配置成用于该排序最高的层级的对应的每图样NFA存储分配设定来限制的。该方法可以包括将在每个至少一个第二分布中的节点数目最大化,并且该最大化后的数目可以是对于每一次分布由这些每图样NFA存储分配设定中的一个被配置成用于该给定层级的对应的每图样NFA存储分配设定来限制的。该方法可以包括静态地存储每个每图样NFA的该组对应的节点的这些节点,使得能够用在从网络接收的一个输入流中的多个有效载荷的多个区段来行走每组对应的节点的这些节点,以确定在该输入流中的至少一个正则表达式图样的一次匹配。该行走可以基于该组对应的节点的匹配这些有效载荷的区段的单独节点来进行。该方法可以进一步包括基于在一组正则表达式图样中的正则表达式图样总数和与该行走相关联的所希望的性能度量来确定这些每图样NFA存储分配设定。该方法可以包括基于选自一组正则表达式图样中的每个图样的至少一个子图样来生成一个统一的确定型有限自动机(DFA)并本文档来自技高网...
【技术保护点】
一种操作性耦合到网络的安全装置,该安全装置包括:映射到在一个存储器层次中的多个层级的多个存储器,以及操作性耦合到该多个存储器的至少一个处理器,该至少一个处理器被配置成用于:生成至少一个每图样非确定型有限自动机(NFA),每个每图样NFA是为单个正则表达式图样生成的并且包括一组对应的节点;以及分布所生成的每个每图样NFA的该组对应的节点的节点,以基于所映射的这些层级和为这些层级配置的每图样NFA存储分配设定来存储在该多个存储器中。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:R·戈亚尔,S·L·比拉,
申请(专利权)人:凯为公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。