首页 百科知识 网络入侵检测关键技术

网络入侵检测关键技术

时间:2022-10-01 百科知识 版权反馈
【摘要】:基于聚类的入侵检测技术可以无监督地检测入侵,并且能够自适应地确定算法的参数,而无须干净的训练数据对系统进行训练。如果构建一个基于聚类的入侵检测模块,再将其与成熟的模式匹配等误用检测方法相结合,这样的IDS将既可以检测已知的入侵行为,又可以发现未知的入侵行为,从而可有效提高IDS的性能。此外,聚类过程中的未知因素很多,技术还不成熟,基于聚类的入侵检测存在误报率高等缺点。

1. 基于聚类技术的网络入侵检测

入侵检测的研究与发展已经有很多年的历史了,国内外学者已提出大量的入侵检测方法,如统计方法(Statistics Method)、贝叶斯推理方法(Bayesian Inference Method)、机器学习方法(Machine Learning Method)、神经网络方法(Neural Network Method)、数据挖掘(Data Mining)、遗传算法(Genetic Algorithm)、支持向量机(Support Vector Machine)等方法。但上述方法存在一个缺点,即对建立检测模型的训练数据要求较高,必须是“干净”的数据并且必须包含检测对象的大多数正常行为,而要同时做到这两点是非常困难的。因此,近年来研究人员将聚类(Clustering)的方法用于入侵检测,以达到检测异常数据的作用。

基于聚类方法的异常检测是一种无监督的异常检测,这种方法在未标记的数据上进行;它将相似的数据划分到同一个聚类中,而将相异的数据划分到不同的聚类中,从而达到判断网络中的数据是否异常的效果。其中,聚类分析的方法是指将物理的或抽象的对象分成多个不同的簇(Cluster),在每个簇的内部,对象之间具有较高的相似性,而在不同簇之间的相似性则较低。通常一个簇也就是一个类,但与数据分类不同的是,聚类结果主要是基于当前所处理的数据,事先并不需要知道类的结构及每个对象所属的类别。基于聚类的入侵检测技术可以无监督地检测入侵,并且能够自适应地确定算法的参数,而无须干净的训练数据对系统进行训练。

由于聚类方法是一种无监督的学习方法,因此,将它用于异常检测不但可以使得入侵检测系统具有自动检测、防止未知攻击的优点,而且还无须像基于分类模型的IDS(Intrusion Detection Systems,入侵检测系统)那样要依靠手工来添加训练数据的分类特征,也不需要事先对数据记录进行标记;此外,还不需要知道自己要检测哪些种类的入侵行为,就可以判断哪些行为是合法的,哪些行为是非法的。基于聚类技术的IDS系统需要的只是足够多的数据。如果构建一个基于聚类的入侵检测模块,再将其与成熟的模式匹配等误用检测方法相结合,这样的IDS将既可以检测已知的入侵行为,又可以发现未知的入侵行为,从而可有效提高IDS的性能。

但聚类方法要求有足够的历史数据作为训练集,计算量大,从而导致系统的反应慢,因此,如何提高聚类的效率是一个难点。此外,聚类过程中的未知因素很多,技术还不成熟,基于聚类的入侵检测存在误报率高等缺点。尽管如此,由于这种方法不需要先验知识,并可以发现未知入侵行为,因此,在实际中具有相当的应用价值。

如图8.16所示,聚类的过程一般由以下三个阶段组成:数据准备阶段、聚类阶段、评估和表示阶段。

图8.16 聚类过程

(1)数据准备阶段:聚类需要对存储在数据仓库或数据库中的大量的数据进行处理,这些数据不但可能格式不一致,而且这些数据对象的属性也可能类型复杂,不适合直接用来进行聚类,因此,需要相应的数据准备工作。数据准备阶段的主要目的是要消除数据噪声和与挖掘主题明显无关的数据,以确保聚类的效率与准确度。数据准备阶段主要包括数据清理、数据集成、数据选择和数据变换等几个方面的工作。其中,数据清理是指消除噪声和冗余数据;数据集成是指对来自多个异构数据库的数据,通过手工或自动的方式将这些数据整合到一起;数据选择是指从数据库或数据仓库中检索、分析与任务相关的数据;而数据变换则是指通过某种方法使得不同类型的属性可相互转换或映射,使之适合于所要采用的聚类算法。

(2)聚类阶段:主要是指根据任务的目标,采用人工智能、集合论、统计学等方法,选取一种聚类算法对所有数据对象进行分析处理,并通过可视化工具表述所获得的聚类结果。其中,聚类算法的效率(如时间复杂度和空间复杂度等)与准确性是整个聚类阶段的关键。

(3)评估和表示阶段:聚类最终得到的结果是一些数据对象的集合,这些集合有可能是没有实际意义或没有使用价值的,也有可能不能准确反映数据的真实意义,因此需要评估,以确定聚类结果的有效的与有用的。评估可以根据用户多年的经验,也可以直接用数据来检验其准确性。另外,如何将挖掘出的有用知识清楚易懂地提供给管理者也是一项非常重要的工作,因此,还需要选择合适的可视化工具,将结果以关系表或用量化特征规则表示给用户。

聚类分析是数据挖掘中一个很活跃的研究领域,目前,常用的聚类分析算法主要包括划分法、层次方法、基于密度的方法、基于网格的方法以及基于模型的方法等。

(1)划分法(Partitioning Methods):划分法是最基本的聚类方法,其中,最具代表性的有K-Means(K-平均)、K-Medoids(K-中心)以及CLARANS(Clustering Large Applications based on RANdomized Search,基于随机搜索的大规模应用聚类)算法等。划分法的基本思想如下:给定一个由N个元组或纪录构成的数据集,划分方法将构造K个分组,每个分组代表一个聚类,K<N。这K个分组满足下列条件:每一个分组至少包含一个数据纪录;每一个数据记录属于且仅属于一个分组(该要求在某些模糊聚类算法中可以放宽)。对于给定的K,算法首先给出一个初始的分组方法,然后通过反复迭代的方法来改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:同一分组中的记录越近越好,而不同分组中的纪录越远越好。

(2)层次法(Hierarchical Methods):如图8.17所示,该方法将对给定的数据集进行层次分解,直到某种条件满足为止。根据层次分解是自底向上的还是自顶向下形成的,层次聚类方法又可进一步分为凝聚的(agglomerative)和分裂的(divisive)层次聚类两种。其中,凝聚的层次聚类法采用自底向上的策略,初始时视每个数据对象为一个单独的原子簇,然后根据某种规则合并原子簇,直到所有的对象在一个簇中或者某个终结条件被满足,代表性的算法有CURE(Clustering Using Representatives,基于代表点的聚类)、ROCK(Robust Clustering using Links,基于点对间的链接的健壮聚类)等。而分裂的层次聚类法采用自顶向下的策略,正好与“自底向上”的方案相反,它首先将所有的对象置于一个簇中,然后再逐渐细分为越来越小的簇,直到每个对象在单独的一个簇中,或者达到一个终止条件。例如:达到了某个希望的簇数目,或者两个簇之间的距离超过了某个阈值等,代表性的算法有BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies,基于分层的平衡迭代规约聚类)等。

图8.17 层次法的聚类过程

(3)基于密度的方法(Density-based Methods):绝大多数划分方法给予对象之间的距离进行聚类。这样的方法只能发现球状的簇,而在发现任意形状的簇方面遇到了困难。基于密度的聚类方法是将簇看作是数据空间中被低密度区域分割开的高密度区域。其主要思想是:只要邻近区域的密度(对象或数据点的数目)超出了某个阈值,就继续聚类。也就是说,对给定类中的每个数据点,在一个给定范围的区域中必须至少存在某个数目的点。因此,基于密度的聚类方法可以用来过滤“噪声”孤立点数据,发现任意形状的簇。代表性的基于密度的聚类算法有DBSCAN(Density-Based Spatial Clustering of Applications with Noise,基于密度的带有噪声的空间聚类)、OPTICS(Ordering Points To Identify the Clustering Structure,对象排序识别聚类结构)、DENCLUE(Density-based Clustering,基于密度的聚类)等。

(4)基于网格的方法(Grid-based Methods):这种方法首先将数据空间划分成为有限个单元(Cell)的网格结构,所有的处理都是以单个的单元为对象的。基于网格的方法的一个突出的优点就是处理速度很快,其处理时间通常与目标数据库中记录的个数无关,只与把数据空间分为多少个单元有关。代表性的算法有STING(Statistical Information Grid,统计信息网格)、CLIQUE(Clustering In Quest,基于探索的聚类)、WAVE-CLUSTER(小波聚类)等。

(5)基于模型的方法(Model-based Methods):基于模型的方法给每一个聚类假定一个模型,然后去寻找能最佳拟合给定模型的数据集。其中,模型可能是数据点在空间中的密度分布函数。该方法的一个潜在的假定就是:数据是根据潜在的概率分布生成的。基于模型的方法主要包括以下两类:统计学方法和神经网络方法,其中,典型的基于模型的方法有COBWEB(蜘蛛网)等。

2. 基于神经网络技术的网络入侵检测

20世纪40年代,随着神经解剖学、神经生理学以及神经元的电生理过程等研究领域取得突破性进展,人们对人脑的结构、组成及其基本工作单元有了越来越充分的认识,在此基础上,人们提出了人工神经网络(Artificial Neural Network,ANN)的概念。所谓的人工神经网络,就是人们在对人脑神经网络的研究基础上,采用数理方法并从信息处理的角度对人脑神经网络进行抽象,从而建立起来的一种应用类似于大脑神经突触连接的结构进行信息处理的数学模型。在工程与学术界常简称为神经网络(Neural Network,NN)。神经网络具有以下几个突出的优点,可以很容易地解决具有上百个参数的问题,从而为解决大型复杂度问题提供了一种相对有效的简单方法:

(1)适合非线性处理:具有执行非线性任务和去除噪声的能力,使它能够很好地分类和预测问题,可以充分逼近任意复杂的非线性关系。

(2)强鲁棒性与容错性:所有定量或定性的信息都等势地分布式地储存于网络内的各神经元,故有很强的鲁棒性和容错性。

(3)并行处理:大量广泛互连的处理单元组成的结构,提供了并行处理和并行分布信息存储的能力。通过采用并行分布式处理方法,使得快速进行大量运算成为可能。

(4)自适应性:强有力的学习算法和自组织规则使其能在不断变化的环境中对每一要求进行自适应,可有效学习和自适应不知道或不确定的系统。

(5)能够同时处理定量、定性知识。

基于神经网络技术的入侵检测系统就是指使用神经网络方法与手段来进行入侵检测,神经网络的引入对入侵检测系统的研究开辟了新的途径。使用神经网络检测方法的优势在于:由于神经网络的自适应性、自学习等诸多优点,因此在基于神经网络的入侵检测系统中只要提供系统的审计数据,入侵检测系统就可以通过自学习从中提取正常的用户或系统活动的特征模式,而不必对大量的数据进行存取,精简了系统的设计,并且有较好的抗干扰能力,还对新的攻击类型有较好的检测能力。

神经网络作为人工智能的分支,在入侵检测领域得到了较好的应用。神经网络应用于入侵检测主要是利用神经网络对正常的系统或用户行为进行训练,利用其自适应学习特性提取系统或用户行为特征,以此创建系统或用户的行为特征轮廓,并作为异常的判定标准。神经网络技术在入侵检测系统中用来构造分类器,主要用于资料特征的分析,以发现是否为一种入侵行为。如果是一种入侵行为,系统将与已知入侵行为的特征进行比较,判断是否为一种新的攻击行为,从而决定是进行丢弃还是进行存盘、报警、发送资料特征等工作。作为入侵检测系统的核心部分——分类器,在基于神经网络的入侵检测系统中,一般使用单个神经网络或多个神经网络(神经网络集成)来担任。目前,这方面的研究根据神经网络的组合个数可分为:

(1)使用单个神经网络构造分类器:通过对单个神经网络的训练实现对入侵的检测。优点是结构相对简单;缺点是神经网络拓扑结构只能经过较长的尝试后才能确定下来。

(2)基于神经网络集成技术构造分类器:通过合成多个神经网络个体的输出,显著地提高神经网络系统的泛化能力,从而实现对入侵的高效检测。

图8.18给出了一种神经网络在入侵检测中的具体应用模型。

图8.18 基于神经网络技术的入侵检测系统模型

在图8.18所示的基于神经网络deep入侵检测系统中,首先,系统从所收集的网络数据包中构建网络会话数据矢量,即单个网络会话中双方实体之间所传输的所有数据负载内容。接着,根据关键词表,在会话内容中搜索匹配各个关键字,并形成各自的统计计数值。然后,将各个关键字计数值进行排列形成输入特征矢量。再进行预处理,预处理主要包括归一化过程,即针对各个关键字计数值字段进行归一化。预处理过程完成以后,输入特征矢量被送到神经网络模型中进行训练。在使用神经网络进行训练时,将训练样本集合中由每个合法会话数据形成的输入特征矢量标识为“正常”(对应于输出值1);而将由每个可疑会话数据所形成的输入特征矢量值标识为“异常”(对应于输出值0)。训练完毕后的神经网络即可用于入侵检测目的。

目前,神经网络技术在入侵检测中的应用远未成熟,在入侵检测中的应用还存在很多缺陷和不足,主要表现在神经网络对于大容量入侵行为类型的学习能力不够,其解释能力不足,另外,神经网络的执行效率也不是很高。因此,随着网络技术和网络规模的不断发展,以及入侵检测系统在计算机网络安全体系中发挥着日趋重要的作用,面对层出不穷、变化多端的攻击,仍然需要不断完善现有的神经网络技术,对基于神经网络技术的入侵检测方法进行更加深入的研究。

3. 基于数据挖掘技术的网络入侵检测

数据挖掘(Data Mining)是一个从大量的、不完全的、有噪声的、模糊的和随机的数据中提取隐含的、事先不知道的,但又是潜在有用的信息和知识的过程。其挖掘对象可以是文件、数据库、数据仓库以及Web数据库等。就功能而言,数据挖掘主要是对所挖掘对象中的数据进行概念描述、关联规则获取、分类预测、聚类分析、孤立点发现、模式评估等。Wenke Lee等人最早将数据挖掘引入到入侵检测领域,并系统地提出了用于入侵检测的数据挖掘技术框架与流程,具体如图8.19所示。

图8.19 入侵检测中的数据挖掘流程

在图8.19所示的数据挖掘流程中,原始审计数据(Raw Audit Data)首先被处理成用ASCII码表示的数据包信息(Network Packets)或主机事件数据(Host Events);其次,这些数据信息进一步被转化为面向连接的记录(Connection Records)或面向主机对话的记录数据(Host Session Records)。在这些记录中包含了许多多连接/会话特征,例如:在网络连接记录中包含服务类型、连接持续时间、连接状态指示符等;然后,将数据挖掘的算法应用到这些连接记录上,并计算出有用的数据模式(Data Patterns),例如:关联规则和常见事件序列等;接着,对这些数据模式进行分析后用来帮助提取连接记录中其他有用特征(Features);最后,在确定了记录数据的特征集合之后,应用数据挖掘中的分类算法,对记录数据进行归纳学习,生成最终的检测模型(Detection Models)。数据挖掘中的关联分析和序列分析算法主要用在模式发现和特征构造的步骤上,而分类算法主要用于最后的检测模型。

数据挖掘的方法种类繁多,从应用到入侵检测领域的角度来讲,通常有以下几种方法:

(1)关联分析(Associations Analysis):数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此,关联分析生成的规则带有可信度。Agrawal等于1993年首先提出了挖掘顾客交易数据库中项集间的关联规则问题,随后许多研究人员对关联规则的挖掘问题进行了大量的研究。随着OLAP(Online Analytical Processing,联机分析处理)技术的成熟和应用,将OLAP和关联规则结合也成为一个重要的方向,例如:在网络安全系统中,可以用关联分析来找出入侵者各种入侵行为之间的相关性。

(2)序列模式分析(Sequential Patterns Analysis):和关联分析相似,序列模式分析的目的也是挖掘数据之间的联系,但与关联分析不同,序列模式分析的侧重点在于分析数据间的前后序列关系,它能发现数据库中形如“在某一段时间内,顾客购买商品A,接着购买商品B,而后购买商品C,即序列A-B-C出现的频度较高”之类的信息。序列模式分析所描述的问题是在给定交易序列数据库中,每个序列是按照交易时间排列的一组交易集,挖掘序列函数作用在这个交易序列数据库上,返回该数据库中出现的高频序列。序列模式分析可用于黑客入侵行为的挖掘,这是因为黑客的许多入侵行为都是有先后关系的,有的行为必须发生在其他的行为之后。例如:黑客在真正实施攻击时,一般都要对系统的端口进行扫描等。

(3)分类分析(Classification Analysis):设有一个数据库和一组具有不同特征的类别(标记),该数据库中的每一个记录都赋予一个类别的标记,这样的数据库称为示例数据库或训练集。分类分析就是通过分析示例数据库中的数据,为每个类别做出准确的描述或建立分析模型或挖掘出分类规则,然后用这个分类规则对其他数据库中的记录进行分类。例如:可以根据黑客入侵行为的危害程度将入侵行为划分三类:致命入侵、一般入侵、弱入侵。分类分析可通过检查以前的黑客入侵行为,并根据分类标准,首先对每一个危害等级进行分类,然后,再进一步给出每一等级的准确的特征描述。

(4)聚类分析(Clustering Analysis):与分类分析不同,聚类分析输入的是一组未分类记录,并且这些记录应分成几类事先并不知道。聚类分析就是通过分析数据库中的记录数据,根据一定的分类规则,合理地划分记录集合,确定每个记录所在的类别。它所采用的分类规则是由聚类分析工具决定的。聚类分析的方法很多,采用不同的聚类方法,对于相同的记录集合可能有不同的划分结果。聚类分析和分类分析是一个互逆的过程。例如:在最初的分析中,分析人员根据以往的经验将要分析的数据进行标定,划分类别;然后,再利用分类分析方法分析该数据集合,挖掘出每个类别的分类规则;接下来,再进一步利用这些挖掘得到的分类规则重新对这个集合(抛弃原来的划分结果)进行划分,以获得更好的分类结果。

4. 基于数据融合技术的网络入侵检测

数据融合(Data Fusion)技术是指利用计算机系统对按时序获得的若干观测信息,在一定准则下加以自动分析、综合,以完成所需的决策和评估任务而进行的信息处理技术。数据融合的概念始于20世纪70年代初期,但真正的技术进步和发展在80年代,美、英、日、德、意等发达国家不但在所部署的一些重大研究项目上取得了突破性进展,而且已陆续开发出一些实用性系统投入实际应用和运行。不少数据融合技术的研究成果和实用系统已在1991年的海湾战争中得到了实战验证,取得了理想的效果。一般来讲,数据融合主要包含以下三个方面的内容:数据融合是对多源数据进行不同层次的处理,每个层次表示不同的数据抽象级别;数据融合的过程主要包括数据的检测、关联、相关、估计和组合;数据融合的结果包括低层次的状态和类型估计以及较高层次的整个环境态势评估。

简单说来,数据融合的基本目标就是通过组合获得比任何单个输入参数数据源更准确的信息。这是感应器之间最佳协调的结果,即通过多感应器之间的协调和性能互补的优势来提高整个感应器系统的有效性。图8.20给出了一个简单的分布式数据融合模型。

图8.20 一个简单的分布式数据融合模型

随着系统的复杂性日益提高,依靠单个感应器对物理量进行监测显然限制颇多。信息融合技术的出现为故障诊断的发展和应用开辟了广阔的前景。数据融合是一种多层次、多方面的处理过程,该过程通过对多源数据进行检测、结合、相关和组合以达到精确的状态估计和身份估计,以及完整、及时的态势评估和威胁评估。目前,数据融合技术在入侵检测领域中的应用还没有涉及具体的技术方法,由T.Bass提出数据融合的概念,将分布式入侵检测理解为在层次化模型下对多感应器的数据综合问题。在这个层次化模型中,入侵检测的数据源经历了从数据(Data)到事件(Event)、再到元事件(Meta-Event)、最后到知识(Knowledge)的四个逻辑抽象层次,如图8.21所示。

图8.21 入侵检测系统数据融合层次模型

(1)数据(Data):感应器收集到的原始信息称为数据。

(2)事件(Event):数据经预处理后转化为事件,预处理工作包括数据的过滤、格式化、特征提取及分析。完成预处理后,感应器将事件信息上报给所属的分析器。

(3)元事件(Meta-Event):分析器对事件进行聚合分析,包括对下属各个感应器上报的事件进行时间相关、来源相关、目标相关、协议(服务)相关,以及在需要时与其他分析器进行交互,以进行协同分析。分析器聚合分析结果产生对应的元事件。对于单点攻击行为,通常在事件级的信息抽象级别就可以体现出入侵或异常的特征;而对于分布式攻击行为,则可能需要在元事件级的信息抽象级别才能发现其迹象。

(4)知识(Knowledge):最高层次的信息抽象称为知识,一般将知识定义为可以从元事件中发掘出的、用于检测未知入侵行为的信息。例如:某检测区域内有一台安装了Linux的主机,运行WU-FTPD(Washington University FTP,华盛顿大学FTP服务器软件)对外提供FTP服务,在该检测区域内设置了两种类型的感应器,一种为主机型感应器S1,驻留在该Linux主机上,通过检查系统调用来检测重要守护程序的异常行为;另一种为网络型感应器S2,通过截获网络数据包并进行模式匹配来发现入侵行为。如图8.22所示,假设发生了某次针对WU-FTPD的缓冲区溢出(Buffer Overflow)攻击,S1通过当前WU-FTPD所产生的系统调用序列与历史序列的比较发现了异常,向分析器报告异常调用序列事件E1;同时,S2也在攻击者发送的数据包中检测到了对应该种类型缓冲区溢出攻击的特征代码,并向分析器报告溢出代码事件E2。分析器通过综合E1和E2,针对事件发生的时间和目标进行相关分析,得出第3层的抽象级别信息——缓冲区溢出攻击元事件M1,就可以确认本次攻击的行为。

图8.22 检测WU-FTPD缓冲区溢出攻击的信息抽象示意图

显然,上述多感应器数据融合技术能够把从多个异质分布式感应器处得到的各种数据和信息综合成一个统一的处理过程,从而可以用来评估整个网络环境的安全性能,为解决当前入侵检测系统所存在的若干缺陷与不足,提供了一条重要的新的技术途径。

5. 基于进化计算技术的网络入侵检测

进化计算(Evolutionary Computation)技术在本质上属于一种模仿某些自然规则的全局优化算法。进化计算主要算法有以下五种类型:遗传算法(Genetic Algorithm,GA)、进化规划(Evolutionary Programming,EP)、进化策略(Evolutionary Strategies,ES)、分类器系统(Classifier Systems,CFS)和遗传规划(Genetic Programming,GP)。在目前,进化计算在入侵检测中的应用主要是遗传算法和遗传规划。

(1)基于遗传算法的网络入侵检测。遗传算法是基于“自然选择”在计算机上模拟生物进化机制的寻优搜索算法在自然界的演化过程中。生物体通过遗传、变异来适应外界环境,一代又一代地优胜劣汰、发展进化。遗传则模拟了上述进化现象,它把搜索空间映射为遗传空间,即把每一个可能的解编码为一个向量,称为一个染色体。向量的每一个元素称为基因,所有染色体组成群体,并且按预定的目标函数对每个染色体进行评价,根据其结果给出一个适应度的值。算法开始时先随机地产生一些染色体,计算其适应度,根据适应度对各染色体进行选择复制(Duplication)、交叉(Crossover)、变异(Mutation)等遗传操作,剔除适应度低的染色体,留下适应度高的染色体,从而得到新的群体。由于新群体的成员是上一代群体的优秀者,继承了上一代的优良性态,因而明显优于上一代。遗传算法就这样反复迭代,向着更优解的方向进化,直至满足某种预定的优化指标。遗传算法在入侵检测中的应用主要分为以下步骤:

◆ 首先,使用一组字符串或比特组对可能出现的检测结果进行编码。

◆ 然后,采用定义好的最适应性函数(Fittest Function),对所有的字符串或比特组个体进行测试,找出最优个体,并对所有的个体执行复制、交叉、变异等操作,不断产生新的字符串或比特组个体。

◆ 最后,不断重复上述的测试、选择、重组或变异等操作步骤,直到获得满意的结果。

(2)基于遗传规划的网络入侵检测。遗传规划是进化计算的分支之一,是从遗传算法中发展起来的一种全局搜索寻优技术,相对于遗传算法,遗传规划对问题的层次结构表示方法更加自然,应用也更加广泛。在遗传算法中,其基因(个体)是用一串二进制编码组成的,而在遗传规划中,组成群体的个体为遗传程序(Genetic Programs),其中,遗传程序是一种动态的树状结构, 树的节点由叶节点(终端集)和非叶节点(根节点和运算符)组成。遗传规划的主要任务是提供能够自动生成可用于解决问题的计算机程序的技术方法,一般步骤如下:

①生成初始的包含多个计算机程序的群体,其中每个程序个体都包括函数和变量集合的随机组合。

②执行群体中的每个程序个体,然后根据它们解决问题的性能,赋予每个个体一个适应性度量值。

图8.23 基于遗传规划的入侵检测系统架构

③通过执行遗传算子操作(复制、交叉、变异),创建一个新的程序个体群体。

④ 选择群体中的一个或多个最佳程序个体作为解决问题的方法。

遗传规划在入侵检测中的应用集中在提供学习能力这一点上。Crosbie和Spafford在1995年提出早期基于代理的入侵检测架构时,对遗传规划在构造代理程序中的应用提供了一个基本架构,如图8.23所示,其中,每个代理代表一个程序个体,负责执行特定的检测任务。解析器(Evaluator)负责解释执行的代理程序。系统抽象层(System Abstraction Layer)负责提取审计记录中的字段信息,并计算出系统所需要的审计信息(例如:CPU的使用情况、登录平均尝试次数等),步骤与上述的一般步骤相同。

进化算法的优点是对于多为系统的优化非常有效,同时可以提高对不同攻击类型的分辨力,降低系统的误报率。但进化算法在入侵检测中的应用研究,目前还处于起步阶段,还存在着不少的问题与缺陷,有待进一步的研究和解决。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈