基于APT攻击的网络检测系统算法优化

2019-11-05 10:20蔡晶晶郑学智
计算技术与自动化 2019年3期
关键词:入侵检测

蔡晶晶 郑学智

摘   要:以Snort为核心,以分层分布式网络为框架构建基于APT攻击的入侵检测模块的防御系统,并提出了一套新的OTN动态匹配算法。首先,介绍了APT攻击的特点。然后提出了一套针对APT攻击的基于Snort的防御检测模型,并在Snort原有的三步动态调节算法的基础上,提出了一个新的动态匹配算法。最后,用原有的动态匹配算法与改进型动态匹配算法做对比实验,对最终结果进行对比分析。得出结论,采用新型动态匹配算法的分布式网络检测系统对网络安全防护的功能有明显的提高。

关键词:入侵检测;Snort;APT;匹配算法

中图分类号:TP393                                           文献标识码:A

Abstract: This paper takes snort as the core and builds the defense system of APT attack-based intrusion detection module based on hierarchical distributed network, and proposes a new OTN dynamic matching algorithm. Firstly, the characteristics of APT attacks are introduced. Then a set of snort-based defense detection model for APT attacks is proposed. Based on the original three-step dynamic adjustment algorithm of snort, a new dynamic matching algorithm is proposed. Finally, a new dynamic matching algorithm is proposed. Using the original dynamic matching algorithm and the new dynamic matching algorithm to do the contrast experiment, the final result is compared and analyzed. and the conclusion is that the distributed network detection model using the new dynamic matching algorithm can better meet the needs of network security protection.

Key words:intrusion detection;Snort;APT;matching algorithm

随着网络技术的不断革新,互联网信息共享已经成为了一种趋势,但是,网络信息攻击也随之而来,海量的用户信息成为了不法分子谋取暴利的目标,Google、Yahoo、Comodo等企业纷纷受到黑客攻击,网络安全令人担忧。在众多网络攻击中,APT(Advanced Persistent Threat)攻击已经成为网络安全的最主要威胁,防火墙等传统的网络安全技术很难对其形成有效的防护。所以,对APT攻击防御检测系统的研究是十分重要的。

采用的Snort入侵检测系统,该系统采用规则描述通信,通过获取数据包,并提取数据包的特征,然后与规则文件的规则链表进行匹配,以此來检测数据包是否存在异常行为。然而snort入侵检测系统在检测阶段花费时间较长,这样大大降低了系统的响应处理效率。经过研究发现,在检测阶段耗时最大的是在对规则文件(OTN)进行匹配的过程,因此,优化OTN匹配过程可以很大程度提高系统的响应处理效率。

为了优化OTN匹配过程,提出了一套新的动态匹配算法。目前比较流行的动态规则调整算法有一步动态调整算法、两步动态调整算法、三步动态调整算法和一些基于这些算法的改进算法[1-3]。本文提出的算法就是在三步动态调整算法的基础上提出改进,减缓规则链表大幅度更改链表顺序,保障链表稳定性,同时针对APT攻击的大量重复性的特性,设置一个动态检测模块,在OTN检测前,与之前匹配成功的规则链表进行匹配,这样很大程度减少了重复攻击的匹配次数,减少了匹配时间,提高系统响应效率。

1   相关技术介绍

1.1   APT攻击

APT(Advanced Persistent Threat)即高级持续性渗透性攻击。从命名中可以看出该攻击具有高级和持续两个特点,高级是指该攻击在入侵网络的手段和方式复杂多变,防御难度较大,持续是指攻击持续时间较长,造成的危害也较大。最早被人们熟知的一种APT攻击为“震网”(sruxnet)病毒,该病毒爆发于2010年,已经给多个国家造成巨大的损失。国际著名安全产品商趋势科技在2013年发布了应对APT攻击的智慧防护策(Smart Protection Stratery),来防御APT攻击。

经过研究发现,APT攻击通常是在宿主网络内利用漏洞植入木马,长期潜伏在宿主网内[4]。当APT对网络进行攻击时分为四个步骤:1.信息采集阶段。在这个阶段,攻击发起者会利用各种工具对受攻击者网络系统中的所有可采集的信息进行收集并整理分析,然后通过逻辑判断,得到它所需要的有用信息。2.入侵期。攻击发起者利用第一步采集的信息,绕开目标网络的网络安全产品的检测,进入目标网络内部,进一步收集用户的信息。3.潜伏期。APT攻击潜伏在目标网络系统中,且不被安全检测产品发现,在有需要时才激活进行信息窃取。4.退出期。信息窃取结束后,退出目标网络,并清除攻击痕迹,删除相应的日志文件,让目标网络无法察觉,以便下次继续攻击。通过分析APT攻击四个步骤,我们可以得出结论:大部分的入侵是在网络中进行的,因此对网络流量进行密切监控和处理能在防御APT攻击方面起到重要作用。

1.2   基于Snort的入侵检测技术

入侵检测系统技术是一个实时的安全检测技术[5],能够对网络中异常行为做出告警。其中Snort是一个著名轻量级的开源网络型入侵检测系统(NIDS)。其具有结构简单,功能强大且对系统资源占用也较小等优点,在后期经过连续的改进和功能不断添加完善后,Snort已成为业内主流的NIDS系统。

Snort总体结构由预处理软件模块、检测插件模块和报警输出模块组成。主要功能包括:捕获数据包、对捕获的数据包进行记录和实时网络入侵行为检测[6]。当Snort工作在NIDS模式下时,主控模块完成各模块的初始化,初始化结束后,系统开始抓包,解析模块将抓取的数据包进行解析,预处理模块则负责对报文分片重组,然后就是Snort的核心模块——检测分析模块进行检测匹配:检测分析阶段首先读取Snort的规则文件,并使用三位链表的方式对规则文件进行解析[7],生成相应的规则链,然后进行匹配。最后根据匹配的结果,响应输出模块会产生响应的结果反馈给管理人员。Snort工作流程如图1所示。

2   基于OTN匹配算法的优化

基于Snort构建的检测防御系统在处理异常数据包时,由于其处理方面单一的特点,处理时间会非常快速,然而,在检测阶段所花费的时间会比较长,其中,数据包匹配过程耗时最多[8]。通过研究发现,在数据包匹配过程,很大一部分的时间花费在OTN(规则选项)匹配过程,占整个过程的31%[9]。因此,本文主要对OTN匹配算法进行优化,减少对OTN的匹配时间,通过优化匹配算法提高系统的性能。

2.1   基于静态的规则调整算法

静态的规则调整算法[10]是目前减少重复性OTN匹配过程的主流方案之一。该算法主要是采用统计分析Snort检测日志中对各个规则的匹配频率,然后根据正态分布的方式来调整OTN在规则链表中的顺序,使匹配频率高的OTN的位置提前。这种算法一定程度上优化了系统性能,然而,该算法的时效性很低,在APT攻击发生改变时,无法满足用户对系统的要求。

2.2   改进型三步动态规则调整算法

动态的规则调整算法就是在Snort运行过程中,根据实时OTN匹配频率动态的调整规则链表中对应的OTN节的位置,减少OTN匹配过程,因为改方法时实时调整的,所以具有很强的时效性。

采用动态的规则调整算法的思路,提出一种改进型的三步动态调整算法,图2为Snort规则三层链表:

如图2所示,Snort是通过规则来描述通信,规则根据响应动作生成不同链表头,来决定匹配过程结束后采取的动作。如log类型匹配过程结束后,会记录在相应的日志文件里面。然后根据协议类型生成对应的规则树节点。规则树节点包含规则头部(RTN)、规则选项(OTN)和函数指针。进行规则匹配时先进行RTN匹配,然后进入OTN匹配过程。改进型算法是在RTN匹配和OTN匹配过程中间加入特征参数匹配(SV)以及异常OTN节点(EV)匹配两个匹配过程。

第一步:在进行RTN匹配过程后,在Snort算法基础上,使用宽度优先算法。经过对大量规则文件的整理分析,提取出规则文件具有的相同值(特征参数),然后在RTN节点和OTN节点之前添加一个新的数据结构SameValue(SV),将提取的特征参数存储到该数据结构中。这样在匹配过程,Snort检测模块会在进行OTN匹配之前先进行SV匹配,若在此过程触发了告警,则不需要进行OTN匹配,若未发生告警,则进入下个匹配过程。

第二步:在SV和OTN节点中间添加一个数据结构EV(ErrorValue),并给该数据结构建立一个相应的索引节点。用来存储上一次匹配过程中匹配成功且匹配次数小于2的OTN节点。匹配初始化时该存储单元清零,当后续OTN匹配过程中匹配成功后,匹配成功的OTN节点被该数据结构的索引指针定位,下次匹配时在OTN匹配前进行EV匹配,若匹配成功则触发告警,若未发生告警则进入下个匹配过程。

第三步:给每一个OTN节点建立一个相对应的索引节点,构造与规则链表一一对应的索引链表结构,在进入OTN匹配过程时,将根据索引链表进行匹配,当OTN节匹配成功,则检查该规则的匹配频率,若匹配频率为3,则匹配频率不变,该OTN节对应的索引位置调到索引链表首部,并将EV的定位指针指向该OTN节点;若匹配频率为2,匹配频率加1,该OTN节对应的索引位置调到索引链表首部,并将EV的定位指针指向该OTN节点;若匹配频率为1,匹配频率加1,该OTN节对应的索引位置调到当前位置的1/2,并将EV的定位指針指向该OTN节点;若匹配频率为0,匹配频率加1,该OTN节对应的索引位置调到当前位置的2/3,并将EV的定位指针指向该OTN节点。算法流程图如图3所示:

改进型的的三步动态调整算法,在针对APT大量重复性攻击的方面有着自己的优势:1.通过设置的SV节点,该节点存储了大部分规则文件的特征参数,在进行OTN匹配过程前进行SV匹配,这样减少了OTN的匹配过程;2.三步调整算法虽然减缓OTN对应索引在索引链表的上升到首位的速度,增强了链表的稳定性。然而,经过对大量入侵信息统计并分析,我们发现,在面对网络攻击时,在一时间段内,系统受到的攻击基本以同一类型的攻击为主,原来的三步调整算法每次依然从链表的首位开始检测,会产生大量重复匹配过程,影响系统性能。而改进型动态三步调整算法,在原三步动态调整算法基础上,增加了EV节点,用于存储前一次匹配过程中匹配成功的OTN节,这样在下一次匹配中若是相同类型的攻击,则会在EV匹配中直接检测出异常。改进型三步动态调整算法有两个优点:1.在一次匹配成功后,将匹配成功的OTN节点存贮在EV节点里面,这样相同类型的攻击,在进行EV检测时就会检测出来,避免了大量的重复性检测,大大提高系统性能;2.再三步动态规则匹配算法基础上,进一步减缓了OTN节点上升的步伐,加强了索引链表的稳定性,同时提升了系统处理网络攻击检测的效率。

3   实验验证

3.1   算法改进后系统功能测试

本实验目的在于检测改进型三步动态匹配算法对Snort检测系统优化的效果。实验中需要对Snort的检测时间进行统计分析,因此需要保证实验数据源的统一性和丰富性,为此我们选择kdd99数据集作为实验数据源。在安装Snort引擎的终端上通过命令读取Kddcup99文件进行测试。实验时Snort检测系统分别采用三步动态调整算法和改进型三步动态调整算法进行入侵匹配,并采用多次测试,将实验所用的数据分为12份,每份包含1000个待检测的数据包,分析比较两种算法下系统检测消耗的时间。如图4所示:

从实验结果可以看出,Snort的规则匹配算法采用改进型三步动态匹配算法后,系统对数据包处理的熟虑有明显的提高。对12次实验得出的数据进行统计可以看出。系统采用未改进的三步动态匹配算法所用的处理时间平均为56.950 s,采用改进型动态匹配算法所用处理时间平均为54.892 s,时间减少约3.6%,由此,可以证明Snort系统采用的改进型三步动态匹配算法是比较成功的。

3.2   算法改进后系统性能测试

对入侵检测系统的性能评估主要以两个个因素作为评估标准,即误报率和漏报率。由于吞吐量在一定程度上标示了检测系统的负载能力,吞吐量过低也会影响系统的漏报率,所以,系统的吞吐量也应列入评估系统性能的标准中。

本实验依然使用kdd99数据集作为实验测量的数据源,在Linux环境下安装Tcpreplay工具,用于回放实验数据集。使用部署了改进型三部动态匹配算法的Snort引擎的入寝检测系统以及部署未改变算法的Snort引擎的入侵检测系统,接收并处理由数据源传播过来的数据,统计分析系统的误报率、漏报率以及吞吐量信息。

如图5所示,对测试对比结果分析可知,使用改进型三步动态匹配算法的检测系统,在漏报率方面有明显的提高,在误报率方面提高不是很明显,在吞吐量方面则有非常明显的提升。从整体来看,我们对匹配算法的优化减少了匹配过程,优化了入侵检测系统的性能。

4   结论

基于Snort引擎的入侵检测系统,具备对网络流量进行入侵检测、分析以及鉴别功能并对异常行为做出告警。针对Snort采用将特征与异常行为进行匹配的检测机制,提出的改进型三步动态匹配算法主要在两个方面提高系统功能:1.减少了规则匹配过程,使系统能快速检测处网络攻击,提高了系统得功能效率;2.算法改进后,系统的漏报率以及吞吐量有明显的优化,系统的性能也得到一定的提高。實验证明改进的算法提高了检测系统的效率,更好的保障了处于APT攻击威胁的网络的安全性。

匹配算法是提高Snort检测效率的一个重要因素,减少匹配过程,快速将匹配结果传递给系统是Snort发展的一个重要方向。未来Snort会采用更有效率的检测技术,如神经网络技术、云计算技术等,这些技术会将提高Snort系统的性能,提高入侵检测系统的效率,更好的保护网络资源,给用户一个安全的网络环境。

参考文献

[1]    LI F,LAI A,DDL D. Evidence of advanced persistent thread:a case study of malware for political espionage[J]. Malicious and Unwanted Software(MALWARE),2011:102—109.

[2]    SHAS S,ISSAC B. Performance comparison of intrusion detection systems and application of machine learning to Snort system[J]. Future Generation Computer Systems,2018,80:157—170.

[3]    韩国华. Snort入侵检测系统规则匹配算法研究[D]. 重庆:重庆大学,2012,1—56.

[4]   杨军. APT攻击技术及其安全防护研究[A]. Information Engineering Research Institute,USA.Proceedings of 2012 International Conference on Earth Science and Remote Sensing(ESRS 2012)[C].Information Engineering Research Institute,USA:Information Engineering Research Institute,2012:930—935.

[5]    李伟.入侵检测技术在计算机网络安全维护中运用[J]. 国际公关,2019(06):210.

[6]    卢荣.基于Snort的分布式入侵检测系统[J]. 信息系统工程,2015(01):134—135.

[7]    靳守业. 面向轻量级入侵检测系统性能优化研究[D].国防科学技术大学,2014.

[8]    巩书丽. IDS中高效字符串匹配算法的研究与应用[D]. 沈阳:东北大学,2010.

[9]    王会霞,成国永,韩永飞. 提高Snort规则匹配速度方法的研究[J]. 电脑与信息技术,2013(1):30—33.

[10]  周延森. 网络入侵检测匹配规则库的动态调整算法的研究[A]. Intelligent Information Technology Application Association. Proceedings of the 2011 International Conference on Software Engineering and Multimedia Communication(SEMC 2011 V1)[C]. Intelligent Information Technology Application Association:智能信息技术应用学会,2011.

猜你喜欢
入侵检测
多Agent的创新网络入侵检测方法仿真研究
基于入侵检测的数据流挖掘和识别技术应用
艺术类院校高效存储系统的设计
基于关联规则的计算机入侵检测方法
无线传感器网络发展历史及安全需求及技术挑战
无线传感器网络入侵检测系统综述
人工神经网络的改进及其在入侵检测中的应用
基于Φ—OTDR的分布式入侵检测系统的应用综述
一种基于数据融合的新的入侵检测框架