《入侵检测》课件第2章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图2.1 入侵检测过程
1) 日志文件中记录了各种行为类型,每种类型又包含不同的 信息,例如记录“用户活动”类型的日志,包含登录、用户ID 改变、用户对文件的访问、授权和认证信息等内容。日志中包 含发生在系统和网络上的不寻常和不期望活动的证据,这些证 据可以指出有人正在入侵或已成功入侵了系统。通过查看日志 文件,能够发现成功的入侵或入侵企图,并很快地启动相应的 应急响应程序。对用户活动来讲,不正常的或不期望的行为就 是重复登录失败、登录到不期望的位置以及非授权企图访问重 要文件等。黑客经常在系统日志文件中留下他们的踪迹,因此, 可以充分利用系统和网络日志文件信息。
图2.2 通用入侵检测模型
IDES与它的后继NIDS都完全基于Denning模型,然而并不是 所有的IDS都能完全符合该模型。与其它安全产品不同的是,入 侵检测系统需要更多的智能,它必须可以将得到的数据进行分析, 并得出有用的结果。一个合格的入侵检测系统能大大地简化管理 员的工作,保证网络安全运行。这几年,随着网络规模的不断扩 大,应用的网络安全产品也越来越多,入侵检测系统的市场发展 很快,但是由于缺乏相应的通用标准,各种入侵检测系统各自为 阵,系统之间的互操作性和互用性很差,这大大阻碍了入侵检测 系统的发展。互联网工程任务组(IETF)的入侵检测工作组 (IDWG)和通用入侵检测架构(CIDF)组织都试图对入侵检测 系统进行标准化,并已提出了相关的草案。
由于程序执行不仅有一定的顺序,而且其功能也各不相 同,对于不同的程序执行迹,系统调用序列集合之间必然存 在不同的系统调用子序列。由此可以达到区分不同程序的目 的。为此,可以利用系统关键程序执行迹中长度为k的系统 调用序列集来构造该程序的正常执行的特征轮廓,且把系统 中被监控的所有关键程序的正常执行特征轮廓(同一长度的 系统调用子序列集)的并集(记为S)作为系统的正常执行 特征轮廓。
由于不能保证训练数据没有受到污染、损坏等原因,检 测系统D=(f,M)提取的系统行为模式集合M中,也可能 会存在一些异常模式。这样检测系统在检测时就可能把某些 入侵行为误判为正常行为,这种错误现象称为漏警。图中, 漏警为M界内非线条区域。漏警现象在基于知识的入侵检测 系统中比较普遍,因为基于知识的入侵检测系统是根据已知 入侵行为的模式来检测针对系统的入侵的。显然,这类入侵 检测系统对于未知的入侵行为肯定会出现漏警。检测系统在 检测过程中出现漏警的概率称为系统的漏警率。与虚警现象 相比,漏警的危害显然更大。
2.1.2 入侵检测系统模型及组件 1.入侵检测系统的模型 1) 在入侵检测系统的发展历程中,大致经历了集中式、层
次式和集成式三个阶段,代表这三个阶段的入侵检测系统的 基本模型分别是通用入侵检测模型(Denning模型)、层次 化入侵检测模型(IDM)和管理式入侵检测模型(SNMPIDSM)。
(1)通用入侵检测模型。 1987年,Denning提出了一个抽象的通用入侵检测模型。 该模型主要由六个部分构成:主体、对象、审计记录、活动 简档、异常记录、活动规则,模型如图2.2所示。
第2
2.1 入侵检测系统的基本组成 2.2 入侵检测系统的分类 2.3 基于主机的入侵检测系统 2.4 基于网络的入侵检测系统 2.5 分布式入侵检测系统
2.1 入侵检测系统的基本组成
1.信息收集 信息收集包括收集系统、网络、数据及用户活动的状态 和行为,而且需要在计算机网络系统中的若干不同关键点 (如不同网段和不同主机)收集信息。这除了尽可能扩大检 测范围以外,还要对来自不同源的信息进行特征分析,比较 之后得出问题的所在。入侵检测在很大程度上依赖于收集信 息的可靠性和正确性。入侵检测利用的信息一般来自系统和 网络日志文件、非正常的目录和文件改变、非正常的程序执 行等方面(这里不包括物理形式的入侵信息)。
检测分类器的建立可采用多种机器学习的方法来实现,典型 的方法有:决策树、规则提取、神经网络以及贝叶斯学习方法等。 使用分类模型构建异常检测器的一个关键条件是:必须有“充足” 的、能够覆盖尽可能多系统正常行为的训练数据,只有这样才能 够使检测器保持一个较低的虚警率。可以先通过有限的训练数据 获得基本分类器,然后使用在线学习算法不断地更新分类器。
f
(
p,
M
)
正常 异常
pM 其它情况
图2.4 定义在系统行为模式集合上的入侵检测系统模型
对于一个检测模型,其正确检测率越高越好。但由于训练数 据的不完全,可能有些程序的正常执行模式不包含在检测系统D =(f,M)的模式集合M中,这样在检测时就可能出现把系统的 正常行为误判为入侵行为的错误,这类错误被称为虚警。图中, 虚警所指为越过M界的线条,检测系统在检测过程中出现虚警的
3) 网络系统上的程序执行一般包括操作系统、网络服务、 用户启动的程序和特定目的的应用,如WEB服务器。每个 在系统上执行的程序由一到多个进程来实现。一个进程的执 行行为由它运行时执行的操作来表现,操作执行的方式不同, 它利用的系统资源也就不同。操作包括计算、文件传输、设 备和其它进程,以及与网络其它进程的通信。一个进程出现 了不期望的行为可能表明黑客正在入侵系统,黑客可能会将 程序或服务的运行分解,从而导致失败,或者是以非用户管 理员意图的方式操作。
下面给出定义在系统行为模式空间U上的入侵检测分类 模型(见图2.4):D=(f,M)。在图2.4中,M为系统正常行为 模式(注意:M是通过对训练数据集-系统程序执行迹集合 的分析得到的,而S为理论上精确的系统正常模式集合)。 线条所涵盖的区域为S集合,实线所围区域为M集合,f是一 个二分类函数。给定一个行为模式,可判断它是否是系统的 正常行为,定义如下:
图2.3 IDSA与IDSB消息交换示意图
SNMPGet:SNMP协议规定的提取被管理对象某些参数 SNMPSet:SNMP协议规定的对被管理对象进行参数设 TRAP:陷阱通知,在有异常情况的时候,代理主动向管 SNMP通告:管理者与管理者之间互相发送管理消息或 异常的陷阱消息。
IDSB负责监视主机B和请求最新的IDS事件,主机A的 IDSA观察到一个来自主机B的攻击企图,然后IDSA与IDSB 联系,IDSB响应IDSA的请求,IDSB发现有人曾经扫描主机 B,某个用户的异常活动事件被IDSB发布。IDSA怀疑主机B 受到了攻击,为了验证和寻找攻击者的来源,IDSA使用 MIB脚本发送一些代码给IDSB。这些代码的功能能够搜集 主机B的网络活动和用户活动的信息。最后,这些代码的执 行结果表明用户X在某个时候攻击主机A,而且,IDSA进一 步得知用户X来自主机C。这样,IDSA和IDSC联系,要求主 机C向IDSA报告入侵事件。
2) 网络环境中的文件系统包含很多软件和数据文件,它们 经常是黑客修改或破坏的目标。目录和文件中的非正常改变 (包括修改、创建和删除),特别是访问那些正常情况下限 制访问的文件,很可能就是一种入侵产生的指示和信号。黑 客经常替换、修改和破坏他们获得访问权的系统上的文件, 同时为了隐藏系统中他们的表现及活动痕迹,都会尽力去替 换系统程序或修改系统日志文件。
(2)IDM模型。 层次化入侵检测模型将入侵检测分为六个层次,分别是: 数据、事件、主体、上下文、威胁、安全状态。IDM模型给 出了在推断网络中的计算机受攻击时数据的抽象过程。也就 是说,它给出了将分散的原始数据转换为高层次有关入侵和 被检测环境的全部安全假设过程。通过把收集到的分散数据 进行加工抽象和数据关联操作,IDM构造了一台虚拟的机器 环境,这台机器由所有相连的主机和网络组成。将分布式系 统看做一台虚拟计算机的观点简化了跨越单机入侵行为的识 别。IDM应用于只有单台计算机的小型网络。
3ቤተ መጻሕፍቲ ባይዱ结果处理 结果处理指控制台根据报警产生预先定义的响应,采取相应 措施,可以是重新配置路由器或防火墙、终止进程、切断连接、
结果处理可以分为两步处理,第一步是信息保存,目的是便 于系统管理员或其它人员对系统日志或网络中的传输信息进行查 看和分析,需要将获得的信息和分析的结果信息进行保存,信息 保存同时也可以为用户对发现的攻击提供数字证据;第二步是攻 击响应,对发出的攻击进行相应的处理,如发出报警、给系统管 理员或相关的责任人发邮件等利用人为干预的形式解除攻击,或 是直接利用相应的硬件设施进行处理,如利用防火墙来切断连接、 过滤攻击者的IP地址等方式迅速做出反应。
定义:设A为被监控系统的系统调用集合。系统行为模 式空间U定义为某一固定长度k的系统调用序列的全集 U={p=s1s2…sk|si∈A,i=1,2,…,k},式中p被称为长度为k的系 统行为模式。
确定系统调用序列的长度k时必须注意:如果k比较小, 那么系统正常执行特征轮廓的集合S就有可能满足S=U,这 时U中的系统调用序列都是程序正常执行迹的某个子序列, 因而无法判定程序的执行是否正常。因为程序是完成一定功 能的,所以当k大于某一长度时,U中就会出现不在S中出现 的系统调用子序列。记N=U-S,集合N表示在系统程序中不 会出现的系统调用子序列。
(3)SNMP-IDSM模型。IDS系统之间的消息交换和协 同检测是以SNMP协议规定的报文格式和交互命令为基础的。
SNMP是广泛采用的一种网络管理协议,定义了管理者 与代理之间通信的流程、交互的数据格式,发布的管理命令 及响应等。其中,代理代表管理者根据管理者发布过来的请 求对被管理对象执行管理操作。SNMP-IDSM定义了IDSMIB,IDS管理信息库使得原始事件和抽象事件之间关系明 确,并且易于扩展。SNMP-IDSM的工作原理如图2.3所示。
2.信息分析 对收集到的有关系统、网络、数据及用户活动的状态和 行为等信息,一般通过一定的技术手段进行分析,如常用的 模式匹配、统计分析和完整性分析等。其中,前两种方法用 于实时的入侵检测,而完整性分析用于事后分析。
入侵检测是一个典型的数据处理过程。它通过对大量的 系统审计数据进行分析,来判断被监控的系统是否受到入侵 攻击。系统的检测机制,其实就是一个系统主体行为(或事 件)的分类系统,它需要把对系统具有恶意的行为从大量的 系统行为中区分出来,而解决问题的关键就是如何从已知数 据中获得系统的正常行为知识和有关入侵行为的知识(如何 定义、描述系统的行为)。在入侵检测系统的研究领域中, 相关的知识获取技术,如数据挖掘、知识表述及获取、特征 选择以及机器学习等技术以及各种分类算法的研究具有重要 的地位,不同的检测技术将在第3章讨论。
3)面向数据处理的检测模型 从以数据为中心的观点来看,所有软件(应用)系统定义、 开发的最终目的都是为了解决数据处理问题,也就是如何将一种 形式的数据转换成另一种形式的数据。其数据转换过程必然经历 数据的输入、加工和输出结果数据等步骤。同理,入侵检测系统 检测入侵行为的过程也是一个典型的数据分析过程,异常检测就 是从审计数据中发现系统的不正常使用模式的过程,基于知识的 入侵检测则是对已知的入侵模式进行编码并使用审计数据对其进 行匹配的过程。因此,在分析、设计入侵检测系统时可以从数据 处理的角度来考虑。图2.5给出了一个面向数据处理的入侵检测系 统模型,它的主要功能模块包括:审计、数据预处理、规则(特 征轮廓、入侵签名等)提取、检测以及响应(事后处理、攻击源 的追踪等)。
2) 基于系统行为的入侵检测的主要问题是,在给定的系统环境 中,如何对系统的行为模式进行定义、识别和分类。其中,分类 就是采用一些分类算法,把一个数据项归于预先定义的类别中的 某一类。以系统行为模式的分类为例,由于系统的行为可以通过 执行系统软件及相应的服务程序来体现,显然可以通过判断系统 中每个系统关键程序的执行状况来检测整个系统的行为是否正常。 通过收集足够多关于某个系统关键程序的“正常”或“异常”活 动的审计数据,然后指定“正常”与“异常”两个类别,用分类 算法进行学习,构造一个二分类的分类器(通常的分类器多基于 统计概率、决策树、规则或神经网络)对系统进程的审计迹数据 进行分类、分析,来判断被监控进程的行为是否正常。