APP下载

一种基于数据挖掘的网络入侵检测系统设计与实现

2021-01-11古险峰

关键词:数据挖掘关联规则

古险峰

(郑州工业应用技术学院信息工程学院,河南郑州451100)

随着互联网规模的快速发展,网络已成为人们生活不可或缺的一部分,网络安全也面临着各种各样的挑战[1].黑客对计算机网络的非法入侵、病毒的攻击都给网络和信息系统带来了巨大的挑战,针对这些情况,人们对网络系统进行了各种保护.常见的网络安全措施有数字签名技术、生物识别技术、内容过滤技术、网络隔离技术等,这些防御措施虽然在一定程度上使得网络免受外界的干扰,保证信息快速及时有效传输,但也存在误报、漏报率过高等缺陷,难以真实有效地对攻击进行检测,且只能对已有数据库的数据进行检测,随着攻击的增多,数据库越来越大,导致检测效率低下,同时带来系统的臃肿[2].基于数据挖掘的网络入侵检测,通过对大量的数据进行挖掘得到隐含的、未知的潜在有用信息,精准得到入侵数据之间的关联特性,避免手工分析带来的巨大工作量和人为因素的干扰,减轻运行和维护成本[3].

1 入侵检测

1.1 入侵检测技术及分类

20 世纪80 年代入侵检测技术(IDS)作为一种积极主动的防御技术被提出,通过收集计算机中的关键信息进行分析,进而得出网络中是否有违反安全策略和被攻击行为的发生[4].入侵行为分为内部入侵和外部入侵,内部入侵主要指合法用户的越权行为,外部入侵则指黑客或者非法用户的侵入,入侵行为会对网络数据的完整性、有效性和私密性带来威胁,针对不同的入侵行为检测技术侧重点不一样[5].入侵检测的分类,依据不同的对象结果不同,异常检测和误用检测是根据检测技术不同划分的;基于网络和基于主机则是依据数据来源不同进行划分的;按照检测时间则可以划分为实时和非实时[6].入侵检测系统模型有统一模型和Snort 模型,主要由事件产生器和事件发生器以及响应单元和数据库构成,模型如图1所示.

图1 入侵检测系统模型Fig. 1 Intrusion detection system model

1.2 入侵检测的过程分析

面对入侵行为,网络系统的检测主要由4 个步骤组成:①数据收集阶段,通过外置传感器或不同的代理主机来搜索系统的初始信息,主要包括用户的行为和状态以及网络的基础数据;②数据处理阶段,针对收集到的不同类型数据,将其进行加工,变换为计算机识别的统一格式,提高检测的时效性;③数据分析,对收集来的信息进行初步的分析,通过与已知数据库进行模式匹配或者利用概率论进行统计分析,将得到的不确定危险数据传输给控制模块;④系统响应,通过与规则库进行匹配,采取相应的应对措施,如重新配置路由器、隔离入侵者IP、修改文件属性等[7].入侵检测过程如图2 所示.

图2 入侵检测过程Fig. 2 Intrusion detection process

2 数据挖掘在入侵检测中的应用

2.1 数据挖掘技术

数据挖掘是在大量模糊的、有噪声的无规则数据中,发掘潜在的、有关联性的模式或规则.数据挖掘的实现主要由3 个过程构成:①数据的准备阶段,包括数据目标选取发现操作对象、不同类型数据的预处理和噪声消除、数据的降维变换等;②数据挖掘,根据不同的数据挖掘模型,确定与之匹配的挖掘算法,从大量不完整、无规则的数据中发现潜在有关联性的数据,以便对结果进行预测;③数据的表示和评估,对数据挖掘得到的信息进行关联规则、分类、聚类分析,从而得到挖掘数据的价值,进而以一种简单的易于理解的形式表现出来,实现数据的可视化[8].数据挖掘系统结构如图3 所示.

图3 数据挖掘系统结构Fig. 3 Data mining system structure

2.2 面向入侵检测的数据挖掘算法

面向入侵检测的数据挖掘算法是入侵检测系统中最重要的一环,不同的数据挖掘算法针对不同的模型有不同的优缺点,统计分析、特征分析、变化和偏差分析、聚类是数据挖掘的经常使用的分析方法,而关联规则则是数据挖掘算法的重点,代表数据相互之间的关系[9].关联规则的数学描述为:假设存在数据库D,数据库中有m 个信息,每个信息为Ti,每个信息由n 个单元I 构成,它们之间的关系为描述为:D={T1,T2……Tm},T={I1,I2,……In},数据库的子集用A 表示,如果存在 A =K,那么称A 为K 的项目集,数据库D 包含项目集A 的支持度用Cx表示,如果存在项目集A、B 那么它们之间的关联规则为

式(1)、式(2)中:Support(A)为数据库D 中项目集A 的支持度,Confidence(A)为置信度,计算方式为

因此,我们可以通过项目集A、B 之间的支持度和置信度来确定两个项目之间的关联规则,假设关联规则 A ⇒B的置信度 Confidence ( A ⇒B)不小于项目集的最小置信度,且 A ⇒B的支持度大于或等于最小支持度,那就意味着项目集A、B 之间存在强关联规则,反之则意味着它们之间关联规则极弱.项目集A、B 之间相关性也可以通过度量来表示

式(4)中:A、B 的平均值为 A, B ,标准差为 σA,σB.

关联规则可以提取出入侵行为之间的关联性,进而可以发掘潜在的、有关联性入侵模式或规则,通过Apriori 算法,对已有的入侵数据进行数据挖掘,得出关联规则,部分代码为:

Apriori begin

L1=find_frequent_1-itemse(tD);

Fo(rk=2;Lk-1≠ Φ;k++);

{Cx=aprior(iLk-1,min_sup);

For each transaction tD;// 扫描数据库D

Ct=subse(tCk,t);// 从候选集中选择关联子集

for each candidate c Ct;

c.count++;

}

Lk={c∈Ck}

}

Return L=UkLk;

if S ∈Lk-1then;

return TRUE;

return FALSE;

3 基于数据挖掘的入侵检测系统设计

3.1 入侵检测系统总体设计

为了实现对网络数据的及时有效分析,本文将入侵检测系统总体设计的核心定义为挖掘数据之间的关联规则、数据间的序列规则以及根据规则定义的分类识别[10].由于不同系统模型对应不同的数据挖掘算法, 因此首先需要找到一种合适的入侵检测系统,Snort 检测模型作为轻量级的开源入侵检测系统,可以有效应对大部分网络攻击,但是Snort 检测模型效率不高、存在误报漏报现象、无法实时进行动态检测,因此需要对Snort 检测模型改进.总体设计思想为:

(1)在传统Snort 检测模型上增加正常行为模块,有针对性的对网络行为进行规则关联分析和聚类分析,根据这些规则过滤掉大部分已知行为信息,进而得到异常数据;

(2)通过增加规则匹配模块,对异常数据进行匹配,在减少误报漏报的同时,提升系统的检测效果;

(3)增加规则动态生成模块,使新系统具有动态扩充机制,及时有效地对规则库进行更新迭代,提升规则库的完备性.

改进后的Snort 系统模型见图4.

图4 改进后的Snort 系统模型Fig. 4 Improved Snort system model

3.2 入侵检测系统实现

基于数据挖掘的网络入侵检测,通过对大量的已知数据进行挖掘和分析,找出攻击特征作为检测依据.首先需要进行数据采集,数据采集的完整性、准确性是系统实现的关键.本文采用具有典型代表性的KDD CUP99 数据集,该数据集信息丰富,包含未经训练的网络数据作为测试集以及有标识的训练集,模拟真实网络攻击环境.训练集包含有完整的基础信息:DOS 代表具有攻击特征的数据、Normal 代表正常行为数据、U2R 代表内部低层用户的越层访问、R2L 代表外部程序的不正常来访、Probing 代表系统本身具有的探测和监视活动.

由于采集的原始数据含有噪声、冗余信息等,不能直接进行数据挖掘,因此需要对数据进行标准化处理、标准化处理后的数据采用Apriori 决策树算法得到关联规则,进而实现数据挖掘.算法实现流程为:

(1)对采集到的数据进行标准化处理,寻找发现决策树项集;

(2)循环处理,得出训练集的决策树k 项集合;

(3)对每个待测目标数据进行阅历,得出目标数据的决策树项集支持频度;

(4)通过计算网络数据包与决策树正常选项集的支持频度来确定是异常数据还是正常数据,进而实现网络入侵检测.

3.3 实验验证与结果分析

实验验证首先需要搭建软硬件环境,本文采用的主机服务器为Intel i7 处理器、32 G 内存、1T 硬盘,软件环境为VC++6.0 作为开发语言,实验数据集为KDD CUP99,数据库采用MySQL8.0.11 版本,操作系统为Windows 7,通过对不同网络入侵检测系统的误报率、漏报率以及检测时间进行验证,来评价系统的有效性.不同算法检测性能比较结果见表1.

表1 不同算法检测性能比较Tab. 1 Comparison of detection performance of different algorithms %

由表1 可知,本文设计的检测系统模型在相同测试样本下,相对于其他检测系统具有较高的准确率,同时在误报率、漏报率方面也低于其他系统,具有一定的优势.同时为了验证算法的时效性,需要对不同算法在检测时间上进行比较,以验证系统的检测效率,测试集样本数采用全部测试集,来验证系统的普适性,具体效果见表2.

表2 不同系统性能比较Tab. 2 Performance comparison of different systems

由表2 可知,本文算法在保证检测准确率的同时,检测时间相对于其他系统也具有一定的优势,具有一定的理论和应用价值.

4 小结

网络的飞速发展一方面丰富了人们的生活,同时也带来了许多网络安全问题.网络入侵检测系统作为网络防护的重要一环起着非常重要的作用,但随着网络规模的扩大以及网络攻击的多样化,传统的入侵检测系统已不能很好地适应环境.文章首先分析了入侵检测的分类及模型,以及常用的数据挖掘算法,将数据挖掘与入侵检测结合起来,并通过Apriori 决策树得到关联规则,进行数据挖掘,最终实现检测系统的设计与实现,并与其他系统在准确率和检测时间上进行比较,得出本系统的应用价值.同时,在面对入侵行为的多样化以及多元化时,应用层侵检和自适应侵检是未来入侵检测技术的主要发展方向.

猜你喜欢

数据挖掘关联规则
撑竿跳规则的制定
数独的规则和演变
探讨人工智能与数据挖掘发展趋势
“一带一路”递进,关联民生更紧
奇趣搭配
让规则不规则
基于并行计算的大数据挖掘在电网中的应用
智趣
TPP反腐败规则对我国的启示
一种基于Hadoop的大数据挖掘云服务及应用