CN1716958A - 使用子表式自动机的系统安全实施方法以及相关的系统 - Google Patents

使用子表式自动机的系统安全实施方法以及相关的系统 Download PDF

Info

Publication number
CN1716958A
CN1716958A CN200510078075.2A CN200510078075A CN1716958A CN 1716958 A CN1716958 A CN 1716958A CN 200510078075 A CN200510078075 A CN 200510078075A CN 1716958 A CN1716958 A CN 1716958A
Authority
CN
China
Prior art keywords
data
suspicious
sublist
fit
unit set
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
CN200510078075.2A
Other languages
English (en)
Other versions
CN1716958B (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.)
HONGJING TECH Co Ltd
Original Assignee
HONGJING TECH Co Ltd
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 HONGJING TECH Co Ltd filed Critical HONGJING TECH Co Ltd
Publication of CN1716958A publication Critical patent/CN1716958A/zh
Application granted granted Critical
Publication of CN1716958B publication Critical patent/CN1716958B/zh
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Abstract

一种用来确保系统安全的方法与相关系统。该方法与系统将对应于多个型样的一正规表式分割成多个子表式。并维持对应于多个子表式的有限自动机之间的相依关系。接下来,数据单元依照该相依关系依序置入多个有限自动机,因而可识别出可疑数据单元。可疑数据单元指包含有集合后吻合于前述一个或多个型样的内容的数据单元。对于可疑数据单元的识别则是依据多个有限自动机的合并结果来据以进行。并依据识别可疑数据单元的结果,来执行不同的响应操作。

Description

使用子表式自动机的系统安全实施 方法以及相关的系统
技术领域
本发明涉及系统安全,特别是涉及通过预防性的方法(preventivemeasure)来响应对于一网络中的装置的攻击的方法与相关系统。
背景技术
随着计算机网络的广为普及,任何与网络相连接的装置都有可能会受到各式各样的攻击,例如来自于病毒(virus)、电子蠕虫(worm)、或是网络怪客(cracker)的攻击。防火墙(firewall)与防毒程序(anti-virus program)是用来对付这类网络攻击的解决方案。一般而言,防火墙可用来防止某些特定种类的文件或是数据包传进网络之中,至于防毒程序则可以防止单一装置或一群装置执行包含有病毒的文件。
现今有几种防火墙技术是较为常见的,例如数据包过滤器(packetfilter)、应用层网关(application gateway)、以及代理服务器(proxyserver)。数据包过滤器会检视每一个数据包中的控制讯息,并依据使用者所定义的规则,来决定接受或是拒绝每一个数据包。应用层网关则是会针对特定的应用(例如文件传输协议(FTP)以及远程登录服务器(Telnet server))使用特殊的安全机制。至于代理服务器则是一种中介的服务器,用来于一客户应用端与该客户应用端所依附的服务器之间,拦截并检查所传送的数据包。然而,前述的各种技术皆不会检查每一个数据包中的酬载数据(payloaddata)部分,也无法处理跨越了不同数据包边界的恶性程序代码。
至于一般常见的防毒程序,则会将收到的数据包组合成原始的文件,再决定所产生的文件中是否包含有预知的病毒型样。在此种作法中,只有在文件或一个区块的数据组合完成之后,才会有检测病毒是否存在的操作。对于针对实时通讯协议(real-time protocol)所作的攻击而言,因为这类的通讯协议对于时限的要求较为严格,前述「先组合后扫瞄」(assembling-before-scanning)的解决方案会变得较不可行。
发明内容
本发明的目的之一,在于披露一种用来确保系统安全的方法与相关系统,以解决现有技术所面临的问题。
根据以下所述的实施例,本发明所披露的方法与系统可将对应于多个型样的一正规表式分割成多个子表式,并维持对应于多个子表式的有限自动机之间的相依关系。接下来,数据单元依照该相依关系依序置入多个有限自动机,因而可识别出可疑数据单元。可疑数据单元是指包含有集合后吻合于前述一个或多个型样的内容的数据单元。对于可疑数据单元的识别则是依据多个有限自动机的合并结果来据以进行。并依据识别可疑数据单元的结果,来执行不同的响应操作。
附图说明
图1为本发明的系统安全实施方式的一个例子的流程图。
图2为用以表示一确定性的有限自动机的状态转换图。
图3为用以表示一确定性的有限自动机的状态表的一实施例。
图4为图2所示的DFA较为简化的表现方式。
图5为压缩用以代表一自动机的状态表的一实施例。
图6为用以自一已压缩状态表中取出状态信息的方法。
图7为对一自动机执行操作的一种作法。
图8为将正规表式分割成多个子表式并建立起多个子表式所对应的自动机的相互关系的一种作法。
图9为使用状态信息的种类来关连多个子表式所对应的自动机的一种作法。
图10为另一个用来将正规表式分割成多个子表式并合并多个子表式所对应的自动机的一种作法。
图11为一依存关系树的一个例子。
图12为插入额外状态的作法的一流程图。
图13为用以代表插入状态的结果的DFA简化图。
图14为用以代表插入″bc″的结果的DFA简化图。
图15为利用二进制位来得出自动机的依存关系森林的整合结果的示意图。
图16为可用以实施本发明实施例的系统安全实施方式的一计算机系统的功能方块图。
图17为可用以实施本发明实施例的系统安全实施方式的另一计算机系统的功能方块图。
附图符号说明
  1202   总线
  1204   处理器
  1206   主存储器
  1208   只读存储器
  1210   储存装置
  1212   显示装置
  1214   输入装置
  1216   光标控制器
  1218   通讯接口
  1220   网络连结
  1222   本地网络
  1224   主机计算机
  1226   因特网服务供货商
  1228   因特网
  1230   服务器
  1302   内容检查协同处理器
  1304   处理器
  1306   存储器总线
  1308   桥接器
具体实施方式
在接下来的描述当中,将会通过一些明确特定的实施例来解释本发明,在阅读完以下说明之后,将可以对于本发明的概念有较为透彻的了解。当然,在以下的说明中所提供的详细数据将不限制本发明的专利范围。
由于「正规表式」(regular expression)、「状态机」(state machine)、「自动机」(automaton)的相关理论以及相关知识皆为所属技术领域中具有通常知识者所熟知,故在此将不多作赘述。并请注意,在后续的说明中,「状态机」这个名字将会与「状态自动机」(state automaton)这个名词交替地使用。「通用符号」(Wild card)用来表示特殊的符号,例如英文中的句号(.)与星号(*)的组合,即用来表示0个、1个、或多个字符(举例来说,″.*abc″即表示所有以″abc″作为结尾的型样)。「数据单元」(data unit)表示储存于一特殊存储器位置的数据或是一个具有目标地址的数据包。「堆栈」(stack)表示用来提供暂存空间的一个区块(block)的存储器位置。
1.0一般概要
以下所介绍的系统安全实施方式包含有各种相关的方法与系统,用来将对应于多个型样(pattern)的一正规表式分割成多个子表式(sub-expression)。在对应于多个子表式的有限自动机(finite automata)中的相依关系(dependency relantionships)则将会维持下来。接下来,藉由将数据单元依照前述的相依关系置入多个有限自动机,可疑的数据单元将可被识别出来。「可疑的数据单元」是指所包含的内容集合后吻合于(collectively match)前述的型样中的一种或多种型样的数据单元。至于可疑数据单元的识别工作则是依据多个有限自动机的合并结果(mergedresults)来据以进行。依据识别多个可疑数据单元的结果,则可决定执行不同的响应操作。
2.0系统安全实施方式
2.1概要
以下将提供本发明的系统安全实施方式的概要。为了能确保一系统的安全,有一种作法是通过检视进入与离开该系统的数据单元,来确保该系统可以免于恶性的程序代码或未批准的存取所带来的攻击。该作法部分根基于正规表式的使用,其中,正规表式主要指的是用来表示特定型样的一组符号以及语法单元(syntactic element)。举例来说,(a|b)t即是一个简单的正规表式,用来表示″at″以及″bt″这两个型样。虽然一个精炼过的(well-crafted)正规表式(特别是在使用了万用字符的情形下)看起来可能显得较为简洁,但该正规表式依旧可能表示多种不同的型样,而推导出一个具有许多状态的状态机。
另一种系统安全实施方式亦会部分根基于「管理(managing)与操作(manipulating)从多个正规表式所推导出的各个状态自动机的状态,来有效地搜寻与匹配(match)特定的型样」的作法。随着越来越多的型样被识别为有害的型样,将会需要使用额外的步骤来加快搜寻与匹配特定的型样的速度,并同时减低对于储存空间的需求。
图1所示为一种系统安全实施方式的流程图。在步骤102中,之前所识别出的「有害型样」(例如已知的病毒、电子蠕虫、滥发(spam)、非法存取、或是任何可以转变为正规表式的恶性程序代码)被转变为正规表式。这些有害的型样亦可以是任何一种可以转变为正规表式的声音型样、影像型样、或者非文字型样等等。
于步骤104中,是依据多个正规表式来产生有限自动机。在一实施例中,多个有限自动机皆为确定性的(deterministic)自动机,其中,对于该自动机中的每一状态,皆存在对应于每一种可能的输入的至多一种转换(transition)。此外,在步骤104中亦建立并操作(manipulate)多个自动机之间的相互关系(relantionship)以及依存关系(dependency)。后续的段落将更明确地介绍一确定性有限自动机(deterministic finite automaton,简称为DFA),以及关于多个自动机的建立与操作方式。
此外,在一种实施方式中,相关的状态信息(state information)储存于状态表(state table)之中,用来代表自动机以及相互的依存关系。为了减低状态表的大小以减少储存多个表格所需的储存空间,本发明还可以更进一步地压缩状态信息。后续的段落将会进一步介绍压缩的方法以及相关的状态表结构。
于步骤106中,在接收到数据单元时,多个数据单元的内容(不论其内容为何,举例来说,其内容可为控制信息或数据信息),皆会与由多个自动机以及多个自动机之间相对应关系所表示的型样相互比较。在一实施例中,每一数据单元的内容可包含有每一型样的「码区段」(code segments)。若该型样为″abcxyz″,则该型样的码区段可以为″abc″以及″xyz″,而存在于两个相邻接收到的数据单元之中(这两个数据单元将会被认为是可疑的数据单元)。当然,该型样的码区段亦可以为″abc″、″x″、以及″yz″,而存在于三个相邻接收到的数据单元之中(这三个数据单元将会被认为是可疑的数据单元)。
另一方面,若该型样为″abc.*xyz″,则该型样的码区段亦可以是″abc″以及″xyz″,然而,多个码区段会存在于任何两个数据单元之中(只要包含有″abc″的数据单元在包含有″xyz″的数据单元之前被接收即可)。举例来说,在接收到如下所述的三个数据单元之后,即会发生与型样″abc.*xyz″相互匹配的情形:第1数据单元包含有″abc″,第2数据单元并未包含有″abcxyz″中的任一字符,第3数据单元则包含有″xyz″。换句话说,由于在前述的型样之中包含有万用字符,只要在三个数据单元中发现了该型样的每一种码区段,即使第3数据单元并非紧邻于第1数据单元之后,经过比较的过程后依旧会产生出相互匹配的结果。
另一方面,在接收到三个数据单元之后,只要第1数据单元包含有″abc″,即使后续接收到的第2、第3数据单元并未包含有″abcxyz″中的任一字符,第1数据单元依旧会被视为是可疑的数据单元,并保留直到″xyz″出现在后续的数据单元为止。另外,除了保留前述的数据单元本身以外,亦可以改为保留比较的结果。举例来说,在判断出第1数据单元之中包含有″abc″之后,可以不用保留第1数据单元,而是设定对应于第1数据单元的状态标志(status flag),接下来,当在后续的数据单元中发现了″xyz″之后,即可重置(reset)前述的状态标志,并针对与″abc.*xyz″型样匹配的结果执行响应的操作。在一种实施方式之中,将可疑的数据单元或相关的比较结果信息保留于储存装置中的时间长度可以具有一最大限制。后续的段落将会更进一步说明前述的比较机制。
于步骤108之中,根基基于比较得出的结果,将会执行特定的响应操作。举例来说,特定的响应操作可包含有:防止特定的数据单元进入或离开系统、警告或通知系统使用者前述的比较结果、产生一记录数据(log)、或是修改所辨识出的数据单元中的数据。当然,以上的例子并不限制本发明的范围。
2.2自动机与状态表
图2所示为表示一确定性的有限自动机DFA 200的状态转换图。DFA 200的正规表式为(a(tc|gt))|(ct))。DFA 200的状态共有{1,2,3,4,5,6}这六种,其字符则有{a,c,t,g}这四个,其中,{1}是其初始状态,{6}则是其最终状态。DFA 200还具有一转换方程式「δ(初始状态,输入字符)=次一状态」。更明确地说,δ(1,a)=2,δ(2,t)=4,δ(4,c)=6,δ(2,g)=5,δ(5,t)=6,δ(1,c)=3,δ(3,t)=6。至于DFA 200所代表的型样则为{ct,atc,agt}。
图3为用以表示DFA 200的状态表202的一实施例。状态表202包含有N列×M栏的次一状态(next state),其中,N表示一自动机的状态的数目,M则表示字符组的大小。换句话说,DFA 200的N与M值分别为6与4。储存于图3中的字段204中的信息系对应于δ(1,a)=2。至于字段中的0值表示相关的状态以及输入字符不具有相对应的次一状态。举例来说,在字段206中的0值即表示初始状态{1}以及输入字符{t}并不具有相对应的次一状态。
在一种实施方式之中,状态表202中的每一个字段皆对应于一存储器位置。举例来说,假设状态表20中的每一个字段包含有8位的数据;其第1列开始于一基本存储器地址x;每一栏表示一字符(例如{a})在每一列中的相对位置;且整个状态表202储存于邻近的存储器位置之中。若状态表202的第1列中字符{a}的相对位置为1,则字段204将对应于存储器位置(x+(列数1)*8位)。换句话说,状态表202总共需要的存储器空间为(N*M*数据大小),亦即(6*4*8)。当然,前述的作法仅是众多可能作法中的其中一种。
为了更进一步介绍本发明,在后续的段落中将会使用到自动机较为简化的表现方式。图4为DFA 200较为简化的表现方式DFA 208。简化版的DFA 208并未显示出用来描述转换方程式「δ(初始状态,输入字符)=次一状态」所需的所有信息,相对地,其显示出了该DFA所接受的字符顺序。在后续的段落中,本图中简化版的DFA将会用作为基本的建构区块,以说明较为复杂的DFA。
如前所述,当在步骤104中产生了一有限自动机(例如DFA 200)并建立起其所相对应的状态表(例如状态表202)之后,在一种作法之中,可以在步骤104中一并对所建立的状态表进行操作(manipulate),然后再进入步骤106对数据单元进行检视。图5所示为压缩用以代表一自动机的状态表的一实施例。如图所示,在另一个状态表(亦即状态表300)的第3列中包含有数个0值。而所建立的位图表(bit map table)314用来标示状态表300中相邻近的字段的变化状况,举例来说,以状态表300的第3列以及位图表314为例,由于字段302中的状态信息不同于字段304中的状态信息,此一变化即会被标示于位图表314的字段316中(标示为1)。相似地,由于字段306中的状态信息不同于字段308中的状态信息,此一变化则会被标示于位图表314的字段318中(标示为1)。另一方面,由于字段310中的状态信息相同于字段312中的状态信息,故位图表314中相对应的字段320将会被标示为0。
在标示完相邻近字段之间的变化之后,即可产生出已压缩状态表322。在一实施例中,根基于位图表314中所有包含有″1″值的字段(例如在位图表314第3列中的字段316与318),状态表300中相对应字段中的状态信息即被储存于已压缩表格322的第3列中。举例来说,由于字段316的值为″1″,并对应于状态表300的字段304,故字段304中所储存的状态信息″0″将被储存于已压缩列322的字段324之中。通过如上所述的压缩方式,即可大幅减低状态表300的整体大小。
图6所示为用以自一已压缩状态表中取出状态信息的方法。以图5中所示的表格为例,并假设所需的信息为状态表300第3列中第7个字段(由左算至右,亦即字段310)中的状态信息。于步骤400中,首先先分析了位图表314中第3列之前7个字段(由左至右)。更明确地说,在一种作法中,会在步骤402中决定前7个字段中所包含的″1″值的数目。在这个例子中,共存在有4个″1″值。于步骤404,依据这4个″1″值,即可辨识出已压缩表格322中的第4个字段(亦即字段326),此时并一并读出字段326中所储存的内容″0″。相似地,若所需的信息为状态表300第3列中第6个字段(由左算至右,亦即字段308)中的状态信息。则于步骤400中将会分析位图表314中第3列的6个字段。因为这6个字段中共存在有3个″1″值,故于步骤404,将依据这3个″1″值,读出已压缩表格322中的第3个字段中所储存的内容″4″。
2.3自动机的操作
图7所示为对一自动机执行操作的一种作法。于步骤500中,将自动机的正规表式分割成子表式。接下来,于步骤502中建构出这些子表式之间的相互关系。在依据对应于多个子表式的自动机对数据单元进行完检视以及搜寻工作后,在步骤504中将依据之前所建构的相互关系来组合所得出的结果。于一实施例中,步骤500与502可当作图1所示的步骤104的一部份一并执行,而步骤504则可当作图1所示的步骤106的一部份一并执行。
图8所示为将正规表式分割成多个子表式,以及关连(correlate)多个子表式所对应的自动机的一种作法。举个例子,假设RE1、(.*)(RE2)、以及(.*)(RE3)是一正规表式(RE1)(.*)(RE2)(.*)(RE3)的三个子表式,除了可建立起代表该正规表式的单一自动机之外,另一种作法则是得出每个子表式所对应的自动机,并发展出多个子表式自动机之间的依存关系。
更明确地说,图8中的DFA 506代表子表式RE1,DFA 508代表子表式(.*)(RE2),DFA 510则代表子表式(.*)(RE3)。至于建立起这三个DFA之间的依存关系的一实施例可通过使用额外的信息(例如状态信息的种类)的方式。至于状态信息的种类则指出该状态是否为一子表式初始状态(sub-expression initial state,例如512)、一子表式最终状态(sub-expression finals tate,例如514),或是一真实最终状态(real finalstate,例如516)。如此一来,当数据单元受到检视时(例如图1中的步骤106所示),多个数据单元将会被置入多个子表式所对应的DFA之中,例如DFA 506、508、510。当然,请注意,仅使用一个单一的DFA来代表整个正规表式的作法,亦可以达到相同的结果。
图9则是使用前述的状态信息的种类来关连(correlate)多个子表式所对应的自动机的一种作法。为了说明上的方便,此处假设DFA 506相同于图2所示的DFA 200,且DFA 200中的状态″5″标示为DFA 506的子表式最终状态514。若数据单元在图1的步骤106中被置入图5所示的DFA之中,则多个数据单元将会在步骤600中被读出。而多个数据单元将会与DFA中的字符(例如DFA 200中的{a,c,t,g})相互比较。若发生了一个字符吻合的情形(例如字符{a}),则步骤602将会产生出确定的结果,并进一步确定DFA 200的「次一状态」(next state,亦即状态″2″)的种类。由于状态″2″既不是子表式最终状态也不是真实最终状态,该方法将会于步骤606中进入多个数据单元的内容中的次一位置。
然而,若型样″atc″、″agt″、或″ac″中有任何一个发生了吻合的情形,且次一状态是DFA 200中的状态″5″,由于状态″5″为一子表式最终状态,因此步骤604的结果将会是于步骤608中将多个数据单元放置于一堆栈(stack)中,以便于使用其它子表式自动机进行后续的处理工作。更明确地说,于步骤610中,DFA 508的初始子表式状态被读出以用来处理多个数据单元的剩余内容(remaining content)。在一种作法中,所谓的剩余内容开始于多个数据单元的内容中位于一「吻合位置」(matching position)后方的位置,其中在该吻合位置的内容导致状态转换至该子表式最终状态。
若该次一状态为一真实最终状态,则在步骤612中将会回报吻合情形。此时,多个数据单元已经通过了所有的子表式自动机,并被判断出其「集合后包含有」(collectively containing)整个正规表式所代表的型样。关于前述的「集合后包含有」一词,假设一正规表式代表了型样″abc.*xyz″,且三个数据单元集合后包含有该型样,则在一种情形下,代表多个数据单元的内容包含有″abcxyz″中个各个字符,且多个字符符合型样″abc.*xyz″中的特殊顺序。举例来说,第1个数据单元可能包含有″abc″、第2个数据单元为″xy″、第3个数据单元为″z″。在另一个例子中,由于该型样之中包含有万用字符,因此第1个数据单元可能包含有″abcabcabc″、第2个数据单元为″defmnoxy″、第3个数据单元则为″zijk″。前述的数据单元集合皆可称为是「集合后包含有」型样″abc.*xyz″。若该堆栈中的所有数据皆通过了步骤614与616的检测,且并未包含有该型样中的字符,亦未符合该型样中的字符顺序,则在步骤618中将不会回报吻合的情形。
图10所示为另一个用来将一正规表式分割成多个子表式,以及合并(merge)多个子表式所对应的自动机的一种作法。举例来说,对于一正规表式(RE1.*RE2.*RE4)|(RE1.*RE3.*RE5)而言,在一实施例中可以在步骤700中将该正规表式分割成两个子表式(RE1.*RE2.*RE4)与(RE1.*RE3.*RE5)。在进一步处理这两个子表式的自动机之前,在步骤702中还会先建构出RE1、RE2、RE4的自动机以及RE1、RE3、RE5的自动机之间的依存关系。
于步骤704中,将辨识出相邻子表式自动机之间的重迭部份(overlappedportions),藉由所辨识出的重迭部份,可以在步骤706中,将用以代表重迭部份的额外状态(additionals tatus)插入至所建构出的依存关系之中。多个重迭部份则是产生于在步骤708执行一联集运算(union operation)的实施例。对两组数据执行一联集运算(以符号″|″表示)所可产生的结果将会包含有仅属于该两组数据之一的成分,或同时属于该两组数据的成分。再以前述的正规表式(RE1.*RE2.*RE4)|(RE1.*RE3.*RE5)为例,步骤708所产生出的合并结果将会是(RE1|RE2|RE4)|(RE1|RE3|RE5)加上任何在步骤706中所插入的状态。
更进一步说明在步骤702所建构出的依存关系,如图11所示,依存关系树(depedency tree)800与802皆建构来追溯(track)RE1、RE2、RE3、RE4、与RE5的自动机之间的相依关系。每一依存关系树皆指出了一种代表多个子表式的自动机的操作顺序(operating sequence)。在一种作法中,在图1的步骤106中所作的检视与搜寻操作将会依照依存关系树800与依存关系树802中的顺序据以进行。请注意,一组依存关系树(包含有两个以上的依存关系树)亦可以一并称作为一「依存关系森林」(dependency forest)。
于步骤704中检视由两个相邻的自动机所代表的子表式中是否存在有重迭部分。一重迭部分表示两个相邻的自动机所代表的子表式中具有相同且依照顺序(consecutive-in-sequence)存在的字符型样。至于两个「相邻的」自动机表示该二自动机在依存关系树中是相邻的,例如在图11中,RE2的DFA即相邻于RE1的DFA。举例来说,假设RE1是″cebcbcbc″且RE2是″.*c bcbcd″,则重迭部分将会是″cbcbc″。另一方面,若RE1是″cebcbcbc″而RE2是″.*cbcbcde″,即使两个子表式RE1与RE2中都包含有字符″e″,重迭部分依旧是″cbcbc″。
若两个相邻的自动机间存在有重迭部分,则在步骤706中,额外的状态将会被插入于这两个相邻的自动机(例如RE2的DFA与RE1的DFA)之间。图12所示为插入额外的状态的作法的一流程图。以RE1=″cebcbcbc″且RE2=″.*cbcbcd″做为例子,如前所述,其间的重迭部分为″cbcbc″。在步骤900中,识别出重复的字符″c″,并在步骤902中决定出该字符在重迭部分中的所在位置。更明确地说,从右数到左,将可发现字符″c″出现在重迭部分″cbcbc″中的第1、3、5位置。依据这些字符位置,在步骤904中即可插入额外的状态。图13所示为用以代表已插入额外状态的DFA简化图。已插入状态1000、1002、与1004分别对应于重迭部分″cbcbc″中最低的第1个、第3个与第5个字符。
然而,若重迭部分中并未包含有重复出现的字符,则在步骤906中会将重迭部分当成一额外的状态插入。举例来说,若RE1=″abc″且RE2=″.*bcd″,则重迭部分会是″bc″。图14所示则是在插入了″bc″之后的DFA简化图。
于图10所示的步骤708中,对每个依存关系树所得出的结果进行整合。如前所述,整合的运算可以是一联集(union)运算。在一种作法中,上述的结果通过二进制的位表示,并通过逻辑「交集运算」(AND)或是逻辑「联集运算」(OR)进行整合。图15所示为利用二进制位来得出自动机的依存关系森林的整合结果的示意图。于步骤1100中,产生用来代表一依存关系森林的预期状态转换(anticipated state transition)的一位图(bit map)。以图11所示的依存关系森林为例,若RE1与RE2的DFA已经对于接收到的数据单元产生相互吻合的情形,则一第1位图将会被产生来代表预期的状态转换,举例来说,从RE2至RE4以及从RE1至RE3的状态转换。
当数据单元的内容与依存关系森林中的自动机确实发生了吻合的情形,则于步骤1102中一第2位图将会被产生来反映真实的状态转换。举例来说,当从RE1至RE3的转换发生时,第2位图将会被产生来反映此一转换。于一实施例中,步骤1104对第1位图与第2位图中相对应的位位置执行逻辑交集运算(AND)以得出状态转换。由于依存关系树800与802的最终DFA分别为RE4与RE5的DFA,于一实施例中,是于步骤1106还对反映了最近的状态转换的位图以及代表RE4与RE5的位图中相对应的位位置执行逻辑交集运算(AND)。而步骤1106得出的结果可以再选择性地回授以阐释出(formulate)可以预期依存关系森林中其它状态转换的位图。
虽然各个图示以及各段的描述主要集中在分割一正规表式以及对该正规表式的子表式进行操作的作法。然而,多个作法亦可以应用在分割多个正规表式以及对于相对应的子表式进行关联之上。
3.0系统架构例子
图16为可用以实施本发明实施例的系统安全实施方式的一计算机系统1200的功能方块图。计算机系统1200包含有一总线1202(或是其它可用来传送信息的通讯机制)以及与总线1202相互耦接的一处理器1204,用来处理信息。计算机系统1200还包含有耦接于总线1202的一主要存储器1206(例如一随机存取存储器(RAM)或其它的动态储存装置),用来储存信息以及由处理器1204所执行的指令。主要存储器1206亦可以用来储存瞬时变量(temporary variables)或于处理器执行指令时储存其它的中介信息(intermediate information)。当然,其它类型的芯片上存储器模块(on-chipmemory modules)(例如高速缓存(cache))虽然未显示于图中,但依旧可以用来提供所需的暂存空间。计算机系统1200还包含有包含有一只读存储器(ROM)1208或其它耦接于总线1202的静态储存装置,用来储存处理器1204所需的静态信息以及相关指令。一储存装置1210(其可为磁盘或是光盘)则亦耦接于总线1202,用来储存信息与指令。
计算机系统1200可以通过总线1202耦接于显示装置1212,显示装置1212用来将信息显示给计算机系统1200的使用者。一输入装置1214包含有字母/数字键(alphanumeric)以及其它的按键,耦接于总线1202,用来将信息以及指令选择(command selections)传递给处理器1204。光标控制器(cursor control)(例如鼠标、轨迹球、电子笔(stylus)、或光标方向键(cursor direction key))1216是另一种使用者输入装置,用来将信息以及指令选择传递给处理器1204,并可用以控制显示装置1212上光标的操作。此种类的输入装置通常在两个轴方向具有两个自由度(degrees offreedom),两个轴方向包含有一第1轴方向(例如x轴方向)与一第2轴方向(例如y轴方向),让装置可以在一平面上明确定义出特定的位置。
依据本发明的系统安全实施方式的一实施例,该实施方式通过由计算机系统1200针对处理器1204执行主要存储器1206中一个或多个指令序列(每个指令序列由一个或多个指令所构成)的所作的响应而实现的。多个指令可以先从其它的计算机可读取介质(例如储存装置1210)读入至主要存储器1206之中。至于执行主要存储器1206中的多个指令序列可以让处理器1204完成此处所描述的步骤。于其它的实施例中,由硬件连接电路所实现的电路架构(hard-wired circuitry)亦可以用来取代(或配合)软件指令以实现本发明的概念。如此一来,本发明的实施例将不受限于硬件电路与软件之间的特定组合。
此处所提及的「计算机可读取介质」(computer readable medium)是指参与于「将指令提供给处理器1204执行」的过程中的任何一种介质。这种介质可以具有各种形式,包含有(但不限于)非易失性介质(non-volatilemedia)、易失性介质(volatile media)、或是传输介质(transmissionmedia)。非易失性介质的例子包含有光盘或磁盘,例如储存装置1210。易失性介质的例子包含有动态存储器(dynamic memory),例如主要存储器1206。传输介质的例子则包含有同轴电缆(coaxial cable)、铜导线(copperwire)、或是光纤(fiber optic),例如总线1202之中的导线。传输介质的形式还可以是声、光、或是载波(carrier wave)。
各种形式的计算机可读取介质皆可以用于储存、携带、或传送处理器1204所执行的一个或多个指令序列(每个指令序列由一个或多个指令所构成)。举例来说,多个指令可以先储存于一磁盘或一远程计算机(remotecomputer)之中。该远程计算机可以将多个指令加载至其动态存储器中,并将多个指令传送给计算机系统1200。总线1202可将多个指令传送至主要存储器1206,处理器1204则可以自主要存储器1206提取并执行多个指令。而由主要存储器1206所接收的多个指令可以在被处理器1204执行前先存入于储存装置1210中,或在被处理器1204执行后再存入于储存装置1210中。
计算机系统1200还包含有一通讯接口1218,耦接于总线1202。通讯接口1218可用来提供计算机系统1200与一网络连结1220之间双向的数据传输,网络连结1220则连接于一本地网络1222。当然,此处亦可以使用无线(Wireless)的连结方式来传输数据。在各种实施方式中,通讯接口1218可以传送/接收电讯号、电磁讯号、或是光讯号,其所传输的讯号中则携带了数字数据流,用以表示各种的信息。
一般而言,网络连结1220可以提供一个或多个网络与其它数据装置之间的数据传输。举例来说,网络连结1220可通过本地网络1222提供至一主机计算机(host computer)1224的连结,或是至一因特网服务供货商(Internet Service Provider,ISP)1226所管理的数据设备。因特网服务供货商1226则可通过世界性的数据包数据传输网络1228(一般称为因特网(Internet))提供数据传输服务。本地网络1222与因特网1228皆可通过电讯号、电磁讯号、或是光讯号来进行数字数据的传输工作。至于通过各式的网络所传输的讯号、以及经由网络连结1220与通讯接口1218所传输的讯号(用以将数据传入或传出计算机系统1200),即是用以传送信息的载波(carrier wave)的例子。
图17是可以实现本发明实施例的系统安全实施方式的另一系统1300的一功能方块图。明确地说,系统1300包含有一独立的处理单元(separateprocessing unit),一内容检查协同处理器(content inspectionco-processor,CICP)1302,专属用来执行前述各种的系统安全实施方式。内容检查协同处理器可以实现成一特定应用集成电路(application-specific integrated circuit,ASIC),或程序化于一可程序化逻辑装置(programmable logic device)中、亦可为一芯片系统(system-on-chip,SOC)中的一功能单元(functional unit)。在一种作法中,内容检查协同处理器1302可通过桥接器1308以及存储器总线1306来与处理器1304通讯。此外,若处理器1304还有提供适当的通讯接口(未绘示于图17中),内容检查协同处理器1302还可通过该通讯接口直接与处理器1304进行通讯。
处理器1304可以是一个通用处理器(general purpose processor)或是一特定用途处理器(specific purpose processor)。至于特定用途处理器的例子则包含有(但不限于):用以进行讯号处理、移动运算、及多介质相关应用的处理器。特定用途处理器通常会包含有可以与其它外部单元直接连接的相关接口。举例来说,一特定用途处理器可以包含有一个或多个存储器接口,用来与各种的存储器相互连接,或用来与一协同处理单元(例如内容检查协同处理器1302)相互连接。
而各个种类的存储器模块还可耦接于存储器总线1306或内容检查协同处理器1302,以提供处理器1304或内容检查协同处理器1302暂存数据所需的空间。存储器模块的例子则包含有各种随机存取存储器(RAM)与闪存(flash memory)。此外,在不变更本发明的系统安全实施方式的范围的情形下,图17中所示的各个组成组件之外还可再加入其它的组成组件(例如显示装置),图17中所示的各个组成组件亦可再组合(例如处理器1304与内容检查协同处理器1302可以设置于同一个芯片系统中)、或更进一步地分割为更多组件(例如可将桥接器1308分割成一处理器桥接器、一总线控制器、以及一存储器控制器)。
4.0延伸以及变化
以上所述仅为本发明的较佳实施例,凡依本发明的权利要求所做的均等变化与修饰,皆应属本发明专利的涵盖范围。

Claims (50)

1.一种系统安全实施方法,其包含有:
将对应于多个型样的一正规表式分割成多个子表式;
维持对应于多个子表式的多个有限自动机之间的相依关系以及每一有限自动机的初始状态信息与最终状态信息;
依照多个相依关系、该初始状态信息、以及该最终状态信息所对应的顺序,依序将多个数据单元置入多个有限自动机中;
自该多个数据单元中识别出一可疑数据单元集合,其中该可疑数据单元集合的内容是集合后吻合于该多个型样中的任何型样;以及
依据识别出该可疑数据单元集合的结果来执行一响应操作。
2.如权利要求1权利要求的方法,其还包含有:于多个可疑数据单元中的一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后吻合于该型样为止。
3.如权利要求1权利要求的方法,其还包含有:阻挡该可疑数据单元集合以防止该可疑数据单元集合传送至其目的地。
4.如权利要求1权利要求的方法,其还包含有:使该结果成为已知信息。
5.如权利要求1权利要求的方法,其中多个数据单元为依序包含有讯息的数据包。
6.如权利要求5权利要求的方法,其还包含有:
于将多个数据单元置入多个有限自动机之前,依照多个数据包所包含的信息的顺序,依序排列多个数据单元。
7.如权利要求1权利要求的方法,其还包含有:自一外部实体得出多个型样。
8.如权利要求1权利要求的方法,其还包含有:
于一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,保留比较结果。
9.一种计算机可读取介质,包含有一个或多个序列的指令,用来确保系统安全,当该计算机可读取介质被一个或多个处理器执行时,会致使该一个或多个处理器:
将对应于多个型样的一正规表式分割成多个子表式;
维持对应于多个子表式的多个有限自动机之间的相依关系以及每一有限自动机的初始状态信息与最终状态信息;
依照多个相依关系、该初始状态信息、以及该最终状态信息所对应的顺序,依序将多个数据单元置入多个有限自动机中;
自该多个数据单元中识别出一可疑数据单元集合,其中该可疑数据单元集合的内容是集合后吻合于该多个型样中的任何型样;以及
依据识别出该可疑数据单元集合的结果来执行一响应操作。
10.如权利要求9权利要求的计算机可读取介质,其还包含有当被该一个或多个处理器执行时,致使该一个或多个处理器执行以下操作的指令:于比较多个可疑数据单元中的每一数据单元与多个型样中的任何型样时,将多个可疑数据单元保留于暂存空间中。
11.如权利要求9权利要求的计算机可读取介质,其还包含有当被该一个或多个处理器执行时,致使该一个或多个处理器执行以下操作的指令:阻挡该可疑数据单元集合以防止该可疑数据单元集合传送至其目的地。
12.如权利要求9权利要求的计算机可读取介质,其还包含有当被该一个或多个处理器执行时,致使该一个或多个处理器执行以下操作的指令:使该结果成为已知信息。
13.如权利要求9权利要求的计算机可读取介质,其中多个数据单元为依序包含有讯息的数据包。
14.如权利要求13权利要求的计算机可读取介质,其还包含有当被该一个或多个处理器执行时,致使该一个或多个处理器执行以下操作的指令:于将多个数据单元置入多个有限自动机之前,依照多个数据包所包含的信息的顺序,依序排列多个数据单元。
15.如权利要求9权利要求的计算机可读取介质,其中多个型样是自一外部实体所得出。
16.如权利要求9权利要求的计算机可读取介质,其还包含有当被该一个或多个处理器执行时,致使该一个或多个处理器执行以下操作的指令:
于一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,保留比较结果。
17.一种系统安全实施方法,其包含有:
将对应于多个型样的一正规表式分割成多个子表式;
维持对应于多个子表式的多个有限自动机之间的相依关系;
依照多个相依关系所对应的顺序,依序将多个数据单元置入多个有限自动机中;
自该多个数据单元中识别出一可疑数据单元集合,其中藉由合并多个有限自动机的结果,该可疑数据单元集合的内容集合后吻合于该多个型样中的任何型样;以及
依据识别出该可疑数据单元集合的结果来执行一响应操作。
18.如权利要求17权利要求的方法,其还包含有:于多个可疑数据单元中的一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后吻合于该型样为止。
19.如权利要求17权利要求的方法,其还包含有:
于多个子表式中二个被识别出的子表式之间识别出一重迭部分;
于该二个被识别出的子表式所对应的有限自动机之间插入对应于该重迭部分的额外状态以及状态转换;以及
将多个额外状态与多个状态转换包含于该顺序之中。
20.如权利要求19权利要求的方法,其还包含有:阻挡该可疑数据单元集合以防止该可疑数据单元集合传送至其目的地。
21.如权利要求19权利要求的方法,其还包含有:使该结果成为已知信息。
22.如权利要求17权利要求的方法,其还包含有:
于将多个数据单元置入多个有限自动机之前,依照多个数据单元所包含的信息的顺序,依序排列该多个该数据单元。
23.如权利要求17权利要求的方法,其还包含有:
于一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,保留比较结果。
24.一种用以实施系统安全的系统,其包含有:
用以将对应于多个型样的一正规表式分割成多个子表式的机制;
用以维持对应于多个子表式的多个有限自动机之间的相依关系的机制;
用以依照多个相依关系所对应的顺序,依序将多个数据单元置入多个有限自动机中的机制;
用以自该多个数据单元中识别出一可疑数据单元集合的机制,其中藉由合并多个有限自动机的结果,该可疑数据单元集合的内容是集合后吻合于该多个型样中的任何型样;以及
用以依据识别出该可疑数据单元集合的结果来执行一响应操作的机制。
25.如权利要求24权利要求的系统,其还包含有:用以于多个可疑数据单元中的一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后吻合于该型样为止的机制。
26.如权利要求24权利要求的系统,其还包含有:
用以于多个子表式中二个被识别出的子表式之间识别出一重迭部分的机制;
用以于该二个被识别出的子表式所对应的有限自动机之间插入对应于该重迭部分的额外状态以及状态转换的机制;以及
用以将多个额外状态与多个状态转换包含于该顺序之中的机制。
27.如权利要求24权利要求的系统,其还包含有:
用以于将多个数据单元置入多个有限自动机之前,依照多个数据单元所包含的信息的顺序,依序排列多个数据单元的机制。
28.如权利要求24权利要求的系统,其还包含有:
用以于一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,保留一比较结果的机制。
29.一种用以实施系统安全的系统,其包含有:
用以将对应于多个型样的一正规表式分割成多个子表式的机制;
用以维持对应于多个子表式的多个有限自动机之间的相依关系以及每一有限自动机的初始状态信息与最终状态信息的机制;
用以依照多个相依关系、该初始状态信息、以及该最终状态信息所对应的顺序,依序将多个数据单元置入多个有限自动机中的机制;
用以自该多个数据单元中识别出一可疑数据单元集合的机制,其中该可疑数据单元集合的内容是集合后吻合于该多个型样中的任何型样;以及
用以依据识别出该可疑数据单元集合的结果来执行一响应操作的机制。
30.如权利要求29权利要求的系统,其还包含有:用以于多个可疑数据单元中的一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后吻合于该型样为止的机制。
31.如权利要求29权利要求的系统,其还包含有:
用以于将多个数据单元置入多个有限自动机之前,依照多个数据单元所包含的信息的顺序,依序排列多个数据单元的机制。
32.如权利要求29权利要求的系统,其还包含有:
用以于一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,保留比较结果的机制。
33.一种用以实施系统安全的系统,其包含有:
一处理器;
一总线,耦接于该处理器;
一通讯接口,耦接于该总线,其中该通讯接口用来接收多个数据单元;
一主要存储器,耦接于该总线,其中于该主要存储器中所包含的指令被该处理器执行时,致使该处理器:
将对应于多个型样的一正规表式分割成多个子表式;
维持对应于多个子表式的多个有限自动机之间的相依关系;
依照多个相依关系所对应的顺序,依序将该多个数据单元置入多个有限自动机中;
自该多个数据单元中识别出一可疑数据单元集合,其中藉由合并多个有限自动机的结果,该可疑数据单元集合的内容是集合后吻合于该多个型样中的任何型样;以及
依据识别出该可疑数据单元集合的结果来执行一响应操作。
34.如权利要求33权利要求的系统,其中一暂存装置用以于多个可疑数据单元中的一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后吻合于该型样为止。
35.如权利要求33权利要求的系统,其中该处理器还用来:
于多个子表式中二个被识别出的子表式之间识别出一重迭部分;
于该二个被识别出的子表式所对应的有限自动机之间插入对应于该重迭部分的额外状态以及状态转换;以及
将多个额外状态与多个状态转换包含于该顺序之中。
36.如权利要求33权利要求的系统,其中该处理器还用来:
于将多个数据单元置入多个有限自动机之前,依照多个数据单元所包含的信息的顺序,依序排列该多个该数据单元。
37.如权利要求33权利要求的系统,其中一暂存装置用来于一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,保留一比较结果。
38.一种用以实施系统安全的系统,其包含有:
一处理器;
一总线,耦接于该处理器;
一通讯接口,耦接于该总线,其中该通讯接口用来接收多个数据单元;
一主要存储器,耦接于该总线,其中于该主要存储器中所包含的指令被该处理器执行时,致使该处理器:
将对应于多个型样的一正规表式分割成多个子表式;
维持对应于多个子表式的多个有限自动机之间的相依关系以及每一有限自动机的初始状态信息与最终状态信息;
依照多个相依关系、该初始状态信息以及该最终状态信息所对应的顺序,依序将该多个数据单元置入多个有限自动机中;
自该多个数据单元中识别出一可疑数据单元集合,其中该可疑数据单元集合的内容是集合后吻合于该多个型样中的任何型样;以及
依据识别出该可疑数据单元集合的结果来执行一响应操作。
39.如权利要求38权利要求的系统,其中一暂存装置用以于多个可疑数据单元中的一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后吻合于该型样为止。
40.如权利要求38权利要求的系统,其中该处理器还用来:
于将多个数据单元置入多个有限自动机之前,依照多个数据单元所包含的信息的顺序,依序排列该多个该数据单元。
41.如权利要求38权利要求的系统,其中一暂存装置用来于一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,保留一比较结果。
42.一种用以实施系统安全的系统,其包含有:
一处理器;
一协同处理器单元,耦接于该处理器,其中该协同处理器单元用来:
将对应于多个型样的一正规表式分割成多个子表式;
维持对应于多个子表式的多个有限自动机之间的相依关系;
依照多个相依关系所对应的顺序,依序将该系统所接收到的多个数据单元置入多个有限自动机中;
自该多个数据单元中识别出一可疑数据单元集合,其中藉由合并多个有限自动机的结果,该可疑数据单元集合的内容是集合后吻合于该多个型样中的任何型样;以及
依据识别出该可疑数据单元集合的结果来执行一响应操作。
43.如权利要求42权利要求的系统,其中一暂存装置用以于多个可疑数据单元中的一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后吻合于该型样为止。
44.如权利要求42权利要求的系统,其中该协同处理器单元还用来:
于多个子表式中二个被识别出的子表式之间识别出一重迭部分;
于该二个被识别出的子表式所对应的有限自动机之间插入对应于该重迭部分的额外状态以及状态转换;以及
将多个额外状态与多个状态转换包含于该顺序之中。
45.如权利要求42权利要求的系统,其中该协同处理器单元还用来:
于将多个数据单元置入多个有限自动机之前,依照多个数据单元所包含的信息的顺序,依序排列该多个该数据单元。
46.如权利要求42权利要求的系统,其中一暂存装置用以于一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,保留一比较结果。
47.一种用以实施系统安全的系统,其包含有:
一处理器;
一协同处理器单元,耦接于该处理器,其中该协同处理器单元用来:
将对应于多个型样的一正规表式分割成多个子表式;
维持对应于多个子表式的多个有限自动机之间的相依关系以及每一有限自动机的初始状态信息与最终状态信息;
依照多个相依关系、该初始状态信息、以及该最终状态信息所对应的顺序,依序将该系统所接收到的多个数据单元置入多个有限自动机中;
自该多个数据单元中识别出一可疑数据单元集合,其中该可疑数据单元集合的内容是集合后吻合于该多个型样中的任何型样;以及
依据识别出该可疑数据单元集合的结果来执行一响应操作。
48.如权利要求47权利要求的系统,其中一暂存装置用以于多个可疑数据单元中的一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后吻合于该型样为止。
49.如权利要求47权利要求的系统,其中该协同处理器单元还用来:
于将多个数据单元置入多个有限自动机之前,依照多个数据单元所包含的信息的顺序,依序排列该多个该数据单元。
50.如权利要求47权利要求的系统,其中一暂存装置用以于一数据单元的内容初次吻合于该多个型样中一个型样的一区段后,保留一比较结果。
CN200510078075.2A 2004-06-14 2005-06-14 使用子表式自动机的系统安全实施方法以及相关的系统 Active CN1716958B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/868,665 US7685637B2 (en) 2004-06-14 2004-06-14 System security approaches using sub-expression automata
US10/868,665 2004-06-14

Publications (2)

Publication Number Publication Date
CN1716958A true CN1716958A (zh) 2006-01-04
CN1716958B CN1716958B (zh) 2012-05-23

Family

ID=35462068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200510078075.2A Active CN1716958B (zh) 2004-06-14 2005-06-14 使用子表式自动机的系统安全实施方法以及相关的系统

Country Status (3)

Country Link
US (1) US7685637B2 (zh)
CN (1) CN1716958B (zh)
TW (1) TWI268057B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102591930A (zh) * 2010-12-15 2012-07-18 微软公司 分解和合并正则表达式
CN103345464A (zh) * 2008-09-30 2013-10-09 微软公司 模块化森林自动机
CN104426910A (zh) * 2013-08-30 2015-03-18 凯为公司 用于处理有限自动机的方法和装置
CN104753916A (zh) * 2013-12-30 2015-07-01 凯为公司 用于处理有限自动机的方法和装置
CN104820666A (zh) * 2014-01-31 2015-08-05 凯为公司 基于栈顶(tos)存储器的有限自动机处理
US9762544B2 (en) 2011-11-23 2017-09-12 Cavium, Inc. Reverse NFA generation and processing
US9785403B2 (en) 2013-08-30 2017-10-10 Cavium, Inc. Engine architecture for processing finite automata
US10002326B2 (en) 2014-04-14 2018-06-19 Cavium, Inc. Compilation of finite automata based on memory hierarchy
US10110558B2 (en) 2014-04-14 2018-10-23 Cavium, Inc. Processing of finite automata based on memory hierarchy
CN112506789A (zh) * 2020-12-17 2021-03-16 中国科学院计算技术研究所 一种用于数据包检测的并行模式匹配方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216364B2 (en) * 2004-06-14 2007-05-08 Lionic Corporation System security approaches using state tables
US7930742B2 (en) * 2004-06-14 2011-04-19 Lionic Corporation Multiple-level data processing system
US7685637B2 (en) 2004-06-14 2010-03-23 Lionic Corporation System security approaches using sub-expression automata
US7596809B2 (en) * 2004-06-14 2009-09-29 Lionic Corporation System security approaches using multiple processing units
US7779464B2 (en) * 2004-06-14 2010-08-17 Lionic Corporation System security approaches utilizing a hierarchical memory system
US7934255B1 (en) * 2005-11-08 2011-04-26 Nvidia Corporation Apparatus, system, and method for offloading packet classification
US20070118358A1 (en) * 2005-11-08 2007-05-24 Tom Alexander S Phrase processor
US7818806B1 (en) * 2005-11-08 2010-10-19 Nvidia Corporation Apparatus, system, and method for offloading pattern matching scanning
US20070118532A1 (en) * 2005-11-22 2007-05-24 Ping-Piao Lu Method and system for providing system security services
US7904961B2 (en) * 2007-04-20 2011-03-08 Juniper Networks, Inc. Network attack detection using partial deterministic finite automaton pattern matching
US9021582B2 (en) * 2007-04-24 2015-04-28 Juniper Networks, Inc. Parallelized pattern matching using non-deterministic finite automata
US7854002B2 (en) * 2007-04-30 2010-12-14 Microsoft Corporation Pattern matching for spyware detection
US7685547B1 (en) * 2007-07-02 2010-03-23 Cadence Design Systems, Inc. Method, system, and computer program product for generating automated assumption for compositional verification
US20090265786A1 (en) * 2008-04-17 2009-10-22 Microsoft Corporation Automatic botnet spam signature generation
US20100192225A1 (en) * 2009-01-28 2010-07-29 Juniper Networks, Inc. Efficient application identification with network devices
US8495733B1 (en) * 2009-03-25 2013-07-23 Trend Micro Incorporated Content fingerprinting using context offset sequences
US9083740B1 (en) 2009-09-28 2015-07-14 Juniper Networks, Inc. Network traffic pattern matching using adaptive deterministic finite automata
US8554698B2 (en) * 2009-10-17 2013-10-08 Polytechnic Institute Of New York University Configuring state machines used to order and select matching operations for determining whether an input string matches any of at least one regular expression using lookahead finite automata based regular expression detection
US8892580B2 (en) * 2010-11-03 2014-11-18 Microsoft Corporation Transformation of regular expressions
US9398033B2 (en) 2011-02-25 2016-07-19 Cavium, Inc. Regular expression processing automaton
CN102693372B (zh) * 2011-03-24 2015-01-07 群联电子股份有限公司 内存储存装置、内存控制器与病毒扫描方法
WO2013020001A1 (en) 2011-08-02 2013-02-07 Cavium, Inc. Lookup front end output processor
KR101414061B1 (ko) * 2013-08-26 2014-07-04 한국전자통신연구원 침입탐지규칙 간의 유사도 측정 장치 및 그 방법
US9426165B2 (en) * 2013-08-30 2016-08-23 Cavium, Inc. Method and apparatus for compilation of finite automata
US9544402B2 (en) 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9275336B2 (en) 2013-12-31 2016-03-01 Cavium, Inc. Method and system for skipping over group(s) of rules based on skip group rule
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
US9602532B2 (en) 2014-01-31 2017-03-21 Cavium, Inc. Method and apparatus for optimizing finite automata processing
US9438561B2 (en) 2014-04-14 2016-09-06 Cavium, Inc. Processing of finite automata based on a node cache
CN106021109A (zh) * 2016-05-20 2016-10-12 浪潮电子信息产业股份有限公司 一种面向程序结构分析自动化框架模型

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319776A (en) 1990-04-19 1994-06-07 Hilgraeve Corporation In transit detection of computer virus with safeguard
US5414833A (en) 1993-10-27 1995-05-09 International Business Machines Corporation Network security system and method using a parallel finite state machine adaptive active monitor and responder
EP1643340B1 (en) 1995-02-13 2013-08-14 Intertrust Technologies Corp. Secure transaction management
US5623600A (en) 1995-09-26 1997-04-22 Trend Micro, Incorporated Virus detection and removal apparatus for computer networks
JP3231673B2 (ja) 1996-11-21 2001-11-26 シャープ株式会社 文字,文字列検索方法及び該方法に用いる記録媒体
US6487666B1 (en) 1999-01-15 2002-11-26 Cisco Technology, Inc. Intrusion detection signature analysis using regular expressions and logical operators
US6609205B1 (en) * 1999-03-18 2003-08-19 Cisco Technology, Inc. Network intrusion detection signature analysis using decision graphs
US7185081B1 (en) * 1999-04-30 2007-02-27 Pmc-Sierra, Inc. Method and apparatus for programmable lexical packet classifier
US6598034B1 (en) 1999-09-21 2003-07-22 Infineon Technologies North America Corp. Rule based IP data processing
US6880087B1 (en) * 1999-10-08 2005-04-12 Cisco Technology, Inc. Binary state machine system and method for REGEX processing of a data stream in an intrusion detection system
CA2307529A1 (en) 2000-03-29 2001-09-29 Pmc-Sierra, Inc. Method and apparatus for grammatical packet classifier
US7636945B2 (en) 2000-07-14 2009-12-22 Computer Associates Think, Inc. Detection of polymorphic script language viruses by data driven lexical analysis
EP1320960B1 (en) * 2000-09-28 2013-11-06 Symantec Corporation System and method for analyzing protocol streams for a security-related event
US7234168B2 (en) * 2001-06-13 2007-06-19 Mcafee, Inc. Hierarchy-based method and apparatus for detecting attacks on a computer system
AU2002220130A1 (en) * 2001-09-12 2003-03-24 Raqia Networks, Inc. High speed data stream pattern recognition
US7180895B2 (en) 2001-12-31 2007-02-20 3Com Corporation System and method for classifying network packets with packet content
US7093023B2 (en) * 2002-05-21 2006-08-15 Washington University Methods, systems, and devices using reprogrammable hardware for high-speed processing of streaming data to find a redefinable pattern and respond thereto
US7370210B2 (en) 2002-11-18 2008-05-06 Arm Limited Apparatus and method for managing processor configuration data
AU2003277247A1 (en) 2003-02-28 2004-09-28 Lockheed Martin Corporation Hardware accelerator state table compiler
US7685637B2 (en) 2004-06-14 2010-03-23 Lionic Corporation System security approaches using sub-expression automata
US7596809B2 (en) 2004-06-14 2009-09-29 Lionic Corporation System security approaches using multiple processing units
US7216364B2 (en) 2004-06-14 2007-05-08 Lionic Corporation System security approaches using state tables
GB2417655B (en) 2004-09-15 2006-11-29 Streamshield Networks Ltd Network-based security platform

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345464A (zh) * 2008-09-30 2013-10-09 微软公司 模块化森林自动机
CN102165434B (zh) * 2008-09-30 2014-12-17 微软公司 模块化森林自动机
CN103345464B (zh) * 2008-09-30 2016-10-05 微软技术许可有限责任公司 模块化森林自动机
CN102591930B (zh) * 2010-12-15 2015-04-29 微软公司 分解和合并正则表达式
CN102591930A (zh) * 2010-12-15 2012-07-18 微软公司 分解和合并正则表达式
US9762544B2 (en) 2011-11-23 2017-09-12 Cavium, Inc. Reverse NFA generation and processing
CN104426910B (zh) * 2013-08-30 2018-11-13 凯为公司 用于处理有限自动机的方法和装置
CN104426910A (zh) * 2013-08-30 2015-03-18 凯为公司 用于处理有限自动机的方法和装置
US10466964B2 (en) 2013-08-30 2019-11-05 Cavium, Llc Engine architecture for processing finite automata
US9785403B2 (en) 2013-08-30 2017-10-10 Cavium, Inc. Engine architecture for processing finite automata
US9823895B2 (en) 2013-08-30 2017-11-21 Cavium, Inc. Memory management for finite automata processing
CN104753916A (zh) * 2013-12-30 2015-07-01 凯为公司 用于处理有限自动机的方法和装置
CN104753916B (zh) * 2013-12-30 2018-06-05 凯为公司 用于处理有限自动机的方法和装置
CN104820666B (zh) * 2014-01-31 2018-09-25 凯为公司 基于栈顶(tos)存储器的有限自动机处理
US9904630B2 (en) 2014-01-31 2018-02-27 Cavium, Inc. Finite automata processing based on a top of stack (TOS) memory
CN104820666A (zh) * 2014-01-31 2015-08-05 凯为公司 基于栈顶(tos)存储器的有限自动机处理
US10002326B2 (en) 2014-04-14 2018-06-19 Cavium, Inc. Compilation of finite automata based on memory hierarchy
US10110558B2 (en) 2014-04-14 2018-10-23 Cavium, Inc. Processing of finite automata based on memory hierarchy
CN112506789A (zh) * 2020-12-17 2021-03-16 中国科学院计算技术研究所 一种用于数据包检测的并行模式匹配方法
CN112506789B (zh) * 2020-12-17 2022-08-02 中国科学院计算技术研究所 一种用于数据包检测的并行模式匹配方法

Also Published As

Publication number Publication date
TW200541262A (en) 2005-12-16
US20050278781A1 (en) 2005-12-15
CN1716958B (zh) 2012-05-23
TWI268057B (en) 2006-12-01
US7685637B2 (en) 2010-03-23

Similar Documents

Publication Publication Date Title
CN1716958A (zh) 使用子表式自动机的系统安全实施方法以及相关的系统
CN100574321C (zh) 使用状态表的系统安全实施方法以及相关的系统
US20100153420A1 (en) Dual-stage regular expression pattern matching method and system
CN1838670A (zh) 使用多处理单元架构的系统安全防护方法与相关装置
EP2901643B1 (en) An apparatus for, a method of, and a network server for detecting data patterns in a data stream
EP1607823A2 (en) Method and system for virus detection based on finite automata
CN103415836A (zh) 加速数据包解析的网络处理器及方法
CN107122221A (zh) 用于正则表达式的编译器
CN103475653A (zh) 网络数据包的检测方法
CN112532642B (zh) 一种基于改进Suricata引擎的工控系统网络入侵检测方法
CN103685222A (zh) 基于确定性有穷状态自动机的数据匹配检测方法
CN110708292A (zh) Ip处理方法、装置、介质、电子设备
CN109040028B (zh) 一种工控全流量分析方法及装置
CN102497297A (zh) 基于多核多线程的深度报文检测技术的实现系统和方法
CN108234452A (zh) 一种网络数据包多层协议识别的系统和方法
Bando et al. Range hash for regular expression pre-filtering
Yujie et al. End-to-end android malware classification based on pure traffic images
CN101042424A (zh) 一种检测专用集成电路的方法及装置
CN101888303A (zh) 网络流量信息的记录方法以及相关装置
CN111061972B (zh) 一种用于url路径匹配的ac查找优化方法和装置
CN112073364A (zh) 一种基于DPI的DDoS攻击识别方法、系统、设备及可读存储介质
CN111625573A (zh) 一种大数据分析系统
CN1612135A (zh) 入侵检测(保护)产品与防火墙产品中的协议识别技术
CN112100257A (zh) 数据处理方法、装置、计算机设备和存储介质
CN102130956A (zh) 应用层协议识别方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant