面向网络安全应用的硬件特征匹配结构研究

2017-04-18 16:08李凯
电脑知识与技术 2016年35期

李凯

摘要:描写能力强、编写简单是正则表达式的特点,并在报文深度内容检测中得到应用和推广。但因处理繁琐,在流量很大的报文检测中,基于软件的正则表达式匹配的实现是无法满足的。在硬件结构中研究多正则表达式匹配结构以及特征匹配硬件结构的实现和使用方法,构建一个主从协同处理的特征匹配结构模型,基于此模型设计并实现了一款内容安全匹配加速卡,该加速卡通过PCI协议与主机通讯,采用Xilinx FPGA实现字符串匹配与正则表达式匹配,通过访问SRAM/DDR存储器读取转换规则进行状态切换。

关键词:内容安全加速卡;特征匹配;正则表达式匹配

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)35-0013-04

经过几十年的飞速发展,互联网已经深入到社会的方方面面,对网络内容的监控和管理成为当今时代的必然要求,也是社会治安管理的重要保障。基于底层网络硬件设备,是确保网络信息安全的重点,针对计算机协议中应用层和网络层的安全侧罗,监控和辨别网络中传递的信息。深度包检测技术,此技术是以应用层流量检测和控制技术为基础的,一般用于网络包不良内容的检测,通过深入读取IP包载荷的内容来对OSI七层协议中的应用层信息进行重组,从而得到整个应用程序的内容,然后按照系统定义的管理策略对流量进行整形操作,通过深度检测报文内容,可对网络间的行为有更好的感知。匹配报文载荷与预定义的模式集合来实现报文内容检测。

正则表达式有很强的表示字符串的能力,因此基于正则表达式的特征匹配成为一个热门的研究课题。例如,检测入侵系统Snort[1]和Bro[2]的规则集都满足基于正则表达式的描述规则,应用于应用层协议的识别系统L7-filter[2]也采用正则表达式的描述规则。对检测入侵系统Snort的测试结果表明,特征匹配占用了整个系统超过30%的处理时间。以网络应用为主的网络数据,特征匹配的占用系统时间则更长达80%[3]。因此,可以看出基于正则表达式的特征匹配很消耗计算资源的空间与时间。

随着网络数据飞速的增长,基于软件算法的实现难以满足高速网络的性能要求,也难以缩减特征匹配的占用时间。目前的解决办法就是设计专用网络安全系统的内容安全硬件才能有效实现特征匹配加速。基于FPGA方式的实现一般采用NFA。2001年,Sidhu R等[4]采用NFA 实现正则表达式匹配, 将正则表达式的表达式转换为触发器中与或门逻辑电路。在此基础上,Sutton P等[5]做出了修改,应用部分字符解码的方式来优化正则表达式的实现。文献[6] 于2006年,通过减少NFA中重复多余的与门和状态减少了50 %的FPGA资源。采用DFA方法实现的正则匹配通常采用存储器,Kumar S等[7]采用对多个模式进行分组的思想,每个分组分配单独正则匹配引擎的方式可明顯降低DFA 状态转移表的大小。Kumar S等[7,8]提出将DFA 中一个状态的多条边用单个缺省边代替,引入输入延迟的DFA(D2 FA)来减少边的存储空间的方法,并解决了一个字节多次访存的问题,达到了提高DFA 的性能。

本文提出了构建一个主从协同处理的特征匹配结构模型,并且根据此模型设计并实现了一款内容安全匹配加速卡,该加速卡通过PCI协议与主机通讯,采用Xilinx FPGA实现字符串匹配与正则表达式匹配,通过访问SRAM/DDR存储器读取转换规则进行状态切换。此模块的使用,对硬件结构在网络安全系统中应用时的系统修改大大降低了,数据交换效率改善效果明显,系统整体性能得到提升,在实际系统中,提供了完整的硬件加速。

1相关工作

字符串和正则表达式两种形式是笔者所研究的“特征”,而字符串只是正则表达式的另一种特殊形式。正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

特征匹配就是查找输入信息中是否存在特征集中某些特征的问题。其中特征集是以正则表达式的形式定义,输入信息是文本格式,输出匹配的结果。如图1所示,本文设计了特征匹配操作。

图1 特征匹配示意图

特征匹配硬件结构的研究可分成基于FPGA特征匹配结构的研究和面向ASIC的特征匹配结构研究两大类,都应用于入侵检测和系统防御,这两类方法的根本不同在于特征的存储方式。基于FPGA的特征匹配结构[9-11]的实现方式是使用FPGA内部的逻辑单元来进行特征匹配,FPGA的优点在于具有很强的灵活性、执行速度快、集成度比较高,而且方便重新配置,其明显的不足是更新特征时要重新产生FPGA下载文件,难以满足计算机网络安全中频繁更新特征的需求。ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。面向ASIC的匹配特点是将特征通过软件编译器产成一个中间数据结构,然后将其保存至外部存储器中,通过访问内存判断是否符合特征,该方式是用硬件电路来实现具体操作。

在计算机网络安全系统中采用专有内容安全硬件结构时,以IP 核、FPGA 或ASIC 的方式工作[12-15]是一般性的硬件结构,研究有3种不同的方法: 第1种是采用主机和加速卡的工作模式,这也是本文采用的方法;第2种是采用主处理器和协处理器的运行方式;第3种是内处理器核与专用IP核共同工作模式。

笔者使用上述三种方案的第一种,在第一种方案中,主控方通用微处理器,在加速卡中实现特征匹配。加速卡与主控方通讯的方式,一般采用PCI(Peripheral Component Interconnect,外围部件互连总线)等标准接口协议。主控方和特征匹配分离,两者之间相互不干扰,如有报文需要特征匹配,主控方只需调用加速卡提供的函数接口即可完成特征匹配,这是这种方案的优点;缺点是模型受到标准接口协议的限制,而且实现较为复杂,性能不高。

2 主从协同处理模型

2.1 整体架构

内容安全加速卡的整体架构如图2所示,分为硬件部分和软件部分两大部分,软件部分又虚线表示,包括特征集的提前处理、系统调用的接口函数和加速卡的驱动程序;实线部分是表示硬件部分,包括加速卡、存储器,负责对数据进行存储以及特征匹配并输出结果。

内容安全匹配加速卡的工作流程如下:

(1)特征集集合经过预处理之后,得到规则化的存储文件

(2)主控方加载加速卡的驱动程序

(3)将特征匹配硬件逻辑通过电子设计自动化工具编译成FPGA下載文件,并下载到FPGA中

(4)将具有初始化逻辑的存储文件保存至存储器,用于加速卡进行匹配。

(5)主控方通过接口函数将测试数据送入加速卡,加速卡内部的FPGA访问外部存储器,读取转换规则并进行特征匹配,判断是否匹配。

(6)匹配完成之后,由缓存区来保存输出的结果,主控方通过接口函数取回匹配结果。

2.2 主从协同处理模型

通过研究特征匹配结构的工作流程,很容易发现,主控方将等待匹配的信息传送到输入缓冲区,加速卡获取信息后,开始进行特征匹配,此时输出缓冲区得到传送来的匹配结果,最后通过接口函数到达主控方。这个过程中,主控方通过接口函数往输入缓冲区传递等待匹配的信息和通过接口函数从输出缓冲区取出匹配结果的过程中,主控方一直处于运行状态,加速卡处于闲置状态。同样,进行特征匹配操作时,加速卡处于工作状态,主控方处于闲置状态。这整个过程类似于进程上的串行执行,主控方和加速卡无法同时工作,很大程度上浪费资源,降低了系统的性能。

为了避免上述情况,文献[16]提出双流优化模型,且对双流化模型的性能进行了测试与分析,证明了其方法的可行性。本文采用相同的方法,缓冲区A和B是采用两套输入/输出来实现,图3为具体运行流程。主控方通过接口函数将等待匹配的数据送到输入缓冲区A中,特征匹配结构接收输入缓冲区A的数据后,进行特征匹配处理,同时主控方通过接口函数将等待匹配的新信息送到输入缓冲区B中,特征匹配结构处理完A数据后,送到输出缓冲区A,接着处理输入缓冲区B中的数据,同时主控方通过接口函数接收输出缓冲区A中的匹配结果,紧接着主控方再次通过接口函数将等待匹配的信息送到输入缓冲区A中,特征匹配结构处理完输入缓冲区的数据,送到输出缓冲区B中,接着处理输入缓冲区A中的数据,同时主控方接收输出缓冲区B中的匹配结果。这样循环运行,能够提高各个部分的运行效率,减少各个部分的闲置时间,大幅度提高了系统性能。

对特征匹配相关信息研究表明,特征匹配的相关算法提供一个外部接口函数,首先整个系统对算法进行初始化,产生相关的信息,接着在需要时候调用相关的函数,输入等待匹配的信息,然后通过接口获取匹配的结果。特征匹配硬件结构的设计上需要最大可能地满足与软件算法的操作一致,如此能够减少现有系统从软件算法转向硬件结构时所需要做的修改。

结合双输入/输出处理流程,本文将主从协同处理模型设计成如图4所示,主要模块为5个,分别为:(1)函数接口;(2)输入输出FIFO(First Input First Output, 先入先出队列);(3)数据交换控制单元;(4)输入输出缓冲区;(5)寄存器。以下分别为5个模块的功能:完成数据交换,以及完成特征匹配结构和主控方之间的信息传输和特征匹配功能。特征匹配硬件结构一般有两种不同工作模式,即初始化和匹配模式,下面具体介绍一下这两种模式下的工作流程。

第一,初始化的状态下:

(1)主控方将需配置的寄存器相关主控方信息,通过输入输出的接口函数,经由数据交换控制单元,传送到相应寄存器,初始化特征匹配结构的同时,将相应的信息反馈给主控方;

(2)接着主控方再通过输入输出接口函数(FIFO)传输特征初始化的信息,数据交换控制单元将该信息传输到相应存储位置,主控方得到相应状态信息的反馈,同时得到完成初始化操作的口令。

第二,匹配状态下:

(1)主控方通过输入输出接口函数传输匹配状态所需相关信息,接着通过数据交换控制单元将该信息传输到相应寄存器,特征匹配结构转换至匹配状态,并将相关的状态信息反馈给主控方;

(2)主控方在每轮的匹配操作过程中,首先需通过输入输出接口函数传递输入数据需配置的寄存器内容,数据交换控制单元将该信息传送到相应寄存器,然后再通过输入输出接口函数传入等待匹配信息,经过格式转换将其传送到输入缓冲区中,特征匹配结构对输入缓冲区中数据进行匹配,并将匹配结果通过输入输出端口传送到输出缓冲区中,并将处理完后的信息返回给主控方,主控方通过输入输出接口取走输出缓冲区中匹配结果,最后主控方将输出结果需配置的寄存器内容传输进来,数据交换控制单元将其传输到相应寄存器,这样就完成了本轮测试信息的特征匹配。连续进行1 次或多次循环,直到所有等待匹配的信息都匹配完。

3 设计实现

3.1实现方案

在主从协同处理的特征匹配结构模型基础上,内容安全加速卡的设计和实施,为针对网络安全系统的硬件特征匹配提供了良好的解决方式。图5为加速卡硬件结构设计,主要包括:(1)FPGA硬件模块:负责实现硬件特征匹配功能,存储模块存储状态机转换规则;(2)PCI接口:PCI总线负责特征匹配结构与主控方的数据通讯;(3)存储部分。

系统工作时,主控方将信息通过PCI传输到加速卡,采用DMA 方式传输数据,信息经过FPGA处理完毕之后,传送中断请求到主控方,中断请求被响应后,主控方取回匹配结果。

3.2 加速卡实现

加速卡采用PCI 9054接口芯片,它提供2个独立的可编程DMA控制器,可以通过编程实现多种数据宽度,传输速度可达1Gbit/s( 32bit* 33MHz),并使用先进的数据管道结构技术。加速卡采用2种存储器,分别是静态存储器和双倍速率同步动态随机存储器(DDR),静态存储器选用CY7C1461AV33。内存芯片颗粒DDR动态存储器采用2. 5 V工作电压,允许在时钟脉冲的上升沿和下降沿传输数据,在不需提高时钟频率的条件下加倍提高访问速度,本加速卡选用MT46V32 M16P内存芯片颗粒,单片大小为512Mbit。表1展示了加速卡的主要部件。

4 结束语

面对大数据量下的信息检测,软件算法的特征匹配无法正常满足需求,也无法满足数据处理的速度要求,所以使用专用硬件实现特征匹配加速。本文提出了基于主从协同处理模式的硬件特征匹配结构,并对特征匹配的工作流程进行了改进,采用文献[16]的双流优化模型,提高硬件特征匹配的处理性能,减少数据交换带来的性能下降。特征结构是处于被动模式,需要主控方通过初始化设置和待匹配数据进行控制特征匹配硬件结构的I/O操作、初始化和系统结束等操作。本文最终设计和实现了一款内容安全加速卡,通过PCI协议与主控方通讯,在FPGA上实现硬件特征匹配。

参考文献:

[1]SNORT Network Intrusion Detection System [EB/OL]. [ 2007-05-18] http://www.snort.org.

[2] Bro Intrusion Detection System [EB /OL] . [ 2007-03-15] .http:// www.bro-ids.org.

[3] Roesch M. Snort: lightweight intrusion detection for networks [C]//Proc of the 1999 USENIX LISA Systems Administration Conference,1999.

[4]Sidhu R, Pras anna V K .Fast Regular Expression Matching using FPGAs[ C] //Proc of the 9 th Annual IEEE Symp on FCCM, 2001:227-238 .

[5] Sutton P, Partial Character Decoding f or Improved Regular Expression Matching in FPGAs[ C] //Proc of IEEE Int' lConf on Field-Programmable Technology , 2004 :25-32 .

[6] Katashita T .Highly Efficient String Matching Circuit for IDS with FPGA[C] //Proc of the 14th Annual IEEE Symp on FCCM , 2006 :285-286 .

[7] Kumar S, Dharmapurikar S , Fang Yu , Algorithms to Accelerate Multiple Regular Expressions Matching for Deep Packet Inspect ion[ C] //Proc of S IGCOMM' 06 , 2006 :11-15.

[8] Kumar S, Turner J , Williams J .Advanced Algorithms for Fast and Scalable Deep Packet Inspection [C]// Proc of ANCS' 06, 2006 :81-92.

[9] Sourdis I, Pnevmatikaos D. Fast, large-scale string matching for a 10Gbps FPGA-based network intrusion detection system [C] //The 13th International Conference on Field Programmable Logic and Applications, FPL 03 Lisbon, Portugal:[s.n.], 2003.

[10] Baker Z K, Prasanna V K. High-throughput linked-pattern matching for intrusion detection systems [C] //The 1st Symposium on Architecture for Networking and Communications Systems, ANCS 05 Princeton, New Jersey, USA:[s.n.], 2005:193-202.

[11] Katashita T, Maeda A, Toda K, et al. Highly efficient string matching circuit for IDS with FPGA [C] //The 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines. FCCM06, 2006:285-286.

[12] LIANG Heling, LI Shuguo. Design of an Internet security protocol acceleration card with pci and usb dual interface [J].Microelectronics and Computer, 2009,26(2) :155-162.

[13] Zhang Peiheng, Liu Xinchun, Jiang Xianyang. An implementation of reconfigurable computing accelerator card oriented bioinformatics [J].Journal of Computer Research and Development, 2005, 42(6): 930-937.

[14] DUAN Bo, WANG Wendi, ZHANG Chunming, et al. A computing accelerate platform based on reconfigurable data-path [C] // Proceeding of the 15th National Conference on Computer Engineering and Technology and the 2nd Microprocessor Forum.

[15] XU Yan, YANG Bin. Design and research of BLAS accelerating system based on FPGA [J] . Micro Computer Information, 2009,25 (7-2):137-139.

[16] 張伟,徐涛,李志文. 面向内容安全硬件加速的主从协同处理模型[J]. 北京信息科技大学学报,2012,27(6):34-40.