数据挖掘在入侵检测中的应用

2023-02-23

1 入侵检测中采用数据挖掘的必要性

Wenke Lee研究小组最早将数据挖掘技术应用于入侵检测领域, 他们在1998年首次将数据挖掘技术用于入侵检测系统。从他们提供的大量实验和测试结果表明, 将通用的数据挖掘技术应用于入侵检测系统, 在理论上和技术上是完全可行的。基于数据挖掘的入侵检测分析技术与其他分析技术不同之处在于, 该方法是以数据为中心, 将入侵检测完全看成一种海量安全审计记录数据的分析与处理过程, 即使根本不知道各种攻击手段的作用机制, 也可以从安全审计数据本身所隐藏的规律中发现异常行为, 从而使入侵检测系统具有更好的自学习、自适应和自我扩展的能力。从大量安全审计数据中提取出能够精确描述程序或用户行为的特征模式是解决入侵检测漏报和误报问题的关键所在。与传统入侵检测方法相比, 基于数据挖掘的入侵检测分析技术有以下几个特点: (1) 智能性好, 自动化程度高;基于数据挖掘的检测方法采用了统计学、决策学以及神经网络等多种方法, 自动地从数据中提取手工难以发现的行为模式, 从而减少了人的参与, 减轻了入侵检测分析员的负担, 同时也提高了检测的准确性。 (2) 检测效率高;数据挖掘可以通过对数据进行预处理, 抽取数据中的有用部分, 有效的减少数据数理量, 因而检测效率较高, 对于现在数据库和网络的巨大数据量的入侵检测系统来说, 这一点也是至关重要的。 (3) 自适应能力强;应用数据挖掘方法的检测系统不是基于预定义的检测模型, 所以自适应能力强, 可以有效地检测新型的攻击以及那些己知攻击类型的变种。

2 入侵检测中常用的数据挖掘方法

很多数据挖掘方法都能应用于入侵检测系统中, 它们各有自己的优势。我们描述三种常用在入侵检测中的数据挖掘的方法: (1) 分类在入侵检测中的应用;分类分析是数据挖掘领域的重要研究课题之一, 它的目标是建立基于属性的分类属性模型。它分为两步:第一步, 通过数据集训练分类器。在训练前要为训练数据集中的每个元组增加类标号。在入侵检测中, 可以根据有无攻击行为将类标号赋值为:正常, 入侵。然后, 通过分析由属性所描述的训练数据集元组来构造学习模型。第二步, 对模型进行评估。评估模型的预测准确率, 如果模型的准确率可以被接受, 就可以用它来对类标号未知的数据元组或对象进行分类。在入侵检测中, 就可以用此模型标记正常或入侵记录。 (2) 聚类分析在入侵检测中的应用;聚类分析是将对象分组。分类与聚类的区别在于分类是将分类规则应用于数据对象, 而聚类是发现隐含于混杂数据对象中的分类规则。聚类技术应用于入侵检测中基于两个假设:第一, 正常行为记录数目远大于入侵行为记录数目;第二, 入侵行为本质上与正常行为不同。入侵模式与正常模式不同, 所以能够被检测出来。尽管聚类分析应用于入侵检测中实验结果并不令人满意, 却为入侵检测研究提供了一种新的思想。 (3) 关联规则分析在入侵检测中的应用关联规则技术是最早应用于入侵检测中的技术。关联规则技术用来获得系统审计数据中各属性之间的关系, 确定构造入侵检测系统所需要的合适属性;或者是提出某种操作和入侵行为之间, 或者是各种入侵行为之间的相互关系。作为分析数据间隐含的相互关联关系的有力工具, 关联规则技术在入侵检测领域中己显现出极大的优越性。

3 入侵检测中的Apriori算法

(1) 算法思想;Apriori算法是一种最有影响的挖掘布尔型关联规则的算法, 其基本思想是将关联规则的挖掘分为如下两步:第一步:从事务数据库D中找出所有支持度不小于用户指定的最小支持度阈值的频繁项目集。在数据挖掘中, 支持度不小于用户给定的最小支持度阈值的项目集简称频繁项目集。第二步:使用频繁项目集产生所期望的关联规则, 产生关联规则的基本原则是其置信度不小于用户指定的最小置信度阈值。第二步实现起来比较容易, 所以主要在第一步挖掘出所有的频繁项目集合, 这是该算法的核心, 占据整个计算量的大部分。在挖掘频繁项目集的过程中主要利用了两个性质:频繁项目集的所有非空子集也是频繁项目集;非频繁项目集的任何超集亦是非频繁项目集。Apriori算法使用了一种逐层搜索的迭代方法, 首先找出所有频繁1-项目集L1, L1用来找频繁2-项目集L2, L2用来找频繁3-项目集L3, 如此下去, 直到不能找到频繁项目集为止。具体来讲, Apriori算法的第一步是简单统计所有含一个元素的项目集出现的频率, 来决定频繁1-项目集;在第k步, 分两个阶段, 首先调用函数Apriori-Gen, 通过第 (k-1) 步中生成的频繁 (k-1) -项目集Lk-1来生成候选频繁k一项目集Ck, 其次扫描事务数据库D计算候选频繁k-项目集Ck中各元素在D中的支持数或支持度。 (2) 算法改进;可以利用数据划分技术来挖掘频繁项目集, 从而只需扫描整个数据库两次。包含两个主要处理阶段。第一阶段, 算法将交易数据库D分为n个互不相交的部分, 若数据库D中的最小支持阈值为min_sup, 对于每个划分 (部分) , 挖掘其中所有的频繁项集, 它们被称为是局部频繁项集。可以利用一个特别的数据结构记录包含这些频繁项集的交易记录的TID以便使得在一次数据库扫描中就能够发现所有的局部频繁k-项集, k=1, 2, …。就整个数据库D而言, 一个局部频繁项集不一定就是全局频繁项集, 但是任何全局频繁项集一定会出现在从所有划分所获得的这些局部频繁项集中, 这一点很容易反证获得。因此可以将从n个划分中所挖掘出的局部频繁项集作为整个数据库D中频繁项集的候选项集。在第二阶段中, 再次扫描整个数据库以获得所有候选项集的支持频度, 以便最终确定全局频繁项集。各划分大小和数目可以以每个划分大小能够整个放入内存为准, 因此每个阶段只需读入一次数据库内容, 而整个挖掘就需要两次扫描整个数据库。

摘要:本文研究了数据挖掘在入侵检测领域中的应用, 对一种关联规则Apriori算法进行了分析, 并提出了一种改进的算法, 实现了对审计日志等大量数据进行数据处理, 可以在检测系统对各种攻击方法的本质了解较少时, 从安全审计数据本身的数据中发现异常。

关键词:数据库安全,入侵检测,数据挖掘,异常检测

参考文献

[1] 徐兴元, 傅和平, 熊中朝.基于数据挖掘的入侵检测技术研究[J].微计算机信息, 2007 (9) .

上一篇:新形势下护士素质的需求调查下一篇:电子商务时代市场营销的策略分析