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