CN111819558A - 更新三元内容可寻址存储器中的正则表达式模式组 - Google Patents
更新三元内容可寻址存储器中的正则表达式模式组 Download PDFInfo
- Publication number
- CN111819558A CN111819558A CN201880090398.9A CN201880090398A CN111819558A CN 111819558 A CN111819558 A CN 111819558A CN 201880090398 A CN201880090398 A CN 201880090398A CN 111819558 A CN111819558 A CN 111819558A
- Authority
- CN
- China
- Prior art keywords
- regular expression
- tcam
- primary
- updated
- expression pattern
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Logic Circuits (AREA)
Abstract
二级三元内容可寻址存储器(TCAM)利用待添加到正则表达式模式组的新的正则表达式来编程。针对利用正则表达式模式组来编程的主TCAM并且针对二级TCAM并行处理流入的数据字符串。当针对主TCAM并且针对二级TCAM并行处理流入的数据字符串时,更新正则表达式模式组以添加新的正则表达式。
Description
政府许可权
本发明是在美国政府的支持下根据由情报高级研究项目署(AIRPA)授予的合同2017-17013000002进行的。政府拥有发明中的某些权利。
背景技术
随着互联网的出现,具有联网能力的计算设备潜在地能够与也连接到互联网的几乎任何其他计算设备进行通信。这种无处不在的通信能力已经开辟了在互联网之前几乎是难以想象的使用场景和机遇。然而,互联网被证明也具有缺点:不法用户现在可以更容易地渗透本地网络并访问连接到这种网络的计算设备,以既访问存储在计算设备上的数据,又将设备用于其自身恶意的目的。
附图说明
图1是描绘了关于如何可以将利用新的正则表达式编程的二级三元内容可寻址存储器(TCAM)与利用正则表达式模式组编程的主TCAM一起使用,用于处理输入字符串的示例的图。
图2是关于如何可以将利用新的正则表达式编程的二级TCAM与利用正则表达式模式组编程的主TCAM一起使用,用于处理输入字符串的示例方法的流程图。
图3是描绘了关于如何可以将利用新的正则表达式编程的二级TCAM与利用正则表达式模式组编程的主TCAM一起使用,用于处理输入字符串的另一示例的图。
图4是可以将利用新的正则表达式编程的二级TCAM与利用正则表达式模式组编程的主TCAM一起使用,用于处理输入字符串的另一示例方法的流程图。
图5是用于利用正则表达式对TCAM进行编程的示例方法的流程图。
图6是用于利用采用新的正则表达式来更新的正则表达式模式组对TCAM进行编程的示例方法的流程图。
图7是用于使用正则表达式匹配过滤技术经由TCAM来过滤输入字符串的示例系统的图。
具体实施方式
如背景技术部分中所指出的,随着全球范围内计算设备的互连性的增加,针对计算设备使其数据和对设备本身的控制受到侵害的可能性已经来临。在企业和其他环境中,诸如台式计算机和便携式计算机的计算设备以及其他类型的计算设备普遍连接到局域网,该局域网本身经由一个或多个受管理的访问点连接到诸如互联网的外部网络。在数据到达其在网络上的预期的目标计算设备之前,这些受管理的访问点可以负责确保通过受管理的访问点的数据的安全性。
实现这种网络安全的一种方式是针对已知的安全威胁(包括恶意软件、病毒、网络攻击和其他类型的安全威胁)对流入(和潜在流出)的数据进行过滤。因此,将数据的字符串与安全威胁特征进行比较。如果数据包的数据字符串与现有威胁特征不匹配,则可以允许该包通过(即进入本地网络或离开本地网络)。如果数据字符串确实与现有威胁特征匹配,则可以将数据字符串的数据包标记为实际或潜在的安全威胁,并至少暂时阻止该数据字符串通过。如果数据包被标记为潜在的安全威胁,则可以对数据包进行进一步审查,以确定该包是否确实构成威胁。例如,在网络入侵检测系统中,这样的包可以被标记为潜在的安全威胁但仍允许通过,而在网络入侵防御系统中,这样的包可以被标记为潜在的安全威胁并且也被立即限制。
可以用作网络安全过滤技术的一种类型的过滤技术使用正则表达式匹配。正则表达式(或者regex或者regexp)是定义模式的字符的序列。正则表达式中的每个字符是具有特殊含义的元字符,或者是具有字面含义的普通字符。因此,现有威胁特征被简化为正则表达式模式组,并且针对该组对流入的数据字符串进行处理,以确定流入的数据字符串是否是潜在的网络安全威胁。
为了快速过滤流入的数据字符串,可以采用一种被称为三元内容可寻址存储器(TCAM)的存储器,以提供针对正则表达式模式组的对流入的数据字符串的大规模并行搜索。在典型的非CAM计算机存储器(例如随机存取存储器(RAM))中,通过存储地址来查找存储在存储器中的内容或数据。相比之下,在CAM内,存储器是内容可寻址的。为搜索CAM,将提供内容而不是存储地址。CAM通常是仅可以匹配二元值(例如逻辑零和逻辑一)的二元CAM。相比之下,TCAM可以基于三个输入(逻辑零、逻辑一和无关状态)来匹配值。
因此,TCAM是根据正则表达式模式组编程的。更具体地说,可以利用针对该正则表达式模式组的压缩的有限自动机(CFA)对TCAM进行编程。FA是一种有利于被编程到TCAM中、并且导致TCAM适用于在大规模并行搜索中使用的数据结构。FA是有限状态机,该有限状态机可以在任何给定时间恰好处于有限数量的状态之一,并且随着转变从一个状态变为另一个状态。生成CFA以表示大型的正则表达式模式组可能花费大约数小时。
然而,网络安全应用程序背景下的已知的安全威胁特征组不是静态的。经常发现新的安全威胁特征,因此必须将该新的安全威胁特征添加到该组中。可以生成新的、更新的CFA,这意味着在重新生成CFA所花费的若干小时期间,不针对新的安全威胁特征处理流入的数据的字符串。研究已集中于更新CFA上,以便不必从头开始重新生成CFA,但是这种更新过程难以实施,并且仍然花费时间以发生。
相比之下,本文所描述的技术采用至少两个TCAM:利用正则表达式模式组编程的主TCAM,以及利用待添加到该组的新的正则表达式编程的二级TCAM。针对两个TCAM并行地处理流入的数据字符串。在发生该处理时,利用新的正则表达式来更新正则表达式模式组。一旦表达式模式组已经更新,可以即刻暂停流入的数据字符串处理,以允许利用更新的组对主TCAM进行编程。在不同的实施方式中,可以利用更新的组对另一个主TCAM进行编程,并且为利用未更新的正则表达式模式组编程的主TCAM切换到另一个主TCAM中。
因此,在更新正则表达式模式组以添加新的正则表达式的潜在的漫长时间期间,除表达式模式组之外,仍将针对该表达式处理流入的数据字符串。例如,特别是根据新的正则表达式来对利用忆阻器来实施的TCAM进行编程可能花费少于半毫秒。该时间长度足够短,以至于可以暂时暂停流入的数据字符串处理,并且对吞吐量的影响最小,或者,如果没有发生暂停,则时间长度足够短,以至于相对较少的流入的数据字符串没有针对新的正则表达式进行处理。此外,从实际效率的出发点来看,对主TCAM使用忆阻器实施的TCAM提供允许使用大型的复杂正则表达式组的CFA的足够的架空电力。
图1示出了关于如何可以将主TCAM 102与二级TCAM 104结合使用以处理输入字符串110的示例,每个输入字符串110为一系列一个或多个字符。主TCAM 102是利用正则表达式模式组的CFA 106编程的。二级TCAM 104是利用新的正则表达式的确定型FA(DFA)108编程的。
针对主TCAM 102和二级TCAM 104并行地测试每个输入字符串110。主TCAM 102输出所讨论的输入字符串110是否与被编程在TCAM 102中的CFA 106的正则表达式模式组内的任何正则表达式匹配。二级TCAM 104输出输入字符串是否与被编程在TCAM 104中的DFA108的新的正则表达式匹配。
TCAM 102和104的输出可以在逻辑上取或。TCAM 102和104的输出的逻辑或由逻辑或运算符112指示,以产生匹配结果114。因此,如果输入字符串110与主TCAM 102的CFA 106的正则表达式模式组的任何正则表达式,和/或与二级TCAM 104的DFA 108的新的正则表达式匹配,则匹配结果114(即,逻辑或运算符112的输出)为正。
然后,在操作中,当识别出要针对其要处理输入字符串的新的正则表达式时,不必实时或近乎实时地更新新的正则表达式模式组的CFA 106以允许针对该新的正则表达式来测试输入字符串。而是,可以快速地利用新的正则表达式的DFA 108对二级TCAM 104进行编程。因此,关于TCAM 102和104二者并行地发生随后的输入字符串处理。
在后台中,可以利用新的正则表达式来更新正则表达式模式组,并生成更新的正则表达式模式组的CFA。如上所指出的,该过程可能花费若干小时。一旦新的CFA准备就绪,并且已被编程到主TCAM 102(或者不同的主TCAM,如下文所详细描述的)中,就可以仅关于所讨论的主TCAM发生随后的输入字符串处理,并且与二级TCAM 104无关。由于二级TCAM104的正则表达式现在反映在主TCAM 102内,因此不再需要二级TCAM 104。
由于CFA的功率和面积效率相对于DFA明显提高了若干数量级,因此,采用更新的正则表达式模式组的CFA而不仅仅采用模式组的DFA。这样,对于较大的模式组,从功率和面积的出发点来看,利用DFA来执行正则表达式匹配可能是不可行的。此外,如上所指出的,使主TCAM 102为忆阻器实施的TCAM提供了足够的架空电力,该架空电力从实际效率的角度出发允许使用大型的复杂正则表达式组的CFA。在L.Huang等人的“ReRAM-based 4T2R non-volatile TCAM with a 7x NVM-stress reduction,and 4x improvement in speed wordlength-capacity for normally-off instant-on filter-based search engines usedin big-data processing”(VLSI研讨会,2014年6月,第99-100页)中描述了忆阻器实施的TCAM的一个示例。在M.Chang等人的“A 3T1 R non-volatile TCAM using MLC ReRAM withsub-1ns search time”(2015IEEE国际固态电路会议,2015年,第1-3页)中描述了另一个示例。
图2示出了示例方法200,该示例方法200用于在已经接收到新的正则表达式之后针对主TCAM 102和二级TCAM 104二者来处理流入的数据字符串,直到利用包括新的正则表达式的更新的正则表达式模式组已经对主TCAM 102进行了编程为止。方法200可以实施为由还包括TCAM 102和TCAM 104的计算设备的处理器可执行的程序代码。该程序代码可以存储在非暂时性计算机可读数据存储介质上。
首先,仅针对利用正则表达式模式组的CFA 106编程的主TCAM 102处理流入的数据字符串(202)。在发生这种处理时,接收到新的正则表达式(204)。在一个实施方式中,在利用新的正则表达式的DFA 108对二级TCAM 104进行编程(208)时,暂停对流入的数据字符串的处理(206)。然后,针对主TCAM 302和二级TCAM 104二者恢复对流入的数据字符串的处理(210)。
在另一实施方式中,在部分206中可以不暂停流入的数据字符串处理,这意味着在部分204中已经接收到新的正则表达式之后,并且在利用新的正则表达式的DFA 108已经对二级TCAM 104进行了编程之前,仅针对主TCAM 102发生处理。如上所指出的,生成DFA 108以及对二级TCAM 104的随后编程可能花费少于半毫秒。因此,在部分204中接收到新的正则表达式之后,但在部分208中利用新的正则表达式已经对二级TCAM进行了编程之前,未处理的数据字符串的数量很小。
与针对主TCAM 102和二级TCAM 104二者处理流入的数据字符串(210)并行,更新CFA 106的正则表达式模式组(根据该CFA 106的正则表达式模式组已经对主TCAM 102进行了编程)以添加在部分204中接收到的新的正则表达式(212)。如上所指出的,更新正则表达式模式组可能花费数小时。在此期间,由于针对二级TCAM 104以及针对主TCAM 106处理流入的数据字符串,因此,(除了现有的正则表达式模式组之外)还针对新的正则表达式处理流入的数据字符串。
在图2的实施方式中,一旦利用新的正则表达式已经更新了正则表达式模式组(214),就暂停对流入的数据字符串的处理(216),以便可以利用反映更新的正则表达式模式组的(新的)CFA 106来对主TCAM 102进行编程(218)。然后,方法200在部分200处重复。也就是说,再次仅针对主TCAM(现在根据更新的正则表达式模式组编程),并且不针对二级TCAM 104发生对随后接收到的流入的数据字符串的处理。
图3示出了关于如何可以将两个主TCAM 102和302与二级TCAM 104结合使用以处理输入字符串110的示例。主TCAM 102被称为第一主TCAM 102,并且主TCAM 302被称为第二主TCAM 302,以通过名称将TCAM 102和302彼此区分。如图1所示,利用正则表达式模式组的CFA 106对第一主TCAM 102进行编程,并且利用新的正则表达式的DFA 108对第二TCAM 104进行编程。
直到利用新的正则表达式已经更新了正则表达式模式组的CFA 106为止,图3的操作才类似于图1的操作。这样,针对第一主TCAM 102和二级TCAM 104二者并行地测试输入字符串110。TCAM 102和104的输出可以在逻辑上取或,以产生匹配结果104,该匹配结果104指示输入字符串110是否与第一主TCAM 102的CFA 106的正则表达式模式组的任何正则表达式,和/或与二级TCAM 104的DFA 108的新的正则表达式匹配。
然而,在图1中,如关于图2的方法200所描述的,一旦已经生成利用新的正则表达式更新的正则表达式模式组的新的CFA,就利用新的CFA对主TCAM 102进行编程。因此,在仅关于TCAM 102本身恢复数据字符串处理之前,在对主TCAM 102重新编程时,暂时暂停流入的数据字符串处理。由于该暂时暂停,吞吐量可能暂时受到影响。
相比之下,在图3的示例中,不必暂停流入的数据字符串处理以便可以利用更新的正则的新的CFA对第一主TCAM 102重新编程,而是利用更新的正则表达式模式组的新的CFA106’对不同的、第二主TCAM 302进行编程。一旦完成这样的编程,则随后仅针对第二主TCAM302,而非仅针对第一主TCAM 102发生流入的数据字符串处理。该随后的处理在图3中经由虚线,而非指示针对TCAM 102和104的并行处理的实线来指示。由于这种处理不需要等待利用CFA对TCAM进行编程,因此使得流入的数据字符串处理吞吐量中的减小最小化。
图4示出了示例方法400,该示例方法400用于在已经接收到新的正则表达式之后针对第一主TCAM 102和二级TCAM 104二者处理流入的数据字符串,直到利用包括新的正则表达式的更新的正则表达式模式组已经对第二主TCAM 302进行了编程为止。与方法200类似,方法400可以实施为由还包括TCAM 102、104和302的计算设备的处理器可执行的程序代码。该程序代码可以存储在非暂时性计算机可读数据存储介质上。
如在方法200中一样,首先,仅针对利用正则表达式模式组的CFA 106编程的第一主TCAM 102处理流入的数据字符串(202)。在发生这种处理时,接收到新的正则表达式(204)。当利用新的正则表达式的DFA 108对二级TCAM 104进行编程(208)时,在一个实施方式中,可以暂停对流入的数据字符串的处理(206)(并且在另一实施方式中可以不暂停)。然后,针对第一主TCAM 102和二级TCAM 104二者发生对流入的数据字符串的处理。
与针对主TCAM 102和二级TCAM 104二者处理流入的数据字符串(210)并行,更新CFA 106的正则表达式模式组(根据该CFA 106的正则表达式模式组已经对第一主TCAM 102进行了编程)以添加在部分204中接收到的新的正则表达式(212)。然而,与方法200中不同,利用反映更新的正则表达式模式组的(新)的CFA 106’对第二主TCAM 302进行编程(202),而不是对第一主TCAM 102如此编程。换言之,当发生该编程时,第一主TCAM 102和二级TCAM104继续使得针对它们对流入的数据字符串进行处理。
一旦利用更新的正则表达式模式组的新的CFA 106’已经对第二主TCAM 302进行了编程(404),就只暂停针对第一主TCAM 102和二级TCAM 104处理流入的字符串(216)。此时,主TCAM 102和302有效地进行切换(406)。这样,当方法200在部分202处重复时,仅针对第二主TCAM 302而不针对第一主TCAM 102和二级TCAM 104恢复对随后接收到的流入的数据字符串的处理。
图5示出了用于利用(新的)正则表达式对二级TCAM 104进行编程的示例方法500,并且这样可以实施已经描述的方法200和400的部分208。如方法200和400一样,方法500可以实施为还可以包括二级TCAM 104的计算设备的处理器执行的程序代码。该程序代码可以存储在非暂时性计算机可读数据存储介质上。
DFA从正则表达式生成(502)。这可以通过首先将正则表达式转换为不确定型有限自动机(NFA)(例如通过使用Thompson算法)(504)来实现。然后可以例如通过使用包括Rabin-Scott幂集技术的幂集算法将NFA转换为DFA(506)。最后,可以例如通过使用Hopcroft算法将得到的DFA最小化(508),并将最小化的DFA写入二级TCAM 104(510)。
图6示出了用于利用更新的正则表达式模式组对主TCAM(例如第一主TCAM 102或第二主TCAM 302)进行编程的示例方法600。这样,方法600可以实施已经描述的方法200的部分212和214以及方法400的部分212和402。如方法200、400和500一样,方法600可以实施为还可以包括主TCAM 102和/或主TCAM 302的计算设备的处理器执行的程序代码。该程序代码可以存储在非暂时性计算机可读数据存储介质上。
扩展的有限自动机(XFA)从待添加到现有的正则表达式模式组的新的正则表达式生成(602)。XFA可以被认为是利用存储器来增广,以缓解利用DFA可能发生的状态空间爆炸的有限自动机。可以用于生成XFA的技术的示例包括那些在发表于IEEE安全与隐私研讨会(2008)的技术参考文献R.Smith等人的“XFA:Faster signature matching with extendedautomata”中描述的技术。
然后可以将新的正则表达式的XFA与正则表达式模式组的现有XFA组合(604)。然后可以将得到的组合XFA压缩以产生表示利用新的正则表达式来更新的正则表达式模式组的CFA(606)。这种组合和压缩技术的示例包括那些在发表于《国际计算机工程与技术先进研究杂志》(2015)的技术参考文献U.Pisolkar的“A survey on deterministic finiteautomata compression techniques”中描述的技术。
最后将CFA写入主TCAM 102或主TCAM 302(608)。CFA可以利用主TCAM 102的三元特性来组合状态转换表的行,以减少将CFA存储在TCAM中所需的内存量。作为示例,如果表内的两行仅相差一位,则可以将这两行组合成为一行,用“无关”状态来替代所讨论的该位。
图7示出了用于过滤过滤查询的示例系统700。例如,系统700可以实施为诸如服务器的一个或多个计算设备。系统700包括一个或多个主TCAM 701,该一个或多个主TCAM 701可以包括已经描述的主TCAM 102和/或302。主TCAM 701可以经由忆阻器来实施。系统700还包括已经描述的二级TCAM 104,该二级TCAM 104可以类似地经由忆阻器或经由静态随机存取存储器(SRAM)来实施。
系统700可以包括在线硬件逻辑702和离线硬件逻辑704二者。在线硬件逻辑702可以如关于图2和图4所描述的,针对TCAM 701和/或302处理输入字符串。离线硬件逻辑704可以也如关于图2和图4所描述的,利用新的正则表达式来更新正则表达式模式组,并且可以进一步利用更新的正则表达式模式组对主TCAM 701之一进行编程。离线硬件逻辑704还可以如已经讨论的,利用新的正则表达式对二级TCAM 104进行编程。
由于逻辑702可能必须实时或近乎实时地执行其功能,因此,在线硬件逻辑702可以被认为是在线的。相比之下,由于逻辑704可以不必实时或近乎实时地执行其功能,因此,离线硬件逻辑704可以被认为是离线的。在线硬件逻辑702和离线硬件逻辑704中的每一个可以实施为处理器和存储由处理器可执行的代码的非暂时性计算机可读数据存储介质。在线硬件逻辑702和离线硬件逻辑704中的每一个中的其中一个可以替代地实施为专用集成电路(ASIC)或其他专用硬件。
图7示出了可以使用计算系统700用于网络安全目的的特定情况。这样,计算系统700包括将系统700通信地连接到外部网络712和内部网络714二者的网络硬件710(例如一个或多个网络适配器)。外部网络712例如可以是或者包括互联网,而内部网络714可以是诸如内部网和/或局域网(LAN)的本地网络。客户端计算设备716也可以连接到内部网络714,以使得客户端计算设备716通过计算系统700通信地到达外部网络712。
因此,当数据包从外部网络712到达计算系统700时,计算系统700可以将包(或者至少该包的净负荷)划分为输入字符串,根据图2和图4的部分202或210针对TCAM 701之一各自处理该输入字符串。如果当前正在执行部分202,则还针对二级TCAM 104处理每个输入字符串。基于该处理的结果,计算系统700允许数据包通过,到达内部网络714并且到达内部网络714上数据包的目标客户端计算设备716,或者禁止数据包通过。
在前一种情况下,由于没有与TCAM 701和/或TCAM 302匹配的数据包的输入字符串,因此,系统700将数据包识别为不包含潜在地对应于安全威胁的任何输入字符串。在后一种情况下,由于数据包的输入字符串与TCAM 701和/或TCAM 302之一匹配,因此,系统700将数据包识别为包含潜在地对应于安全威胁的输入字符串。可以对该数据包进行隔离用于进一步分析,以确认该包是否表示网络安全威胁。对流出的数据包的过滤可以以与流入的数据包相同的方式进行检查。
本文已描述的技术使用二级TCAM以允许在更新主TCAM的现有正则表达式模式组时,几乎立即针对新的正则表达式测试流入的数据字符串。本文所描述的技术可以在网络安全的背景下使用,以将流入的输入字符串识别为潜在的安全威胁。在这种和其他背景下,由于可以比以前更快地针对新的正则表达式进行测试,因此提高了准确性和性能。
Claims (15)
1.一种方法,包括:
利用待添加到正则表达式模式组的新的正则表达式对二级三元内容可寻址存储器(TCAM)进行编程;
针对利用所述正则表达式模式组编程的主TCAM并且针对所述二级TCAM并行处理流入的数据字符串;以及
在针对所述主TCAM并且针对所述二级TCAM并行处理所述流入的数据字符串时,更新所述正则表达式模式组以添加所述新的正则表达式。
2.根据权利要求1所述的方法,进一步包括:在已经更新所述正则表达式模式组以添加所述新的正则表达式之后:
利用更新的正则表达式模式组对所述主TCAM进行编程;并且
仅针对利用更新的正则表达式模式组编程的所述主TCAM,并且不针对所述二级TCAM,对随后接收到的流入的数据字符串进行处理。
3.根据权利要求1所述的方法,其中,所述主TCAM是第一主TCAM,并且所述方法进一步包括:在已经更新完整的正则表达式模式组以添加所述新的正则表达式之后:
利用更新的正则表达式模式组对第二主TCAM进行编程;
仅针对利用更新的正则表达式模式组编程的所述第二主TCAM并且不针对所述第一主TCAM以及不针对所述二级TCAM,对随后接收到的流入的数据字符串进行处理。
4.根据权利要求1所述的方法,其中,利用所述新的正则表达式对所述二级TCAM进行编程包括:
从所述正则表达式生成确定型有限自动机(DFA);以及
将所述DFA写入所述二级TCAM。
5.根据权利要求4所述的方法,其中,从所述正则表达式生成所述DFA包括:
将所述正则表达式转换为不确定型有限自动机(NFA);
将所述NFA转换为所述DFA;以及
使所述DFA最小化。
6.根据权利要求5所述的方法,其中,将所述正则表达式转换为所述NFA包括使用Thompson算法,
其中,将所述NFA转换为所述DFA包括使用幂集算法,
并且其中,使所述NFA最小化包括使用Hopcroft算法。
7.根据权利要求1所述的方法,其中,更新所述正则表达式模式组以添加所述新的正则表达式包括:
生成所述新的正则表达式的扩展的有限自动机(XFA);
将所述新的正则表达式的XFA与所述正则表达式模式组的XFA结合,产生更新的XFA;以及
压缩更新的XFA,产生压缩的有限自动机(CFA)。
8.根据权利要求1所述的方法,其中,所述主TCAM是忆阻器实施的TCAM。
9.根据权利要求8所述的方法,其中,所述二级TCAM是忆阻器实施的TCAM。
10.一种系统,包括:
主三元内容可寻址存储器(TCAM),所述主三元内容可寻址存储器利用正则表达式模式组编程;
二级TCAM,所述二级TCAM利用待添加到所述正则表达式模式组的新的正则表达式编程;以及
硬件逻辑,所述硬件逻辑用于在正在更新所述正则表达式模式组以添加所述新的正则表达式时针对所述主TCAM和所述二级TCAM并行处理流入的数据字符串。
11.根据权利要求10所述的系统,其中,所述硬件逻辑是在线硬件逻辑,并且所述系统进一步包括:
离线硬件逻辑,所述离线硬件逻辑用于更新所述正则表达式模式组以添加所述新的正则表达式。
12.根据权利要求10所述的系统,其中,当已经更新所述正则表达式模式组以添加所述新的正则表达式时,所述硬件逻辑将暂时暂停对所述流入的数据字符串的处理,直到利用更新的正则表达式模式组已经对所述主TCAM进行了编程为止,
并且其中,当利用更新的正则表达式模式组已经更新了所述主TCAM时,所述硬件逻辑仅针对利用更新的正则表达式模式组编程的所述主TCAM,并且不针对所述二级TCAM恢复对所述流入的数据字符串的处理。
13.根据权利要求10所述的系统,其中,所述主TCAM是第一主TCAM,所述系统进一步包括:
第二主TCAM,
其中,当已经更新所述正则表达式模式组以添加所述新的正则表达式时,利用更新的正则表达式模式组对所述第二主TCAM进行编程,
并且其中,当利用更新的正则表达式模式组已经对所述第二主TCAM进行了编程时,所述硬件逻辑仅针对利用更新的正则表达式模式组编程的所述第二主TCAM并且不针对所述第一主TCAM以及不针对所述二级TCAM,开始处理所述流入的数据字符串。
14.根据权利要求10所述的系统,其中,所述输入字符串经网络接收,并且其中,所述硬件逻辑用于针对每个输入字符串:
响应于所述输入字符串无法与所述主TCAM和所述二级TCAM二者匹配,确定所述输入字符串不是潜在的网络安全威胁,并且立即允许所述输入字符串通过;并且
响应于所述输入字符串与所述主TCAM和所述二级TCAM中的一个或多个匹配,确定所述输入字符串是潜在的网络安全威胁,并且不立即允许所述输入字符串通过。
15.根据权利要求10所述的系统,其中,所述主TCAM是忆阻器实施的TCAM。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2018/030078 WO2019212451A1 (en) | 2018-04-30 | 2018-04-30 | Updating regular expression pattern set in ternary content-addressable memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111819558A true CN111819558A (zh) | 2020-10-23 |
Family
ID=68385983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880090398.9A Pending CN111819558A (zh) | 2018-04-30 | 2018-04-30 | 更新三元内容可寻址存储器中的正则表达式模式组 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210021620A1 (zh) |
CN (1) | CN111819558A (zh) |
DE (1) | DE112018007019T5 (zh) |
WO (1) | WO2019212451A1 (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6650561B2 (en) * | 2002-01-30 | 2003-11-18 | International Business Machines Corporation | High reliability content-addressable memory using shadow content-addressable memory |
US7454499B2 (en) * | 2002-11-07 | 2008-11-18 | Tippingpoint Technologies, Inc. | Active network defense system and method |
US20100192225A1 (en) * | 2009-01-28 | 2010-07-29 | Juniper Networks, Inc. | Efficient application identification with network devices |
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 |
US9305116B2 (en) * | 2010-04-20 | 2016-04-05 | International Business Machines Corporation | Dual DFA decomposition for large scale regular expression matching |
US8897151B2 (en) * | 2010-07-16 | 2014-11-25 | Board Of Trustees Of Michigan State University | Systematic framework for application protocol field extraction |
US20130282739A1 (en) * | 2012-04-18 | 2013-10-24 | International Business Machines Corporation | Generating a log parser by automatically identifying regular expressions matching a sample log |
US20130282648A1 (en) * | 2012-04-18 | 2013-10-24 | International Business Machines Corporation | Deterministic finite automaton minimization |
US20150310342A1 (en) * | 2014-04-25 | 2015-10-29 | Board Of Trustees Of Michigan State University | Overlay automata approach to regular expression matching for intrusion detection and prevention system |
US9721661B1 (en) * | 2016-07-21 | 2017-08-01 | Hewlett Packard Enterprise Development Lp | Content addressable memories |
-
2018
- 2018-04-30 CN CN201880090398.9A patent/CN111819558A/zh active Pending
- 2018-04-30 US US17/042,778 patent/US20210021620A1/en not_active Abandoned
- 2018-04-30 WO PCT/US2018/030078 patent/WO2019212451A1/en active Application Filing
- 2018-04-30 DE DE112018007019.0T patent/DE112018007019T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
DE112018007019T5 (de) | 2020-11-05 |
WO2019212451A1 (en) | 2019-11-07 |
US20210021620A1 (en) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7685637B2 (en) | System security approaches using sub-expression automata | |
US7676444B1 (en) | Iterative compare operations using next success size bitmap | |
CN107122221B (zh) | 用于正则表达式的编译器 | |
Liu et al. | A fast string-matching algorithm for network processor-based intrusion detection system | |
US10846296B2 (en) | K-SAT filter querying using ternary content-addressable memory | |
US7596809B2 (en) | System security approaches using multiple processing units | |
EP1905213B1 (en) | Method, recording medium and network line card for performing content inspection across multiple packets | |
EP1897324B1 (en) | Multi-pattern packet content inspection mechanisms employing tagged values | |
US7673041B2 (en) | Method to perform exact string match in the data plane of a network processor | |
US20140007216A1 (en) | Methods, systems, and computer readable media for adaptive packet filtering | |
US10397263B2 (en) | Hierarchical pattern matching for deep packet analysis | |
US7216364B2 (en) | System security approaches using state tables | |
EP1607823A2 (en) | Method and system for virus detection based on finite automata | |
Dharmapurikar et al. | Design and implementation of a string matching system for network intrusion detection using FPGA-based bloom filters | |
Liu et al. | An overlay automata approach to regular expression matching | |
Nazarenko et al. | Application for traffic classification using machine learning algorithms | |
Joshi et al. | Efficiency of different machine learning algorithms on the multivariate classification of IoT botnet attacks | |
Ajayi et al. | Dahid: Domain adaptive host-based intrusion detection | |
Villa et al. | Input-independent, scalable and fast string matching on the Cray XMT | |
US7661138B1 (en) | Finite state automaton compression | |
CN111819558A (zh) | 更新三元内容可寻址存储器中的正则表达式模式组 | |
Amin et al. | Ensemble based Effective Intrusion Detection System for Cloud Environment over UNSW-NB15 Dataset | |
Fukač et al. | Increasing memory efficiency of hash-based pattern matching for high-speed networks | |
Haghighat et al. | Toward fast regex pattern matching using simple patterns | |
Lin et al. | Detecting unmanaged and unauthorized devices on the network with long short-term memory network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |