CN101834716A - 确定有限自动机的混合表示 - Google Patents

确定有限自动机的混合表示 Download PDF

Info

Publication number
CN101834716A
CN101834716A CN200910126086A CN200910126086A CN101834716A CN 101834716 A CN101834716 A CN 101834716A CN 200910126086 A CN200910126086 A CN 200910126086A CN 200910126086 A CN200910126086 A CN 200910126086A CN 101834716 A CN101834716 A CN 101834716A
Authority
CN
China
Prior art keywords
state
current state
value
bitmap
dfa
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910126086A
Other languages
English (en)
Other versions
CN101834716B (zh
Inventor
马青明
布赖恩·伯恩斯
李升�
刘娜
吴雪君
于珊
郑丽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jungle Network
Juniper Networks Inc
Original Assignee
Jungle Network
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jungle Network filed Critical Jungle Network
Priority to CN200910126086.1A priority Critical patent/CN101834716B/zh
Priority to US12/468,454 priority patent/US8261352B2/en
Publication of CN101834716A publication Critical patent/CN101834716A/zh
Application granted granted Critical
Publication of CN101834716B publication Critical patent/CN101834716B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种方法,包括:接收数据单元,确定当前状态是否为位图状态,该当前状态与确定有限自动机(DFA)相关联,该确定有限自动机包括位图形式的一部分状态和DFA表形式的其余部分的状态,并且当确定当前状态不是位图状态时,确定对应于数据单元的值是否大于阈值。该方法还包括当确定对应于数据单元的值大于阈值时,确定当前状态是否不敏感,其中不敏感表示对当前状态每一个下一个状态都是相同的状态,以及当确定当前状态不敏感时,选择缺省状态作为对当前状态的下一个状态。

Description

确定有限自动机的混合表示
背景技术
诸如入侵检测和防御(IDP)设备的安全设备已在服务提供和企业网络中变为一个关键部件。由IDP设备利用来识别攻击、威胁和/或恶毒流量的传统技术是基于签名的。这些签名典型地为正则表达(如串)或子串的形式,这些正则表达或子串转换为不确定有限自动机(NFA)或确定有限自动机(DFA),并被用作通过匹配引擎来比较网络流量中的一串字节或包序列的图案。虽然存在多种方式来表示DFA,但是由于正则表达中通配符数量的增加、DFA状态数量的增加(这些增加有时以指数形式),DFA易于状态爆炸(state explosion)。因此,对于任意DFA表示,通常在存储器消耗和匹配速度之间存在一个权衡。
发明内容
根据一个实现,由设备执行的方法可以包括:通过该设备接收数据单元;通过该设备确定当前状态是否为位图状态,当前状态与确定有限自动机(DFA)相关联,确定有限自动机包括位图形式的一部分状态和DFA表形式的其余部分的状态;当确定当前状态不是位图状态时,通过该设备确定对应于数据单元的值是否大于阈值;当确定对应于数据单元的值大于阈值时,通过该设备确定当前状态是否不敏感,其中不敏感表示对当前状态每一个下一个状态都是相同的状态;以及当确定当前状态不敏感时,通过该设备选择一个缺省状态作为对当前状态的下一个状态。
根据另一个实现,网络设备包括处理器、存储器以及通信接口,来接收数据单元;确定当前状态是否为位图状态,该当前状态与确定有限自动机(DFA)相关联,确定有限自动机包括位图形式的一部分状态和DFA表形式的其余部分的状态;当确定当前状态不是位图状态时,确定对应于数据单元的数据值是否大于阈值美国信息交换标准编码(ASCII)值;当确定对应于数据单元的数据值大于阈值ASCII值时,确定当前状态是否不敏感,其中不敏感表示对当前状态每一个下一个状态都是相同的状态;当确定当前状态不敏感时,选择缺省值作为对当前状态的下一个状态;并且确定下一个状态是否对应于表示威胁、攻击或恶意流量的最终状态。
根据又一个实现,其上存储有由至少一个处理器执行的指令的计算机可读介质可以包括:用于接收数据单元的一个或多个指令;用于确定当前状态是否为位图状态的一个或多个指令,其中当前状态与确定有限自动机(DFA)相关联,确定有限自动机包括位图形式的一部分状态和DFA表形式的其余部分的状态;用于当确定当前状态不是位图状态时确定对应于数据单元的美国信息交换标准编码(ASCII)值是否大于阈值ASCII值的一个或多个指令;用于当确定对应于数据单元的ASCII值大于阈值ASCII值时确定当前状态是否不敏感的一个或多个指令,其中不敏感表示对当前状态每一个下一个状态都是相同的状态;以及当确定当前状态不敏感时,用于选择缺省状态作为对该当前状态的下一个状态的一个或多个指令。
根据另一个实现,网络设备可以包括:用于存储确定有限自动机(DFA)的装置,确定有限自动机包括位图形式的一部分状态和DFA表形式的其余部分的状态;用于接收数据单元的装置;用于确定与DFA相关联的当前状态是否为位图状态的装置;用于确定对应于数据单元的值是否大于阈值的装置;用于确定当前状态是否不敏感的装置,其中不敏感表示对当前状态每一个下一个状态都是相同的状态;以及当确定该值大于阈值并且当前状态不敏感时,选择缺省状态作为对当前状态的下一个状态的装置。
附图说明
结合于此并构成说明书一部分的附图示出了本文描述的一个或多个实施例,并结合说明书一起对这些实施例加以阐述。在附图中:
图1是示出了可以实现这里描述的方法、设备和系统的示例性环境的示图;
图2是示出了图1中描述的网络设备的示例性部件的示图;
图3是图1中描述的网络设备的示例性功能部件的示图;
图4A和图4B是图3中描述的DFA表的示例性实现的示图;
图5是图3中描述的位图的示例性实现的示图;
图6A和6B是示出了对于图案匹配的示例性过程的流程图;
图7是DFA状态的示例性表示的示图;以及
图8是确定下一个状态的示例性实现的示图。
具体实施方式
以下详细描述参照了附图。不同附图中的相同参考标号可以标识相同或类似的元件。此外,以下描述不对本发明构成限制。而是,本发明的范围由所附权利要求及其等价物限定。
使用正则表达的字符串的图案(pattern)识别是网络安全设备使用的一种方法。正则表达典型地包括字母、数字、符号等。在这种方法中,DFA引擎可以被用于执行关于网络流量的图案匹配。DFA引擎可以利用DFA表或位图。然而,对于DFA表和位图是存在缺陷的。
DFA表的一个缺陷是其易于状态爆炸,其中,由于每个DFA项都需要单独的存储器位置,状态爆炸转换为存储器消耗。另外,可以存在相同的DFA项的巨大数量。即,DFA项的巨大数量可以对应于相同的下一个状态。
在可选的方法中,DFA项可以利用位图。虽然位图比起DFA表可以显著地减小存储器消耗的大小,但位图也存在缺陷。位图的一个缺陷是其要求通过DFA引擎以将输入字符与位图的项相匹配的两个存储器访问。这与仅要求一个存储器访问的DFA表不同。位图的另一个缺陷是可能需要计算距缺省状态的偏移量以确定下一个状态。
这里描述的实施例提供了可以利用DFA表和位图两者来确定下一个状态的方法、设备和系统。在一个实现中,由于输入字符被接收,因此可以确定该输入字符是否具有大于阈值的值(例如,美国信息交换标准编码(ASCII)值)。另外,可以确定当前状态是否不敏感。当输入字符具有大于阈值的值时,每一个下一个状态都是相同的状态时当前状态可以被视为不敏感。如所描述的,可以依靠这些确定来利用DFA表、位图或缺省状态。根据规定的不同,DFA的状态可以在DFA表和位图之间分配。在一个实现中,该分配可以基于在DFA表中表示的频繁访问的状态和在位图中表示的很少访问的状态。由于广泛地描述了的这些实施例,因此这些实施方式存在变化。因此,下面提供了这些实施例的详细描述。
示例性环境
图1是示出了可以实现这里描述的方法、设备和系统的示例性环境100的示图。如图1所示,环境100可以包括可通信地连接至网络110的终端105。网络110可以包括网络设备115-1和115-2(总称为“网络设备115”)以及资源设备120-1和120-2(总称为“资源设备120”)。设备的数量和环境100中的构造是示例性的并且是简单提供的。在实践中,相比于图1中所示的设备,环境100可以包括更多、更少、不同的、和/或不同排列的设备。同样,描述为由一个设备执行的一些功能可以由不同的设备或多个设备的组合来执行。环境100可以包括这些设备之间有线和/或无线的连接。
终端105可以包括具有与其他设备、系统、网络、和/或其他等进行通信的能力的设备。例如,终端105可以对应于计算机(例如,膝上电脑、台式机、手持计算机)、个人数字助理、无线电话、或其他类型的通信设备。
网络110可以包括一个或多个任意类型的网络。例如,网络110可以包括有线网络、无线网络、私有网络、公共网络、局域网络(LAN)、城域网络(MAN)、广域网络(WAN)、因特网、企业内部互联网、电话网络(例如,公共交换电话网络(PSTN)或蜂窝网络)、卫星网络、计算机网络、和/或网络的组合。
网络设备115可以包括具有与其他设备、系统、网络、和/或其他等进行通信的能力的设备。例如,网络设备115可以对应于安全设备(例如,IDP设备、防火墙)、路由器、交换机、网关、桥路、访问点设备、或可以处理和/或转发网络流量的一些其他类型的设备。虽然网络设备115可以实现为不同类型的设备,在下文中,网络设备115将以IDP设备描述。资源设备120可以包括提供服务、数据或其他类型有用资源的设备。
示例性网络设备体系
图2是示出了网络设备115的示例性部件的示图。如所示出的,网络设备115可以包括例如总线210、处理器220、存储器230、存储设备240、输入/输出设备250、以及通信接口260。
总线210可以允许网络设备115的其他部件之间的通信。例如,总线210可以包括系统总线、地址总线、数据总线、和/或控制总线。总线210还可以包括总线驱动器、总线仲裁器、总线接口、和/或时钟。
处理器220可以解释和/或执行指令和/或数据。例如,处理器220可以包括处理器、微处理器、数据处理器、协同处理器、网络处理器、专用集成电路(ASIC)、控制器、可编程逻辑设备、现场可编程门阵列(FPGA)、或可以解释和/或执行指令的一些其他处理逻辑。
存储器230可以存储数据和/或指令。例如,存储器230可以包括随机访问存储器(RAM)、动态随机访问存储器(DRAM)、静态随机访问存储器(SRAM)、同步动态随机访问存储器(SDRAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、其他类型的动态或静态存储器、高速缓冲存储器、和/或闪存器。
存储设备240可以存储数据、指令、和/或应用程序。例如,存储设备240可以包括与对应的驱动器一起的硬盘(例如,磁盘、光盘、光磁盘等)、光盘(CD)、数字通用光盘(DVD)、软盘、盒式磁带、磁带、闪存盘、或其他类型的计算机可读介质。术语“计算机可读介质”被广泛地解释为包括例如存储器、存储设备或其他类型的介质。计算机可读介质可以在单独的设备中或者在多个设备中以集中的方式或者以分散的方式被实现。
输入/输出设备250可以允许输入到网络设备115和从网络设备中输出。例如,输入/输出设备250可以包括键盘、键区、鼠标、按钮、开关、话筒、声音识别逻辑电路、笔、显示器、端口、或允许输入的类似物。另外,或可选地,输入/输出设备250可以包括显示器、扬声器、一个或多个发光二极管(LED)、端口、或允许输出的类似物。
通信接口260可以允许网络设备115与其他设备、网络、另一系统、和/或其他等进行通信。例如,通信接口260可以包括无线接口和/或有线接口,诸如以太网接口、光接口等。通信接口260可以包括收发器。
网络设备115可以执行与基于DFA的图案匹配有关的操作和/或过程。根据一个示例性实现,网络设备115可以响应于处理器220执行包含在计算机可读介质中的指令序列来执行这些操作和/或过程。例如,软件指令可以从诸如存储设备240的另一个计算机可读介质(或通过通信接口260从其他设备)被读入到存储器230。包含在存储器230中的软件指令可以使处理器220执行将在下面描述的过程。可选地,硬线电路可以被用来代替软件指令或与软件指令结合来实现这里描述的过程。因此,这里描述的实现不限于硬件电路和软件的任何特定的组合。
然而,图2示出了网络设备115的示例性部件,在其他实现中,网络设备115相比于这里描述的和图2中所示的部件可以包括更多的、更少的、不同的、或不同排列的部件。附加地,或可选地,所描述的作为由网络设备115的一个特定部件执行的一个或多个操作可以由一个或多个附加的或代替特定部件的其他部件执行。另外,可以理解,环境100中的其他设备(例如终端105和/或资源设备120)可以包括图2所示的示例性部件。
图3是网络设备115的示例性功能部件的示图。如图3所示,网络设备115可以包括DFA引擎305、DFA表310、以及位图315。图3所示的功能部件可以由硬件(例如,处理器220、存储器230、存储设备240等)或硬件和软件的组合来实现。部件的具体数量和排列如图3所示,在其他实现方式中,网络设备115相比于图3中所示的部件可以包括更少、更多、不同、或不同排列的部件。另外,可以理解,这些功能部件可以在环境100中的其他设备(例如,终端105和/或资源设备120)中实现。
DFA引擎305可以以包的形式接收网络流量。虽然在这里的描述中使用包,但是这里描述的实现可以以包、非包、单元、数据报、位、字节等的形式应用于任意形式的数据单元。DFA引擎305可以执行识别攻击、威胁、恶意流量、和/或内容处理的其他形式所需的图案和签名匹配。通过实例的方式,DFA引擎305可以通过比较数据单元和DFA状态来识别数据单元是否对应于攻击、威胁或恶意流量。例如,代表状态机的DFA可以包括多种DFA状态。DFA状态可以从初始状态转变到一个或多个中间状态,再到表示威胁、攻击或恶意流量的最终状态。然而,与所有DFA状态都在DFA表或位图中表示的现有技术不同。在这里描述的混合DFA中,DFA状态的一部分可以表示在DFA表310中,而DFA状态的剩余部分可以表示在位图315中。在一个实现中,DFA表310可以包括被认为是频繁访问状态的DFA状态,这将在下面更详细描述。附加地,或可选地,位图315可以包括被认为是很少访问的DFA状态,这将在下面更详细描述。
DFA表310可以对应于表示DFA状态的数据排列。如上面描述的,DFA表310可以基于从正则表达的变换来生成。位图315可以对应于表示DFA状态的数据排列。位图315可以基于从正则表达的变换来生成。DFA表310和位图315的实例将在下面提供。
图4A和图4B是示出了DFA表310的示例性实现的示图。如图4A中所示,DFA表310可以包括下一个状态405。在这个实现中,DFA表310可以对应于下一个状态的256阵列。DFA引擎305可以基于与输入字符相关联的对应的256位ASCII值索引下一个状态405。然而在另一个实现中,DFA表310可以包括下一个状态410。在这个实现中,DFA表310可以对应于下一个状态的128阵列和缺省状态415。在这种情况下,DFA引擎305可以基于对应的128位ASCII值索引下一个状态410,并且剩余的128位ASCII值可以用作缺省状态415的索引。另外,在另一个实现中,DFA表310可以包括更少、更多、或不同的字段和/或字段数量。如前所述,可以利用DFA表310基于接收到的输入确定下一个状态。
图5是位图315的示例性实现的示图。如图5中所示,位图315可以包括在其中确定下一个状态的位图字段510。在这个实现中,存在256位字段510,其可以基于256位ASCII值索引。然而,在其他实现中,可以存在128位字段510,其可以基于128位ASCII值索引。另外,在另一个实现中,位图315可以包括更少、更多、或不同的字段,和/或字段数量。每一个位字段510可以具有“0”或“1”的值,如图5所示。
如前所述,可以利用位图315基于接收到的输入确定下一个状态。例如,如图5中所示,位图315可以包括缺省状态515、偏移量计算器520以及下一个状态525。在一个示例性实现中,输入字符值可以与位字段510之一匹配。在位字段510对应于值“0”的实例中,下一个状态对应于缺省状态515。然而,在位字段510对应于值“1”的实例中,可以通过偏移计量算器520计算距缺省状态515的偏移量,以从下一个状态525中选择下一个状态。在一个实现中,偏移量计算器520可以基于在这个状态之前值为“1”的位的数量计算偏移量。通过实例的方式,如果当前状态505之前值为“1”的位的数量是2,则偏移量计算器520可以确定偏移量为2,并选择“下一个状态2”作为下一个状态。在下一个状态525中存储的下一个状态可以对应于很少访问的状态。一个状态可以基于N的值被视为是很少访问的,如下面所述。另外,如下面将更详细描述的,当位字段510被表示为128个位字段时,当前状态对输入的128个或更高的ASCII值不敏感时,可以利用缺省状态515作为下一个状态。
示例性处理
这里描述的实施例提供可以利用DFA表和位图两者来确定下一个状态的方法、设备、和系统。基于下面描述在利用DFA表或利用位图之间进行选择。
基于我们对DFA行为的研究,统计分析显示在DFA表中最频繁访问的状态具有小于距初始状态为N的距离。值N可以由整数值表示。值N可以是静态值(例如,用户配置的值)。通过实例的方式,可以假设距初始状态的特定距离(或跳(hop)数)表示最频繁访问的状态。可选地,值N可以是动态值。例如,值N可以通过确定DFA中最频繁访问状态的计数器确定。表1列出了对于研究的所有DFA,具有距初始状态不同距离(即,跳)的状态的百分比。
表1
Figure B2009101260861D0000101
在表1中,跳表示跳的数量或距初始状态的距离。关于每一跳,提供了状态的数量和比率(根据状态的总数量的百分比)。例如,可以假设最频繁访问的状态具有小于4(即,N=4)的距离或跳数。基于表1,如果距当前状态的距离超过用户配置的值(例如,4或选择的一些其他跳数),则由于该状态可以被视为很少访问的状态,该状态可以由位图状态来表示。另一方面,如果距当前状态的距离等于或小于用户配置的值,则该状态可以由DFA表来表示。当N值是动态值时可以执行相似的配置,如前面所描述的。
根据存储器消耗,用N表示跳的数量,X%表示小于N跳的状态的百分比,并且用T表示DFA中状态的总数量。基于这个表示,总的存储器消耗可以对应于下面的示例性表达:
(X%*(99.92%*50%+0.08%*8.2%)+(100-X)%*8.2%)*512*T=X%*49.97%+(100-X)%*8.2%             表达1
存储器的百分比是N的函数。表2示出了对于值为从1到10的N的存储器消耗:
表2
  N   1   2   3  4   5   6   7   8   9   10
  比率   8.60%   9.11%   9.73%  10.42%   11.18%   12.01%   12.98%   13.82%   14.78%   16.02%
基于表2,用于DFA的存储器容量当N=4时可以降低大约90%,当N=6时可以降低大约88%。另外,存储器消耗的降低不会影响图案匹配的性能。
另外,基于我们对DFA行为的研究,已经确定对生成的所有DFA,状态的99.92%对ASCII值超过127的输入字符是不敏感的。换言之,对于ASCII值超过127(例如,128-255)的任意输入字符,这些状态的下一个状态是相同的。基于这些发现,在这里描述混合DFA表达,其可以利用类似于位图的存储器容量,而保持DFA表的匹配速度。
图6A和图6B是示出了对于基于DFA识别攻击、威胁、和/或恶意流量的图案匹配的示例性过程600的流程图。过程600可以通过网络设备115中的硬件或硬件与软件的组合来执行。在另一个实现中,与过程600相关联的一个或多个操作可以由与网络设备115结合的另一个设备来执行。将结合其他附图来描述过程600。
过程600可以以确定当前状态是否为位图状态开始(块605)。例如,DFA状态可以表示为两个字节。图7是示出了DFA状态的示例性表示的示图。如所示出的,两个字节可以包括分配给表示状态(例如,12位)的位,以及表示状态是否为位图状态的位705,以及表示对超过127的ASCII值的输入字符状态是否不敏感的位710。位705和710的值可以在混合DFA的编译段时期生成。DFA引擎305可以基于位705确定当前状态是否为位图状态。
可以理解,当前状态是否为位图状态可以基于N的值。N的值可以是用户配置的和/或静态值。可选地,N的值可以是动态值。例如,网络设备115可以对在一个时间段内状态被访问的次数计数,并相应地改变N的值。以这种方式,网络设备115可以根据其接收到的网络流量来调整其图案匹配,并区分被认为是频繁访问的状态以及被认为是很少访问的状态。
当确定当前状态对应于位图状态(块605-是)时,可以使用位图匹配来寻找下一个状态(块610)。图6B是示出了图6A的块610的示例性细节的示图,其中基于位图匹配确定下一个状态。如图6B中所示,输入字符的位置可以在位图中找到(块640)。例如,参照图5,DFA引擎305可以确定输入字符相对于位字段510的位置。通过实例的方式,如果输入字符低于“a”的情况,则位图字段510的第三字段(图5中数字“2”指出的)可以对应于低于“a”的情况的映射。因此,DFA引擎305可以确定输入字符相对于位字段510的位置。
参照图6B,可以确定位图的位是否为1(块645)。例如,如图5所示,位字段510可以包括值1或值0。DFA引擎305可以确定与位字段510的适当字段(例如,对应于低于“a”的情况的字段)相关联的值是1还是0。
参照图6B,当确定位不具有值1(块645-否)时,缺省状态可以对应于下一个状态(块650)。例如,如图5所示,DFA引擎305可以确定位字段510的适当字段具有值0,诸如标号为0和254的字段。在这种情况下,DFA引擎305可以选择对应于缺省状态515的下一个状态。
参照图6B,当确定位具有值1(块645-是)时,在这个位置之前,可以计算具有值1的位的总和(块655)。例如,如图5所示,DFA引擎305可以确定位字段510的适当字段具有值1,诸如编号为1、2和255的字段。在这种情况下,偏移量计算器520可以计算偏移量,如之前所描述的。DFA引擎305可以基于计算出的偏移量从下一个状态525中选择下一个状态。
参照图6A,当确定当前状态不对应于位图状态(块605-否)时,可以确定输入字符是否大于127(块615)。例如,基于具有从0到255范围的ASCII值,一些字符被表示为具有大于127的值,而其他字符被表示为具有等于或小于127的值。DFA引擎305确定与输入字符相关联的值是否大于127。
当确定与输入字符相关联的值不大于127(块615-否)时,DFA引擎305可以使用DFA表310来寻找下一个状态(块620)。DFA引擎305可以基于当前状态和输入字符值在DFA表310中寻找下一个状态。例如,如图8所示,DFA引擎305可以利用输入字符值805作为对下一个状态405中的适当字段的索引。
参照图6A,当确定与输入字符相关联的值大于127(块615-是)时,可以确定当前状态是否不敏感(块625)。如之前描述的,当下一个状态对于ASCII值大于127的任何输入字符都是相同的时,该状态被认为是不敏感的。换言之,当输入ASCII值在128到256之间时,状态可以转换到相同的下一个状态。参照图7,DFA引擎305可以基于位710确定当前状态是否不敏感。
参照图6A,当确定当前状态不敏感(块625-是)时,缺省状态可以用作下一个状态(块635)。例如,在一个实现中,当DFA表310对应于下一个状态410的128阵列时(如图4B中所示的),DFA引擎305可以确定下一个状态为缺省状态415。在另一个实现中,当DFA表310对应于下一个状态的256排列时,DFA引擎305可以将输入字符值和对应的下一个状态405相匹配。
参照图6A,当确定当前状态敏感(块625-否)时,DFA匹配可以用来寻找下一个状态(块630)。例如,如之前在块620中描述的,DFA引擎305可以确定下一个状态。
虽然图6A和图6B示出了示例性过程600,但是在其他实现中,可以执行更少、更多或不同的操作。例如,当状态(例如,当前状态或下一个状态)对应于最终状态时,网络状态115可以识别攻击、威胁、和/或恶意流量,其中最终状态表示攻击、威胁等。在这种情况下,网络装置115可以放弃数据单元(例如,包、非包、字节、位等)和/或执行某种其他类型的处理或动作。
结论
在前实现方式的描述提供了实例,但是其不是穷尽性的并且不限于上面描述的实现方式。根据上述教导或从教导实践中获得的,可能进行多种修改和变化。例如,虽然DFA表和位图被描述为包含DFA状态的数据结构,但是在其他实现中,除DFA表和/或位图以外的数据结构也可以被利用。在这点上,DFA的状态可以在两种或多种类型的数据结构之间被分配。另外,虽然已经描述了DFA表具有存储器消耗的缺陷但是具有匹配速度的优势(例如基于一个存储器访问),虽然位图具有匹配速度的缺陷(例如基于两个存储器访问)但是具有存储器消耗的优势,具有其他互补优势和缺陷的其他类型的数据结构也可以被利用。因此,在这种实例中,其他数据结构之间的状态的分配可以基于或不基于频繁访问的状态和不频繁访问的状态,如这里描述的。
另外,尽管关于在图6A和6B中示出的过程描述了一系列块,但是在其他实现中块的顺序可以改变。另外,可以并行执行非依赖性块。
另外,已经描述了某些方面作为执行一个或多个功能的“逻辑”或“元件”来实现。该逻辑或元件可以包括硬件或硬件与软件的组合,硬件诸如处理器、微处理器、ASIC、或FPGA,硬件与软件的组合诸如执行存储在计算机可读介质中的指令的处理器/微处理器。
显而易见的是,可以按照附图所示的那些实现方式中的软件、固件、及硬件的许多不同形式实现本文所描述的多个方面。用于实现这些方面的实际的软件代码或特定控制硬件不对本发明构成限制。因此,不是参照特定软件代码来描述这些方面的操作和行为,可以理解,可以将软件和控制硬件设计为基于本文中的描述来实现这些方面。
术语“可以”在本申请全文中使用并解释为,例如,“具有的可能性”、“配置为”、或“能够”,而不是一个强制性的理解(例如,“必须”)。术语“一个“a、an””和“该“the””解释为包括一个或多个项。例如,处理器302可以包括一个或多个处理器。仅有一个术语“一个“one””或相似用语被用来表示一个。另外,短语“基于”解释为“至少部分基于”,除非另有清楚的陈述。术语“和/或”解释为包括所列出的关联项目中的一个或多个中的任意个或全部。
尽管在权利要求中书面陈述了和/或在本说明书中公开了多个特征的特定组合,但是这些组合不旨在限制本发明的公开。实际上,可以按照多种未在权利要求书中具体书面陈述和/或在说明书中公开的方式对这些特征中的许多特征进行组合。
本申请中使用的元件、动作、或指令均不可解释为对于本发明来说是关键的或实质的,除非明确地这样描述。

Claims (25)

1.一种由设备执行的方法,包括:
由所述设备接收数据单元;
由所述设备确定当前状态是否为位图状态,所述当前状态与确定有限自动机(DFA)相关联,所述确定有限自动机包括位图形式的一部分状态和DFA表形式的其余部分的状态;
当确定所述当前状态不是位图状态时,由所述设备确定对应于所述数据单元的值是否大于阈值;
当确定对应于所述数据单元的所述值大于所述阈值时,由所述设备确定所述当前状态是否不敏感,其中不敏感表示所述当前状态每一个下一个状态都是相同的状态;以及
当确定所述当前状态不敏感时,由所述装置选择缺省状态作为所述当前状态的下一个状态。
2.根据权利要求1所述的方法,还包括:
当确定所述当前状态并非不敏感时,由所述装置基于位图匹配选择所述当前状态的下一个状态。
3.根据权利要求1所述的方法,还包括:
当确定对应于所述数据单元的所述值小于所述阈值时,由所述设备基于DFA表匹配选择所述当前状态的下一个状态。
4.根据权利要求1所述的方法,还包括:
当确定所述当前状态是所述位图状态时,由所述设备基于位图匹配选择下一个状态。
5.根据权利要求1所述的方法,还包括:
由所述设备利用多个位来表示所述当前状态;以及
由所述设备分配所述多个位之一来指示所述当前状态是否是所述位图状态。
6.根据权利要求1所述的1方法,还包括:
由所述设备利用多个位来表示所述当前状态;以及
由所述设备分配所述多个位之一来指示所述当前状态是否不敏感。
7.根据权利要求1所述的方法,还包括:
由所述设备选择一个值,该值区分被认为是频繁访问的状态以及被认为是很少访问的状态;以及
由所述设备基于所选择的值生成所述DFA表和所述位图,所述DFA表包括被认为是频繁访问的状态,所述位图包括被认为是很少访问的状态。
8.根据权利要求7所述的方法,其中所述值是静态值或动态值。
9.根据权利要求1所述的方法,其中所述阈值对应于美国信息交换标准编码(ASCII)值127。
10.根据权利要求1所述的方法,其中所述设备对应于网络安全设备或路由器中的至少一个。
11.根据权利要求1所述的方法,还包括:
由所述设备识别所述下一个状态是否对应于表示威胁、攻击、或恶意流量的最终状态。
12.一种网络设备,包括:
处理器、存储器、以及通信接口,来:
接收数据单元;
确定当前状态是否为位图状态,所述当前状态与确定有限自动机(DFA)相关联,所述确定有限自动机包括位图形式的一部分状态和DFA表形式的其余部分的状态;
当确定所述当前状态不是位图状态时,确定对应于所述数据单元的数据值是否大于阈值美国信息交换标准编码(ASCII)值;
当确定对应于所述数据单元的所述数据值大于所述阈值ASCII值时,确定所述当前状态是否不敏感,其中不敏感表示所述当前状态的每一个下一个状态都是相同的状态;
当确定所述当前状态不敏感时,选择缺省状态作为所述当前状态的下一个状态;以及
确定所述下一个状态是否对应于表示威胁、攻击、或恶意流量的最终状态。
13.根据权利要求12所述的网络设备,其中在所述位图中的所述状态的所述部分对应于不频繁访问的状态,并且在所述DFA表中的所述状态的所述剩余部分对应于频繁访问的状态。
14.根据权利要求13所述的网络设备,其中所述网络设备还配置为:
当确定所述当前状态为位图状态时,利用所述位图选择下一个状态。
15.根据权利要求13所述的网络设备,其中所述网络设备还配置为基于区分频繁访问的状态和不频繁访问的状态的值,生成所述DFA表和所述位图。
16.根据权利要求15所述的网络设备,其中所述值与距初始状态的状态的距离有关。
17.根据权利要求15所述的网络设备,其中所述值得自于对访问状态频率的计数。
18.根据权利要求13所述的网络设备,其中所述网络设备还配置为:
当确定所述当前状态敏感时,利用所述DFA表来寻找所述下一个状态。
19.根据权利要求13所述的网络设备,其中所述网络设备还配置为:
当确定对应于所述数据单元的所述数据值不大于所述阈值ASCII值时,利用所述DFA表来查找所述下一个状态,其中所述阈值ASCII值为127。
20.根据权利要求12所述的网络设备,其中,当选择所述缺省状态作为对所述当前状态的下一个状态时,所述选择基于DFA表匹配。
21.一种其上存储有指令的计算机可读介质,可由至少一个处理器执行所述指令,所述计算机可读介质包括:
一个或多个指令,用于接收数据单元;
一个或多个指令,用于确定当前状态是否为位图状态,所述当前状态与确定有限自动机(DFA)相关联,所述确定有限自动机包括位图形式的一部分状态和DFA表形式的其余部分的状态;
一个或多个指令,用于当确定所述当前状态不是位图状态时,确定对应于所述数据单元的美国信息交换标准编码(ASCII)值是否大于阈值ASCII值;
一个或多个指令,用于当确定对应于所述数据单元的所述ASCII值大于所述阈值ASCII值时,确定所述当前状态是否不敏感,其中不敏感表示所述当前状态的每一个下一个状态都是相同的状态;以及
一个或多个指令,用于当确定所述当前状态不敏感时,选择缺省状态作为所述当前状态的下一个状态。
22.根据权利要求21所述的计算机可读介质,还包括:
一个或多个指令,用于当确定所述当前状态是所述位图状态时,基于位图匹配选择对所述当前状态的下一个状态。
23.根据权利要求21所述的计算机可读介质,还包括:
一个或多个指令,用于当确定对应于所述数据单元的所述ASCII值小于所述阈值ASCII值时,基于DFA表匹配选择对所述当前状态的下一个状态。
24.一种网络设备,包括:
用于存储确定有限自动机(DFA)的装置,所述确定有限自动机包括位图形式的一部分状态和DFA表形式的其余部分的状态;
用于接收数据单元的装置;
用于确定与所述DFA相关联的当前状态是否为位图状态的装置;
用于确定对应于所述数据单元的值是否大于阈值的装置;
用于确定所述当前状态是否不敏感的装置,其中不敏感表示所述当前状态的每一个下一个状态都是相同的状态;以及
用于当确定所述值大于所述阈值且所述当前状态不敏感时,选择缺省状态作为所述当前状态的下一个状态的装置。
25.根据权利要求24所述的网络设备,还包括:
用于当确定所述当前状态不是位图状态时,选择对所述当前状态的下一个状态的装置;以及
用于当确定所述值不大于所述阈值时,选择对所述当前状态的下一个状态的装置。
CN200910126086.1A 2009-03-09 2009-03-09 与确定有限自动机的混合表示关联的方法和设备 Expired - Fee Related CN101834716B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200910126086.1A CN101834716B (zh) 2009-03-09 2009-03-09 与确定有限自动机的混合表示关联的方法和设备
US12/468,454 US8261352B2 (en) 2009-03-09 2009-05-19 Hybrid representation for deterministic finite automata

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910126086.1A CN101834716B (zh) 2009-03-09 2009-03-09 与确定有限自动机的混合表示关联的方法和设备

Publications (2)

Publication Number Publication Date
CN101834716A true CN101834716A (zh) 2010-09-15
CN101834716B CN101834716B (zh) 2014-10-29

Family

ID=42679413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910126086.1A Expired - Fee Related CN101834716B (zh) 2009-03-09 2009-03-09 与确定有限自动机的混合表示关联的方法和设备

Country Status (2)

Country Link
US (1) US8261352B2 (zh)
CN (1) CN101834716B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113158184A (zh) * 2021-03-03 2021-07-23 中国人民解放军战略支援部队信息工程大学 基于有限状态自动机的攻击脚本生成方法及相关装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268881B2 (en) 2012-10-19 2016-02-23 Intel Corporation Child state pre-fetch in NFAs
US9117170B2 (en) * 2012-11-19 2015-08-25 Intel Corporation Complex NFA state matching method that matches input symbols against character classes (CCLs), and compares sequence CCLs in parallel
US9665664B2 (en) 2012-11-26 2017-05-30 Intel Corporation DFA-NFA hybrid
US9304768B2 (en) 2012-12-18 2016-04-05 Intel Corporation Cache prefetch for deterministic finite automaton instructions
US9268570B2 (en) 2013-01-23 2016-02-23 Intel Corporation DFA compression and execution
US9465651B2 (en) * 2014-01-09 2016-10-11 Netronome Systems, Inc. Transactional memory having local CAM and NFA resources
EP3430775A1 (en) * 2016-03-17 2019-01-23 Johann Schlamp Constructible automata for internet routes
US10110563B1 (en) * 2016-04-28 2018-10-23 Palo Alto Networks, Inc. Reduction and acceleration of a deterministic finite automaton
US10862903B2 (en) * 2017-03-09 2020-12-08 Maxlinear, Inc. State grouping methodologies to compress transitions in a deterministic automata

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305383B1 (en) * 2004-06-10 2007-12-04 Cisco Technology, Inc. Processing system using bitmap array to compress deterministic finite automation state table allowing direct indexing
US20080034427A1 (en) * 2006-08-02 2008-02-07 Nec Laboratories America, Inc. Fast and scalable process for regular expression search
CN101291323A (zh) * 2007-04-20 2008-10-22 丛林网络公司 使用部分确定性有限自动模式匹配来进行网络攻击检测

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818806B1 (en) * 2005-11-08 2010-10-19 Nvidia Corporation Apparatus, system, and method for offloading pattern matching scanning
US7991723B1 (en) * 2007-07-16 2011-08-02 Sonicwall, Inc. Data pattern analysis using optimized deterministic finite automaton

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305383B1 (en) * 2004-06-10 2007-12-04 Cisco Technology, Inc. Processing system using bitmap array to compress deterministic finite automation state table allowing direct indexing
US20080034427A1 (en) * 2006-08-02 2008-02-07 Nec Laboratories America, Inc. Fast and scalable process for regular expression search
CN101291323A (zh) * 2007-04-20 2008-10-22 丛林网络公司 使用部分确定性有限自动模式匹配来进行网络攻击检测

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113158184A (zh) * 2021-03-03 2021-07-23 中国人民解放军战略支援部队信息工程大学 基于有限状态自动机的攻击脚本生成方法及相关装置
CN113158184B (zh) * 2021-03-03 2023-05-19 中国人民解放军战略支援部队信息工程大学 基于有限状态自动机的攻击脚本生成方法及相关装置

Also Published As

Publication number Publication date
US20100229238A1 (en) 2010-09-09
CN101834716B (zh) 2014-10-29
US8261352B2 (en) 2012-09-04

Similar Documents

Publication Publication Date Title
CN101834716B (zh) 与确定有限自动机的混合表示关联的方法和设备
HaddadPajouh et al. A deep recurrent neural network based approach for internet of things malware threat hunting
US11258805B2 (en) Computer-security event clustering and violation detection
US11899786B2 (en) Detecting security-violation-associated event data
Sengupta et al. A Game Theoretic Approach to Strategy Generation for Moving Target Defense in Web Applications.
EP3716111B1 (en) Computer-security violation detection using coordinate vectors
Schmidt et al. Static analysis of executables for collaborative malware detection on android
Khasawneh et al. EnsembleHMD: Accurate hardware malware detectors with specialized ensemble classifiers
CN106469413B (zh) 一种虚拟资源的数据处理方法及装置
Tang et al. Dynamic API call sequence visualisation for malware classification
CN107968791B (zh) 一种攻击报文的检测方法及装置
CN108353083B (zh) 用于检测域产生算法(dga)恶意软件的系统及方法
KR101463678B1 (ko) 신뢰되지 않는 컴퓨팅 노드들에 의해 수행된 작업의 검증
CN110474903B (zh) 可信数据获取方法、装置及区块链节点
CN106709336A (zh) 识别恶意软件的方法和装置
Su et al. Discovering communities of malapps on Android-based mobile cyber-physical systems
More et al. Trust-based voting method for efficient malware detection
Liu et al. Evolving robust networks using evolutionary algorithms
Choudhary et al. CRIDS: Correlation and regression-based network intrusion detection system for IoT
Panda et al. Ensemble of classifiers for detecting network intrusion
CN111191683A (zh) 基于随机森林和贝叶斯网络的网络安全态势评估方法
Zhou et al. A hardware-based architecture-neutral framework for real-time iot workload forensics
CN112181527B (zh) 小程序的跳转数据的处理方法、装置和服务器
CN106295671B (zh) 一种应用列表聚类方法、装置及计算设备
Liao et al. Multi-scale Convolutional Feature Fusion Network Based on Attention Mechanism for IoT Traffic Classification

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: California, USA

Applicant after: Juniper Networks, Inc.

Address before: California, USA

Applicant before: Jungle network

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: NETSCREEN TECHNOLOGIES INC. TO: JUNIPER NETWORKS INC.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141029

Termination date: 20190309