时间:2024-07-28
段仁武
(六安职业技术学院信息与电子工程学院 安徽六安 237158)
互联网与各生产领域的融合使得计算机网络环境日益复杂化,不合法的网络入侵行为大幅度增加。各种入侵检测方案层出不穷,其目的是动态监控网络环境中的数据传输情况,发现可疑攻击行为进一步进行数据挖掘,最终准确分辨出入侵行为及攻击类型,增强网络运行的安全系数与保密特性[1]。入侵检测本质是网络的第二道安全防线,在防火墙的基础上进行安全检测优化,高强度防御外部入侵数据与行为。网络入侵数据之间存在一定的关联性,挖掘其中的关联规则即可探寻当前传输的数据中是否存在入侵行为[2]。据此,文章使用关联规则算法Apriori算法设计一套可以处理海量数据的网络入侵数据挖掘方案,解决当前入侵攻击行为方法检测效率低、检测误差大等问题。
Apriori算法是基于关联规则挖掘数据的主要实现方法,首先描述关联规则完成计算机网络入侵数据挖掘的主要原理。关联规则可以探寻计算机网络数据项目之间或者是项目内部的关联关系,表达形式描述为X→Y,X项集与Y项集的关系为相互独立,X∩Y≠Ø。公式(1)与公式(2)为关联规则关联性的完整体现:
(1)
(2)
公式(1)与公式(2)分别对项集间的支持度与置信度进行了描述。X、Y的总数用N表示,公式可解释为:使用支持度与置信度挖掘不同数据项集间的内在关联[3]。因此关联规则定义为:存在集合I={l1,l2,…,lq},项集则是其中的lj项,j取值在1与q之间。用T对项集集合命名,T关系集合定义为D,此时T⊆L。关联规则中的每一个关系都存在一个标识TID。经上述描述可以将关联规则总结为:对所有符合支持度与置信度的项集进行匹配,且使其大于预设的最小支持度与置信度[4]。频繁项集生成与关联规则生成是算法实现的两个关键步骤,前者负责挖掘最小支持度阈值项集,后者以前者生成的频繁项集为前提挑选强关联规则。
在计算机网络入侵数据挖掘问题中,将挖掘算法生成的警报视为事务,入侵者正式入侵前进行多次尝试行为,形成重复模式,对应的重复序列则是频繁产生的警报集合。Apriori算法挖掘计算机网络入侵数据关联规则的过程描述为:
(1)D表示事务数据库,E1表示1-候选项集,扫描数据库后求取全部E1的支持度;比较最小支持度与当前计算得到的支持度值,将不小于最小支持度的结果作为频繁1项集的元素,构成H1。
(2)将H1添加到自身项集中,通过修剪操作得到1-候选项集命名为E2;继续利用不小于最小支持度的项目作为元素构成频繁2项集,构成H2。
(3)继续利用H1得到H3,如此循环操作,Hk为空集时终止迭代,算法停止运行。
传统的Apriori算法挖掘网络入侵数据关联规则存在提取规则过程繁琐、冗长等问题,最终导致算法收敛效率低、精确度不足等问题。为提升计算机网络入侵数据挖掘性能,基于粒子群优化算法改进Apriori算法提取关联规则的过程,选择最优的关联规则,准确识别网络入侵行为。
引力搜索粒子群算法运算参数少、适应性强,与粒子群算法结合的优点在于能够吸引质量低于本身的粒子,提升粒子信息交互的频次与有效性,丰富粒子多样性[5]。为此将引力搜索算法与粒子群算法结合,联合改进传统Apriori算法提取规则的性能。
基于引力搜索粒子群算法改进Apriori算法过程中,其编码方式与策略如下:基于离散二进制编码方法确定粒子位置信息,因为关联规则对应的数据挖掘解空间是一个离散性质的数据库;具体将单个粒子视为一条关联规则,事务集包含n个事务时利用n维数组描述粒子位置;各项目包含两部分,0、1是这两部分的可能性数值构成。
基于引力搜索粒子群算法改进Apriori算法过程中,适应度函数设计如下:将粒子群算法的目标函数作为粒子搜索的引导依据,以评价个体的适应度值[6]。所以构造适应度函数作为评价函数精准评估每个个体情况。置信度与支持度在适应度函数构造中的定义为:
(1)X和Y的事务在数据库中的比重描述为K(X→Y),计算表达式如下:
(3)
(2)全部涵盖X的事务且涵盖Y的事务比重用Z(X→Y)描述,计算表达式为:
(4)
利用支持度与置信度构造的适应度函数如公式(5)所示:
F(X)=δK(X)+θZ(X)
(5)
式(5)中,置信度与支持度用Z(X)、K(X)表示;引入δ、θ作为支持度与置信度在适应度函数中的调节参数,取值均在0~1之间,且满足δ、θ之和为1的条件。公式中如果δ取值为0说明此时规则中仅包含置信度概念,生成的规则可能是支持度较低、置信度较高的状态,所以这类规则对于解决网络入侵数据挖掘问题而言无效。同时,若θ取值为0说明当前规则仅包含支持度,因此那些置信度高、支持度较低的规则往往不包含其中,但是这一部分规则对于解决网络入侵数据挖掘问题而言存在一定的价值。
此外,粒子的速度、位置更新方法参照谢国民等人的研究[7]。
当前计算机网络每日产生的数据量巨大,其中不明身份的数据入侵行为逐渐增多,为了优化Apriori算法挖掘入侵数据的效率,在Hadoop框架下运行数据挖掘算法,提高入侵行为检测的并行化水平。Hadoop大数据运行集群采用MapReduce编程模型实现并行运算[8]:
(1)Map映射函数负责接收样本数据将其转换为
(2)Reduce归约函数以Map函数键值为基础归约value值,减少
Jobtracker和tasktracker是两个关键的后台运行程序,前者任务是将作业任务合理分配到各节点,实时监督任务执行情况,提供相关数据管理服务;后者负责执行Jobtracker分配的任务,阶段性向其提供任务执行反馈。
在Hadoop集群下搭建计算机网络入侵数据挖掘测试环境,部署一台Name Node节点,10台Data Node节点,节点计算机使用英特尔©酷睿i7处理器。以从事网络运营的公司为对象采集计算机网络入侵数据,构建G1、G2、G3、G4、G5入侵测试数据集。同时将基于神经网络的网络入侵数据挖掘方法、基于k-means的网络入侵数据挖掘方法作为对比测试方法,以评估本文方法在网络数据入侵挖掘中的性能。表1和图1分别为实验过程中记录的三种方法挖掘网络入侵数据的准确度与用时情况。
表1三种方法挖掘网络入侵数据的准确度统计(%)
图1三种方法挖掘网络入侵数据的时间开销
结合图1和表1数据可知,文章方法挖掘计算机网络入侵数据的准确度在96%以上,可信度较强;随着节点数量的增加,文章方法数据挖掘的用时大幅度降低,当计算机节点数量由4个增加至6个时,数据挖掘的时间开销由1580s降低至约1040s,随后时间开销保持在980s左右。相比之下,基于神经网络的网络入侵数据挖掘方法、基于k-means的网络入侵数据挖掘方法的准确度低于文章方法且没有达到理想状态,随着节点增加算法运行时间减少的幅度较小,数据挖掘效率不佳。
文章提出一种基于Apriori算法的计算机网络入侵数据挖掘方法,为高精度识别网络入侵行为提供可行性方案。文章方法在运行效率与挖掘精度上基本可以满足网络数据入侵识别的要求。这是因为本文方法对传统Apriori算法进行改进,利用引力搜索粒子群算法优化Apriori算法的规则提取性能,剔除更多强度不高的关联规则;同时在Hadoop集群MapReduce编程模型下执行改进Apriori算法,实现数据挖掘任务的并行式运行。以上两种策略分别从挖掘准确度与效率两个层面改进了传统Apriori算法,经测试,文章方法在网络入侵检测领域具有较高的推广应用价值。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!