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


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

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

  • 相关阅读:
    在 ServiceModel 客户端配置部分中,找不到引用协定
    nopi 导出excel 带图片
    c# async await 理解 结合并行处理
    从数据库更新模型时出现System.ArgumentException
    C# HTTP请求 异步(async await)
    C# HTTP请求
    SQL列转行
    详解C# 匿名对象(匿名类型)、var、动态类型 dynamic
    JavaScript (function (){}()) 与(function(){})()
    记ssh错误排查-ansible
  • 原文地址:https://www.cnblogs.com/erwin/p/955125.html
Copyright © 2020-2023  润新知