[---  资料是从免费网站上获取的,上载在这里,只为交流学习目的,文章原作者保留所有权力,
如本博客的内容侵犯了你的权益,请与以下地址联系,本人获知后,马上删除。同时本人深表歉意,并致以崇高的谢意!
erwin_609@msn.com  ---]

基于数据挖掘技术入侵检测系统研究

随着网络在现代社会中发挥愈来愈重要的作用,利用计算机网络犯罪也呈现出明显的上升趋势。如何建立安全而又健壮的网络系统,保证重要信息的安全性,已经成为研究的焦点。以往采用的方式多是防火墙的策略,它可以防止利用协议漏洞、源路由、地址仿冒等多种攻击手段,并提供安全的数据通道,但是它对于应用层的后门,内部用户的越权操作等导致的攻击或窃取,破坏信息却无能为力。另外,由于防火墙的位置处在网络中的明处,自身的设计缺陷也难免会暴露给众多的攻击者,所以仅仅凭借防火墙是难以抵御多种多样层出不穷的攻击的。

因此,为了保证网络系统的安全,就需要有一种能够及时发现并报告系统中未授权或异常现象的技术,即入侵检测技术。

1 入侵检测系统简介

入侵检测技术可以分为两类:

(1)滥用检测(Misuse Detection)滥用检测是利用已知的入侵方法和系统的薄弱环节识别非法入侵。该方法的主要缺点为:由于所有已知的入侵模式都被植入系统中,所以,一旦出现任何未知形式的入侵,都无法检测出来。但该方法的检测效率较高。

  (2)异常检测(Anomaly Detection)异常检测是通过检查当前用户行为是否与已建立的正常行为轮廓相背离来鉴别是否有非法入侵或越权操作。该方法的优点是无需了解系统缺陷,适应性较强。但发生误报的可能性较高。

入侵检测系统中的用户行为主要表现为数据形式。根据数据的来源不同,入侵检测系统可以分为基于主机的和基于网络的两种。前者的数据来自操作系统的审计数据,后者来自网络中流经的数据包。由于用户的行为都表现为数据,因此,解决问题的核心就是如何正确高效地处理收集到的数据,并从中得出结论。

2 基于数据挖掘技术的入侵检测系统

在入侵检测系统中使用数据挖掘技术,通过分析历史数据可以提取出用户的行为特征、总结入侵行为的规律,从而建立起比较完备的规则库来进行入侵检测[1]。该过程主要分为以下几步[2]:

数据收集基于网络的检测系统数据来源于网络,可用的工具有TCPDUMP等。

数据的预处理在数据挖掘中训练数据的好坏直接影响到提取的用户特征和推导出的规则的准确性。如果在入侵检测系统中,用于建立模型的数据中包含入侵者的行为,那么以后建立起的检测系统将不能对此入侵行为做出任何反应,从而造成漏报。由此可见,用于训练的数据必须不包含任何入侵,并且要格式化成数据挖掘算法可以处理的形式。

数据挖掘从预处理过的数据中提取用户行为特征或规则等,再对所得的规则进行归并更新,建立起规则库。

入侵检测依据规则库的规则对当前用户的行为进行检测,根据得到的结果采取不同的应付手段。

本文构建了一个基于数据挖掘关联分析方法的入侵检测系统,该系统主要用于异常检测。

该系统的数据来源是基于网络的,通过在网络中安放嗅探器来获取用户的数据包,然后采用协议分析的方法,丢弃有效负荷,仅保留包头部分,按特定的方法预处理后得到的数据包含7个字段:时间、源IP、源端口、目的IP、目的端口、连接的ID、连接状态。

由于TCP的连接建立包含3次握手过程,所以在所有收集的训练数据中会包括一些未能成功建立的连接,它们将对后面的数据挖掘过程产生负面影响,故应当去掉,仅保留那些反映网络正常情况的数据。对于UDP则不存在此问题,只需将每个UDP包都视为一次连接即可。  采用APRIORI算法[3]对数据进行挖掘。

APRIORI算法常用在购物篮分析中,它用于发现“90%的客户在购买商品A时也会购买商品B”之类的规则。它通常的输入分为两列:

规则输出的形式为I1&12aI5(support=2%,confidence=60%)。其中support是支持度,confidence是可信度。

将前面收集到的网络流量数据格式化成为APRIORI算法的输入形式,用连接ID代替客户ID,其他属性替代购买的商品。在给定了支持度和可信度之后,可以得到一组规则,形式为

192.168.0.50&202.117.80.8a80(support=6%,confidence=95%)

规则的含义为源IP为192.168.0.50且目的IP为202.117.80.8则目的端口是80,该规则的支持度为6%,可信度为95%。

一段时间的采样不能够完全代表用户的行为,因此有必要多次采样,并重复上述过程,然后用归并的方法将多次得到的规则集合并起来,直至不再产生新的规则为止。笔者采用此方法从大量的网络流量数据(28.8M)中可以提取出100多条规则(支持度2%,可信度85%),发现其中有很多是明显无意义的,这就需要管理员通过个人经验加以精简,最终得到可以用于检验的规则集。至此,产生的规则集已经可以比较完整地描述用户的行为特征了。将得出的规则集用于入侵检测。例如,规则库中的一条规则为

192.168.0.50&202.117.80.8a80(support=6%,confidence=95%)

而在检测的过程中发现网络数据中的一个连接源IP地址是192.168.0.50且目的IP地址为202.117.80.8,访问的端口为1000,则说明违反规则的小概率事件发生,该连接的可疑度随之增加。在实际过程中,来自同一IP地址的异常的连接可能会违反多条规则,当多个可疑度之和超过一个阈值时系统就产生报警。

采用了两组数据(实验数据来源于http:∥iris. cs.uml.edu:8080/)对此系统进行了实验。一组是已知不含任何攻击的正常数据(约30M,包含35万余条记录),该数据用于训练系统,采用以上介绍的方法,在设定支持度为1%,可信度为85%情况下,得到了17条检验规则。然后将得到的规则用于检测另一组已知包含攻击的数据(约54M,包含63万条记录),实验结果证明此方法可以有效的发现PROBING攻击。

3 结束语

随着网络的带宽迅速增长,黑客攻击手段的日趋多样,现有的入侵检测系统在网络遭受入侵时,反应较慢,实时性较差。因此,如何实时的处理网络中海量的数据,并及时的发现攻击将成为入侵检测系统下一步研究的重点。

[转载]基于数据挖掘技术入侵检测系统研究相关推荐

  1. 基于主机的入侵检测优缺点_入侵检测技术 课后答案

    – – 1 第 1 章 入侵检测概述 思考题: ( 1 ) 分布式入侵检测系统 ( DIDS ) 是如何把基于主机的入侵检测方法和基于网络的入 侵检测方法集成在一起的? 答:分布式入侵检测系统是将主机 ...

  2. 基于主机的入侵检测技术

    基于主机的入侵检测技术 审计数据的获取 审计数据的预处理 基于统计模型的入侵检测技术 基于专家系统的入侵检测技术 基于状态转移分析的入侵检测技术 基于完整性检查的入侵检测技术 基于智能体的入侵检测技术 ...

  3. [当人工智能遇上安全] 6.基于机器学习的入侵检测和攻击识别——以KDD CUP99数据集为例

    您或许知道,作者后续分享网络安全的文章会越来越少.但如果您想学习人工智能和安全结合的应用,您就有福利了,作者将重新打造一个<当人工智能遇上安全>系列博客,详细介绍人工智能与安全相关的论文. ...

  4. 二十四.基于机器学习的入侵检测和攻击识别——以KDD CUP99数据集为例

    这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Web渗透的第一步工作,涉及网站信息.域名信息.端口信息.敏感信息及指纹 ...

  5. 基于机器学习的入侵检测系统

    导 语 在过去十年中,机器学习技术取得了快速进步,实现了以前从未想象过的自动化和预测能力.随着这一技术的发展促使研究人员和工程师为这些美妙的技术构思新的应用.不久,机器学习技术被用于加强网络安全系统. ...

  6. 基于主机的入侵检测优缺点_如何建立我们的网络防线?入侵检测,确保我们的网络安全...

    目前我们的网络安全趋势日益严峻,那么如何利用入侵检测系统确保我的网络安全呢?入侵检测又是什么呢? 网络安全 入侵检测技术是为保证计算机系统的安全,而设计与配置的一种能够及时发现并报告系统中未授权或异常 ...

  7. 基于网络的入侵检测数据集研究综述(A Survey of Network-based Intrusion Detection Data Sets)

    A Survey of Network-based Intrusion Detection Data Sets 基于网络的入侵检测数据集研究综述 摘要:标记数据对于基于异常的网络入侵检测系统的训练和评 ...

  8. 煤炭企业基于数据挖掘技术的云ERP应用分析

    2019独角兽企业重金招聘Python工程师标准>>> 0前言 随着以计算机为主的信息技术的发展,煤炭企业的数据量越积越多,但其中能为企业管理者有用的信息并不多,这里的有用的信息主要 ...

  9. 基于主机的入侵检测tripwire

    简介 tripwire是一个基于主机的入侵检测系统,主要手段是在系统初始化后生成一个指纹库,通过定期检查校验文件,如果发生变化,则会触发邮件报警. tripwire 运行方式并不是服务,而是cront ...

最新文章

  1. Centos 系统更新Python
  2. 内核在哪个文件夹_Apache Kafka内核深度剖析
  3. 微信小程序(11)--购物车
  4. SAS 对数据的拼接与串接
  5. U3D MonoBehaviour
  6. MyEclipse 中修改JSP模板
  7. 基于深度学习和机器学习的心电图智能分析参赛总结
  8. 【开源项目】基于C++使用ffmpeg和QT开发播放器
  9. 任正非签发最新电邮:管理者的18种堕怠行为
  10. RabbitMQ 入门 Helloworld
  11. .NET Core控制台程序发布后没有exe解决方案
  12. numpy 常用api(一)
  13. Docker Macvlan
  14. windows 2008 server R2 服务器docker安装
  15. 从计算机移到u盘如何加快速度,小技巧:如何无成本提高优盘拷贝速度
  16. Python 内置容器 之 字典 ( dict )超详细指南
  17. ASM故障组offline
  18. 引用提高 提高 啦啦啦啦啦啦啦啦啦啦了
  19. 公众号openid能做用户识别_做公众号能不能转载别人文章?我的建议是...
  20. uniapp组件-Card卡片

热门文章

  1. java 操作系统 模拟 daima_求C/C++或java写的比较简单的操作系统的模拟程序
  2. MySQL慢查询日志的配置与使用_MySQL 慢查询日志的开启与配置
  3. jsp中 input placeholder_前端工作中的方法总结
  4. python一些常用方法_python 的一些常用方法
  5. Sitecore® 8.2 Professional Developer考试心得
  6. day04--课后练习
  7. 认证与Shiro安全框架
  8. InnoDB与MyISAM引擎区别
  9. AAC规格分类和下载地址
  10. linux和android开发链接