使用部分确定性有限自动模式匹配来进行网络攻击检测的制作方法

文档序号:7658451阅读:141来源:国知局
专利名称:使用部分确定性有限自动模式匹配来进行网络攻击检测的制作方法
技术领域
本发明涉及计算才几网络,更具体而言,涉及网络安全。
背景技术
企业计算机网络典型地包括交换数据并共享资源的 一组相互
连接的计算设备集。这些设备例如可包括网络服务器、数据库服 务器、文件服务器、路由器、打印机用户端计算机以及其它设备。 各种设备可执行各式不同服务和通信协议。这些不同月良务和通信协 议中的每一个都使得上述企业计算机网络暴露了不同的安全性漏洞。
用于检测网络攻击的常规技术使用模式匹配。例如,企业可部署 一个或一个以上的安全性设备来4企测网络流量是否有病毒或其它 安全性威胁。这种安全性设备一^殳4巴常规表达式或子串匹配应用到 该网络流量中,以在协-汉流中才企测所定义的才莫式。多种才莫式可用于 尝试检测不同类型的攻击并通常改善了这种攻击检测的准确性和 有力程度。

发明内容
本文4皮露描述了用于检测网络流量是否包含一种或多种计算 机安全威胁的技术。如本文所述,安全装置(例如,侵入检测和防范装置、防火墙、或其他网络装置)可使用这些技术^r测符号流是 否符合计算机安全威胁相关的符号模式。为了检测符号流是否符合 符号模式,安全装置存储了完全确定性有限自动机(full deterministic finite automaton,缩写为fDFA ),其用于4妄受(accept)符合符号模 式的符号流。该安全装置还生成部分确定性有限自动机(Partial deterministic finite automaton,缩写为pDFA ),其包4#义于应于fDFA 中的具有最高访问级的那些节点的节点。该安全装置4吏用pDFA来 处理符号流中的每个符号,直到一个符号导致pDFA转换至失败节 点或转换至正在4妾受(accepting)的节点。如果该符号导致pDFA 转换至失败节点,则安全装置使用fDFA来处理该符号以及在符号 流中的后续符号。
在一个实施例中, 一种方法包括存4诸一组完全确定性有限自 动机(fDFA )节点。fDFA节点表示完全确定性有限自动机fDFA。 第一 fDFA接受符合第一符号模式的符号流。该方法还包括生成一 组pDFA节点。每个pDFA在fDFA中都具有对应的、超越访问阈 的访问》及的节点。当fDFA节点中的》于应节点失见定(specify) 了符 号向fDFA节点中的具有超越访问阈的访问级的节点转换时,pDFA 中的每个节点都-见定该符号向pDFA节点中的节点的转换。当fDFA 节点中的对应节点^见定了符号向fDFA节点中具有不超越访问阈的 访问级的节点转换时,pDFA中的每个节点都规定该符号向pDFA 节点中的失败节点的转换。另外,该方法还包括接收(receive)符 号流中的符号。该方法还包括确定pDFA节点中的当前节点是否为 失败节点。进一步讲,该方法包括当pDFA节点中的当前节点不 是失败节点时,确定pDFA节点中的当前节点是否井见定该符号向失 败节点的转4灸。另外,该方法也包4舌当pDFA节点中的当前节点 规定了该符号向失败节点的转换时,将fDFA节点中的对应于pDFA 节点的当前节点的节点标识为fDFA节点中的当前节点。该方法还 包括当pDFA节点中的当前节点是失败节点时以及当fDFA节点中的当前节点规定了该符号向正在接受的节点转换时,检测计算机 安全威胁。
在另一实施例中, 一种中间网络装置包括存储模块,用于存 储一组完全确定性有限自动机(fDFA )节点。这些fDFA节点表示 fDFA节点表示接受符合符号模式的符号串的完全确定性有限自动 才几(fDFA)。该中间网络装置还包括pDFA更新才莫块,用于生成 一组pDFA节点。这些pDFA表示部分确定性有限自动机(pDFA )。 每个pDFA节点在fDFA中都具有对应的、超越访问阈的访问级的 节点。当fDFA节点中的对应节点规定了符号向fDFA节点中的具 有超越访问阈的访问级的节点转换时,pDFA中的每个节点都规定 该符号向pDFA节点中的节点的转换。当fDFA节点中的对应节点 规定了符号向fDFA节点中具有不超越访问阈的访问级的节点转换 时,pDFA中的每个节点都力见定该符号到pDFA节点中的失败节点 的转换。另外,该中间网络装置还包括DFA引擎,其用于接收 (receive)符号流中的符号;确定pDFA节点中的当前节点是否为 失败节点;当pDFA节点中的当前节点不是失败节点时,确定pDFA 节点中的当前节点是否规定该符号向失败节点的转换;当pDFA节 点中的当前节点^见定了该符号向失败节点转换时,将fDFA节点中 的对应于pDFA节点中的当前节点的节点标识为fDFA节点中的当 前节点;以及当pDFA节点中的当前节点是失败节点时以及当fDFA 节点中的当前节点规定了该符号向正在接受的节点转换时,就检测 计算机安全威胁。
在另一实施例中, 一种计算机可读介质包括指令。当被执行时, 这些指令导致处理器存储一组完全确定性有限自动机(fDFA)节点。 这些fDFA节点表示完全确定性有限自动机(fDFA )。 fDFA接受符 合符号模式的符号流。这些指令还导致处理器生成一组pDFA节点。 这些pDFA表示部分确定性有限自动机(pDFA )。每个pDFA节点在fDFA中都具有对应的、超越访问阈的访问级的节点。当fDFA 节点中的对应节点A见定了符号向fDFA节点中具有超越访问阈的访 问级的节点转换时,pDFA中的每个节点都身见定该符号向pDFA节 点中的节点的转换。当fDFA节点中的对应节点规定了符号向fDFA 节点中具有不超越访问阈的访问级的节点的转:换时,pDFA中的每 个节点都A见定了该符号向pDFA节点中的失败节点的转换。这些指 令还导致处理器接收符号流中的符号。另外,这些指令也导致处理 器确定pDFA节点中的当前节点是否为失败节点。这些指令还导致 处理器当pDFA节点中的当前节点不是失败节点时就确定pDFA节 点中的当前节点是否规定该符号向失败节点的转换。此外,这些指 令还导致所述可编程处理器当pDFA节点中的当前节点^L定了该符 号向失败节点转4奂时,将fDFA节点中的对应于pDFA节点中的当 前节点的节点标识为fDFA节点中的当前节点。这些指令还导致处 理器当pDFA节点中的当前节点是失败节点时以及当fDFA节点中 的当前节点规定了该符号向正在接受的节点转换时就检测计算机 安全威胁。
在另 一实施例中, 一种方法包括存储一组完全确定性有限自动 机(fDFA)节点,其中,fDFA节点表示用于接受符合符号模式的 符号流的完全确定性有限自动机fDFA。该方法还包括生成一组 pDFA节点,其中,这些pDFA表示部分确定性有限自动机(pDFA )。 每个pDFAfDFA中都具有对应的、超越访问阈的访问级的节点。当 fDFA节点中的对应节点规定了符号向fDFA节点中具有不超越访问 阈的访问级的节点转换时,pDFA中的每个节点都夫见定该符号向 pDFA节点中的失败节点的转换。该方法还包括接收符号流中的符 号。另外,该方法还包括使用pDFA节点和fDFA节点来检测计 算机安全威胁。在下面的附图和i兌明书中将描述本发明的 一个或多个实施例 的细节。由说明书和附图,以及权利要求书,本发明的其他特点、 目的、优点将变得清楚。
附图i兑明
图l是示出了一种运行以保护专用网络的侵入才全测和防范装置
的示例性系统方才匡图2是示出了一种示例性完全确定性有限自动4几和一种部分确 定性有限自动才几的方框图3是示出了 一种示例性模式匹配模块细节的方框图4是示出了该模式匹配模块的示例性操作的流程图5是示出了使用一个或多个完全确定性有限自动机来处理符 号的示例性才喿作的流禾呈图6是示出了一种匹配引擎的示例性才喿作的流程图,该匹配引 擎可用于更新部分确定性有限自动才几;
图7是示出了 一种部分确定性有限自动机更新模块的示例性操 作的流程图,该更新模块用于执行对部分确定性有限自动机的定期 更新;
图8是示出了 一种确定性有限自动机的示例性模式的方框图。
具体实施例方式


图1是示出了包括侵入检测和防范装置(IDP) 4、经过保护的 网络6和公共网络8的示例性系统2的框图。公共网络8可为未经 保护的诸如互联网的广域网、无线网络、局域网或者另一种计算机 网络。经过保护的网络6可为诸如在办公室或网络数据中心里的局 域网等所保护的计算机网络。
在系统2中,IDP装置4被连接到公共网络8及经过保护的网 络6,以便从公共网络8流向经过保护的网络6的网络流量先流到 IDP装置4。 IDP装置4可为单机网络设备、另一网络设备的组件 (如,防火墙设备)、在网络设备上执行的软件模块、或者其它构 造。通常,IDP装置44企测来自公共网络8的网络流量并确定该网 络流量是否包括有任何对计算机安全性的威胁。计算才几安全性方面 的威胁企图访问敏感性信息并试图扰乱组织运营,也可能是另 一类 型的攻击。计算才/L安全性方面威胁的实例包括spy ware 、 rootkits 以及phishing邮件等计算机病毒、猜测密码的企图、与拒绝服务攻 击相关的请求、及其它类型的攻击。
计算机安全威胁可以与一种或多种符号模式有关,符号模式用 于识别计算机安全威胁,但不识别无害数据。这里将与计算机安全 威胁有关的符号才莫式称作"威胁标记(threat signature )"。例如,一 特定病毒可能总是包括一 系列当运行时执行恶意操作的指令。
如果IDP装置4确定了网络流量的给定流不包括任何计算机安 全性方面威胁,则IDP装置4就可4巴该网络流量流与经过保护的网 络6进行通信。否则,如果IDP装置4确定了该流包括一个或一个 以上计算机安全性方面威胁,则IDP装置4就可撤消(drop)网络 流量、日志记录该网络流量和/或转发(forward )该流量到流量分析器以用于进一步分析。以此方式,IDP装置4可避免包括有计算 才几安全性方面威胁的网络流量到达受保护的网络6。
如图l所示的实例,IDP装置4可包含多个组件。本发明公开 图示出这些组件仅仅是为了说明的目的。在一些情况中,IDP装置 4可包^fe比图1所示少的组件,而在另一些情况中,IDP装置4可 包括比图l所示多的组件。此外,如本文所述的这些组件的功能可 分布于单个的组件或装置之中。
当来自公共网络8的网络流量到达IDP装置4时,第一网络接 口 10就可处理来自/>共网络8的物理信号并且4巴链路层的帧输出 到网络层模块12。在基于分组的网络中,网络层才莫块12典型地处 理链路层的帧,以便生成具有公共源和目标地址的网络分组流。例 如,网络层才莫块12可基于链i 各层帧来组装和输出互联网协议 (Internet Protocol,缩写为IP)分组流。当IP分组共享7>共源地址、 目的;也址、源端口、目的端口和忉、i义时,尽管可看作4交大或4交小的 粒状流,但IP分组通常一皮认为是相同分组流的一部分。
传输层才莫块14可使用这些网络分组流中的每一个来生成传输 层片段流。例如,传输层模块16可对每个网络分组流都生成传输 控制协"汉(Transmission Control Protocol,缩写为TCP )片#殳流。这 些传输层片段进而可神皮应用层冲莫块16 4吏用。
应用层才莫块16可组合TCP l史来组成应用层数据并且从该^t据 中抽取应用层通信信息。应用层冲莫块16可包括一个或多个针对协 议的插入式模块,其为了各种应用层协议来抽取应用层通信信息。 例如,应用层模块16可包括从TCP段中抽取超文本传输协议 (HTTP )通信信息的插入式模块、从TCP段中抽取会话启动协议 (SIP)通信信息的插入式才莫块、以及抽取在其它应用层协议中的 通信信息的插入式才莫块。应用层才莫块16可支持的应用层通信协议的其它实例包括文件传送协议(FTP )、网络新闻传送协议(NNTP )、 简单邮件传送协议(SMTP)、 Telnet、域名系统(DNS )、 Gopher、 Finger、邮局协议(POP)、安全套接层(SSL )协议、轻量目录访 问协议(LDAP )、安全层(SSH )、因特网消息存取协议(IMAP )、 服务器消息块(SMB)、动态主才几配置协-汉(DHCP)和其它协议。
应用层模块16可分析应用层通信信息并抽取以符号串形式的、 针对协i义的元素。正如本文所4吏用的,术语"应用层元素,,指的是 在该应用层所获得的针对协议的符号串。例如,应用层模块16可 从-故重新组合的应用层通信信息中抽取4十对协i义的"上下文"和 "值"。通常,"上下文"在唯一标识各种类型应用层元素的应用层 消息流中被命名为元素。所命名的元素提供描述通信会话的一个应 用层基础。上下文实例包括文件名、用户名、应用名、附带文档 名、针对协议的头部信息、针对协议的认证数据、表lt据以及其它 描述该通信会话的信息。作为特定实例,用于HTTP协议流的上下 文可包括提供HTTP服务的服务器名和访问该服务器的网络浏览 器(如,"Internet Explorer")的类型名。通过重新组合应用层通信 信息,应用层模块16可抽取具体的上下文(如,浏览器类型)及 乂十应的Y直(3口, "Internet Explorer")。应用层才莫块16可專lr出这些应 用层元素以作为该符号流其中的一部分。例如,应用层才莫块16可 输出包括表示应用层元素的一组符号的符号流,该组符号其后跟着 一组表示应用层通信信息的符号。在应用层模块16组成符号流之 后,应用层模块16就可转发这些符号流到模式匹配模块18。
存4诸才莫块20(例如,计算才几可读存储介质i者如RAM、 FLASH、 磁盘驱动器等)可存储完全确定性有限自动机(fDFA) 26A直到 26N(总称为"fDFA26")。 fDFA 26中的每一个都可检测符号流中 的一个或多个威胁标记。例如,fDFA 26中的第一个可4企测与特定计算机病毒有关的威胁标记,fDFA 26中的第二个可才全测与内核木 马集(rootkit)有关的威月办才示i己。
fDFA 26中的每一个都可被表示为一组节点。fDFA 26中的节 点可以是未在接受的节点或(正)在接受的节点。 一个fDFA26中 的每个未在接受的节点可以是如下的数据结构,其规定了某些符号 向同一个fDFA26中的其他节点的零或多次转变。只有当符号流符 合符号模式时,fDFA 26才可输入正在接受的节点。换句话说,只 有当符号流符合威胁标记时,fDFA26中的一个才"接受"符号流。
为了规定某些符号向其他节点的转变, 一节点可包括从这些符 号到含于该节点中的节点索引的映射过程。节点索引可以是指示该 节点存储于存储才莫块20中的存储位置的值。例如,fDFA26A中的 节点可存储于存储模块20中从基址开始的一阵列的存储器位置。 在此例中,节点索引可规定距离该基址的偏移。例如,节点索引"3" 可指示在存储器位置阵列中的第三节点。为了说明节点如何映射符 号到节点索引,i青看下面的例子fDFA 26A中的第一节点可映射 符号"a"到指示在存储模块20里存储的fDFA 26A中第二节点的 存储位置的节点索引。
fDFA26中的节点可映射各种符号到节点索引。例如,fDFA26 中的节点可映射标准ASCII或Unicode符号到节点索引。fDFA 26 中的节点还可映射元符号到节点索引。元符号表示一种特定类的符 号。例如,元符号可表示所有大写字母。又例如,元符号可包括表 示以下符号的元符号所有小写字母、所有字母^:字符号、所有字 母符号、所有数字符号、所有符号、所有空白符号, 一特定范围符 号内的所有符号、大小写相关匹配、给定符号以外的任何符号、以 及其他类的符号。因为包括从表示一类符号的元符号到单个节点索 引的映射过程的节点对应于包括从该类符号中包含的每个符号到同 一 节点索引的不同副本的映射过程的节点,所以使用元符号可减 少每个节点内的映射数量。
fDFA 26中的每个节点都可根据位图编码方案进行格式化。在 该位图编码方案中,符号集中的符号和元符号被关联到位图中的各 个位(bit),该位图包含于fDFA 26中的节点中。在一个实例编码 方案中,如果位图中的位被设置成"1",则节点将与该位有关的符 号映射到包含于该节点中的节点索引中。在该实例编码方案中,如 果位图中的位被设置成"0",则节点不将与该位有关的符号映射到 包含于该节点中的节点索引中。然而,如果一个fDFA26中的节点 中的位图与符号有关,并且该位^皮设置成"0",则可存在符号/人该 节点向这一个fDFA 26中的开始节点的隐含转4灸。因为fDFA 26中 的节点通常规定大量的向fDFA26的开始节点的转换,所以指示开 始节点的未包含的节点索引可以导致fDFA 26中的节点的总规才莫较 小。本说明书下面借助于图8给出了 一个实例位图编码方案的细节。
fDFA26中的每一个都可包括大量节点。因为fDFA26中的每 个可包括大量的节点,所以也许不可能将一个fDFA26中的所有节 点都存储于存储模块20中的单个存储页中。因此,也许有必要执 行多页交换,以使用pDFA26中的一个来才企测符号流中的威胁标记。 每个页面交换都可要求对永久性存储介质28进行一个或多个写操 作以及一个或多个读才喿作。永久性存^f渚介质28可包括石更盘驱动 器、闪存、CD、或其它类型的永久性存储介质。因为对永久性存储 介质28的读取也许较慢,所以对于每页面交换,模式匹配模块18 都可导致显著的性能下降。
为了减少当4企测符号流是否包括一个或多个威胁标记时寺丸行 多个页面交4奐,才莫式匹配才莫块18可生成一组新的"部分确定性有 限自动机"(pDFA )节点。本说明书将成组的pDFA节点称作pDFA 24。模式匹配模块18可将pDFA24的节点存储于存储模块20中的连续块的存储位置中。该存储位置连续块的大小可等于存储页的大
小。因为pDFA24的节点规定仅转换至pDFA24中的其他节点,并 且因为pDFA 24中的所有节点可并4亍存<诸于存4诸冲莫块20中,所以 当在pDFA 24中的多个状态之间转换时,模式匹配模块18可以不
导致页面交换性能下降。
pDFA 24中的每个节点都"对应于"fDFA 26中的一个具有超 越访问阈的访问级的节点。节点的访问级是该节点成为当前节点有 多频繁的量度。当fDFA节点组中的对应节点规定了符号向fDFA 节点中的具有超越访问阈的访问级的节点的转换时,pDFA节点组 中的每个节点都失见定该符号向pDFA 24节点中的节点的转换。另夕卜, 当fDFA节点组中的对应节点失见定了符号向fDFA节点组中具有不 超越访问阈的访问级的节点转换时,pDFA 24中的每个节点也都规 定该符号向pDFA 24节点中的失败节点的转换。例如,pDFA 24中 的节点A可"对应于"fDFA 26A中的节点A*。 fDFA 26A中的节 点八*可规定符号"x"向fDFA26A中的节点B承转换,并可规定符 号"y"向fDFA26A中的节点C承的转换。如果fDFA 26A中的节点 B承的访问级超过访问阈,那么pDFA 24包括"对应于,,节点B承的 节点B。因此,pDFA 24中的节点A可》见定符号"x"向节点B的 转换。另 一方面,如果fDFA26中的节点C承的访问级不超过访问阈, 则pDFA 24不包括对应于节点C*的节点。因为pDFA 24不包括对
应于节点(3*的节点,所以pDFA24中的节点A规定符号"y"向失 败节点的转换。
pDFA 24中的每个节点都可以在多个fDFA 26中具有对应节 点。当pDFA 24中的节点在多个fDFA 26中具有对应节点时,当fDFA 26节点中的对应节点规定了符号向fDFA 26节点中的具有超越访问 阈的i方问级的节点的转才奐时,pDFA24中的节点就可关见定该符号向 pDFA24中的节点的转换。另外,当fDFA26节点中任一对应节点规定了符号向fDFA 26节点中的具有不超越访问阔的访问级的节点 转换时,pDFA24中的节点可^见定该符号向pDFA24中的失败节点 的转换。例如,pDFA 24中的节点A可对应于fDFA 26A中的节点 A*,和fDFA26B中的节点A#。 fDFA26A中的节点A承可规定符号 "x,,向fDFA26A中的节点B承的转才奐,以及失见定符号"y"向fDFA 26A中的节点(^*的转换。fDFA 26B中的节点A弁可规定符号"x" 向fDFA26B中的节点B弁的转换,并可规定符号"z" 向fDFA26B 中的节点D弁的转换。在此例中,B承和B弁的访问级可超过访问阈, 节点(^*的访问级可超过访问阈,以及节点D弁的访问级不超过访问 阈。因为节点B*和B弁具有超过访问阈的访问级,所以pDFA 24可 包括j于应于节点8*和B弁的节点B,并可包括3于应于节点C^的节点 C。因为节点D弁不具有超过访问阈的访问级,所以pDFA24不包括 对应于节点D弁的节点。因此,pDFA24中的节点A可失见定符号"x" 向节点B的转换,并可规定符号"y" 向节点C的转换。但是,因 为节点D弁在pDFA 24中不具有对应节点,所以pDFA 24中的节点 A头见定符号"z" 向失败节点的转换。
模式匹配模块18可接收符号流中的符号,以确定该符号流是 否包括威胁标记。然后,才莫式匹配^^块18可以确定pDFA 24中的 当前节点是否为pDFA24中的失败节点。3口果pDFA24中的当前节 点不是pDFA 24中的失败节点,则模式匹配模块18可确定该当前 节点是否映射所接收到的符号到pDFA 24中的失败节点。如果pDFA 24中的失败节点映射所接收到的符号到pDFA24中的失败节点,则 模式匹配模块18可标识fDFA 26中的对应于pDFA 24中的该当前 节点的节点。然后,才莫式匹配才莫块18可将fDFA 26中这些净皮识别 出的节点设置成它们所对应的fDFA26中的当前节点。然后,模式 匹配才莫块18可将pDFA 26中的失败节点i殳置成fDFA 26中的当前 节点。接下来,才莫式匹配模块18可用fDFA 26中的当前节点来处 理所接收的符号。另一方面,如果pDFA24中的当前节点把收到的
2符号映射到pDFA 24中的、不是失败节点的节点,则该节点成为 pDFA24中新的当前节点。然后,pDFA24可4妾收和处理符号流中
的其他符号。
如果pDFA 24中的当前节点是失败节点,则才莫式匹配才莫块18 可使用fDFA26中的每一个来处理收到的符号。例如,才莫式匹配才莫 块18首先可确定fDFA26中的哪个节点通过fDFA26A中的当前节 点-故映射到收到的符号。该节点成为fDFA 26A中新的当前节点。 接下来,模式匹配模块18可确定fDFA 26B中的哪个节点可通过 fDFA 26B中的当前节点被映射到收到的符号。该节点成为fDFA 26B中新的当前节点。借助于此,模式匹配模块18可使用每个fDFA 26执行和处理所接收到的符号。使用每个fDFA 26处理了收到的符 号之后,模式匹配模块18可接收和处理符号流中的下一符号。
模式匹配模块18可继续以此方式处理符号直到符号流的末尾, 或直到pDFA24中的当前节点或一个fDFA26的当前节点是正在接 受的节点。如果pDFA24中的当前节点或一个fDFA26中的当前节 点是正在接受的节点,则符号流包括威胁标记。当符号流包括威胁 标记时,模式匹配模块18可输出搜索结果到应用层模块16。这些 搜索结果可包括指示4企测到哪个威胁标记的才莫式标识符。另外,这 些搜索结果还可包括指示符号流中的威胁标记开始的位置的索引。 当应用层模块16接收搜索结果时,应用层模块16可使传输层模块 14丢弃与该符号流有关的分组,将与该符号流有关的分组转至另一 目的地,或执行某些其他动作。另外,如果模式匹配模块18在符 号流中未检测到威胁标记,则应用层模块16可使传输层模块14使 用网络层才莫块12和第二网络接口 22将与该符号流有关的分组传送 至经过保护的网络6。
这里所描述的技术可以^是供一个或多个有益之处。例如,4叚若 模式匹配才莫块18不使用pDFA24(如这里所描述)而仅仅使用fDFA26确定符号流是否包括威胁标记,则每个fDFA 26可能都将基本在 相对小的一组节点之间转换。因为每个fDFA26可能都将基本在相 对小的一组节点之间转换,所以这些节点将具有比fDFA26中的其 他节点高些的访问级。然而,因为在使用fDFA之前,不清楚fDFA 26中哪些节点将具有最高访问级,所以fDFA26中具有最高访问级 的节点将可能分散于很多存储页面上。因为这些节点可能将分散于 很多存储页面上,所以需要执行多页面交换,以使用这些具有最高 访问级的节点。然而,因为pDFA 24包括对应于fDFA 26中具有最 高访问级的节点的节点,并因为所有这些节点都可以同时存储于存 储模块20中,所以不必为了使用pDFA 24中的任何节点而执行任 何或4艮多页面交换。另外,因为pDFA24中的节点对应于fDFA26 中具有最高访问级的节点,所以,可能只偶尔需要使用fDFA26中 的任4可节点。
图2是示出了一种典型的完全确定性有限自动才几(fDFA) 26A 和一种部分确定性有限自动才几(pDFA) 24的方^i图。在图2的实 例中,圆圏表示节点,箭头表示这些节点之间的转换。垂直虚线连 4妄fDFA 26A与pDFA 24中相对应的节点。当pDFA 24中的节点是 fDFA 26A中的节点的副本时,pDFA 24中的节点可对应于fDFA 26A 中的节点。具有双圆圏的节点表示正在^妄受的节点。
节点34p可以是pDFA24的开始状态。节点34p映射符号"a" 到节点36p,并映射符号"b"到节点38p。节点36p映射符号"c" 的节点38p,并映射符号"d"到节点40p。如图2的实例所示,节 点36p对应于fDFA 26中的节点36f。
节点36f映射符号"h"到节点44f,节点44f映射符号"&" 到节点46f 。因为pDFA 24不包括^于应于节点44f的节点,所以节 点36p映射符号"h"到失败节点42。类似地,节点40p对应于fDFA 26A中的节点40f。节点40f映射符号"@"到节点50f,并映射符号"p"到节点48f 。因为pDFA 24不包括对应于节点50f和48f的 节点,所以节点40p映射符号"@"和"p"到失败节点42。尽管 图2的实例中没有示出,但fDFA 26A中的每个节点都可映射其他 所有符号到节点34f, pDFA 24中的每个节点都可映射其他所有符 号到节点34p。
模式匹配模块18可使用fDFA 26A和pDFA 24确定符号流是否 符合常^见表达式"b|ah&|ac|ad(@|p),,所定义的才莫式。例如,如果节 点34p是pDFA24的当前节点,则如果当前符号是符号"b",那么 模式匹配才莫块18可确定符号流符合该才莫式。在另一实例中,如果 节点40p是pDFA24的当前节点,并且当前符号是符号"@ ",则 模式匹配模块18可将fDFA 26A的当前节点设置成节点40f,然后 从存储模块20获取节点40f。接着,模式匹配模块18可将pDFA 24 的当前节点设置成失败节点42。在将pDFA24的当前节点"i殳置成失 败节点42之后,模式匹配模块可确定节点40f将符号"@ "映射到 了节点50f。因为节点50f是正在接受的状态,所以模式匹配模块 18可4妄受该才寻号串。
图3是示出了一种示例性模式匹配模块18的细节方框图。在 图3的实例中,模式匹配模块18包括流緩存区60。流緩存区60接 收来自应用层模块16的符号流。当流緩存区60接收这些符号时, 流緩存区60可緩存该符号流直到DFA引擎62使用该符号流为止。
DFA引擎62处理来自流緩存区60的符号流,以确定该符号流 是否使pDFA24,或一个或多个fDFA26进入正在接受状态。当DFA 引擎62确定符号流4吏pDFA 24,或一个或多个fDFA 26进入4妄受状 态时,DFA引擎62可输出指示符到结果緩存区72。该指示符可指 示该符号流包括威月办标记。应用层才莫块16可4妄收结果緩存区72中 的指示符,并基于这些指示符执行各种动作。DFA引擎62可从存储才莫块20中提取pDFA 24或fDFA 26的节 点,以确定符号流是否使pDFA 24,或一个或多个DFA 26进入接 受状态。当DFA引擎62从存储模块20提取节点时,匹配才莫块62 可发送请求,以读取存储位置到高速緩存器66。如果高速緩存器 66包含被请求的存储位置,则高速緩存器66可响应该项请求并提 供所请求的存储位置到DFA引擎62。另夕卜,如果高速緩存器66不 包含所请求的存储位置,则高速緩存器66可转发该项请求到存储 模块20。当存储模块20响应该项请求时,高速緩存器66可保存在 该存储位置的数据的副本。这样,高速緩存器66可保存DFA引擎 62最近使用过的数据。通常,DFA引擎62往往访问pDFA 24和fDFA 26中4交少的节点。因此,高速乡爰存器66可以响应来自DFA引擎 62的大量的存储器读取请求。
在图3的实例中,才莫式匹配才莫块18包括pDFA当前节点寄存 器64。 pDFA当前节点寄存器64保存pDFA 24中当前节点的节点 索引。另夕卜,模式匹配模块18包括fDFA当前节点寄存器70A直 到70N (总称为"fDAF当前节点寄存器70")。每个fDFA当前节 点寄存器70都可保存各个fDFA 26中的当前节点的节点索引。
模式匹配模块18还可包括节点表68。节点表68可包括关于 pDFA 24中每个节点的条目。节点表68中关于pDFA 24中的节点 的条目可规定每个fDFA 26中的对应于pDFA 24中节点的节点。例 如,节点表68中的每一条目都可规定fDFA基址索引和关于每个 fDFA 26的fDFA节点索引。fDFA基址索引可以是保存每个fDFA 26 的节点的存储块的第一存储位置的存储地址,而fDFA节点索引可 以指示关于fDFA基址索引的存储位置。在此例中,DFA引擎62 可通过将fDFA基址索引相加fDFA节点索引,导出一个fDFA 26 中的节点的存4诸i也址。当DFA引擎62接收来自流緩存区60的符号(即"当前符号") 时,DFA引擎62首先可确定pDFA当前节点寄存器64的值是否等 于pDFA24的失败节点的节点索引。如果pDFA当前节点寄存器64 中的节点索引不等于pDFA 24的失败节点的节点索引,则DFA引 擎62可使用pDFA当前节点寄存器64中的节点索引,以请求pDFA 24在存储模块20中的该节点索引所指示的存储位置处的节点。该 节点本文称为pDFA24的当前节点。当DFA引擎62接收pDFA24 的当前节点时,DFA引擎62可将pDFA当前节点寄存器62的值设 置成pDFA24的当前节点可映射到当前符号的节点索引。这样,当 前节点可映射到当前符号的节点索引所指示的pDFA 24中的该节点 成为pDFA24新的当前节点。DFA引擎62可更新pDFA 24新的当 前节点的访问级。例如,DFA引擎62可使表示pDFA24新的当前 节点的访问级的计凄t器递增。
如果pDFA 24的前当前节点映射当前符号到pDFA 24的失败节 点,贝'J DFA引擎62可设置fDFA当前节点寄存器70的值为节点表 68所规定的节点索引,以对应于pDFA 24的前当前节点。这样,fDFA 26中的对应于pDFA24的前当前节点的节点成为fDFA26中的新当 前节点。在设置fDFA当前节点寄存器70的值后,DFA引擎62可 更新每个fDFA26的每个新当前节点的i方问级。
当pDFA 24的新当前节点是pDFA 24的失败节点时,DFA引 擎62可以4吏用fDFA 26来处理符号流的当前符号和所有后继符号。 为了使用fDFA 26来处理符号,DFA引擎62可遍历(loop through ) 每个fDFA 26,并执行fDFA 26的各个当前节点所规定的符号的任 何转换。
才莫式匹配才莫块18可以各种方式生成和更新pDFA 24。在一个 实例中,模式匹配模块18仅包括单个fDFA。在此例中,DFA引擎 62可确定pDFA24的大小是否超过给定的规模阈。例如,当将附加的节点添加至pDFA 24会导致pDFA 24占据多于一个存4诸页时, pDFA 24就会超过规模阈。当IDP装置4重启时,pDFA 24可以仅 包含开始节点和失败节点。如果pDFA 24的大小没有超过规j莫阈时, DFA引擎62可指令模式匹配模块18中的pDFA更新模块74更新 pDFA 24。 pDFA更新模块74可从存储模块20中^是取对应于pDFA 24的当前节点的当前fDFA节点,以更新pDFA24。然后,pDFA 更新才莫块74可以生成pDFA24中的新节点。对于当前fDFA节点中 头见定的到fDFA中的具有pDFA24中对应节点的另 一节点的每次转 换,所生成的pDFA节点都规定到pDFA24中对应节点的转换。另 外,对于一个fDFA节点中失见定的到fDFA中不具有pDFA 24中对 应节点的其他节点的每次转换,pDFA节点也都规定到部分DFA中 失败节点的转换。pDFA更新模块74还可标识pDFA24中^见定符号 向失败节点的转换的节点。pDFA24中的每个识别出的节点在fDFA 中具有对应节点,该对应节点失见定了该符号向fDFA中的对应于所 生成的pDFA节点的节点的转换。在标识这些节点pDFA 24之后, pDFA更新模块74于是可更新pDFA24中每个识别出的节点,使得 每个识别出的节点都A见定该符号向已生成pDFA节点的转:换,而不 是该符号向失败节点的转换。
继续该实例,模式匹配模块18包括单个fDFA,如果将另一节 点添加至pDFA 24将导致pDFA 24超过^L才莫阈,则pDFA更新模块 74可确定fDFA的当前节点的访问级是否大于pDFA 24中的节点的 访问级。如果fDFA的当前节点的访问级不大于pDFA 24中的节点 的访问级,贝"pDFA更新才莫块74不更新pDFA 24。如果fDFA的当 前节点的访问级大于pDFA24中的节点的访问级,贝'J pDFA更新才莫 块74可以乂人pDFA 24中删除该节点,并更新pDFA 24中的这些节 点,其包括从符号到被删除节点的映射过程。然后,pDFA更新模 块74可将当前节点的副本添加至pDFA 24,并更新pDFA 24中的 该节点和其他节点。在另一实例中,当模式匹配模块18包括多个fDFA26时,pDFA 更新模块74可对更新pDFA24执行不同的操作。在此例中,pDFA 更新模块74可定期地更新pDFA 24。当pDFA更新模块74执行这 种定期更新时,pDFA更新模块74可生成关于每个fDFA26的临时 pDFA。这些临时pDFA中的每一个都可包4舌对应于各个fDFA的具 有超过访问阈的访问级的那些节点的节点。在生成临时pDFA的过 程中,pDFA更新模块74可更新节点表68 '中的多个条目中的pDFA 索引,以指示fDFA26中只于应于临时pDFA中的节点的节点。在生 成每个fDFA 26的临时pDFA之后,pDFA更新才莫块74可将多个临 时pDFA合并成单个pDFA。 一旦pDFA更新模块74完成将多个 pDFA合并成单个pDFA之后,DFA引擎62可如上面关于pDFA24 的叙述那样使用该单个pDFA。
为了将多个临时pDFA合并成单个pDFA, pDFA更新模块74 可标识每个临时pDFA的开始节点。接下来,pDFA更新模块74可 "合并"这些节点。为了合并,pDFA更新模块74可生成新"合并 的"节点。节点表68中关于该合并节点的条目可失见定fDFA26中 对应于净皮合并成"合并,,节点的任何节点的每个节点。另夕卜,该新 合并的节点可规定访问级等于已被合并成该新节点的每个节点的 纟且合的^方问级。
该合并节点规定已被合并成该合并节点的每个节点中所规定 的每个转换。例如,第一临时pDFA中的第一节点可规定符号"a" 向第一临时pDFA中的第二节点的转换,并可规定关于符号"b"向 第一临时pDFA中的第三节点的转换。另外,第二临时pDFA中的 第一节点可规定符号"b"向第二临时pDFA中的第二节点的转换, 并头见定符号"c" 向第二临时pDFA中的第三节点的转」换。在此例 中,当第一临时pDFA中的第一节点和第二临时pDFA中的第二节 点被合并时,该合并节点规定符号"a" 向第一临时pDFA中的第二节点的转换,符号"b" 向第一临时pDFA中的第三节点的转 换,符号"b,, 向第二临时pDFA中的第二节点的转换,以及符号 "c" 向第二临时pDFA中的第三节点的转换。
在pDFA更新模块74生成合并节点之后,pDFA更新模块74 可从存储模块20中删除已合并成该合并节点的每个节点。pDFA更 新模块74还可删除节点表68中关于已被合并成合并节点的每个节 点的条目。
pDFA更新模块74可标识单个符号在合并节点中向在不同临时 pDFA中的不同节点成组转换。在前面的实例中,pDFA更新才莫i夹 74可标识以下转换作为单个符号向不同节点的转换符号"b" 向 第一临时pDFA的第三节点的转换,和符号"b"向第二临时pDFA 的第二节点的转换。关于合并节点中的单个符号向在不同节点的已
识别转换组中的每次转换,pDFA更新模块74都合并这些不同的节 点。pDFA更新模块74可以下面要描述的方式合并这些不同的节点。 当pDFA更新模块74完成合并这些不同节点时,pDFA更新模块74 在合并节点中删除关于单个符号向不同节点的转换。pDFA更新才莫 块74可以用该符号向来自于这些不同节点的合并的节点的转:換来 替换合并节点中的这些转换。继续前一实例,当pDFA更新模块74 完成了生成合并节点时,该合并节点可规定符号"a" 向第一临 时pDFA中的第二节点的转换,符号"b" 向新节点的转换;以及 符号"c" 向第二临时pDFA中的第三节点的转换。该操作结束之 前,该合并节点不包括单个符号向不同节点的任何转换。
图4是示出了模式匹配模块18的典型操作的流程图。初始, DFA引擎62接收来自符号緩存区60的符号(80 )。在接收符号之 后,DFA引擎62确定pDFA24的当前节点是否为失败节点(82)。 DFA引擎62可通过获取存储于pDFA当前节点寄存器64中的值并 确定该值是否等于已知的索引,来确定pDFA24的当前节点是否为失败节点,以表示失败节点。如果DFA引擎62确定pDFA24的当 前节点是失败节点(82的"是"),贝'J DFA引擎62可使用fDFA 26 处理收到的符号(83)。例如,DFA引擎62可执行图5中所示的典 型操作,以使用fDFA26处理收到的符号。
如果DFA引擎62确定pDFA24的当前节点不是失败节点(82 的"否"),则DFA引擎62可使用存储于pDFA当前节点寄存器64 中的节点索引来获取pDFA 24的当前节点(84 )。为了获取pDFA 24 的当前节点,DFA引擎62可生成读取请求,该读取请求可由高速 緩存器66或存4诸才莫块20应答。在获取pDFA24的当前节点之后, DFA引擎62可确定pDFA 24的当前节点是否为正在4妄受的节点 (86)。如果pDFA24的当前节点是正在接受的节点(86的"是"), 则DFA引擎62可输出搜索结果到结果緩存区72 ( 88 )。例如,DFA 引擎62可输出一个数字到结果緩存区72,其指示认出了哪个威胁 标记。另一方面,如果pDFA24的当前节点不是正在接受的节点(86 的"否"),则DFA引擎62可确定当前符号是否导致到失败节点的 转换(90 )。
如果当前符号没有导致到失败节点的转换(90的"否"),则 DFA引擎62可执行当前节点所指示的符号转换(92)。换句话说, DFA引擎62可将pDFA当前节点寄存器64中的值设置成pDFA 24 的当前节点映射到当前符号的节点索引。这样,pDFA24的当前节 点映射到当前符号的节点索引所指示的节点变成pDFA 24的新"当 前节点"。在执行符号转换之后,DFA引擎62可递增pDFA24的新 当前节点的访问级(94)。通过递增访问级,使DFA引擎保持跟踪 pDFA 24转换到节点有多少次。 一旦DFA引擎62完成递增pDFA 24 的当前节点的访问级,DFA引擎62就可回送和4妄收新符号(80 )。
如果当前符号导致到失败节点的转换(90的"是"),则DFA 引擎62可更新fDFA当前节点寄存器70 (96)。例如,DFA引擎62可将fDFA当前节点寄存器70的值设置成节点表68中关于pDFA 24的当前节点的条目中所》见定的对应节点索引。如果节点表68不 头见定关于一个fDFA 26的节点索引,贝'J DFA引擎62可将关于这个 fDFA26的一个fDFA当前节点寄存器70i殳置成这一个fDFA26的 基址值。在更新fDFA当前节点寄存器70之后,DFA引擎62可将 pDFA当前节点寄存器64的值i殳置成pDFA 24的失败节点的索引 (98 )。在将pDFA当前节点寄存器64的值设置成pDFA 24的失败 节点的索引之后,DFA引擎62可使用fDFA 26来处理当前符号。 为了使用fDFA 26来处理当前符号,DFA引擎62可使用图5中所 示的实例操作。在使用fDFA26处理了当前符号之后,DFA引擎62 可回送和^t妄收另一符号(80)。
图5是示出了^f吏用一组一个或多个fDFA来处理收到的符号的 典型梯:作的流程图。初始,DFA引擎62从存储才莫块20或高速緩存 器66获取fDFA当前节点寄存器70所指示的每个节点(100)。在 获取这些节点之后,DFA引擎62可将这些节点中的每一个都加入 队列(未示出)(102)。
DFA引擎62然后可确定该队列是否为空(104)。如果队列为 空(104的"是"),则DFA引擎62可接收新符号,并可执行图4 中示出的实例操作(80)。另一方面,如果队列非空(104的"否"), 则DFA引擎62可从队列中删除一个fDFA26的节点(106)。这里 可将这个fDFA26称之为"当前fDFA",并可将该节点称之为"当 前fDFA的当前节点"。在/人队列中删除当前fDFA的当前节点之后, DFA引擎62可执行所接收到的符号向由当前节点规定的当前fDFA 中的第二节点的转换(108)。当DFA引擎执行该转换时,DFA引 擎62可更新与当前fDFA相关的一个fDFA当前节点寄存器70,以 指示当前fDFA新的当前节点是当前fDFA中的第二节点。在DFA引擎62执行符号转换之后,DFA引擎62可递增关于 当前fDFA的新当前节点的访问级(llO)。然后,DFA引擎62可更 新pDFA 24 ( 112 )。例如,DFA引擎62可使用图6中所示的典型 操作更新pDFA24。当DFA引擎62完成更新pDFA24时,DFA引 擎62可确定当前fDFA的当前节点是否为正在4妄受的节点(114)。 如果当前fDFA的当前节点是正在接受的节点(114的"是"),则 DFA引擎62可输出搜索结果到结果緩存区72 (116)。另一方面, 如果当前fDFA的当前节点不是正在接受的节点(114的"否"), 则DFA引擎62可回送,并再次确定该队列是否为空(80)。
图6是示出了一种典型操作的流程图,其中,DFA引擎62可 执行以便当存储模块20包括单个fDFA时就更新pDFA24。初始, pDFA更新模块74可确定pDFA 24是否超过规才莫阈(120 )。例如, 当pDFA24包4舌一百个节点时,pDFA更新模块74可确定pDFA24 超过了规模阈。如果pDFA24超过了规模阈(120的"是"),则pDFA 更新才莫块74可确定该fDFA的当前节点的访问级是否大于pDFA 24 中的节点的最低访问级(122)。如果fDFA的当前节点的访问级不 大于pDFA 24中节点的最低访问级(122的"否,,),贝'J DFA引擎 62不更新pDFA 24( 124 )。如果fDFA的当前节点的访问级大于pDFA 24中的节点的最低访问级(122的"是"),则DFA引擎62可从pDFA 24中删除该节点。在从pDFA 24中删除该节点之后,DFA引擎62 可扫描pDFA24中的节点,并用到pDFA24的失败节点的转换来^齐 换任何到已删除节点的转换(128 )。
如果pDFA 24不超过节点阈(120的"否,,),贝'J pDFA更新模 块74可在pDFA 24的存4诸空间中制作fDFA的当前节点的副本 (130 )。 pDFA更新才莫块74还可在删除pDFA24中的具有最^[氐访问 级的节点之后,在pDFA 24的存储空间中制作fDFA的当前节点的 副本。pDFA更新模块74可在紧随pDFA 24中的DFA引擎62在转换到当前节点之前所已访问的节点的存l诸位置制作该副本。这样,
pDFA更新模块74可增强将存储于高速緩存器66中的pDFA 24的 当前节点的副本的相似性。当在pDFA 24的存储空间中制作fDFA 的当前节点的副本后,pDFA更新模块74可更新fDFA中的节点, 以引用pDFA24中的该节点(132)。为了更新pDFA24中的节点, pDFA更新模块74可扫描pDFA24中的节点,并标识那些规定了向 当前节点的转换的节点。pDFA更新模块74然后可改变已识别的节 点中所^见定的转4奐,,人到失败状态的转4奐改变成到pDFA24中的当 前状态的副本的转换。
更新pDFA24会要求多个并非无关紧要的时钟周期。因此,当 pDFA 24超过规模阈时,匹配模块62仅可指令pDFA更新模块74 定期地更新pDFA24。例如,在pDFA24超过规^莫阈之后,匹配才莫 块62可指令pDFA更新模块74每5分钟^f叉4又更新一次pDFA 24。
图7A和图7B是示出pDFA更新模块74使用多个fDFA生成 pDFA的一种典型操作的流程图。在图7A的实例中,当pDFA更新 模块74接收DFA引擎62的请求而通过使用fDFA 26来执行pDFA 24的更新时,pDFA更新才莫块74可更新fDFA 26中的对应于当前 pDFA中的节点的每个节点的访问级(140)。例如,pDFA更新才莫块 74可将表示当前pDFA中的节点的访问级的计凄史器拷贝成表示 fDFA 26中的对应于当前pDFA中的节点的各个节点的访问级的计 数器。在第二实例中,pDFA更新模块74对于当前pDFA的每个节 点,都可4吏用一个fDFA26中的对应节点的计凄t器来计算表示当前 pDFA中的节点的访问级的计凄t器的平均4直。在该第二实例中, pDFA更新模块74然后可将所算出的平均值保存为一个fDFA26中 的对应节点的访问级。这样,fDFA 26的节点访问级表示这些节点 或pDFA中的^j"应节点已成为fDFA的或pDFA的当前节点的次凄史 的移动平均。在更新访问级之后,pDFA更新才莫块74可对每个fDFA 26生成 新的临时pDFA ( 142 )。每个临时pDFA都可包括对应于各个fDFA 中的具有超过乡合定i方问阈的访问级的节点的节点。在生成临时 pDFA的过程中,pDFA更新模块74可更新节点表68中的条目,以 反映临时pDFA中的节点的存在性;
在对每个fDFA 26生成临时pDFA之后,pDFA更新模块74可 在临时pDFA中标识是开始节点的一组节点(144)。接下来,pDFA 更新才莫块74可在这组所标识的节点上调用合并才喿作,以生成新 pDFA ( 146 )。可将表示新pDFA中的每个节点的访问级的计数器都 设置成零。这样,pDFA中的节点的计数器可以只指示pDFA中的 节点自从上次pDFA更新模块74生成了 pDFA以来成为pDFA的当 前节点的次凄丈。
图7B示出了 pDFA更新才莫块74在一《且识别的临时pDFA节点 上冲丸行合并,喿作的典型纟乘作。初始,pDFA更新一莫块74可生成新节 点(150)。在生成该新节点之后,pDFA更新模块74可将已识别节 点中规定的每次转换添加至新节点(152)。另外,pDFA更新模块 74还可在节点表中生成关于该新节点的条目(154)。节点表68中 关于新节点的条目可包括fDFA26中的对应于一个或多个已识别节 点的节点的每一个的节点索引(154)。接下来,pDFA更新模块74 可从节点表68中删除已识别节点的节点表条目(155)。在pDFA 更新模块74从节点表68中删除这些条目之后,pDFA更新模块74 可将新节点的访问级设置成每个已识别节点的合计访问级(156)。
例如,如果已识别节点的访问级是访问计数,则pDFA更新模块74 可将新节点的访问级设置成已识别节点的访问计数的总和。接下 来,pDFA更新模块74可取消分配存储模块20中保存每个已识别 节点的存储位置(158)。取消分配已识别节点的存储位置会使得这 些存储位置可以被重新使用。在取消分配那些保存已识别节点的存储位置之后,pDFA更新 才莫块74可确定新节点是否包括到单个符号向两个或更多pDFA节 点构成的一组的转4灸(160)。如果新节点包4舌单个符号向两个或更 多pDFA节点构成的组的转换(160的"是"),贝'J pDFA更新模块 74可合并这组节点(162)。 pDFA更新模块74可通过递归地使用 图7B中所示的典型操作来合并这组pDFA节点。在pDFA更新模 块74合并这组pDFA节点之后,p'DFA更新模块74可删除单个符 号从新节点该组pDFA节点中的pDFA节点的转换。接下来,pDFA 更新才莫块74可更新该新节点,以夂见定该符号的乂人新节点向合并这 组pDFA节点所得到的节点的转换(166)。当pDFA更新模块74 将该转换添加至新节点时,pDFA更新一莫块74可回送,并再次;险测 新节点是否包括到由两个或更多pDFA节点构成的组的转换(160)。
如果新节点不包括单个符号向由两个或更多个pDFA节点构成 的组的转换(160的"否,,),则pDFA更新模块74可返回新节点的 pDFA索引(168)。
图8是示出了 一种有限自动机中的节点170的典型模式的方框 图。节点170可用于pDFA24和fDFA26中。
在图8所示的典型才莫式中,节点170包括访问级域171,固 定长度位图部分172、和节点索引的可变长度列表174。访问级域 171可保存表示节点170的访问级的数值。位图部分172是40字节 (320位)长。节点索引列表174的长度是可变的,但不可以超过 512字节(4096位)长。
节点索引列表174可包括多达256个节点索引。在图8的实例 中,这些节点索引标号为180A到180N,统称为"节点索引180"。 节点索引180中的每一个都可以是16位值,DFA引擎62可乂人其4偉 导pDFA 24或fDFA 26中的节点的存储地址。例如,DFA引擎62可将存储于一个节点索引180中的值相加到第一节点的存储地址, 以获取节点的存储地址。
位图部分172可包括一組8个位图部176A到176H(统称为"位
图部176")。位图部176总共包括256位。'这256位中的每一位都 可与不同的符号或不同的元符号类相关。例如,位图部176中的第 65位可关联到符号"A",位图部176中的第66位可关联到符号"B",
等等。在另一实例中,位图部176中的第126位可以与被限定为拉 丁字母表中的大写符号的元符号类相关。
除了位图部176之外,位图部分172还可包括一组8个计数器 字节178A到178H (统称为"计数器字节178")。每个计数器字节 178都可紧跟着位图部分172中另一个位图部176。例如,计数器 字节178A可紧5艮位图部176A,计凄t器字节178B可紧S艮位图部 176B,等等。每个计^:器字节178都可包含指示位图部176中到计 数器字节的左边的位数被设置成"1"的值。例如,假定位图部176A 中的三位被设置成"l"。在此例中,计数器字节178A可包含值"3"。 继续该实例,假定位图部176B中的五位被设置成"1"。这里,计 数器字节178B可包含值"8",因为位图部176A中的三位祐 没置成 T,位图部176B中的五位被设置成T。
当DFA接收关于该位的符号时,位图部176中的一位被设置 成"0"指示当DFA接收关于该位的符号时从节点170到开始节点 的转换。例如,第65位可与符号"A"相关,并可i殳置成"0"。在 此例中,当节点170是DFA的当前节点,并且DFA接收符号"A" 时,开始节点变成DFA的当前节点。
另一方面,位图部176中设置成"1"的位表示了当DFA接收 与该位相关的符号时,包括节点170的DFA可转换到DFA中的非 开始节点的节点。例如,第65位可关联到符号"A"并可"i殳置成"l"。在此例中,当节点170是DFA的当前节点,并且DFA接收符号"A" 时,非开始节点的节点成为DFA的当前节点。
DFA引擎62可使用计数器字节178中的值,以确定哪个节点 变成当前节点。为了4吏用计4故器字节178中的值,DFA引擎62可 获得紧跟一个位图部176的左边的一个计数器字节178的节点值, 其包含与当前符号有关的位。例如,如果第76位与符号"K"相关, 则该位是在位图部176C中。在此例中,计凄t器字节178B是紧3艮位 图部176C的左边的计数器字节。在从一个计数器字节178获取值 之后,DFA引擎62可确定在包括与当前符号相关的位的位图部中, 与当前符号相关的该位左边有多少位i殳置成"1"。例如,布支定位图 部176C的多个4立寻皮如下i殳置0100 100001100001 00000001。如 果与当前符号相关的位是位图部176C中的第11位(即,位图部 176中的第76位),贝'J DFA引擎62确定在第76位左边的三位要设 置成"1"。
确定在包括与当前符号相关的位的位图部中与当前符号相关 的该位左边有多少位i殳置成"1"之后,DFA引擎62可将该凄t加至 位图部中在该位图部左边的要设置成"1"的位数。例如,如果计 数器字节178B指示位图部176A和146B中有8位要设置成"1", 该位左边有3位与位图部176C中的当前符号相关,则DFA引擎62 确定位图部176中与当前符号相关的该位的左边有11位要设置成
DFA引擎62可4吏用与位图部176中的当前符号相关的该位的 左边要设置成"1"的位数,以查找节点索引列表174中的节点索 引。例如,如果与位图部176中的当前符号相关的该位的左边有11 位要i殳置成"1",则DFA引擎62访问节点索引180中的第11个。使用该格式可节省存储器中的空间,并可加速节点的处理。例 如,节点的常规格式可包括每个可能符号的节点索引。在该常规格
式中,如果有256个可能的符号,且每个索引都是2字节,则一个 节点至少要求总共512个字节的存储器。通常,每个节点平均都可 具有16次到非开始状态的转换。因此,以所提出的格式的平均节 点仅要求72个字节(40个字节用于位图部分172, 32个字节用于 16个双字节节点索引)。另外,因为DFA引擎62不需要计数位图 部176中直到包括与当前符号相关的该位的位图部的左边的所有 位,所以,通过计凄t器字节178可加速节点的处理。这可节省处理 时间和能量。
本发明公开描述的功能可被应用到通过使用数据存储介质来进 行存储和/或检索的,或者经由有线或无线通信系统进行通信(如, 传输和/或接收)的各种数据之任一种。有线或无线通信系统的实例 包括任何通信技术(包括但不限于,通过使用CDMA、GSM、 802.11、 蓝牙、超宽带(UWB)、 OFDM、 FDMA、 TDMA、 W-CDMA或其 它任何无线存取技术来进行无线传输以及通过使用诸如TCP/IP、 ATM等等各种网络协议之任一种来进行有线或无线传输)。这些功 能可被应用于任一类型的数据(包括但不限于,音乐数据、视频数 据、多媒体数据或其它娱乐数据、金融数据、安全性数据、商业数 据、政府数据、军事数据、营销数据、销售数据、病人数据、医学 诊断数据、医疗成像数据、表示图形或文本内容的数据、图像数据、 化学数据、地理数据、映像数据、电视播方文凄t据、收音才几播放数据、 email数据、互联网数据、个人数据等等)。
在一个或多个示例性实施例中,所描述的功能可实现于硬件、软 件、和/或固件,或其任一组合等形式。如果其以石更件形式实现,则 这些功能就可以一个或多个微处理器、微控制器、数字信号处理器 (DSP)、专用集成电3各(ASIC)、现场可编程门电^各(FPGA)等等形式。这才羊一些组件可驻留在通信系统、凄史据写入和/或读取系统、 或者其它系统。如果其以软件形式实现,则这些功能就可作为一条 或多条指令或代码而被存储于或传输于计算机可读介质之上。计算 机可读介质既包括计算才几存储介质也包括通信介质(包括便于计算 机程序从一个地方传送到另一地方的任一介质)。存储介质可为能 由计算才几所存耳又的^f壬一可用介质。通过实例方式(M旦不限于此),
这样一种计算机可读介质可包括RAM、 ROM、 EEPROM、 CD-ROM 或其它光盘存储器、不兹盘存储器或其它》兹介质存4诸设备、或者能被 用于携带或存储以指令或数据结构以及能由计算机存取的形式的、 所想要的程序代码的其它任何介质。本文所用的Disk和Disc("盘") 包括CD盘、激光盘、光盘、DVD盘、软盘以及蓝光盘,其中有 的盘("disk")通常通过石兹的方式进4亍凄t据再生,而有的盘("disc") 则通过光的方式进4于数据再生。上述组合也应该#皮包4舌在计算机可 读介质的范围。
已经描述了本发明的各种实施例。这些或者其它实施例都在附带 权利要求书的范围之中。
权利要求
1.一种方法,包括存储一组完全确定性有限自动机(fDFA)节点,其中,fDFA节点表示完全确定性有限自动机fDFA,其接受符合符号模式的符号流;生成一组pDFA节点,其中,所述pDFA节点表示部分确定性有限自动机(pDFA),其中,每个所述pDFA节点在fDFA节点中都具有对应的、超越访问阈的访问级的节点,其中,当所述fDFA节点中所对应的节点规定了符号向所述fDFA节点中的具有不超越所述访问阈的访问级的节点转换时,所述pDFA节点中的每个节点都规定所述符号向pDFA节点中的失败节点的转换;接收符号流中的符号;以及使用所述pDFA节点和所述fDFA节点来检测计算机安全威胁。
2. 才艮据^f又利要求1所述的方法,其中,当所述pDFA节点中所对应的节点^L定了符号向 fDFA节点中的具有超越所述访问阔的访问级的节点转才灸时, 所述pDFA中的每个节点都规定所述符号向所述pDFA节点中 的节点的转换,和其中,所述方法还包4舌确定所述pDFA节点的当前节点是否为失败节点;当所述pDFA节点中的当前节点不是所述失败节点 时,确定所述pDFA节点中的所述当前节点是否身见定所述 符号向所述失败节点的转换;当所述pDFA节点中的所述当前节点规定了所述符 号向所述失败节点转换时,将所述fDFA节点中的对应于 所述pDFA节点中的所述当前节点的节点标识为所述 fDFA节点中的当前节点;以及其中,检测计算机安全威胁的步骤包括在所述pDFA节 点的当前节点是所述失败节点时以及在所述fDFA节点的当前 节点规定所述符号向正在接受的节点转换时,就纟企测计算机安 全威胁。
3. 根据权利要求2所述的方法,其中,生成一组pDFA节点的步 骤包括在单个存储页面中保存所述pDFA节点。
4. 根据权利要求2所述的方法,其中,所述符号模式与计算机安 全威力办有关。
5. 根据权利要求2所述的方法,其中,所述方法还包括4妄收来自第 一计算才几网络的网络流量;从所述网络流量中^是取所述符号流中至少一部分;以及当所述符号流不使所述pDFA或所述fDFA转:换至正在4妄 受的节点时,在第二计算机网络上重新发送所述网络流量。
6. 根据权利要求2所述的方法,其中,所述方法还包括对表进4亍维护,所述表具有标识 所述fDFA节点中的乂于应于所述pDFA节点中每个节点的节点 的条目;以及其中,标识所述fDFA节点中的节点的步骤包括使用所 述表来标识所述fDFA节点中的一个对应于所述pDFA中的所 述当前节点的节,泉。
7. 根据权利要求2所述的方法,其中,生成一组表示pDFA的节 点的步艰《包4舌当所述pDFA节点的所述当前节点^见定了所述符号向所 述失败节点转换时,确定所述pDFA节点的计数是否超过规才莫 阈;标识在所述fDFA节点中的一个fDFA节点,其中,所述 fDFA节点中的所述当前节点规定了所述符号向这一个fDFA 节点的转换;以及当所述pDFA节点的计数不超过所述规^莫阈时,生成所述 pDFA节点中的一个新pDFA节点,其对应于所述fDFA节点 中的该fDFA节点。
8. 根据权利要求7所述的方法,其中,生成一组pDFA节点的步 骤还包括当所述pDFA节点的计数超过所述规模阈时以及当所述 pDFA节点中的这一个节点的访问级超过所述第二节点的访 问级时,从所述一组pDFA节点中删除所述第二节点;以及更新所述pDFA节点,使所述pDFA节点中的失见定了向所 述第二节点的转换的每一个pDFA节点都规定向所述pDFA的 失败节点的转换,而不是向所述第二节点的失败节点的转换。
9. 根据权利要求2所述的方法,其中,生成一组pDFA节点的步 骤包括生成一组使用位图编码方案进行4各式化的pDFA节点,以使每个所述pDFA节点都包括固定长度位图部分和节点 索引的可变长度列表,其中,每个所述节点索引都指示所述pDFA节点中的另一 个节点被保存的存储位置,以及其中,所述位图部分包括与不同符号有关的位。
10. 根据权利要求9所述的方法,其中,生成一组pDFA节点的步 骤还包括生成一组使用位图编码方案进行格式化的pDFA节 点,使得当 一个所述pDFA节点中的位图部分中的多个位之一 与符号相关,并被设置成第一值时,所述节点索引列表包括与 所述符号有关的节点索引,以及当所述多个位之一被设置成第 二值时,所述节点索引列表不包括与所述符号有关的节点索 引。
11. 才艮据一又利要求2所述的方法,其中,保存所述fDFA节点的步 骤包括将所述fDFA节点保存于多个存储页面中。
12. 才艮据4又利要求2所述的方法,其中,所述方法还包4舌当所述 pDFA节点的所述当前节点规定了所述符号向所述pDFA节点 中的节点转换时,将所述pDFA节点中的所述节点标识为所述 pDFA节点中新的当前节点。
13. 根据权利要求12所述的方法,其中,将所述pDFA节点中的 所述节点标识为所述pDFA节点中新的当前节点的步骤包括 增大所述pDFA节点中所述新的当前节点的访问级以及增大 所述fDFA节点中的、对应于所述pDFA节点中所述新的当前 节点的 一个节点的访问级。
14. 才艮据;f又利要求2所述的方法,其中,所述方法还包4舌当所述 pDFA节点的所述当前节点规定了所述符号向正在4妄受的节 点转换时,就接受符合所述符号模式的符号流。
15. 根据权利要求12所述的方法,其中,确定所述pDFA节点中 所述当前节点是否规定了所述符号向所述失败节点转换的步 骤包括确定所述符号是否为元符号所定义的符号类的成员。
16. 才艮据斗又利要求2所述的方法,其中,所述一组fDFA节点是第一组fDFA节点;其中,所述符号模式是第一符号模式;其中,所述方法还包括保存表示第二 fDFA的第二组fDFA 节点,其中,所述第二fDFA接受符合第二符号模式的符号流;其中,生成一组pDFA节点的步骤包括生成一组pDFA节 点,其每个所述pDFA节点都对应于所述第一组fDFA节点中 的具有超过所述规模阈的访问级的节点和/或都对应于所述第 二组fDFA节点中的具有超过所述访问级的访问级的节点;以 及其中,所述方法还包括当所述pDFA节点中的当前节点规定了所述符号向所 述失败节点转换时,将所述第二组fDFA节点中的对应于 所述pDFA节点中所述当前节点的节点标识为所述第二组 fDFA节点中的当前节点;以及当所述pDFA节点中的所述当前节点是所述失败节点 时以及当所述第二 fDFA节点的所述当前节点规定了所述 符号向正在接受的节点转换时,接受符合所述第二符号模 式的符号流。
17. 根据权利要求2所述的方法,其中,生成所述一组pDFA节点 的步-骤包4舌生成第 一组临时pDFA节点,其中,所述第 一组临时pDFA 节点中的每个节点在所述第一组fDFA节点中都具有对应的、 超过访问阈的访问级的节点,其中,当所述第一组fDFA节点中所对应的节点^见定 了符号向所述第 一组fDFA节点中的具有超越所述访问阈 的访问级的节点转换时,所述第 一组临时pDFA节点中的 每个节点都规定所述符号向所述第 一组临时pDFA节点中 的节点的转换,其中,当所述第一组fDFA节点中所对应的节点规定 了符号向所述第 一组fDFA节点中的具有不超越所述访问 阈的访问级的节点转换时,所述第一组临时pDFA节点中 的每个节点都夂见定所述符号向所述第 一组临时pDFA节点 中的失败节点的转换;生成第二组临时pDFA节点,其中,所述第二组临时pDFA 节点中的每个节点在所述第二组fDFA节点中都具有7寸应的、 超过"i方问阈的i方问级的节点,其中,当所述第二组fDFA节点中所对应的节点规定 了符号向所述第二组fDFA节点中的具有超越所述访问阈 的访问级的节点转换时,所述第二组临时pDFA节点中的 每个节点都规定所述符号向所述第二组临时pDFA节点中 的节点的转换,其中,当所述第二组fDFA节点中所对应的节点规定 了符号向所述第二组fDFA节点中的具有不超越所述访问 阈的访问级的节点转换时,所述第二组临时pDFA节点中的每个节点都规定所述符号向所述第二组临时pDFA节点 中的失败节点的转换;合并所述第 一组临时pDFA节点和所述第二《且临时pDFA 节点,以生成所述一纟且pDFA节点。
18. 根据权利要求17所述的方法,其中,合并所述第一组临时 pDFA节点和所述第二组临时pDFA节点的步骤包4舌生成第一新节点,其规定了所述第一组临时pDFA节点中 的节点中所规定的每次所述转换,以及规定了所述第二组临时 pDFA节点中的节点中所^L定的每次所述4争4灸;标识由所述第 一新节点所规定的、符号向第 一组临时 pDFA节点中的节点的4争4灸;标识由所述第 一新节点所规定的、相同符号向第二组临 时pDFA节点中的节点的转换;递归地生成第二新节点,其表示所述第 一组临时pDFA节 点和所述第二组临时pDFA节点的合并;以及夫见定所述符号在所述第 一 新节点中向所述第二新节点的 转换。
19. 一种中间网全各装置,包^":存储模块,用于存储一组完全确定性有限自动机(fDFA ) 节点,其中,fDFA节点表示完全确定性有限自动机fDFA, 其接受符合符号模式的符号串;pDFA更新才莫块,用于生成一组pDFA节点,其中,所述 pDFA节点表示部分确定性有限自动机(pDFA ),其中,每个所述pDFA节点在fDFA节点中都具有对 应的、超越i方问阈的"i方问级的节点,其中,当所述fDFA节点中所对应的节点规定了符号 向所述fDFA节点中的具有超越所述访问阈的访问级的节 点转换时,所述pDFA中的每个节点都规定所述符号向所 述pDFA节点中的节点的转换,和其中,当所述fDFA节点中所对应的节点^见定了符号 向所述fDFA节点中的具有不超越所述访问阈的访问级的 节点转换时,所述pDFA中的每个节点都规定所述符号向 所述pDFA节点中的失败节点的转换;以及DFA引擎,用于接收符号流中的符号;确定所述pDFA 节点中的当前节点是否为失败节点;当所述pDFA节点中的所 述当前节点不是所述失败节点时,确定所述pDFA节点中的所 述当前节点是否规定所述符号向所述失败节点的转换;当所述 pDFA节点中的所述当前节点规定了所述符号向所述失败节 点的转换时,将所述fDFA节点中的对应于所述pDFA节点中 所述当前节点的节点标识为所述fDFA节点中的当前节点;以 及,当所述pDFA节点中的所述当前节点是所述失败节点时并 且当所述fDFA节点中的所述当前节点规定了所述符号向正在 接受的节点转换时就检测计算机安全威胁。
20. 根据权利要求19所述的中间网络装置,其中,所述存储模块 在单个存储页面中保存所述一组pDFA节点。
21. 根据权利要求19所述的中间网络装置,其中,所述符号模式 与计算机安全威胁有关。
22. 根据权利要求19所述的中间网络装置,其中,所述中间网络 装置还包括第一网络接口,用于接收来自第一计算4几网络的网络流量;应用层模块,用于从所述网络流量中提取所述符号流中 至少一4卩分;以及第二网络接口 ,用于当所述符号流不使所述pDFA或所述 fDFA转换至正在接受的节点时就在第二计算机网络上重新发 送所述网全各:流量。
23. 才艮据权利要求19所述的中间网络装置,其中,所述DFA引擎确定所述pDFA节点的计数是否超 过规模阈;以及其中,当所述pDFA节点的计数不超过所述规模阈时以及 当所述一组fDFA节点中的节点成为所述fDFA的所述当前节 点时,所述pDFA更新才莫块在所述一组pDFA节点中生成新 pDFA节点,其对应于所述一组fDFA节点中的节点。
24. 根据权利要求23所述的中间网络装置,其中,当所述pDFA节点的计数超过所述规模阈时以及当 一个所述pDFA节点的所述访问级超过第二节点的访问级时, 所述pDFA更新才莫块乂人所述一组pDFA节点中删除所述第二节 点;以及其中,所述pDFA更新才莫块更l斤所述一iEL pDFA节点中的 多个节点,使所述pDFA节点中的已规定了向所述第二节点转 换的每一个节点都夫见定向所述pDFA的所述失败节点转换,而 不是向所述第二节点转换。'
25. 根据权利要求19所述的中间网络装置,其中,所述存储模块 将所述pDFA节点保存于多个存储页面中。
26. 根据权利要求19所述的中间网络装置,其中,当所述pDFA 节点的所述当前节点规定了所述符号向所述pDFA节点中的节点转换时,所述DFA I擎将所述pDFA节点中的所述节点 标识为所述pDFA节点中新的当前节点。
27. 4艮据^l利要求26所述的中间网络装置,其中,所述DFA引擎 增大所述pDFA节点中所述新的当前节点的访问级以及增大 所述fDFA节点中的对应于所述pDFA节点中所述新的当前节 点的 一个节点的访问级。
28. 根据权利要求19所述的中间网络装置,其中,当所述pDFA 节点的所述当前节点规定了所述符号向正在接受的节点转换 时,所述DFA引擎接受符合所述符号模式的符号流。
29. 根据权利要求19所述的中间网络装置,其中,所述一组fDFA节点是第一组fDFA节点,其中,所述符号模式是第一符号模式,和其中,所述存储才莫块保存表示第二 fDFA的第二组fDFA 节点,其中,所述第二fDFA接受符合第二符号模式的符号流;其中,每个所述pDFA节点都对应于所述第一组fDFA节 点中的具有超过所述>见才莫阈的访问级的节点和/或都对应于所 述第二组fDFA节点中的具有超过所述访问级的访问级的节 点;其中,当所述pDFA节点中的所述当前节点A见定了所述符 号向所述失败节点转换时,所述DFA引擎将所述第二组fDFA 节点中的对应于在所述pDFA节点中的当前节点的节点标识 为所述第二组fDFA节点中的当前节点;以及其中,当所述pDFA节点中的所述当前节点是所述失败节 点时并且当所述第二fDFA节点的所述当前节点规定了所述符号向正在接受的节点转换时,所述DFA引擎接受符合所述第 二符号模式的符号流。
30. 根据权利要求29所述的中间网络装置,其中,所述pDFA更新才莫块通过生成第一组临时pDFA节 点、生成第二组临时pDFA节点,以及通过合并所述第一组临 时pDFA节点和所述第二组临时pDFA节点以生成所述一组 pDFA节点的步骤,来生成所述一组pDFA节点其中,所述第一组临时pDFA节点中的每个节点在所述第 一组fDFA节点中都具有对应的、超过访问阈的访问级的节点,其中,当所述第一组fDFA节点中所对应的节点规定了符 号向所述第 一组fDFA节点中的具有超越所述访问阈的访问级 的节点转换时,所述第一组临时pDFA节点中的每个节点都规 定所述符号向所述第一组临时pDFA节点中的节点的转换,其中,当所述第 一组fDFA节点中所对应的节点规定了符 号向所述第 一组fDFA节点中的具有不超越所述访问阈的访问 级的节点转换时,所述第一组临时pDFA节点中的每个节点都 ^L定所述符号向所述第一组临时pDFA节点中的失败节点的 转换;其中,所述第二组临时pDFA节点中的每个节点在所述第 二组fDFA节点中都具有对应的、超过访问阈的访问级的节点,其中,当所述第二组fDFA节点中所对应的节点规定了符 号向所述第二组fDFA节点中的具有超越所述访问阈的访问级 的节点转换时,所述第二组临时pDFA节点中的每个节点都规 定所述符号向所述第二组临时pDFA节点中的节点的转换,和其中,当所述第二组fDFA节点中所对应的节点规定了符 号向所述第二组fDFA节点中的具有不超越所述访问阈的访问级的节点转换时,所述第二组临时pDFA节点中的每个节点都 头见定所述符号向所述第二组临时pDFA节点中的失败节点的转换。
31.—种计算机可读介质,其包括指令,当运行这些指令时,导致 处理器4丸行存储一组完全确定性有限自动冲几(fDFA)节点,其中, 所述fDFA节点表示完全确定性有限自动机fDFA,其接受符合符号模式的符号流;生成一组pDFA节点,其中,所述pDFA节点表示部分确 定性有限自动机(pDFA ),其中,每个所述pDFA节点在fDFA节点中都具有对 应的、超越i方问阈的i方问级的节点,其中,当所述fDFA节点中所对应的节点规定了符号 向所述fDFA节点中的具有超越所述访问阈的访问级的节 点转换时,所述pDFA中的每个节点都失见定所述符号向 pDFA节点中的节点的4争4灸,和其中,当所述fDFA节点中所对应的节点规定了符号 向所述fDFA节点中的具有不超越所述访问阈的访问级的 节点转换时,所述pDFA中的每个节点都规定所述符号向 pDFA节点中的失败节点的转换;接收符号流中的符号;确定所述pDFA节点中的当前节点是否为失败节点;当所述pDFA节点中的当前节点不是所述失败节点时,确 定所述pDFA节点中的所述当前节点是否规定所述符号向所 述失败节点的转换;当所述pDFA节点中的所述当前节点规定了所述符号向 所述失败节点转换时,将所述fDFA节点中的对应于所述 pDFA节点中所述当前节点的节点标识为所述fDFA节点中的 当前节点;以及当所述pDFA节点中的所述当前节点是所述失败节点时 以及当所述fDFA节点中的所述当前节点规定了所述符号向正 在4妄受的节点转换时,就;险测计算一几安全威胁。
32. 根据权利要求31所述的计算斗几可读介质,其中,导致所述处理器〗呆存一组fDFA节点的指令包括 导致所述处理器在多个存储页面中保存所述一组fDFA节点的 指令;以及其中,导致所述处理器生成所述一组pDFA节点的指令包 括导致所述处理器在单个存储页面中保存所述一组pDFA节 点的指令。
全文摘要
本发明提供了一种用于确定网络流量是否包含一个或多个计算机安全威胁的技术。为了确定符号流是否符合符号模式,安全装置保存完全确定性有限自动机(fDFA),其接受符合符号模式的符号流。该安全装置还生成部分确定性有限自动机(pDFA),其包括对应于fDFA中具有最高访问级的节点的节点。该安全装置使用pDFA处理符号流中的每个符号,直到一个符号导致pDFA转换至失败节点或正在接受的节点。如果该符号导致pDFA转换至失败节点,则安全装置使用fDFA处理该符号以及在符号流中的后续符号。
文档编号H04L29/06GK101291323SQ200710130040
公开日2008年10月22日 申请日期2007年7月25日 优先权日2007年4月20日
发明者克里希纳·纳拉亚纳斯瓦米, 布赖恩·伯恩斯, 维平·拉瓦特, 迈克尔·君·希霍, 马庆鸣 申请人:丛林网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1