CN1716959A - 使用状态表的系统安全实施方法和介质以及相关的系统 - Google Patents
使用状态表的系统安全实施方法和介质以及相关的系统 Download PDFInfo
- Publication number
- CN1716959A CN1716959A CN200510078076.7A CN200510078076A CN1716959A CN 1716959 A CN1716959 A CN 1716959A CN 200510078076 A CN200510078076 A CN 200510078076A CN 1716959 A CN1716959 A CN 1716959A
- Authority
- CN
- China
- Prior art keywords
- those
- data unit
- suspicious
- data
- processor
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000009471 action Effects 0.000 claims abstract description 20
- 238000003860 storage Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 16
- 230000007246 mechanism Effects 0.000 claims description 16
- 230000000052 comparative effect Effects 0.000 claims description 8
- 230000006835 compression Effects 0.000 claims description 7
- 238000007906 compression Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 238000009795 derivation Methods 0.000 claims description 6
- 230000001052 transient effect Effects 0.000 claims 5
- 230000008450 motivation Effects 0.000 claims 1
- 230000014509 gene expression Effects 0.000 description 36
- 238000007689 inspection Methods 0.000 description 9
- 230000008878 coupling Effects 0.000 description 8
- 238000010168 coupling process Methods 0.000 description 8
- 238000005859 coupling reaction Methods 0.000 description 8
- 238000010276 construction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 241000700605 Viruses Species 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000005267 amalgamation Methods 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000505 pernicious effect Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/564—Static detection by virus signature recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
Abstract
一种可确保系统安全的方法与相关系统。该方法与系统是推导产生对应于多个型样的有限自动机。接下来,当数据单元被置入该有限自动机时,即可识别出可疑数据单元。可疑数据单元是指包含有集合后匹配于前述一个或多个型样的内容的数据单元。对于可疑数据单元的识别则是依据该有限自动机的各个状态间的相依关系来据以进行,该些相依关系则受到压缩。并依据识别可疑数据单元的结果,来执行不同的响应动作。
Description
技术领域
本发明是相关于系统安全,尤指相关于通过预防性的方法(preventivemeasure)来响应对于网络中的装置的攻击的方法与相关系统。
背景技术
随着计算机网络的广为普及,任何与网络相连接的装置都有可能会受到各式各样的攻击,例如来自于病毒(virus)、电子蠕虫(worm)、或是网络怪客(cracker)的攻击。防火墙(firewall)与防毒程序(anti-virus program)是用来对付这类网络攻击的解决方案。一般而言,防火墙可用来防止某些特定种类的文件或是封包传进网络之中,至于防毒程序则可以防止单一装置或一群装置执行包含有病毒的文件。
现今有几种防火墙技术是较为常见的,例如封包过滤器(packetfilter)、应用层网关(application gateway)、以及代理服务器(proxyserver)。封包过滤器会检视每一个封包中的控制消息,并依据使用者所定义的规则,来决定接受或是拒绝每一个封包。应用层网关则是会针对特定的应用(例如文件传输协议(FTP)以及远程登录服务器(Telnet server))使用特殊的安全机制。至于代理服务器则是一种中介的服务器,用来在客户应用端与该客户应用端所依附的服务器之间,拦截并检查所传送的封包。然而,前述的各种技术皆不会检查每一个封包中的负载数据(payload data)部分,也无法处理跨越了不同封包边界的恶性程序代码。
至于一般常见的防毒程序,则会将收到的封包组合成原始的文件,再决定所产生的文件中是否包含有预知的病毒型样。在此种作法中,只有在文件或一个区块的数据组合完成之后,才会有检测病毒是否存在的动作。对于针对实时通讯协议(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一般概要
以下所介绍的系统安全实施方式亦包含有各种相关的方法与系统,可以推导产生(formulate)对应于多个型样(pattern)的有限自动机(finiteautomata)。接下来,当数据单元被置入该有限自动机时,即可识别出可疑的数据单元。「可疑的数据单元」是指所包含的内容集合后匹配于(collectively match)前述的型样中的一种或多种型样的数据单元。至于可疑数据单元的识别工作则是依据该有限自动机的各个状态间的相依关系(dependency relationships)来据以进行(该些相依关系则受到压缩)。依据识别该些可疑数据单元的结果,则可决定执行不同的响应动作。
2.0系统安全实施方式
2.1概要
以下将提供本发明的系统安全实施方式的概要。为了能确保系统的安全,有一种作法是通过检视进入与离开该系统的数据单元,来确保该系统可以免于恶性的程序代码或未批准的存取所带来的攻击。该作法是部分根基于正规表达式的使用,其中,正规表达式主要指的是用来表示特定型样的一组符号以及语法单元(syntactic element)。举例来说,(a|b)t即是一个简单的正规表达式,用来表示″at″以及″bt″这两个型样。虽然一个精炼过的(well-crafted)正规表达式(特别是在使用了万用字符的情形下)看起来可能显得较为简洁,但该正规表达式依旧可能表示多种不同的型样,而推导出一个具有许多状态的状态机。
另一种系统安全实施方式亦会部分根基于「管理(managing)与操作(manipulating)从该些正规表达式所推导出的各个状态自动机的状态,来有效地搜寻与匹配(match)特定的型样」的作法。随着越来越多的型样被识别为有害的型样,将会需要使用额外的步骤来加快搜寻与匹配特定的型样的速度,并同时减低对于储存空间的需求。
第1图所示为一种系统安全实施方式的流程图。在步骤102中,之前所识别出的「有害型样」(例如已知的病毒、电子蠕虫、滥发(spam)、非法存取、或是任何可以转变为正规表达式的恶性程序代码)是被转变为正规表达式。这些有害的型样亦可以是任何一种可以转变为正规表达式的声音型样、影像型样、或者非文字型样等等。
在步骤104中,是依据该些正规表达式来产生有限自动机。在一实施例中,该些有限自动机皆为确定性的(deterministic)自动机,其中,对于该自动机中的每一状态,皆存在对应于每一种可能的输入的至多一种转换(transition)。此外,在步骤104中亦建立并操作(manipulate)该些自动机之间的相互关系(relationship)以及依存关系(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数据单元的状态标志(statusflag),接下来,当在后续的数据单元中发现了″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。简化版的DFA208并未显示出用来描述转换方程式「δ(初始状态,输入字符)=下一状态」所需的所有信息,相对地,其显示出了该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 final state,例如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中,将会辨识出相邻子表达式自动机之间的重迭部分(overlapped portions),藉由所辨识出的重迭部分,可以在步骤706中,将用于代表重迭部分的额外状态(additional status)插入至所建构出的依存关系之中。该些重迭部分则是产生于在步骤708执行一联集运算(unionoperation)的实施例。对两组数据执行一联集运算(以符号″|″表示)所可产生的结果将会包含有仅属于该两组数据之一的成分,或同时属于该两组数据的成分。再以前述的正规表达式(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是″.*cbcbcd″,则重迭部分将会是″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-chip memory 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 of freedom),两个轴方向包含有第1轴方向(例如x轴方向)与第2轴方向(例如y轴方向),让装置可以在一平面上明确定义出特定的位置。
依据本发明的系统安全实施方式的一实施例,该实施方式系通过由计算机系统1200针对处理器1204执行主存储器1206中一个或多个指令序列(每个指令序列是由一个或多个指令所构成)的所作的响应而实现的。该些指令可以先从其它的计算机可读取介质(例如储存装置1210)读入至主存储器1206之中。至于执行主存储器1206中的该些指令序列可以让处理器1204完成此处所描述的步骤。在其它的实施例中,由硬件连接电路所实现的电路架构(hard-wired circuitry)亦可以用来取代(或配合)软件指令以实现本发明的概念。如此一来,本发明的实施例将不受限于硬件电路与软件之间的特定组合。
此处所提及的「计算机可读取介质」(computer readable medium)是指参与于「将指令提供给处理器1204执行」的过程中的任何一种介质。这种介质可以具有各种形式,包含有(但不限于)非易失性介质(non-volatilemedia)、易失性介质(volatile media)、或是传输介质(transmission media)。非易失性介质的例子包含有光盘或磁盘,例如储存装置1210。易失性介质的例子包含有动态存储器(dynamic memory),例如主存储器1206。传输介质的例子则包含有同轴电缆(coaxial cable)、铜导线(copper wire)、或是光纤(fiber optic),例如总线1202之中的导线。传输介质的形式另可以是声、光、或是载波(carrier wave)。
各种形式的计算机可读取介质皆可以用于储存、携带、或传送处理器1204所执行的一个或多个指令序列(每个指令序列是由一个或多个指令所构成)。举例来说,该些指令可以先储存于一磁盘或一远程计算机(remote computer)之中。该远程计算机可以将该些指令加载至其动态存储器中,并将该些指令传送给计算机系统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 ServiceProvider,ISP)1226所管理的数据设备。因特网服务供应商1226则可通过世界性的封包数据传输网络1228(一般称为因特网(Internet))提供数据传输服务。本地网络1222与因特网1228皆可通过电信号、电磁信号、或是光信号来进行数字数据的传输工作。至于通过各式的网络所传输的信号、以及经由网络连结1220与通讯接口1218所传输的信号(用于将数据传入或传出计算机系统1200),即是用于传送信息的载波(carrier wave)的例子。
第17图是可以实现本发明实施例的系统安全实施方式的另一系统1300的功能方块图。明确地说,系统1300包含有独立的处理单元(separateprocessing unit),内容检查协同处理器(content inspectionco-processor,CICP)1302,专属用来执行前述各种的系统安全实施方式。内容检查协同处理器可以实现成特定应用集成电路(application-specificintegrated circuit,ASIC),或程序化于可程序化逻辑装置(programmablelogic 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)与闪存(flashmemory)。此外,在不变更本发明的系统安全实施方式的范围的情形下,第17图中所示的各个组成元件之外还可再加入其它的组成元件(例如显示装置),第17图中所示的各个组成元件亦可再组合(例如处理器1304与内容检查协同处理器1302可以设置于同一个芯片系统中)、或更进一步地分割为更多元件(例如可将桥接器1308分割成处理器桥接器、总线控制器、以及存储器控制器)。
4.0延伸以及变化
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明权利要求的涵盖范围。
Claims (40)
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.根据权利要求17所述的方法,其还包含有:使该结果成为已知信息。
21.根据权利要求17所述的方法,其还包含有:
于将该些数据单元置入该有限自动机之前,依照该些数据单元所包含的信息的顺序,依序排列该多个数据单元。
22.根据权利要求17所述的方法,其还包含有:
在数据单元的内容初次匹配于该多个型样中一型样的一区段后,保留比较结果。
23.一种用于实施系统安全的系统,其包含有:
用于推导产生对应于多个型样的有限自动机的机制;
用于将多个数据单元置入该有限自动机中的机制;
用于自该多个数据单元中识别出可疑数据单元集合的机制,其中使用该有限自动机的多个状态之间的相依关系,该可疑数据单元集合的内容是集合后匹配于该多个型样中的任何型样,其中该些相依关系为受到压缩;以及
用于依据识别出该些可疑数据单元的结果来执行响应动作的机制。
24.根据权利要求23所述的系统,其还包含有:用于在该些可疑数据单元中的数据单元的内容初次匹配于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后匹配于该型样为止的机制。
25.根据权利要求23所述的系统,其还包含有:用于阻挡该可疑数据单元集合以防止该可疑数据单元集合传送至其目的地的机制。
26.根据权利要求23所述的系统,其还包含有:用于使该结果成为已知信息的机制。
27.根据权利要求23所述的系统,其还包含有:
用于在将该些数据单元置入该有限自动机之前,依照该些数据单元所包含的信息的顺序,依序排列该些数据单元的机制。
28.根据权利要求23所述的系统,其还包含有:
用于在数据单元的内容初次匹配于该多个型样中一个型样的一区段后,保留比较结果的机制。
29.一种用于实施系统安全的系统,其包含有:
处理器;
总线,耦接于该处理器;
通讯接口,耦接于该总线,其中该通讯接口是用来接收多个数据单元;
主存储器,耦接于该总线,其中于该主存储器中所包含的指令被该处理器执行时,会致使该处理器:
推导产生对应于多个型样的有限自动机;
将该多个数据单元置入该有限自动机中;
自该多个数据单元中识别出可疑数据单元集合,其中使用该有限自
动机的多个状态之间的相依关系,该可疑数据单元集合的内容集合后匹
配于该些型样中的任何型样,其中该处理器是压缩该些相依关系;以及
依据识别出该些可疑数据单元的结果来执行响应动作。
30.根据权利要求29所述的系统,其中暂存装置用于在该些可疑数据单元中的数据单元的内容初次匹配于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后匹配于该型样为止。
31.根据权利要求29所述的系统,其中该处理器另用来:阻挡该可疑数据单元集合以防止该可疑数据单元集合传送至其目的地。
32.根据权利要求29所述的系统,其中该处理器另用来:使该结果成为已知信息。
33.根据权利要求29所述的系统,其中该处理器另用来:
在将该些数据单元置入该有限自动机之前,依照该些数据单元所包含的信息的顺序,依序排列该些数据单元。
34.根据权利要求29所述的系统,其中暂存装置用来在数据单元的内容初次匹配于该多个型样中一个型样的一区段后,保留比较结果。
35.一种用于实施系统安全的系统,其包含有:
处理器;
协同处理器单元,耦接于该处理器,其中该协同处理器单元是用来:
推导产生对应于多个型样的有限自动机;
将该系统所接收到的多个数据单元置入该有限自动机中;
自该多个数据单元中识别出可疑数据单元集合,其中使用该有限自动机的多个状态之间的相依关系,该可疑数据单元集合的内容是集合后匹配于该些型样中的任何型样,其中该协同处理器单元是压缩该些相依关系;以及
依据识别出该些可疑数据单元的结果来执行响应动作。
36.根据权利要求35所述的系统,其中暂存装置用于在该些可疑数据单元中的数据单元的内容初次匹配于该多个型样中一个型样的一区段后,暂时保留该数据单元,直到该可疑数据单元集合的内容集合后匹配于该型样为止。
37.根据权利要求35所述的系统,其中该协同处理器单元另用来:阻挡该可疑数据单元集合以防止该可疑数据单元集合传送至其目的地。
38.根据权利要求35所述的系统,其中该协同处理器单元另用来:使该结果成为已知信息。
39.根据权利要求35所述的系统,其中该协同处理器单元另用来:
在将该些数据单元置入该有限自动机之前,依照该些数据单元所包含的信息的顺序,依序排列该些数据单元。
40.根据权利要求35所述的系统,其中暂存装置是用来在数据单元的内容初次匹配于该多个型样中一个型样的一区段后,保留比较结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/868,753 US7216364B2 (en) | 2004-06-14 | 2004-06-14 | System security approaches using state tables |
US10/868,753 | 2004-06-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1716959A true CN1716959A (zh) | 2006-01-04 |
CN100574321C CN100574321C (zh) | 2009-12-23 |
Family
ID=35515554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100780767A Active CN100574321C (zh) | 2004-06-14 | 2005-06-14 | 使用状态表的系统安全实施方法以及相关的系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7216364B2 (zh) |
CN (1) | CN100574321C (zh) |
TW (1) | TWI271056B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075430A (zh) * | 2011-01-25 | 2011-05-25 | 无锡网芯科技有限公司 | 深度报文检测dfa状态转移表的压缩与报文匹配方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7689530B1 (en) * | 2003-01-10 | 2010-03-30 | Cisco Technology, Inc. | DFA sequential matching of regular expression with divergent states |
US7930742B2 (en) * | 2004-06-14 | 2011-04-19 | Lionic Corporation | Multiple-level data processing system |
US7779464B2 (en) * | 2004-06-14 | 2010-08-17 | Lionic Corporation | System security approaches utilizing a hierarchical memory 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 |
US7765183B2 (en) * | 2005-04-23 | 2010-07-27 | Cisco Technology, Inc | Hierarchical tree of deterministic finite automata |
US7934255B1 (en) * | 2005-11-08 | 2011-04-26 | Nvidia Corporation | Apparatus, system, and method for offloading packet classification |
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 |
US8386530B2 (en) * | 2006-06-05 | 2013-02-26 | Lsi Corporation | Systems and methods for processing regular expressions |
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 |
US8024802B1 (en) * | 2007-07-31 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | Methods and systems for using state ranges for processing regular expressions in intrusion-prevention systems |
US20100192225A1 (en) * | 2009-01-28 | 2010-07-29 | Juniper Networks, Inc. | Efficient application identification with network devices |
US8566045B2 (en) * | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US9083740B1 (en) * | 2009-09-28 | 2015-07-14 | Juniper Networks, Inc. | Network traffic pattern matching using adaptive deterministic finite automata |
US10148547B2 (en) * | 2014-10-24 | 2018-12-04 | Tektronix, Inc. | Hardware trigger generation from a declarative protocol description |
US20190113542A1 (en) * | 2014-12-17 | 2019-04-18 | Tektronix, Inc. | Hardware trigger generation from a declarative protocol description |
Family Cites Families (10)
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 |
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 | シャープ株式会社 | 文字,文字列検索方法及び該方法に用いる記録媒体 |
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 |
US7180895B2 (en) | 2001-12-31 | 2007-02-20 | 3Com Corporation | System and method for classifying network packets with packet content |
CA2521576A1 (en) | 2003-02-28 | 2004-09-16 | 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 |
-
2004
- 2004-06-14 US US10/868,753 patent/US7216364B2/en active Active
-
2005
- 2005-06-10 TW TW094119167A patent/TWI271056B/zh active
- 2005-06-14 CN CNB2005100780767A patent/CN100574321C/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075430A (zh) * | 2011-01-25 | 2011-05-25 | 无锡网芯科技有限公司 | 深度报文检测dfa状态转移表的压缩与报文匹配方法 |
CN102075430B (zh) * | 2011-01-25 | 2012-09-05 | 无锡网芯科技有限公司 | 深度报文检测dfa状态转移表的压缩与报文匹配方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI271056B (en) | 2007-01-11 |
US7216364B2 (en) | 2007-05-08 |
TW200541260A (en) | 2005-12-16 |
CN100574321C (zh) | 2009-12-23 |
US20060005241A1 (en) | 2006-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1716959A (zh) | 使用状态表的系统安全实施方法和介质以及相关的系统 | |
CN1716958A (zh) | 使用子表式自动机的系统安全实施方法以及相关的系统 | |
US20100153420A1 (en) | Dual-stage regular expression pattern matching method and system | |
CN1838670A (zh) | 使用多处理单元架构的系统安全防护方法与相关装置 | |
CN103733590B (zh) | 用于正则表达式的编译器 | |
CN106133740A (zh) | 日志分析系统 | |
CN103415836A (zh) | 加速数据包解析的网络处理器及方法 | |
EP1607823A2 (en) | Method and system for virus detection based on finite automata | |
CN106104556A (zh) | 日志分析系统 | |
CN103685224A (zh) | 网络入侵检测方法 | |
CN103475653A (zh) | 网络数据包的检测方法 | |
CN104468107A (zh) | 校验数据处理方法及装置 | |
CN102497297A (zh) | 基于多核多线程的深度报文检测技术的实现系统和方法 | |
CN103685222A (zh) | 基于确定性有穷状态自动机的数据匹配检测方法 | |
CN110691072A (zh) | 分布式端口扫描方法、装置、介质、电子设备 | |
CN103685221A (zh) | 网络入侵检测方法 | |
CN110647138B (zh) | 基于改进蚁群算法的充电桩can总线协议的安全检测方法 | |
CN101042424A (zh) | 一种检测专用集成电路的方法及装置 | |
CN108234452A (zh) | 一种网络数据包多层协议识别的系统和方法 | |
CN1741504A (zh) | 基于应用的流量控制方法及进行应用流量控制的网络设备 | |
CN112231320B (zh) | 基于MapReduce算法的web数据采集方法、系统和存储介质 | |
CN101888303A (zh) | 网络流量信息的记录方法以及相关装置 | |
CN105939364A (zh) | 一种智能的消息推送方法和系统 | |
CN112887289A (zh) | 一种网络数据处理方法、装置、计算机设备及存储介质 | |
CN106776069A (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 |