关联规则在入侵检测中的应用


作者:梁军生  发文时间:2008-07-07 10:11  来源:陕西渭南市国家税务局信息中心

    摘要:由于知识发现的快速发展,对海量数据分析和处理的技术、能力也日渐成熟。从1999年起,就开始了将数据挖掘技术和入侵检测系统结合的尝试。将数据挖掘引入入侵检测系统的原因是它能够从大量的数据中自动提取出特征和模型,自动维护模式或特征库。系统利用这些大量的特征和数据进行有效的分类,加快处理速度,提高准确度。文章针对网络安全当中的大量的入侵事件,结合数据挖掘中的关联规则的概念,建立特征库及其特征关联,通过审计处理来加强网络入侵检测系统的功能。
    关键词:数据挖掘    入侵检测   关联规则   网络安全
    1.引言
    Internet的开放性,全球性增加了人们对其是否安全的担心,数据仓库、数据挖掘技术的兴起,由于利益的驱动,某些集团对个人数据的无限制的加工利用,最终会导致侵犯个人隐私的结果。日益增多的敏感信息,以及各种政府的商业的机密数据的保护,都对网络的安全性提出了很高的要求。随着网络的高速发展,安全问题已经成为一个不可回避的焦点问题。各种网络安全技术如密码技术、加密技术、防火墙技术等都已经成为安全专家研究的重点。但是高明的破译者往往会通过各种方法绕过这些措施,作为一种强有力的保护网络安全的工具,入侵检测技术得到了越来越广泛的应用。
    虽然入侵检测技术发展了二十年,但还是没有质的突破。目前进行商业和研究的入侵检测系统都有很多的限制:大多数系统是基于特征的,只是能够检测到一些已知的攻击,发生很多的误报率,这些系统的运行很是浪费劳力,而且面对新的攻击并不是很有用。在入侵检测系统(IDS)中,审计扮演着重要的角色,但是审计中为了有效的分析入侵要收集太多的数据。此外,审计的数据容量随着网络的扩大和连接增多以及网络活动的增加,剧烈的增长。这就对入侵检测系统提出了挑战,能够监测大量的审计数据,进行有效的处理和分析,实时的检测攻击,发生尽可能少的误报率。因此为了提高入侵检测系统的工作效率,我们结合数据挖掘中的关联规则的应用,来提高系统的识别率。关联规则就是在一个给定的数据库当中寻找数据项集之间有趣的关联或相关联系。在一般的商场售卖过程中,数据挖掘的关联规则主要是描述一个事务中物品之间同时出现的规律的知识模式。也就是说,关联规则通过量化的数字描述物品甲的出现对物品乙的出现有多大的影响。
    在网络安全中,当新的网络攻击出现的时候,就需要IDS能够检测到新奇的攻击。虽然,在原理上异常检测有能力检测到攻击,实际上这很难实现。因为:1)很难得到一个精确的可理解的正常行为的模型,这样使异常攻击检测系统很容易产生很多的虚假的警报。2)很难在模型中区别正常的偏离和异常的偏离,这样就使系统即使在系统捕获新的攻击下也不能分辨通常场合下的真正的入侵。因此,异常检测系统不但要建立尽可能精确的模型,而且更重要的是,为了捕获攻击后有尽可能低的误报率,能够区别正常的偏离和异常的偏离。分类是一种比较常见的用来区别正常偏离和异常偏离的方法。这个方法在减少误报非常有效,然而它也有一个缺点:它需要使用攻击分类来训练数据。确实,以攻击分类来训练数据不容易成功。问题是分类算法的限制使其变得更加复杂,一个分类器只能识别其在训练数据当中的类。一个分类器也许能够轻易的错过新的攻击,甚至当这些攻击被一个异常的检测模型捕获。因此,减少异常检测的误报率的同时维持其检测新型攻击的能力,对入侵检测系统来讲是一个挑战。
    2.关联规则在入侵检测系统中的应用高的误报率是目前入侵监测系统中存在的严重问题。认为误用检测有潜在的降低误报率的能力,实际上不是完全正确的。很高地误报率几乎使异常检测不可用,具有很高的误报率的入侵检测系统几乎是无用的,因为系统安全将会出现大量的虚假警报,以至于不能立即处理真正的攻击。因此,对IDS来说减少误报率的问题变得非常紧迫。
    所以在实际研究当中,可以采用数据挖掘技术对审计数据进行快速的分析。在异常检测中,通过统计方法获得原型已经做了很多的工作,然而很少有把数据挖掘技术应用到异常检测当中的例子。如果我们把入侵检测看作是一个数据分析和知识发现的过程的话,我们就可以把数据挖掘技术应用到IDS中去。
    IDS要有效地捕捉入侵行为,必须拥有一个强大的入侵特征数据库,这就如同公安部门必须拥有健全的罪犯信息库一样。但是,IDS一般所带的特征数据库都比较死板,遇到“变脸”的入侵行为往往相逢不相识。因此,管理员有必要学会如何创建满足实际需要的特征数据样板,做到万变应万变!在数据挖掘中,我们经常会提到两个概念,支持度和可信度。支持度:表示交易中的规则出现的频繁次数。一个高值意味着规则涉及数据库的绝大部分。可信度:表示交易中A和B在A中占的比例。这是一个条件概率的估计。所以在IDS的特征数据库当中,也要注意到这两个重要的参数。因为网络的入侵检测变化很多,我们的特征库并不能准确的定义每一个入侵。所以对一些典型的入侵和经常发生的入侵,我们可以轻松的判断出它,并发出报警。也就是说我们针对那些支持度高的入侵的相关的特征进行分析,很快就能得出结果。而对于那些不太典型的和新型的入侵我们就要根据特征中的一些互相的关联来进行判断。也就是说我们要利用数据挖掘中的关联规则的概念来分析和研究各种入侵审计数据。在特征库中利用关联挖掘算法建立起各种特征之间应有的相互关联。
    在实际当中,可以从IDS系统捕获的大量数据中,选取几个重要的属性time, duration, protocol, byte_from, byte_to, state进行挖掘。time表示连接开始的时间;duration表示跟踪的持续时间;protocol表示连接的协议,其取值有 smtp ,http ,telnet ,ftp ,finger ,domain ,others等;byte_from表示提出请求方发出的字节数;byte_to表示响应方发送的字节数;state表示连接结束的状态, 其值有SF(表示正常的连接结束),RSF(表示连接请求被拒绝)。所以我们在数据预处理当中要紧紧抓住这几个重要属性进行转化,挖掘出其特征。可以采用以下方法产生关联规则:根据产生模式的数据的特点,可将挖掘关联规则分为两类:布尔型关联规则和多值型关联规则。多值关联规则问题的解决方法是将其转化为布尔型关联规则问题,即对于每个多值属性都将其对应到一个新的布尔型属性上,再在其上使用发掘布尔型关联规则的算法。对于类别多值属性,直接把每一类别映射为布尔值。对于数量型多值属性,将属性值划分区间,再对应到布尔型属性上,可以采用等距离划分的方法。
    采用布尔型关联规则发现的Apriori算法来产生关联规则对于每个频繁项集1,产生1的所有非空子集。
    对于1的每个非空子集s,如果≥min.conf则输出规则“s=>(1-s)”。其中min.conf是最小可信度阈值。
    通过上面的方法建立了关联规则以后,特征数据库的具体的组织结构如下图:
   

图1  特征数据库组织结构


    特征库包括入侵检测当中的所有的特征,我们针对网络安全当中的经常出现的、经典的入侵发生后的特征进行分析、总结,建立一个庞大的特征库。根据上面的Aprior算法挖掘出起相互之间的关联,支持度按从大到小排列。相对于每一次入侵,我们应该注意到,可能很多特征会同时一起出现,象特征A和特征D,或者只有一个特征伴随出现,象特征C,甚至没有其他明显的特征一起出现。到此我们已经利用数据挖掘技术初步建立了一个特征数据库的挖掘模型。这个过程也就是我们数据挖掘当中的静态挖掘,也叫离线挖掘。根据以前总结的海量的数据,我们在入侵没有发生的时间段里面进行挖掘,得出基于一定支持度和可信度的关联规则。为我们在入侵发生以后进行处理做好了前期的准备。对于新近发现的一些安全漏洞,我们要随时的把其特征添加到我们的特征库中。由于新的安全漏洞的发现时间短,静态数据少,我们数据挖掘的准确度就有所下降,这样我们抓住其主要特征,降低报警阀值。报警阀值就是我们根据发生入侵以后的各种特征以及其最小支持度、最小可信度综合考虑后所得出的需要报警的最低限度。避免对入侵的疏忽和漏报。
    在入侵检测系统当中,建立完整的特征库以后,我们就要利用它来实现入侵检测。对于系统收集的各种入侵审计数据,我们要进行审计,具体的处理过程如下图所示:

图2  审计数据的处理过程


    算法:    IF INCLUDED_ CHARACTER_N
                  IF  DATA_SUPPORD_HIGH
                  ALARM();
                 ELSE IF INCLUDED_OTHER_CHARACTER
               IF HAS_HIGH_CONFIDENCE_WITH_OTHERS NOTICE();
                 ELSE ALARM();
                  ELSE  ABANDON();
                 ELSE ABANDON();
                RETURN();
    对于审计数据库当中的数据,我们要进行实时的处理,这样才能在第一时间里知道入侵,拿出对策。首先对于审计数据先进行判断,看是否包含我们入侵库当中的特征,如果不包括,我们就直接把此数据抛弃,因为网络一旦发生入侵一些具体的特征肯定会出现,所以基本上不存在漏报的现象,而且如上面所说,我们会随时把一些新的入侵特征添加到我们的入侵库当中,降低报警阀值,以进一步减少漏报。接着判断此入侵特征的支持度是否很高,即在网络入侵当中出现的频度,如果很高的话就是经常出现的入侵,特征明显,这时我们就要直接进行报警。如果支持度没有达到我们报警的预设值,则进一步判断其是否有其它的入侵特征。如果没有因为其支持度非常低,又没有相关的入侵特征,可直接丢弃。下一步,判断与其它的入侵特征的可信度是否足够高,如果高的话直接报警,否则发出一般警告。这就是我们审计数据处理的全过程。
    3.结论与展望随着网络安全技术的高速发展,把数据挖掘技术引入到安全技术当中去,将是必然的和具有显著效果的。在以后的工作中,我们要进一步完善关联规则的数据挖掘,并且在入侵检测技术当中使用动态挖掘的概念。即我们在对网络和主机进行监测的时候,不但要根据我们前面谈到的静态挖掘方法进行挖掘,而且要随时的根据入侵的数据对通过海量静态数据计算出的支持度和可信度进行修改。当然修改必须是在某个动态的时间段内,入侵特征出现的频度超过了我们预设的阀值,此阀值要进行多方面考虑,以有利于动态的挖掘出关联规则。总之,数据挖掘与知识发现技术和网络安全技术都是当今计算机研究当中的重要分支,如何把这两种技术更好的结合并应用到我们的研究和实践当中是非常重要的,也是有相当有挑战性的。可以预计两者的结合将会在将来产生巨大的研究成果和社会效益。
    参考文献:
    1.jiawei han,Micheline kambrDATA MINING Concept and Technique,Morgan Kaufmann Publishers,
    2.Wenke Lee, Salvatore J. Stolfo. Data Mining Approaches for Intrusion Detection. Proceedings of the 7th USENIX Security Symposium. 1998.
    3.Bob Toxen,Real World Linux Security: Intrusion Prevention, Detection, and Recovery, 2000,Prentice Hall PTR 
    4.Joel Scambray, Stuart McClure, George Kurtz, Network Security Secrets & Solution HACKING EXPOSED,2001,Mc Graw Hill Education
    5.Bob Toxen,Real World Linux Security: Intrusion Prevention, Detection, and Recovery, 2000,Prentice Hall PTR
    6.Ningning Wu, Audit data analysis and mining ,George Mason University, PQDD
    7.(美) 匿名 著 前导工作室 译,网络安全技术内幕,1999,机械工业出版社
    8.http://www.dmgroup.org.cn/
    9.张艳宁,知识发现讲义,2003年3月
    10.王丽娜,董晓梅,基于数据挖掘的网络数据库入侵检测系统,东北大学学报(自然科学版),第24卷第3期2003年3月
    11.徐永红,杨云,基于数据挖掘的入侵检测系统设计,计算机工程与应用,2002年11月

相关文章