论文部分内容阅读
摘要:随着Internet的飞速发展,计算机网络已经在社会、经济、文化和人们的日常生活中扮演着越来越重要的角色。人们在使用计算机网络的同时,也深深的注意到网络安全的重要性。因此,研究如何快速准确的检测出网络中入侵事件的发生,就显得尤为重要和迫切。
在当前入侵检测技术中,基于数据挖掘的入侵检测技术有较好的发展前景。笔者介绍了如何将数据挖掘方法更好的用于入侵检测系统中,并具体说明了一种基于数据挖掘的入侵检测系统的构建。
关键词:网络安全;数据挖掘;入侵检测
随着计算机网络的全球化和网上各种新业务的兴起,信息安全问题变得越来越重要。传统的安全保护技术和防火墙技术已经远远不够,迫切需要一种能够及时发现并报告系统入侵的技术,即入侵检测系统(IDS)。入侵检测系统作为一种积极主动的安全防护措施,能检测未授权对象对系统的恶意攻击,并监控授权对象对系统资源的非法操作,阻止入侵行为。随着网络信息的丰富和带宽的扩大,收集的审计数据和网络数据包的数量将是非常巨大的,要想从大量的审计数据和网络数据包中发现有意义的信息将变得非常困难,因此需要利用数据库方面的新技术数据挖掘。本文研究了基于数据挖掘技术的入侵检测系统。
1.入侵与入侵检测技术概述
入侵是指任何试图危害资源的完整性、保密性、可靠性的活动集合 [1] 。对这些入侵行为的识别就是入侵检测。入侵检测系统 (IDS)就是完成上述入侵检测任务的计算机软件和硬件系统。入侵检测系统中的用户行为主要表现为数据形式。从数据源上可以将入侵检测系统可以分为三种:主机入侵检测系统、网络入侵检测系统、分布式入侵检测系统 [2] 。主机入侵检测系统的数据来自操作系统的审计数据,网络入侵检测系统的数据来自网络中流经的数据包,分布式入侵检测系统则包括两者。由于用户的行为都表现为数据,因此,解决问题的核心就是如何正确高效地处理这些数据,并从中得出结论。
入侵检测技术可以分为三类:
(1)滥用检测(Misuse Detection)滥用检测是利用已知的入侵方法和系统的薄弱环节识别非法入侵[3]。该方法的主要缺点为:由于所有已知的入侵模式都被植入系统中,所以,一旦出现任何未知形式的入侵,都无法检测出来。但该方法的检测效率较高。
(2)异常检测(Anomaly Detection)异常检测是通过检查当前用户行为是否与已建立的正常行为轮廓相背离来鉴别是否有非法入侵或越权操作。该方法的优点是无需了解系统缺陷,适应性较强。但发生误报的可能性较高。
(3)完整性分析:主要关注某个文件或对象是否被更改,这经常包括文件和目录的内容和属性,它在发现被更改的、被特洛伊化的应用程序方面特别有效。其优点是只要是成功的攻击导致了文件或其他对象的改变它都能够发现。缺点是一般以批处理方式实现,不用于实时响应[2]。
2.基于数据挖掘技术的入侵检测系统
数据挖掘是从大量数据中提取或“挖掘”知识,从存放在数据库、数据仓库或其他信息库中的大量数据中挖掘有趣知识的过程 [4] 。
在入侵检测系统中使用数据挖掘技术,通过分析历史数据可以提取出用户的行为特征、总结入侵行为的规律,从而建立起比较完备的规则库来进行入侵检测。该过程主要分为以下几步:
数据收集基于网络的检测系统数据来源于网络,可用的工具有TCPDUMP等。
数据的预处理在数据挖掘中训练数据的好坏直接影响到提取的用户特征和推导出的规则的准确性。如果在入侵检测系统中,用于建立模型的数据中包含入侵者的行为,那么以后建立起的检测系统将不能对此入侵行为做出任何反应,从而造成漏报。由此可见,用于训练的数据必须不包含任何入侵,并且要格式化成数据挖掘算法可以处理的形式。
数据挖掘从预处理过的数据中提取用户行为特征或规则等,再对所得的規则进行归并更新,建立起规则库。入侵检测依据规则库的规则对当前用户的行为进行检测,根据得到的结果采取不同的应付手段。
数据挖掘主要经过原始数据采集、数据预处理、数据挖掘等三个步骤来挖掘相关知识。数据挖掘技术一般可分为关联分析、序列模式分析、分类分析和聚类分析等四类。
基于数据挖掘的入侵检测研究是针对入侵检测和数据挖掘特点,提出适合的挖掘模型,在满足网络安全实际要求下,实现两者有机结合。
2.1 关联规则挖掘。 关联规则挖掘是数据挖掘最为广泛应用的技术之一,也是最早用于入侵检测的技术。关联规则分析是发现所有支持度和可信度均超过规定阈值的方法,它主要经过两步过程:首先识别所有的支持度不低于用户规定的最小支持度阈值的项目集,即频繁项目集;然后从得到的频繁项目集中构造出可信度不低于用户规定的最小可信度阈值的规则。现在已有多种关联规则算法如Apriori算法等用于入侵检测。
2.2 序列模式分析。序列模式分析主要用于发现形如“在某段时间内,有数据特征 A出现,然后出现了特征B,而后特征C又出现了,即序列A→B→C出现频度较高”之类知识。 由于网络攻击与时间变量紧密相关,因此序列模式分析在关联分析基础上进一步分析攻击行为时间相关性。它主要挖掘安全事件之间先后关系,运用序列分析发现入侵行为的序列关系,从中提取出入侵行为之间的时间序列特征 [5] 。
2.3 聚类分析。聚类分析是识别数据对象的内在规则,将对象分组以构成相似对象类,并导出数据分布规律。基于聚类分析的入侵检测算法基本思想主要源于入侵与正常模式上的不同以及正常行为数目应远大于入侵行为数目的条件,因此能够将数据集划分为不同的类别,由此分辨出正常和异常行为来检测入侵。基于聚类的入侵检测是一种无监督的异常检测算法,通过对未标识数据进行训练来检测入侵,因此能发现新型的和未知的入侵类型。数据挖掘中常用的聚类算法有 k-means、模糊聚类、遗传聚类等。Portnoy等[6]首先提出了基于聚类分析的入侵检测技术。但该算法不适用于恶意攻击和拒绝服务攻击检测。
2.4 分类分析。入侵检测也可以看作是一种数据分类问题。首先选择一个训练数据集,对该训练集标出正常或异常的数据,使用分类规则、决策树等方法从中提取分类规则并构造合适的分类器。然后用此分类器对收集的网络数据流进行分类,将数据分为正常行为或某种入侵行为,以此判断是否存在入侵行为。这一过程不断反复和评价,以便得到最优化的分类器。分类分析一般是基于数据的特征属性,特征的选取对建立分类模型的准确性影响很大,因此单一使用分类思想进行入侵检测往往效果并不理想。
2.5 数据挖掘算法之间的融合及与其它检测技术结合进行入侵检测。实际上单一使用某种数据挖掘算法来进行入侵检测并不能达到良好效果,这是因为入侵检测本身就是一个复杂的知识挖掘过程。因此可以在检测过程中结合这些数据挖掘技术各自的特点,将它们应用到适合它们的步骤中,使之互相配合,利用各自的优点在各自适合的环境下发挥自身的作用。
数据挖掘从预处理过的数据中提取用户行为特征或规则等,再对所得的规则进行归并更新,建立起规则库。
入侵检测依据规则库的规则对当前用户的行为进行检测,根据得到的结果采取不同的应付手段。
本文构建了一个基于数据挖掘关联分析方法的入侵检测系统,该系统主要用于异常检测。
该系统的数据来源是基于网络的,通过在网络中安放嗅探器来获取用户的数据包,然后采用协议分析的方法,丢弃有效负荷,仅保留包头部分,按特定的方法预处理后得到的数据包含7个字段:时间、源IP、源端口、目的IP、目的端口、连接的ID、连接状态。
由于TCP的连接建立包含3次握手过程,所以在所有收集的训练数据中会包括一些未能成功建立的连接,它们将对后面的数据挖掘过程产生负面影响,故应当去掉,仅保留那些反映网络正常情况的数据。对于UDP则不存在此问题,只需将每个UDP包都视为一次连接即可。采用APRIORI算法对数据进行挖掘。
APRIORI算法常用在购物篮分析中,它用于发现“90%的客户在购买商品A时也会购买商品B”之类的规则。它通常的输入分为两列:
规则输出的形式为I1&12aI5(support=2%,confidence=60%)。其中support是支持度,confidence是可信度。
将前面收集到的网络流量数据格式化成为APRIORI算法的输入形式,用连接ID代替客户ID,其他属性替代购买的商品。在给定了支持度和可信度之后,可以得到一组规则,形式为192.168.67.67&218.59.136.212.8a80(support=6%,confidence=95%)
规则的含义为源IP为192.168.67.67且目的IP为218.59.136.212则目的端口是80,该规则的支持度为6%,可信度为95%。
一段时间的采样不能够完全代表用户的行为,因此有必要多次采样,并重复上述过程,然后用归并的方法将多次得到的规则集合并起来,直至不再产生新的规则为止。笔者采用此方法从大量的网络流量数据(28.8M)中可以提取出100多条规则(支持度2%,可信度85%),发现其中有很多是明显无意义的,这就需要管理员通过个人经验加以精简,最终得到可以用于检验的规则集。至此,产生的规则集已经可以比较完整地描述用户的行为特征了。将得出的规则集用于入侵检测。例如,规则库中的一条规则为192.168.67.67&218.59.136.212.8a80(support=6%,confidence=95%而在检测的过程中发现网络数据中的一个连接源IP地址是192.168.67.67且目的IP地址为218.59.136.212,访问的端口为1000,则说明违反规则的小概率事件发生,该连接的可疑度随之增加。在实际过程中,来自同一IP地址的异常的连接可能会违反多条规则,当多个可疑度之和超过一个阈值时系統就产生报警。
采用了两组数据对此系统进行了实验。一组是已知不含任何攻击的正常数据(约30M,包含35万余条记录),该数据用于训练系统,采用以上介绍的方法,在设定支持度为1%,可信度为85%情况下,得到了17条检验规则。然后将得到的规则用于检测另一组已知包含攻击的数据(约54M,包含63万条记录),实验结果证明此方法可以有效的发现PROBING攻击。
3.结束语
随着网络的带宽迅速增长,黑客攻击手段的日趋多样,现有的入侵检测系统在网络遭受入侵时,反应较慢,实时性较差。因此,如何实时的处理网络中海量的数据,并及时的发现攻击将成为入侵检测系统下一步研究的重点。
参考文献:
[1]汪凯.入侵检测系统中的智能技术[J].武汉理工大学学报(信息与管理工程版),2005(10)
[2]崔蔚,任继念,徐永红.入侵检测系统的研究现状与发展趋势[J].教学与科技,2005(9)
[3]高翔,王敏,胡正国.基于数据挖掘技术的入侵检测系统的研究[J].西北工业大学学报,2003(8)
[4]Jiawei Han, Micheline Kamber et al. Data Mining concepts and Techniques[M]. China Machine Press:3-6
[5]杨德刚.入侵检测中数据挖掘技术的应用研究分析[J].重庆师范大学学报(自然科学版),2004(12)
[6]Portnoy L,Eskin E, Stolfo S J. Intrusion Detection with Unlabeled Data Using Clustering [C]. Philadelphia : Proceedings of ACM CSS Workshop on Data Mining Applied to Security (DMSA-2001), ACM Press, 2001
在当前入侵检测技术中,基于数据挖掘的入侵检测技术有较好的发展前景。笔者介绍了如何将数据挖掘方法更好的用于入侵检测系统中,并具体说明了一种基于数据挖掘的入侵检测系统的构建。
关键词:网络安全;数据挖掘;入侵检测
随着计算机网络的全球化和网上各种新业务的兴起,信息安全问题变得越来越重要。传统的安全保护技术和防火墙技术已经远远不够,迫切需要一种能够及时发现并报告系统入侵的技术,即入侵检测系统(IDS)。入侵检测系统作为一种积极主动的安全防护措施,能检测未授权对象对系统的恶意攻击,并监控授权对象对系统资源的非法操作,阻止入侵行为。随着网络信息的丰富和带宽的扩大,收集的审计数据和网络数据包的数量将是非常巨大的,要想从大量的审计数据和网络数据包中发现有意义的信息将变得非常困难,因此需要利用数据库方面的新技术数据挖掘。本文研究了基于数据挖掘技术的入侵检测系统。
1.入侵与入侵检测技术概述
入侵是指任何试图危害资源的完整性、保密性、可靠性的活动集合 [1] 。对这些入侵行为的识别就是入侵检测。入侵检测系统 (IDS)就是完成上述入侵检测任务的计算机软件和硬件系统。入侵检测系统中的用户行为主要表现为数据形式。从数据源上可以将入侵检测系统可以分为三种:主机入侵检测系统、网络入侵检测系统、分布式入侵检测系统 [2] 。主机入侵检测系统的数据来自操作系统的审计数据,网络入侵检测系统的数据来自网络中流经的数据包,分布式入侵检测系统则包括两者。由于用户的行为都表现为数据,因此,解决问题的核心就是如何正确高效地处理这些数据,并从中得出结论。
入侵检测技术可以分为三类:
(1)滥用检测(Misuse Detection)滥用检测是利用已知的入侵方法和系统的薄弱环节识别非法入侵[3]。该方法的主要缺点为:由于所有已知的入侵模式都被植入系统中,所以,一旦出现任何未知形式的入侵,都无法检测出来。但该方法的检测效率较高。
(2)异常检测(Anomaly Detection)异常检测是通过检查当前用户行为是否与已建立的正常行为轮廓相背离来鉴别是否有非法入侵或越权操作。该方法的优点是无需了解系统缺陷,适应性较强。但发生误报的可能性较高。
(3)完整性分析:主要关注某个文件或对象是否被更改,这经常包括文件和目录的内容和属性,它在发现被更改的、被特洛伊化的应用程序方面特别有效。其优点是只要是成功的攻击导致了文件或其他对象的改变它都能够发现。缺点是一般以批处理方式实现,不用于实时响应[2]。
2.基于数据挖掘技术的入侵检测系统
数据挖掘是从大量数据中提取或“挖掘”知识,从存放在数据库、数据仓库或其他信息库中的大量数据中挖掘有趣知识的过程 [4] 。
在入侵检测系统中使用数据挖掘技术,通过分析历史数据可以提取出用户的行为特征、总结入侵行为的规律,从而建立起比较完备的规则库来进行入侵检测。该过程主要分为以下几步:
数据收集基于网络的检测系统数据来源于网络,可用的工具有TCPDUMP等。
数据的预处理在数据挖掘中训练数据的好坏直接影响到提取的用户特征和推导出的规则的准确性。如果在入侵检测系统中,用于建立模型的数据中包含入侵者的行为,那么以后建立起的检测系统将不能对此入侵行为做出任何反应,从而造成漏报。由此可见,用于训练的数据必须不包含任何入侵,并且要格式化成数据挖掘算法可以处理的形式。
数据挖掘从预处理过的数据中提取用户行为特征或规则等,再对所得的規则进行归并更新,建立起规则库。入侵检测依据规则库的规则对当前用户的行为进行检测,根据得到的结果采取不同的应付手段。
数据挖掘主要经过原始数据采集、数据预处理、数据挖掘等三个步骤来挖掘相关知识。数据挖掘技术一般可分为关联分析、序列模式分析、分类分析和聚类分析等四类。
基于数据挖掘的入侵检测研究是针对入侵检测和数据挖掘特点,提出适合的挖掘模型,在满足网络安全实际要求下,实现两者有机结合。
2.1 关联规则挖掘。 关联规则挖掘是数据挖掘最为广泛应用的技术之一,也是最早用于入侵检测的技术。关联规则分析是发现所有支持度和可信度均超过规定阈值的方法,它主要经过两步过程:首先识别所有的支持度不低于用户规定的最小支持度阈值的项目集,即频繁项目集;然后从得到的频繁项目集中构造出可信度不低于用户规定的最小可信度阈值的规则。现在已有多种关联规则算法如Apriori算法等用于入侵检测。
2.2 序列模式分析。序列模式分析主要用于发现形如“在某段时间内,有数据特征 A出现,然后出现了特征B,而后特征C又出现了,即序列A→B→C出现频度较高”之类知识。 由于网络攻击与时间变量紧密相关,因此序列模式分析在关联分析基础上进一步分析攻击行为时间相关性。它主要挖掘安全事件之间先后关系,运用序列分析发现入侵行为的序列关系,从中提取出入侵行为之间的时间序列特征 [5] 。
2.3 聚类分析。聚类分析是识别数据对象的内在规则,将对象分组以构成相似对象类,并导出数据分布规律。基于聚类分析的入侵检测算法基本思想主要源于入侵与正常模式上的不同以及正常行为数目应远大于入侵行为数目的条件,因此能够将数据集划分为不同的类别,由此分辨出正常和异常行为来检测入侵。基于聚类的入侵检测是一种无监督的异常检测算法,通过对未标识数据进行训练来检测入侵,因此能发现新型的和未知的入侵类型。数据挖掘中常用的聚类算法有 k-means、模糊聚类、遗传聚类等。Portnoy等[6]首先提出了基于聚类分析的入侵检测技术。但该算法不适用于恶意攻击和拒绝服务攻击检测。
2.4 分类分析。入侵检测也可以看作是一种数据分类问题。首先选择一个训练数据集,对该训练集标出正常或异常的数据,使用分类规则、决策树等方法从中提取分类规则并构造合适的分类器。然后用此分类器对收集的网络数据流进行分类,将数据分为正常行为或某种入侵行为,以此判断是否存在入侵行为。这一过程不断反复和评价,以便得到最优化的分类器。分类分析一般是基于数据的特征属性,特征的选取对建立分类模型的准确性影响很大,因此单一使用分类思想进行入侵检测往往效果并不理想。
2.5 数据挖掘算法之间的融合及与其它检测技术结合进行入侵检测。实际上单一使用某种数据挖掘算法来进行入侵检测并不能达到良好效果,这是因为入侵检测本身就是一个复杂的知识挖掘过程。因此可以在检测过程中结合这些数据挖掘技术各自的特点,将它们应用到适合它们的步骤中,使之互相配合,利用各自的优点在各自适合的环境下发挥自身的作用。
数据挖掘从预处理过的数据中提取用户行为特征或规则等,再对所得的规则进行归并更新,建立起规则库。
入侵检测依据规则库的规则对当前用户的行为进行检测,根据得到的结果采取不同的应付手段。
本文构建了一个基于数据挖掘关联分析方法的入侵检测系统,该系统主要用于异常检测。
该系统的数据来源是基于网络的,通过在网络中安放嗅探器来获取用户的数据包,然后采用协议分析的方法,丢弃有效负荷,仅保留包头部分,按特定的方法预处理后得到的数据包含7个字段:时间、源IP、源端口、目的IP、目的端口、连接的ID、连接状态。
由于TCP的连接建立包含3次握手过程,所以在所有收集的训练数据中会包括一些未能成功建立的连接,它们将对后面的数据挖掘过程产生负面影响,故应当去掉,仅保留那些反映网络正常情况的数据。对于UDP则不存在此问题,只需将每个UDP包都视为一次连接即可。采用APRIORI算法对数据进行挖掘。
APRIORI算法常用在购物篮分析中,它用于发现“90%的客户在购买商品A时也会购买商品B”之类的规则。它通常的输入分为两列:
规则输出的形式为I1&12aI5(support=2%,confidence=60%)。其中support是支持度,confidence是可信度。
将前面收集到的网络流量数据格式化成为APRIORI算法的输入形式,用连接ID代替客户ID,其他属性替代购买的商品。在给定了支持度和可信度之后,可以得到一组规则,形式为192.168.67.67&218.59.136.212.8a80(support=6%,confidence=95%)
规则的含义为源IP为192.168.67.67且目的IP为218.59.136.212则目的端口是80,该规则的支持度为6%,可信度为95%。
一段时间的采样不能够完全代表用户的行为,因此有必要多次采样,并重复上述过程,然后用归并的方法将多次得到的规则集合并起来,直至不再产生新的规则为止。笔者采用此方法从大量的网络流量数据(28.8M)中可以提取出100多条规则(支持度2%,可信度85%),发现其中有很多是明显无意义的,这就需要管理员通过个人经验加以精简,最终得到可以用于检验的规则集。至此,产生的规则集已经可以比较完整地描述用户的行为特征了。将得出的规则集用于入侵检测。例如,规则库中的一条规则为192.168.67.67&218.59.136.212.8a80(support=6%,confidence=95%而在检测的过程中发现网络数据中的一个连接源IP地址是192.168.67.67且目的IP地址为218.59.136.212,访问的端口为1000,则说明违反规则的小概率事件发生,该连接的可疑度随之增加。在实际过程中,来自同一IP地址的异常的连接可能会违反多条规则,当多个可疑度之和超过一个阈值时系統就产生报警。
采用了两组数据对此系统进行了实验。一组是已知不含任何攻击的正常数据(约30M,包含35万余条记录),该数据用于训练系统,采用以上介绍的方法,在设定支持度为1%,可信度为85%情况下,得到了17条检验规则。然后将得到的规则用于检测另一组已知包含攻击的数据(约54M,包含63万条记录),实验结果证明此方法可以有效的发现PROBING攻击。
3.结束语
随着网络的带宽迅速增长,黑客攻击手段的日趋多样,现有的入侵检测系统在网络遭受入侵时,反应较慢,实时性较差。因此,如何实时的处理网络中海量的数据,并及时的发现攻击将成为入侵检测系统下一步研究的重点。
参考文献:
[1]汪凯.入侵检测系统中的智能技术[J].武汉理工大学学报(信息与管理工程版),2005(10)
[2]崔蔚,任继念,徐永红.入侵检测系统的研究现状与发展趋势[J].教学与科技,2005(9)
[3]高翔,王敏,胡正国.基于数据挖掘技术的入侵检测系统的研究[J].西北工业大学学报,2003(8)
[4]Jiawei Han, Micheline Kamber et al. Data Mining concepts and Techniques[M]. China Machine Press:3-6
[5]杨德刚.入侵检测中数据挖掘技术的应用研究分析[J].重庆师范大学学报(自然科学版),2004(12)
[6]Portnoy L,Eskin E, Stolfo S J. Intrusion Detection with Unlabeled Data Using Clustering [C]. Philadelphia : Proceedings of ACM CSS Workshop on Data Mining Applied to Security (DMSA-2001), ACM Press, 2001