快捷搜索:  汽车  科技

什么是fpga漏洞:FPGA做正则匹配和网络安全 究竟有多大的优势

什么是fpga漏洞:FPGA做正则匹配和网络安全 究竟有多大的优势前面讲的太学术了,下面让我们以通俗的语言举一个例子来解释一下。 随着网络安全的重要性日益增强,基于FPGA或者专用芯片的入侵检测技需求必定会暴增。同时,随着挖矿芯片,AI芯片等的普及和推广,越来越多的人也逐渐认识到做某些事情,硬件的实现方式效率会数量级的提升。因此,基于FPGA或者芯片的网络安全防护也会越来越受到关注。 基于存储器的解决方案首先对规则集合中的规则进行预处理,并将结果存储在存储单元中,与基于逻辑的解决方案最大的不同是,规则集合的信息存储在存储单元中,对逻辑资源消耗较少,并且每次进行规则更新时只需要重写存储单元的内容[9]。如今,用于净荷检测的规则集合非常庞大,并且需要经常更新,所以基于存储器的解决方法越来越有优势[10]。这类方法最早借鉴了经典的多模式匹配算法AC算法[11],首先将规则集合中的规则信息转换成状态跳转表,存储在存储器中;检测数据时,通过输入数据的特征,读取存储

目前,国内外已有多家公司推出了入侵检测的产品,下面介绍一些主流的入侵检测产品。世界上最大的网络设备制造商Cisco公司的CiscoSecure IDS是一个软硬件结合的系统,作为路由器和交换机产品设计的附加模块,用于实现入侵检测功能;NFR公司的NID系统,该系统是一种基础规则检测的网络入侵检测系统,同时也具备异常检测的功能[4];华为的NIP系列入侵检测系统,定位各种网络威胁和违反安全策略的流量,并提供详细有效的指导措施,以实现防护检测技术;绿盟网络入侵检测系统是对防火墙的有力补充,与同类产品相比,具有高性能、高安全性、高可靠性和易操作性等优势[5]。

网络数据包分为包头和净荷两部分,包头长度比较短,并且每个域的信息固定,所以现在对包头部分的硬件检测方案的研究相对比较成熟。但在很多情况下,仅对数据包包头进行检测是不够的,如很多病毒等攻击会隐藏在数据包的净荷部分,所以对数据包净荷部分进行检测也非常必要。数据包净荷部分比较长,并且对应的规则长短不一,针对这一部分的检测成为限制入侵检测引擎性能的瓶颈之一[6]。

什么是fpga漏洞:FPGA做正则匹配和网络安全 究竟有多大的优势(1)

近年来,对网络数据包净荷的检测主要有两类解决方案,基于逻辑的解决方案(Logic-based)和基于存储器的解决方案(Memory-based)。基于逻辑的解决方案将规则集合中的规则直接用硬件逻辑实现。当规则集合规模变大时,这种方法硬件实现成本过高。针对这一问题,John Lockwood引入了状态机的方法[7],通过规则之间共用前缀减少对硬件资源的消耗,该方法将规则集合中的全部规则转换成有限状态机,用硬件描述语言实现,最后映射到FPGA。HyunJin Kim 等人将状态机中的转移状态进行压缩,使其用FPGA实现时,能够充分利用查找表的输入输出端口,大大增大了硬件利用率[8]。基于逻辑的解决方案由于充分利用了硬件并行性,查找速度极快,吞吐率可达到8~10Gbps,但硬件资源消耗非常大,尤其随着规则集合规模越来越大,这一问题更加突出;另外,该类方法每次更新规则集合都需要重新进行FPGA映射,影响匹配效率。

基于存储器的解决方案首先对规则集合中的规则进行预处理,并将结果存储在存储单元中,与基于逻辑的解决方案最大的不同是,规则集合的信息存储在存储单元中,对逻辑资源消耗较少,并且每次进行规则更新时只需要重写存储单元的内容[9]。如今,用于净荷检测的规则集合非常庞大,并且需要经常更新,所以基于存储器的解决方法越来越有优势[10]。这类方法最早借鉴了经典的多模式匹配算法AC算法[11],首先将规则集合中的规则信息转换成状态跳转表,存储在存储器中;检测数据时,通过输入数据的特征,读取存储器相应位置的信息,通过状态跳转完成规则匹配。当规则集合规模越来越大时,利用AC算法生成的状态跳转表会变得非常庞大,对存储空间的需求随之增大,在很多情况下片上的存储资源无法满足,但如果借助于片外存储单元,读取存储单元时延时较长,严重影响检测速度。因此不少研究人员针对这一问题提出了改进方法。IBM研究实验室的Jan vanLunteren提出了对AC算法转移规则的改进方法[12],通过加入通配符和优先级,减少了AC算法中的转移规则,进而减小了状态转移表的大小;SarangDharmapurikar等人将AC算法与BF算法相结合[13],BF算法所需存储资源极小,利用片上存储单元实现,AC算法所需存储资源较大,利用片外存储单元实现,该方法先利用BF算法对待检测数据进行快速过滤,可过滤掉大多数安全数据,只有当BF算法检测出疑似攻击的数据时,才启动AC算法对数据包进行检测,在占用极小片上资源的情况下,完成了对数据的快速检测;Tsern-Huei Lee将AC算法和WM算法相结合,先利用WM算法对数据进行预过滤,再利用AC算法进行检测[14];Hong-Jip Jung 提出将AC算法与bit-split算法结合[15],将AC算法中大状态机拆分成4个小状态机,该算法在保留AC算法性能的基础上,大大减小了存储空间。

随着规则集合的日益庞大,基于AC算法的方法很难实现较好的性能,因此Yi-Hua E. Yang等人开始利用树结构存储规则集合中的规则信息[16],利用规则前缀建树,形成分级结构,加入流水线技术之后,每一时钟周期可处理一个字符,与之前算法相比,需要的存储空间更少,速度更快;采用树结构存储规则信息时,树的深度等于规则集合中最长的模式串长度,当最长的模式串长度较长时,会导致树的深度极大,影响匹配性能,Weirong Jiang在此基础上进行了进一步改进,将树结构和AC算法相结合[17],将树的深度减少至8级,且AC算法中比例较大的交叉规则大大减少,存储空间相应减小。

基于存储器的解决方案对规则集合的更新比较方便,并且硬件逻辑资源消耗较小,但由于该类方法需要对规则集合中的规则进行预处理,利用规则的前缀关系生成状态跳转表或树型结构存储在存储单元中,因此其检测性能严重依赖于规则集合中的规则特征,规则之间的前缀关联性和预处理后的结果密切相关,因此即使是同样规模的规则集合,检测性能也会有很大的差异。另外,这类方法主要通过访问存储单元获取下一跳转状态,没有充分利用硬件的并行性,单个检测引擎的处理速度仅为1~3Gbps,在高速的网络应用中,需要采用多个检测引擎来满足需求,因此处理速度有待提高。

随着网络安全的重要性日益增强,基于FPGA或者专用芯片的入侵检测技需求必定会暴增。同时,随着挖矿芯片,AI芯片等的普及和推广,越来越多的人也逐渐认识到做某些事情,硬件的实现方式效率会数量级的提升。因此,基于FPGA或者芯片的网络安全防护也会越来越受到关注。

前面讲的太学术了,下面让我们以通俗的语言举一个例子来解释一下。

什么是fpga漏洞:FPGA做正则匹配和网络安全 究竟有多大的优势(2)

知名厂商举例

总部位于北爱尔兰贝尔法斯特的泰坦IC是北爱尔兰贝尔法斯特皇后大学安全信息技术中心(CSIT)的分拆公司。TITAN IC在硬件和内容处理和网络处理方面的发展处于世界领先地位。所提供的解决方案包括正则表达式(ReGEX)加速,用于网络安全的所有方面,包括:入侵检测/预防、应用检测、反病毒、内容/ URL过滤。这些解决方案可用作包含在网络服务器上的PCIE卡,如AWS F1上基于云的服务,作为可编程的知识产权,用于现场可编程门阵列(FPGA)和用于定制专用集成电路(ASIC)的硅知识产权(SIP)。

其中,最核心的技术就是正则表达式识别加速。这个跟Perl语言里面的正则表达式匹配是一样的。区别在于,通过硬件的方式在网络上快速的匹配出用户关心的数据内容。如下图是该公司通过硬件正则表达式处理器解析一封E-Mail的流程示意图。通过把规则配置到设备内部,就能实现对网络数据的快速识别和解析。

什么是fpga漏洞:FPGA做正则匹配和网络安全 究竟有多大的优势(3)

或许有人不以为然,这有什么啊,随便一台电脑上用个WireShark之类的抓包工具抓下来就可以分析出来。但我告诉你它的处理性能的时候你就明白区别了。

该公司的HeliOS ReGeX处理器架构在FPGA平台上可以实现达到100 Gbps的全网络吞吐量率数据的线速正则表达式匹配处理,并可以并行扫描多达100万个复杂正则表达式。

这是软件的方式能实现的吗?如果可以,那得需要多少台通用处理器并行工作啊。

下图是他们正则匹配的举例。

什么是fpga漏洞:FPGA做正则匹配和网络安全 究竟有多大的优势(4)

可以看到,除了应用识别外,还支持Snort等常见的入侵检测和防病毒签名以及数据丢失防护功能。

笔者想起2012年左右做HINOC2.0芯片的时候,里面也嵌入了规则匹配的模块,不过当时网口速率要求是1Gbps,要求做到字段无关、协议无关可自定义可更新,跟上面介绍的正则匹配实质是一样的。下图是当时实现的结构,规则表的查找还采用较为原始的顺序查找比对的方法,等做到HINOC3.0的时候,网口速率要求到了10Gbps,顺序查找比对的方式就无法满足线速处理的要求了。

什么是fpga漏洞:FPGA做正则匹配和网络安全 究竟有多大的优势(5)

猜您喜欢: