一种基于AC算法的电力业务快速识别方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种基于AC算法的电力业务快速识别方法
王红凯;林亮成;王剑;余敏槠;周欢
【摘要】电力公司主要业务系统已逐步采用移动作业终端通过公用信息网络接入电力信息内网,业务系统在内外网数据交换过程中通过协议特征进行业务识别.针对业务识别过程存在匹配时间长、内存消耗大等问题.提出了一种基于AC(Aho-Corasick)算法的电力业务快速识别方法.在分析电力信息网络安全接人流程、高密度流量的协议特征、安全网关性能瓶颈的基础上,提出基于传输层协议分组的并行处理方式,提高匹配处理的吞吐量;采用基于位图的存储方式,降低构建和存储协议特征规则库所需的内存空间;最终通过算例证明了该方法能提升协议匹配速率,降低协议特征规则库的内存消耗,使协议特征识别过程的时间开销和空间开销达到最优平衡.仿真结果验证了所提方法的有效性和准确性.
【期刊名称】《中国电力》
【年(卷),期】2016(049)009
【总页数】5页(P78-82)
【关键词】电力信息化;电力业务识别;安全接入;协议特征识别;AC算法
【作者】王红凯;林亮成;王剑;余敏槠;周欢
【作者单位】国网浙江省电力公司,浙江杭州310007;北京中电普华信息技术有限公司,北京100085;国网浙江省电力公司,浙江杭州310007;华北电力大学控制与计算机工程学院,北京102206;华北电力大学控制与计算机工程学院,北京102206【正文语种】中文
【中图分类】TM769;TP393
电力信息网络规模日益庞大,对接入流量的监控成为提升电力企业内网边际安全的重要环节[1-2]。

协议特征识别是流量监控的关键模块,通过深入读取网络数据包的载荷,并与协议特征规则库进行匹配,识别出该数据包的业务类型或者行为类型,从而对网络流量进行控制。

研究表明当协议特征数量达到一定规模时,现有的协议特征匹配算法性能难以满足实际需求[3]。

因此,提升协议特征识别的效率能够提高整个电力企业安全接入的性能。

当前协议特征匹配算法主要可以分为正则表达式匹配算法和精确字符串匹配算法。

正则表达式匹配算法用正则表达式描述协议特征,能够灵活高效地匹配具有复杂特征字符串的规则。

精确字符串匹配算法是指从待匹配文本中查找和特征串完全相同的字符段所在的位置,可以根据一次扫描精确匹配特征字符串的数量,将其分为单模式匹配算法和多模式匹配算法。

AC算法是经典的多模式匹配算法,它采用有限状态自动机(finite state automaton,FSA)描述具有多个特征字符串的规则,
从而可以通过一次扫描匹配多个字符串。

目前AC算法在解决协议特征匹配问题方面已经涌现出若干成果,如文献[4]通过引入SKIP函数跳过尽可能多的字符,
在特征字符串中相同字符少或者相同字符间距大的情况下能较好地提升算法的匹配性能;文献[5]通过使用双向自动机从中间向两端对文本进行并行匹配来提高匹配效率,但是其内存消耗巨大;文献[6]提出了双重压缩AC算法,从行和列两
方面压缩规则库的存储空间,匹配的时间和空间性能有较大的提升。

传统协议特征匹配算法的研究与应用表明,正则表达式匹配算法存在状态图爆炸的问题[7],单模式匹配算法匹配效率较低[8],针对上述问题和电力企业的实
际需求,本文提出基于AC算法的电力业务快速识别方法。

通过采用基于传输层协议分组的并行处理方式提高整个安全接入平台的协议匹配速率;通过改进经典AC 算法的存储结构、引入基于位图的存储方式,降低协议特征识别过程中的内存消耗;
最终以电力企业内部应用系统的流量数据为例证明了该方法能使协议特征识别过程的空间开销和时间开销达到最优的平衡。

电力企业安全接入的整体逻辑架构如图1所示,主要包括终端区、传输区、接入
区和访问区。

终端区包含各种接入电力网络的终端设备;传输区提供高速安全的传输通道;接入区主要包括安全接入网关、身份认证、集中监管等用于保证数据安全交换的模块;访问区包括各种电力企业内部的应用系统。

其中,安全接入区的安全接入网关是电力企业信息安全的核心之一,它是企业内部网络与外部互联网进行数据交互的唯一接口,负责接入数据的解析、重组、解密、协议特征识别、过滤、转发,负载均衡,回传响应等[9-11]。

表2分别是特征字符集{he,his,she,hers}的状态转移函数、失效函数和输出函数。

终端与内部应用系统进行数据交互需要经过以下步骤:
(1)与安全网关协商通信协议、加密算法类型,建立控制通道。

(2)通过控制通道交换设备认证所需的认证参数和数据加密所需的预共享主密钥,建立数据通道。

(3)终端数据经过加密后通过数据通道安全高速地传输至安全网关,由安全网关进行解析、重组、解密、识别协议特征,对非法数据包进行阻断、对异常数据包进行报警并将正常数据包转发至相应的内部应用系统。

(4)内部应用系统接收并处理数据后将结果回传至安全接入网关,由安全接入网关进行加密处理后发送回接入终端。

然而,随着电力企业应用系统的协议特征数量的日益增加,电力网络规模日渐庞大,基于正则表达式匹配算法的协议特征识别所需的存储空间呈指数增长,大量的待匹配数据增加了等待队列的长度,使数据包的延时增加,从而产生了丢包现象。

因此,降低协议特征识别的空间开销、提高协议特征识别的匹配效率具有很大的工程意义。

2.1 AC算法基本原理及匹配流程
AC算法的基本原理是用所有特征字符串构建一个有限状态自动机,根据该自动机通过一次扫描待匹配文本输出该文本中包含的所有特征字符串位置。

AC算法主要由状态转移函数goto、失效函数failure和输出函数output组成[12]。

图2,表1,
状态转移函数用于根据输入字符从当前状态转移到下一个状态。

假设当前状态为1,当输入字符e时可以进行状态转移,表示匹配成功。

失效函数用于匹配失败时的状态跳转。

假设当前状态为1时输入字符不是e,则根据失效函数failure(1)的值跳转到状态0。

输出函数用于当某状态有特征字符串匹配成功时的输出。

由表2可知,当状态转
移至2、4、7、8四个状态时分别输出字符串he,his,she和he,hers,表示在这些状态下有特征字符串匹配成功。

详细的匹配流程如图3所示,图3中p为指向当前状态的指针、i为输入字符计数器、n为待匹配文本长度、T为待匹配文本。

2.2 电力企业安全接入协议特征识别方法
本文提出的协议特征识别方法总体流程如图4所示,主要包括预处理模块、协议
特征识别模块和控制转发模块。

来自安全传输区的数据包经过预处理模块流入协议特征识别模块进行协议特征匹配,最后在控制转发模块根据匹配结果做出相应的决策。

预处理模块主要负责接收来自传输区的数据包并对IP分片进行排序重组,通过协
商好的加密算法对重组数据进行解密,最后根据数据包使用的传输层协议进行分组,送入协议特征识别模块相应的处理单元进行并行处理。

协议特征识别模块主要负责根据手动提取的正则协议特征构建协议规则库,并将来自预处理模块的数据与协议规则库进行匹配,从而识别协议的特征。

控制转发模块主要负责根据匹配结果做出阻断、报警、转发等决策,只有合法的数据包才能被转发进入电力企业内部相应的
应用系统。

本文提出的基于传输层协议分组的并行处理和基于位图的压缩存储均位于图中协议特征识别模块。

(1)基于传输层协议分组的并行处理。

本文根据所采用的传输层协议类型将协议特征分成2组:TCP协议特征库和UDP协议特征库,并分别编译成不同的规则库。

用分组后构建的规则库同时进行协议特征匹配,实现了协议特征识别的并行化。

TCP协议特征规则库和UDP协议特征规则库的构建原理类似,因此本文以TCP
协议特征规则库的构建为例来详细描述规则库的构建方式,如图5所示。

①依次读取TCP协议特征库中的协议特征规则,将所有的协议特征规则根据AC
算法编译成特征字符规则库,并生成一个特征字符段表。

特征字符规则库包括状态转换函数goto、失效函数failure和输出函数output。

②用特征字符段表中的特征字符段序号表示TCP协议特征库中的协议特征,生成
一个变体TCP协议特征库。

③依次读取变体TCP协议特征库中的规则将所有变体TCP协议特征规则根据AC
算法编译成字符段序列规则库。

字符段序列规则也包括状态转换函数 goto、失效函数 failure和输出函数output。

构建好规则库即可进行分组并行匹配,匹配时仅需要将经过重组的数据进行解密处理后按照传输层使用的是TCP协议还是UDP协议分别与TCP协议特征规则库和UDP协议特征规则库进行匹配即可。

如图6所示,并行匹配流程为:①接收来自
传输区的数据并对其进行解析、重组、解密和分组,将分组后的数据送入相应的协议特征识别模块进行匹配;②根据AC匹配算法将数据与特征字符规则库进行匹配,输出协议特征字符段序列;③根据AC匹配算法将协议特征字符段序列与字符段序列规则库进行匹配,输出匹配结果。

(2)采用位图压缩存储的协议特征规则库。

在经典AC算法中,状态转移函数以
二维数组的形式存储,行表示状态,列表示输入该列代表的字符可转移至的状态。

通常用256列来存储256个ASCII码,每个ASCII码需要1个字节。

而采用位图存储后每个状态的1个列只需要1 bit位进行存储,即32字节就可以存储原来需
要256字节来存储的输入字符集,在状态数很多的情况下能节省大量的存储空间。

图7是协议特征规则库每个状态结点的存储结构设计。

图7中指针failptr用于指向匹配失败时的状态跳转,起到失效函数的作用;指针patternptr用于指向当前状态对应的输出字符串,起到输出函数的作用;指针nextptr用于指向从当前状态可转移至的有效状态(所有动从当前状态可转移至的有效状态采用连续存储),起到状态转移函数的作用,指针bitmap用于指示输入字符是否能够产生状态转移。

详细的匹配算法流程如图8所示。

采用位图压缩存储规则库时,每个状态只需要存储3个地址和1个32字节的bitmap,与经典AC算法采用256列的二维表相比,采用位图压缩技术存储规则库可以大量节省存储空间。

3.1 测试环境
为了测试本文提出的方法,使用C++语言在电力企业安全接入平台上以插件的形
式实现了本文方法和文献[3]中提出的方法,通过对比两者在时间消耗和内存占用上的表现分析了本方法的性能。

本实验在64位Linux操作系统上进行,CPU为2.50 GHz的Intel(R)Xeon(R),内存16 GB,编译器采用GCC。

测试数据包括协议特征规则和接入数据。

协议特征规则通过分析某省电力公司内部应用系统使用的应用层协议及其负载特征手动提取,每条规则由 1~4个特征字符段组成,如“\x16\x03\ x01.*login.{0,100}sale”表示电力营销系统中登录
行为的协议特征。

接入数据通过W ireshark软件抓取安全接入平台上2015年9
月30日—10月7日共8天的实际流量获得,并将其平均分成3组做3次实验。

3.2 结果分析
(1)时间开销测试结果及分析。

消耗的时间通过输出匹配结果的最后时间减去预
处理开始的时间计算得到。

由实验结果可知,本文提出的方法比文献[3]提出的方法平均节省10.28%的时间(见图9)。

虽然预处理过程中的分组操作和引入位图略微增加了时间上的开销,但是并行处理仍然能较好地减少协议特征识别整体的匹配时间。

(2)内存占用测试结果及分析。

占用的内存空间通过规则库构建完成的内存占用量减去预处理开始时的内存占用量计算得到。

在本次测试中用同样的协议特征数据进行3次实验,如图10所示,由实验结果可知,本文提出的基于位图压缩的规则库存储方法能节省27.64%左右的内存空间。

针对电力企业安全接入中协议特征识别过程的内存消耗大、匹配时间长的问题,本文提出了基于AC算法的协议特征识别方法,并对该方法进行了性能测试,结果表明该方法能有效地提高系统匹配数据包的吞吐量,降低协议特征识别过程中的内存占用,能较好地平衡系统的空间开销和时间开销,提高电力企业安全接入的性能,从而增强电网与用户互动的安全性。

【相关文献】
[1]王志贺,骆钊,谢吉华,等.基于SM2密码体系的SD卡的电力移动终端安全接入方法[J].中国电力,2015,48(5):75-80. WANG Zhihe,LUO Zhao,XIE Jihua,et al.Secure access of electric powermobile terminal using SM2-crypto-system-based SD card
[J].Electric Power,2015,2015,48(5):75-80.
[2]朱晓燕,方泉.美国电力行业信息安全运作机制和策略分析[J].中国电力,2015,48(5):81-88. ZHU Xiaoyan,FANG Quan.Study on mechanism and strategy of cybersecurity in U.S.electric power industry[J].Electric Power, 2015,48(5):81-88.
[3]李天磊.面向高速网络的细粒度网络应用协议识别技术研究[D].北京:北京邮电大学,2015.[4]王永成,沈州,许一震.改进的多模式匹配算法[J].计算机研究与发展,2002,39(1):55-60.WANG Yongcheng,SHEN Zhou,XU Yizhen.Improved algorithms formatchingmultiple patterns[J].Journal of Computer Research and Development,2002,39(1):55-60.
[5]杨超.双向AC算法及其在入侵检测系统中应用[J].计算机系统应用,2011,20(3):
222-225. YANG Chao.Two-way AC algorithm and its application to intrusion detection system[J].Computer Systems&Applications,2011,20(3):222-225.
[6]徐红,秦志光.一种面向入侵检测的改进AC算法[J].微电子学与计算机,2010,27(11):109-112.XU Hong,QIN Zhiguang.An improved AC algorithm for intrusion detection [J].Microelectronics&Computer,2010,27(11):109-112.
[7]吴玉.基于DPI的流量识别与控制系统的设计与实现[D].北京:北京邮电大学,2014.[8]程博.基于DPI的流量识别与控制系统的研究与设计[D].北京:北京邮电大学,2014.[9]吴克河.电力企业移动安全接入平台[J].计算机系统应用,2014,23(7):31-36. WU Kehe.Wireless security access platform in power utilities[J]. Computer
Systems&Applications,2014,23(7):31-36.
[10]张晓良.基于隧道技术的移动终端安全接入系统研究与实现[D].北京:华北电力大学,2012.
[11]张云.电力营销终端安全接入系统的研究与实现[D].北京:华北电力大学,2013.
[12]李天磊,马兆丰.应用层协议识别中算法的改进[C]//中国通信学会青年工作委员会.第十九届全国青年通信学术年会论文集.上海:第十九届全国青年通信学术年会,2014:32-36.。

相关文档
最新文档