当前位置:文档之家› 06数据分析技术

06数据分析技术

当使用状态转移图提取入侵序列的特征时,系统应该限制为仅表示那些导致状态变化的关键行为。从初始状态到处于攻击下的系统状态所经过的状态转移路径依赖于主体的实施过程,不同的攻击者即使利用相同的系统脆弱性对目标系统进行攻击,所得到的状态转移图也是不同的。在每种系统状态下,我们都可以得到相应的、针对该状态的判断结果———断言(assertions)。
状态转移分析(State Transition Analysis)
状态转移分析是使用高层状态转移图(state transition diagrams)来表示和检测已知攻击模式的误用检测技术。这种技术首先在STAT系统及USTAT(基于Unix系统的版本)中实现,STAT系统由美国加州大学Santa Barbaba分校(University ofCalifornia,Santa Bar-baba)的Phillip Porras和Richard Kemmerer开发,USTAT则由KoralIlgun和Kemmerer完成。状态转移图是一种针对入侵或渗透过程的图形化表示方法。图4.5以序列的方式给出了状态转移图的各个组成部分。节点(nodes)表示系统的状态,弧线代表每一次状态的转变。所有入侵者的渗透过程都可以看做是从有限的特权开始,利用系统存在的脆弱性(vulnerabilities),逐步提升自身的权限。正是这种共性使得攻击特征可以使用系统状态转移的形式来表示。在每个步骤中,攻击者获得的权限或者攻击成功的结果都可以表示为系统的状态。
专家系统中的攻击知识通常使用if-then的语法规则表示。用来表示攻击发生的条件排列在规则的左边(if部分),当这些条件满足时,系统采取规则右边(then部分)所给出的动作。
当专家系统应用于入侵检测时,存在以下一些实际的问题:
处理海量数据时存在效率问题。这是由于专家系统的推理和决策模块通常使用解释型语言实现,执行速度比编译型语言要慢;
可信的用户行为记录;
可靠的行为记录分析技术。
误用检测的缺陷在于只能检测已知的攻击模式,当出现针对新漏洞的攻击手段或针对旧漏洞的新攻击方式时,需要由人工或者其他机器学习系统得出新攻击的特征模式,添加到误用模式库中,才能使系统具备检测新的攻击手段的能力,如同市场上众多的杀毒软件一样,需要不断的、及时的升级,才能保证系统检测能力的完备性。
缺乏处理序列数据的能力,即数据前后的相关性问题;
专家系统的性能完全取决于设计者的知识和技能;
只能检测已知的攻击模式(误用检测的通病);
无法处理判断的不确定性;
规则库的维护同样是一项艰巨的任务,更改规则时必须考虑到对知识库中其他规则的影响。
1.3状态转移法
状态转移法(state transition approaches)采用优化的模式匹配(pattern-matching)技术来处理误用检测问题,由于处理速度的优势和系统的灵活性,状态转移法已成为当今最具竞争力的入侵检测模型之一。这种方法采用系统状态和状态转移的表达式来描述已知的攻击模式。目前,实现基于状态转移的入侵检测可以用3种方法:状态转移分析(state transition analysis)、着色Petri网(colored petrinets,简称CP-Nets)和基于语言/应用程序接口的方法(language/APIbased approach)。下面,我们将对状态转移分析进行介绍,包括如何建立误用模型以及如何使用模型对审计事件数据进行过滤。
对当前状态下得出的断言进行评估时,可能需要从目标系统获取额外的信息,这个过程通常会导致系统性能的下降;
STAT系统是属于研究性质的原型系统,不能检测一些常见的攻击手段,实际应用时必须与其他检测器协同工作;
STAT原型系统与其他基于状态转移的方法相比,速度较慢。
NSTAT
NSTAT是STAT系列中的第二代系统,主要关注网络系统中的主机。主机在执行诸如文件共享、目录加载等操作时,都会影响到网络中的其他计算机。NSTAT实现了集中式的入侵检测功能,这一方面可以减少对各个主机性能的影响,一方面也适合于检测针对多主机的攻击手段。在NSTAT系统中,每个主机都将本机的审计数据转换为NSTAT的标准格式,并融合为统一的数据流。
1.2专家系统
专家系统(expertsystem)是最早的误用检测方案之一,被许多经典的检测模型所采用,例如MIDAS,IDES,NextGeneration IDES(NIDES),DIDS和CMDS。在MIDAS,IDES和NIDES中,所采用的专家系统是由Alan W hitehurst设计的P-BEST,DIDS和CMDS则使用了由美国国家航空和宇宙航行局(NationalAeronautics and Space Administration,简称NASA)开发的CLIPS系统。
专家系统的应用方式是:首先使用类似于if-then的规则格式输入已有的知识(攻击模式),然后输入检测数据(审计事件记录),系统根据知识库中的内容对检测数据进行评估,判断是否存在入侵行为模式。专家系统的优点在于把系统的推理控制过程和问题的最终解答相分离,即用户不需要理解或干预专家系统内部的推理过程,而只须把专家系统看做是一个自治的黑盒子(black box)。当然,要达到这一目的,黑盒子的生成是一项困难而费时的工作,用户必须把决策引擎和检测规则以硬编码的方式嵌入到系统中。
STAT系统的优点、高层次的、与审计记录无关的表示方法;
利用状态转移法,可以描述出构成特定攻击模式的特征行为序列;
状态转移图给出了保证攻击成功的特征行为(signature actions)的最小子集,这使得检测器可以适应相同入侵模式的不同表现形式;
用于误用检测的状态转移分析引擎包括一组状态转移图,各自代表一种入侵或渗透模式。在每个给定的时间点,我们都认为是由于一系列的用户行为使得系统到达了每个状态转移图中的特定状态。每次当新的行为发生时,分析引擎检查所有的状态转移图,查看是否会导致系统的状态转移。如果新行为否定了当前状态的断言(assertions),分析引擎就将转移图回溯到断言仍然成立的状态;如果新行为使系统状态转移到了入侵状态,状态转移信息就被发送到决策引擎,并根据预先定义的策略采取相应的响应措施。
二、入侵检测数据分析技术
前面我们介绍了入侵分析的定义、目标、需求以及通用的处理模型,本节所要介绍的是入侵分析的各项应用技术。入侵检测从分析引擎所采用的技术上来说,可以分为误用检测(misuse detection)和异常检测(anomaly detection)两大类。误用检测搜索审计事件数据,查看其中是否存在预先定义的误用模式;异常检测则提取正常模式审计数据的数学特征,检查事件数据中是否存在与之相违背的异常模式。下面,我们就从这两个方面来介绍入侵检测的分析技术。
NetSTAT
在NSTAT之后,又出现了最新一代的STAT系统———NetSTAT,该系统脱离了STAT传统的基于主机的结构,采用了网络化的分布式检测。NetSTAT由一系列探测器(probes)组成,每个探测器负责一个子网段的检测和分析任务,包含可以远程配置的数据过滤器、推理引擎和决策引擎,所有探测器都以自治的方式独立工作。对于某些攻击方式,单个的探测器很可能只检测到攻击的一部分。在这种情况下,探测器可以向其他探测器发送特定的事件,要求对方协助收集和分析相关数据,以得到有关攻击的全面信息,这样就可以鉴别出涉及多网段的攻击手段。探测器由位于系统上层的分析器(analyzer)负责产生和管理。分析器包括网络状态描述库、基于状态的入侵规则库、分析引擎和配置信息生成器。系统的许多参数,包括所要监视的事件类型、监视的环境、网络的拓扑结构、网络状态信息等等,都是可变的。为了确定这些因素,首先应由分析引擎使用状态描述库中的信息,结合入侵规则库的知识、确定出对目标网络具有危害性的攻击手段,将输出结果递交给配置生成器,由后者产生相应的探测器配置信息。配置信息中包括数据过滤规则、状态转移信息以及用于探测器作出判断的判决表(decision tables)。
状态转移分析系统使用有限状态机(finite state machine)模型来表示入侵过程。入侵过程由一系列导致系统从初始状态转移到入侵状态的行为组成。初始状态表示在入侵发生之前的系统状态,入侵状态则代表入侵完成后系统所处的状态。系统状态通常使用系统属性(system attributes)或用户权限(userprivileges)来描述。用户的行为和动作导致系统状态的转变。
课题名称:入侵检测的数据分析技术
课的类型:授新课
教学目标:学习入侵检测的数据分析技术。
教学重点:入侵检测的数据分析技术
教学难点:入侵检测的数据分析技术
课时安排:2课时
教学方法:多媒体原理分析、讲授
教学过程:
一、序言
本次课堂主要介绍入侵分析的各项应用技术,包括基于误用检测(misuse detection)的模式匹配、专家系统、状态转移,基于异常检测(anomaly detection)的量化分析、统计分析、非参量统计分析、随机过程分析、规则分析、神经网络以及其他诸如免疫系统、基因算法、数据挖掘、基于代理、基于内核等检测模型及技术,介绍过程中还会穿插一些作者在研究入侵检测系统时的经验和体会。
1.1简单模式匹配
简单模式匹配是最为通用的误用检测技术,特点是原理简单、扩展性好、检测效率高、可以实时检测,但只能适用于比较简单的攻击方式,并且误报率高。简单模式匹配虽然在性能上存在很大问题,但由于系统的实现、配置、维护都非常方便,因此得到了广泛的应用。著名的Snort就采用了这种检测手段。
Snort是跨平台的轻量级网络入侵检测工具,可以用于监视小型的TCP/IP网络,检测各种可疑的网络行为或已知的攻击手段。Snort为系统管理员提供了足够的信息,帮助对可疑行为作出正确的判断。由于具有简单的系统结构和良好的扩展性,Snort可以迅速地用于弥补网络系统存在的安全漏洞,相对于需要较长时间才能提供特征库更新的商业安全产品来说,更能够满足管理员的需求。Snort最大的优势在于系统的成本,商业化的入侵检测系统动辄需要花费几万到几十万美元,而Snort基于GNU GeneralPublic License,可以免费应用在各种环境中,并且开放全部源代码,又有众多安全研究组织和个人的热心支持,因此完全可以保证规则库的更新。笔者所在的研究小组曾经对Snort的全部源程序进行了分析,下图是Snort系统的流程: 从系统流程来看,Snort的检测相对来说是比较简单的,需要说明的是Snort对检测规则所采用的二维链表。Snort的规则库采用文本方式存储,可读性和可修改性都比较好,缺点是不能作为直接的数据结构给检测引擎进行调用,因此每次在启动时,都需要对规则库文件进行解析,以生成可供检测程序高效检索的数据结构。Snort采用了一种二维链表的结构。二维链表横向的节点称为RuleTreeNode,纵向的节点称为OptTreeNode。规则库中的每条规则分为两个部分:Rule Header和Rule Option。其中Rule Header决定了该规则处于二维链表横向的哪一个节点上(RuleTreeNode);Rule Option决定了该规则处于二维链表纵向的哪一个节点上(OptTreeNode)。检测过程同样按照二维链表的顺序进行,将抓取的数据包和根据规则库所生成的二维链表进行逐一的比较,如果找到匹配的规则条目,则根据该规则所规定的响应方式进行响应(Pass,Log,Alert),然后再处理下一个数据包;如果没有匹配的规则条目,则直接返回,处理下一个数据包。
相关主题