浅谈数据挖掘在网络入侵检测中的分析
随着网络技术的不断发展, 网络已经成为人们生活和工作中不可缺少的一部分, 人们对于网络的依赖度越来越高。由于网络共享性的特点, 使得网络给人们带来巨大经济效益和便利的同时, 也给人们的财产和个人隐私带来了安全隐患。据统计, 超过90%的企业网被入侵过, 随着网络与经济的相结合, 黑客已经由早期的技术炫耀向利益驱动转变, 这使得关系企业命脉的网络受到更多的攻击。当前保护网络安全主要采用的技术手段有: 数据加密、防火墙、认证、数字签名、安全协议及入侵检测等, 其中防火墙是当前应用最广泛的技术, 但防火墙在应对开放端口攻击、未设置策略攻击及内部发起的网络攻击时, 存在着严重的不足。入侵检测可以将来自内部和外部的攻击进行检测分析, 成为网络安全的重要组成部分。
1 数据挖掘
1.1 概述
数据挖掘是20 世纪90 年代为了从大量的数据中获取有效的、具有潜力的信息而兴起的数据库技术, 经过20 多年的发展, 已经成为数据库技术的一个重要分支。数据挖掘是一门综合性非常强的学科, 集合了数据库、机器学习、人工智能、统计学等多个学科, 在未来的发展中具有广阔的应用前景。数据挖掘是从大量杂乱的数据中提取有用信息的过程,也就是所谓的知识发现。
数据挖掘主要有3 个过程, 其中数据准备有数据集成、数据选择和预处理3 个步骤, 数据集成是将不同的数据源中数据以某种特定的形式组成在一起, 数据选择是对集成后的数据提取相关的任务数据, 形成目标数据, 预处理则将目标数据转变为适合数据挖掘的数据形式; 数据挖掘是利用智能的方法提取相关的数据; 结果表达和解释是以何种方式将知识结果以用户可接受模式进行展示。
1.2 数据挖掘的数据模式
数据挖掘可以根据不同的需求采用以下几种数据模式进行数据的查找:
数据区分: 将当前的数据对象与用户所定义的对象进行特征比对, 找出符合条件的数据, 排队无关的数据。
分类: 对已进行标记的数据进行分类, 用于区分不同的数据类型。
数据特征化: 将满足某一特征的数据集合在一起。
聚类分析: 对数据进行分类, 它要求聚合在一起的数据类中的数据相似度尽可能的大, 而类与类之间的数据相似度尽可能的小。
频繁模式: 根据数据在模式中出现的次数进行分类。
演变分析: 数据随着时间的变化而呈现出一定的规则进行分类。
预测: 根据需求建立一种连续的函数模型, 对未知的数据进行预测分析。
2 入侵检测
2.1 入侵检测的分类
入侵检测是通过对主机的日志或网络的数据流进行分析,当查出异常情况时及时发出报警, 从而达到系统避免攻击的效果。
入侵检测的一般过程是首先搜集来自网络及用户的信息;其次对信息进行筛选和分析; 最后是处理信息, 得出是否阻止入侵的结果。当前入侵检测根据数据来源的不同分为基于主机的入侵检测系统和基于网络的入侵检测系统两种。
基于主机的入侵检测系统
该模式主要以网络、主机和系统的日志作为数据来源, 该检测系统的优点是: 可以在加密的通信环境下运行, 由于是对主机的日志系统进行分析, 熟悉本地的加密和访问控制机制,较易地检测出应用层的攻击, 对文件系统进行全面的分析和检测。但是也存在不足, 其主要表现在: 对于网络的拓扑结构认知不足, 对于攻击的实时性上反应不足, 由于对系统日志进行分析检测, 当检测出异常时, 可能就已经受到攻击了, 另外该检测主要针对应用层, 对于低层协议的攻击无法检测。
基于网络的入侵检测系统
该模式主要以网络的数据流作为数据来源, 其优点主要表现在: 成本较低, 可以对整个局域网进行检测; 实时性好,一经发现数据流的数据出现异常, 就及时进行报警处理; 安全性能好, 可以对来自外网的数据流进行分析, 使受攻击的系数降低。网络入侵检测系统的不足之处主要表现在: 当网速快于系统的反应, 数据包可能会丢失, 限制了网速; ☢对高层的应用层检测能力不足, 无法通过数据流对应用层进行分析; 对加密的攻击性数据流无法准确检测出来。
2.2 入侵检测分析方法
基于异常检测的入侵检测系统
该方法的优点是无需考虑攻击类型和更新检测特征库,就能够将未知的攻击给检测出来。而缺点是前期数据的收集和学习过程必须完整且安全, 另外该方法的误报率比较高,很容易将正常的数据流当作攻击而发生报警。
基于误用检测的入侵检测系统
该方法的优点是报警的准确率比较高, 只要发现入侵行为或事件与特征库中的某一异常现象相匹配就直接报警。
3 网络入侵检测系统
对于入侵的数据来说, 都是未经处理和标记的原始数据,而且数据量比较大, 因此采用数据挖掘的方法对待检测的数据进行分析, 可以提高入侵检测系统的效率。
3.1 系统架构
ฉ整个网络入侵检测系统由嗅探器、数据预处理、事件数据库、误用检测、数据挖掘、规则库、异常处理和响应单元等组成。事件数据库是整个系统的核心, 其系유统结构如图3所示:
3.2 系统模块实现
数据挖掘模块
在系统中, 对数据流和日志进行分析, 主要依赖于数据挖掘算法, 不仅提高系统的工作效率, 而且提高了入侵检测的准确性。其核心代码如下:
int no=1,temp=0;
C[1][0].item[0]=0; if
{
C[1][1].item[1]=D[1].item[1];
}
for //for1
{
for //for2
{
temp=1;
for //for3
{
if
{
C[1][k].item[0]++;
temp=0;
}}
if
{
C[1][++no].item[1]=D[i].item[j♋];
C[1][no].item[0]=1;
}
响应单元
当系统收到异常, 响应单元会根据情况向管理人员发出警报, 系统首先会根据情况的严重状况作出第一反应, 如果情况紧急, 系统会第一时间自动切断网络, 关闭正在运行的可执行程序。如果情况不紧急, 则管理人员ถ进行手工操作,是否继续执行。
4 结语
针对数据挖掘对网络入侵检测进行研究, 分析了数据挖掘和入侵检测的基本原理, 并在此基础上设计出网络入侵检测系统。由于篇幅所限, 对于数据挖掘的一些具体算法并没有给出详细的描述, 整个入侵检测系统是一个复杂的工程,针对不同的环境有不同的要求, 希望同仁共同努力, 设计和实现适合自身的系统。