第 4章 信息系统安全监控从安全性的角度看,所有试图破坏系统安全性的行为都称为攻击,入侵就是成功的攻击。当一次入侵是成功的时候,一次入侵就发生了。或着说,系统藉以保障安全的第一道防线已经被攻破了。所以,
只从防御的角度被动地构筑安全系统是不够的。
安全监控是从一种积极的防御措施。它通过对系统中所发生的现象的记录,分析系统出现了什么异常,
以便采取相应的对策。
本章结构
4.1 入侵检测系统概述
4.2 入侵检测系统的基本结构
4.3 入侵检测系统的实现
4.4 入侵检测系统的标准化
4.5 网络诱骗
4.6 安全审计
习题
4.1 入侵检测系统概述入侵检测( Intrusion Detection System,IDS)
就是一种主动安全保护技术。入侵检测像雷达警戒一样,在不影响网络性能的前提下,对网络进行警戒、监控,从计算机网络的若干关键点收集信息,通过分析这些信息,看看网络中是否有违反安全策略的行为和遭到攻击的迹象,从而扩展了系统管理员的安全管理能力,提高了信息安全基础结构的完整性。
4.1.1 入侵检测与入侵检测系统
IDS是对计算机和网络系统资源上的恶意使用行为进行识别和响应的处理,它最早于 1980年 4月由 James
P,Anderson在为美国空军起草的技术报告
,Computer Security Threat Monitoring and
Surveillance》( 计算机安全威胁监控与监视)中提出。他提出了一种对计算机系统风险和威胁的分类方法,将威胁分为 外部渗透,内部渗透 和 不法行为 ;提出了利用审计跟踪数据,监视入侵活动的思想。
相关概念
,入侵,( Intrusion) 是一个广义的概念,不仅包括发起攻击的人(包括黑客)取得超出合法权限的行为,也包括收集漏洞信息,造成拒绝访问( Denial of Service) 等对系统造成危害的行为。
入侵检测( Intrusion Detection) 就是对入侵行为的发觉。
它通过对计算机网络等信息系统中若干关键点的有关信息的收集和分析,从中发现系统中是否存在有违反安全规则的行为和被攻击的迹象。
入侵检测系统( Intrusion Detection System,IDS) 就是进行入侵检测的软件和硬件的组合。
入侵检测作为一种积极主动的安全防护技术,提供了对内部攻击、外部攻击和误操作的实时保护,被认为是防火墙后面的第二道安全防线。
入侵检测系统的主要功能具体说来,入侵检测系统的主要功能有:
· 监视并分析用户和系统的行为;
· 审计系统配置和漏洞;
· 评估敏感系统和数据的完整性;
· 识别攻击行为、对异常行为进行统计;
· 自动收集与系统相关的补丁;
· 审计、识别、跟踪违反安全法规的行为;
· 使用诱骗服务器记录黑客行为;
· ……
4.1.2 实时入侵检测和事后入侵检测实时入侵检测实时入侵检测在网络的连接过程中进行,通过攻击识别模块对用户当前的操作进行分析,一旦发现攻击迹象就转入攻击处理模块,如立即断开攻击者与主机的连接、收集证据或实施数据恢复等。如 图 4.1所示,这个检测过程是反复循环进行的。
当前操作入侵检测攻击识别模块攻击处理模块是攻击否监测
N
Y
图 4.1 实时入侵检测过程事后入侵检测事后入侵检测是根据计算机系统对用户操作所做的历史审计记录,判断是否发生了攻击行为,如果有,则转入攻击处理模块处理。事后入侵检测通常由网络管理人员定期或不定期地进行的。 图 4.2为事后入侵检测的过程。
历史记录入侵监测攻击处理模块攻击识别模块是攻击否 返回
N
Y
图 4.2 事后入侵检测的过程
4.1.3 入侵检测系统模型
1,IDES模型
1980年 James P,Anderson为美国空军起草的技术报告,Computer
Security Threat Monitoring and Surveillance,仅仅提出了关于入侵检测一些概念。 1984年到 1986年间,乔治敦大学的 Dorothy
Denning和 SRI/CSI( SRI公司的计算机科学实验室)的 Peter
Neumann研究出了一个如 图 4.3所示的实时入侵检测系统模型 IDES
( 入侵检测专家系统)。
审计记录 /网络数据包等事件产生器 行为特征模块 规则模块规则更新异常记录变量阈值特征表更新事件图 4.3 Denning的 IDES模型在这个模型中,事件产生器从审计记录 /网络数据包以及其他可视行为中获取事件,构成检测的基础。行为特征表是整个检测系统的核心,它包含了用于计算用户行为特征的所有变量。这些变量可以根据具体采用的统计方法以及事件记录中的具体动作模式定义,并根据匹配上的记录数据进行变量值的更新。一旦有统计变量的值达到了异常程度,行为特征表即产生异常记录,并采取相应的措施。规则模块可以由系统安全策略、入侵模式等赞成。它一方面为判断是否入侵提供参考标准;另一方面,可以根据事件记录、异常记录以及有效日期等控制并更新其他模块的状态。此外,这个模型还独立于特定的系统平台、应用环境和入侵类型,为构建入侵检测系统提供了一个通用框家。
IDES模型的改进
1988年,SRI/CSI的 Teresa Luunt等人改进了 Denning的模型,开发出了如 图 4.4所示的 IDES。
该系统包括一个异常检测器(用于统计异常模型建立)和一个策略规则专家系统(基于规则的特征分析检测)。
审计数据源模式匹配器轮廓特征引擎 异常检测器策略规则警告 /报告产 生 器图 4.4 IDES结构框架
2,DIDS模型
1988年,莫里斯蠕虫的爆发,引起了军界、学者和企业界对网络安全的高度重视。美国空军、国家安全局和能源部共同资助空军密码支持中心、劳抡斯利弗摩尔国家实验室、加州大学分校,Haystack
实验室开展对分布式入侵检测系统( DIDS) 的研究。 DIDS将基于主机和基于网络的检测方法集成到一起,形成如 图 4.5所示的模型。
DIDS检测模型采用了分层结构,包括了数据、时间、主体、上下文、威胁、
安全状态等 6层,成为分布式入侵检测系统发展史上的一个里程碑。
DIDS控制器主 机 代 理主 机 监 视 器主机事件发生器
LAN 代 理
LAN监 视 器
LAN事件发生器图 4.5 DIDS结构框架
4.1.4 入侵检测系统的优点及其局限
1,优点采用入侵检测系统和漏洞评估工具带来的好处有如下一些:
· 提高了信息系统安全体系其他部分的完整性;
· 提高了系统的监察能力;
· 可以跟踪用户从进入到退出的所有活动或影响;
· 能够识别并报告数据文件的改动;
· 可以发现系统配置的错误,并能在必要时予以改正;
· 可以识别特定类型的攻击,并进行报警,作出防御响应;
· 可以使管理人员最新的版本升级添加到程序中;
· 允许非专业人员从事系统安全工作;
· 可以为信息系统安全提供指导。
2,局限但是,与其他任何工具一样,入侵检测也不是万能的,它们的使用存在如下局限:
· 在无人干预的情形下,无法执行对攻击的检测;
· 无法感知组织(公司)安全策略的内容;
· 不能弥补网络协议的漏洞;
· 不能弥补系统提供信息的质量或完整性问题;
· 不能分析网络繁忙时的所有事物;
· 不能总是对数据包级的攻击进行处理;
· ……
4.2 入侵检测系统的基本结构入侵检测是防火墙的合理补充,帮助系统对付来自外部或内部的攻击,扩展了系统管理员的安全管理能力(如安全审计、监视、攻击识别及其响应),提高了信息安全基础结构的完整性。
如 图 4.6所示,入侵检测系统的主要工作就是从信息系统的若干关键点上收集信息,然后分析这些信息,用来得到网络中有无违反安全策略的行为和遭到袭击的迹象。
数据收集数据分析结果处理数据 数据 事件 结果图 4.6 入侵检测系统的通用模型入侵检测系统这个模型比较粗略。但是它表明数据收集、数据分析和处理响应是一个入侵检测系统的最基本部件。
4.2.1 信息收集
1,数据收集的内容入侵检测的第一步是在信息系统的一些关键点上收集信息。这些信息就是入侵检测系统的输入数据。
入侵检测系统收集的数据一般有如下 4个方面:
( 1)主机和网络日志文件
( 2)目录和文件中的不期望的改变
( 3)程序执行中的不期望行为
( 4)物理形式的入侵信息
( 1)主机和网络日志文件主机和网络日志文件中记录了各种行为类型,每种行为类型又包含不同的信息,例如记录“用户活动”类型的日志,就包含登录、用户 ID改变、用户对文件的访问、授权和认证信息等内容。这些信息包含了发生在主机和网络上的不寻常和不期望活动的证据,留下黑客的踪迹。通过查看日志文件,能够发现成功的入侵或入侵企图,
并很快地启动响应的应急响应程序。因此,充分利用主机和网络日志文件信息是检测入侵的必要条件。
( 2)目录和文件中的不期望的改变网络环境中的文件系统包含很多软件和数据文件。包含重要信息的文件和私密数据文件经常是黑客修改或破坏的目标。黑客经常替换、
修改和破坏他们获得访问权的系统上的文件,同时为了隐蔽系统中他们的活动痕迹,还会尽力替换系统程序或修改系统日志文件。因此,目录和文件中的不期望的改变(包括修改、创建和删除),特别是那些正常情况下限制访问的对象,往往就是入侵产生的指示和信号。
( 3)程序执行中的不期望行为每个在系统上执行的程序由一到多个进程来实现。每个进程都运行在特定权限的环境中,的行为由它运行时执行的操作来表现,这种环境控制着进程可访问的系统资源、程序和数据文件等;操作执行的方式不同,利用的系统资源也就不同。
操作包括计算、文件传输、设备以及与网络间其它进程的通讯。黑客可能会将程序或服务的运行分解,从而导致它的失败,或者是以非用户或管理员意图的方式操作。因此,一个进程出现了不期望的行为可能表明黑客正在入侵你的系统。
( 4)物理形式的入侵信息黑客总是想方设法(如通过网络上的由用户私自加上去的不安全 —
— 未授权设备)去突破网络的周边防卫,以便能够在物理上访问内部网,在内部网上安装他们自己的设备和软件。例如,用户在家里可能安装 Modem以访问远程办公室,那么这一拨号访问就成了威胁网络安全的后门。黑客就会利用这个后门来访问内部网,从而越过了内部网络原有的防护措施,然后捕获网络流量,进而攻击其它系统,并偷取敏感的私有信息等等。
2.入侵检测系统的数据收集机制准确性、可靠性和效率是入侵检测系统数据收集机制基本指标,
在 IDS中占据着举足轻重的位置。如果收集的数据时延较大,检测就会失去作用;如果数据不完整,系统的检测能力就会下降;如果由于错误或入侵者的行为致使收集的数据不正确,IDS就会无法检测某些入侵,给用户以安全的假象。
( 1)基于主机的数据收集和基于网络的数据收集基于主机的 IDS是在每台要保护的主机后台运行一个代理程序,检测主机运行日志中记录的未经授权的可疑行径,检测正在运行的进程是否合法并及时做出响应。
基于网络的入侵检测系统是在连接过程中监视特定网段的数据流,
查找每一数据包内隐藏的恶意入侵,对发现的入侵做出及时的响应。在这种系统中,使用网络引擎执行监控任务。如 图 4.7所示,
网络引擎所处的位置决定了所监控的网段子网 1
子网 2
子网 3
控制台防火墙
Web
服务器域 名服务器
Internet
网络引擎 内部网图 4.7 基于网络的 IDS中网络引擎的配置如 图 4.7所示,网络引擎所处的位置决定了所监控的网段。
· 网络引擎配置在防火墙内,可以监测渗透过防火墙的攻击;
· 网络引擎配置在防火墙外的非军事区,可以监测对防火墙的攻击;
· 网络引擎配置在内部网络的各临界网段,可以监测内部的攻击。
控制台用于监控全网络的网络引擎。为了防止假扮控制台入侵或拦截数据,在控制台与网络引擎之间应创建安全通道。
基于网络的入侵检测系统主要用于实时监控网络关键路径。它的隐蔽性好、视野宽、侦测速度快、占用资源少、实施简便,并且还可以用单独的计算机实现,不增加主机负担。但难于发现所有数据包,对于加密环境无能为力,用在交换式以太网上比较困难。
基于主机的 IDS提供了基于网络的 IDS不能提供的一些功能,如二进制完整性检查、记录分析和非法进程关闭等。同时由于不受交换机隔离的影响,在交换网络中非常有用。但是它对网络流量不敏感,并且由于运行在后台,不能访问被保护系统的核心功能(不能将攻击阻挡在协议层之外)。它的内在结构没有任何束缚,并可以利用操作系统提供的功能,
结合异常分析,较准确地报告攻击行为,而不是根据网上收集到的数据包去猜测发生的事件。但是它们往往要求为不同的平台开发不同的程序,
从而增加了主机的负担。
总地看来,单纯地使用基于主机的入侵检测或基于网络的入侵检测,都会造成主动防御体系的不全面。但是,由于它们具有互补性,所以将两种产品结合起来,无缝地部署在网络内,就会构架成综合了两者优势的主动防御体系,即可以发现网段中的攻击信息,又可以从系统日志中发现异常情况。这种系统一般为分布式,由多个部件组成。
基于主机和基于网络的数据收集之间的比较
( 2)分布式与集中式数据收集机制分布式 IDS收集的数据来自一些固定位置,而与受监视的网元数量无关。集中式 IDS收集的数据来自一些与受监视的网元数量有一定比例关系的位置。
( 3)直接监控和间接监控
IDS从它所监控的对象处直接获得数据,则称为直接监控;反之,
如果 IDS依赖一个单独的进程或工具获得数据,则称为间接监控。
就检测入侵行为而言,直接监控要优于间接监控,因为:
· 从非直接数据源获取的数据在被 IDS使用之前,入侵者还有进行修改的潜在机会。
· 非直接数据源可能无法记录某些事件,例如它无法访问监视对象的内部信息。
· 在间接监控中,数据一般都是通过某种机制(如编写审计代码)生成的,但这些机制并不 IDS的具体要求,因而从间接数据源获得的数据量要比从直接数据源大得多。并且间接监控机制的可伸缩性小,一旦主机及其内部被监控要素增加,过滤数据的开销会降低监控主机的性能。
· 间接数据源的数据从产生到 IDS访问之间有一个时延。
但是由于直接监控操作的复杂性,目前的 IDS 产品中只有不足 20%使用了直接监控机制。
直接监控和间接监控之间的比较
( 4)外部探测器和内部探测器外部探测器的监控组件(程序)独立于被监测个组件(硬件或软件)
实现。内部探测器的监控组件(程序)附加于被监测个组件(硬件或软件)实现。 表 4.1给出了它们的优缺点比较。
比较内容外部探测器 内部探测器错误引入和安全性:
·代理消耗了过量资源;
·库调用错误地修改了某些参数;
·有被入侵者修改的潜在可能
·要嵌入被监控程序中,修改被监控程序时容易引进错误 。
对策:探测器代码尽量短 。
·不是分离进程,不易被禁止或修改可实现性可使用性可维护性好:
·探测器程序与被监控程序分离,
·从主机上进行修改,添加或删除等较容易 ;
·可以利用任何合适的编程语言差:
·需要集成到被监视程序中,难度较大
·需要使用与被监视程序相同的编程语言;
·设计要求高,修改,升级难度大开销 差:
·数据生成和使用之间存在时延小:
·数据的产生和使用之间的时延小,
·不是分离进程,避免了创建进程的主机开销;
完备性 差:
·只能从,外面,监察程序;
·只能访问外部可以获得的数据 —— 获取能力有限好:
·可以放置在所监视程序的任何地方;
·可以访问所监视程序中的任何信息正确性 只能根据可获数据作出基于经验的猜测 较完全表 4.1 外部探测器和内部探测器的优缺点
4.2.2 数据分析数据分析是 IDS的核心,它的功能就是对从数据源提供的系统运行状态和活动记录进行同步、整理、
组织、分类以及各种类型的细致分析,提取其中包含的系统活动特征或模式,用于对正常和异常行为的判断。
入侵检测系统的数据分析技术依检测目标和数据属性,分为异常发现技术和模式发现技术两大类。
最近几年还出现了一些通用的技术。下面分别介绍。
1.异常发现技术异常发现技术用在基于异常检测的 IDS中。如 图 4.8所示,在这类系统中,观测到的不是已知的的入侵行为,而是所监视通信系统中的异常现象。如果建立了系统的正常行为轨迹,
则在理论上就可以把所有与正常轨迹不同的系统状态视为可疑企图。由于正常情况具有一定的范围,因此正确地选择异常阈值和特征,决定何种程度才是异常,是异常发现技术的关键。
异常检测只能检测出那些与正常过程具有较大偏差的行为。
由于对各种网络环境的适应性较弱,且缺乏精确的判定准则,
异常检测有可能出现虚报现象。
系统审计比较器入侵正常活动超限底限图 4.8 异常检测模型异常发现技术分类异常发现技术包括 表 4.2所示的一些。其中,自学习系统通过学习事例构建正常行为模型,又可分为时序和非时序两种;可编程系统需要通过程序测定异常事件,让用户知道哪些是足以破坏系统安全的异常行为,又可分为描述统计和缺省否定两类。
类 型 方 法 系统名称自学习型非时序规则建模 Wisdom & Sense
描述统计 IDES,NIDES,EMERRALD,JiNao,Haystack
时序 人工神经网络 Hyperview
可编程型描述统计简单统计 MIDAS,NADIR,Haystack
基于简单规则 NSM
门限 Computer-watch,
缺省否认 状态序列建模 DPEM,Janus,Bro
表 4.2 异常发现技术
2.模式发现技术模式发现又称特征检测或滥用检测。如 图 4.9所示,它们是基于已知系统缺陷和入侵模式,即事先定义了一些非法行为,
然后将观察现象与之比较做出判断。这种技术可以准确地检测具有某些特征的攻击,但是由于过度依赖实现定义好的安全策略,而无法检测系统未知的攻击行为,因而可能产生漏报。
模式发现技术通过对确知的决策规则编程实现,常用的技术有如下 4种。
系统审计模式鉴别入侵正常活动符合不符合图 4.9 误用检测模型常用的模式发现技术模式发现技术通过对确知的决策规则编程实现,常用的技术有如下 4种:
( 1)状态建模,状态建模将入侵行为表示成许多个不同的状态。如果在观察某个可疑行为期间,所有状态都存在,则判定为恶意入侵。状态建模从本质上来讲是时间序列模型,可以再细分为状态转换和 Petri网,前者将入侵行为的所有状态形成一个简单的遍历链,后者将所有的状态构成一个更广义的树形结构的 Petri网。
( 2)串匹配,串匹配通过对系统之间传输的或系统自身产生的文本进行子串匹配实现。该方法灵活性欠差,但易于理解,目前有很多高效的算法,其执行速度很快。
( 3)专家系统,专家系统可以在给定入侵行为描述规则的情况下,对系统的安全状态进行推理。一般情况下,专家系统的检测能力强大,灵活性也很高,但计算成本较高,通常以降低执行速度为代价。
( 4)基于简单规则,类似于专家系统,但相对简单一些,执行速度快。
3.混合检测近几年来,混合检测日益受到人们的重视。这类检测在做出决策之前,既分析系统的正常行为,同时还观察可疑的入侵行为,所以判断更全面、准确、可靠。它通常根据系统的正常数据流背景来检测入侵行为,故也有人称其为“启发式特征检测”。属于这类检测的技术有:
· 人工免疫方法;
· 遗传算法;
· 数据挖掘;
· …… 。
4.2.3 入侵检测系统的特征库
IDS要有效地捕捉入侵行为,必须拥有一贯强大的入侵特征
( signature) 数据库,这就如同公安部门必须拥有健全的罪犯信息库一样。
IDS中的特征就是指用于判别通讯信息种类的样板数据,通常分为多种,以下是一些典型情况及其识别方法:
IDS中特征的典型情况及其识别方法:
· 来自保留 IP地址的连接企图:可通过检查 IP报头( IP header) 的来源地址识别。
· 带有非法 TCP 标志联合物的数据包:可通过 TCP 报头中的标志集与已知正确和错误标记联合物的不同点来识别。
· 含有特殊病毒信息的 Email,可通过对比每封 Email的主题信息和病态
Email的主题信息来识别,或者通过搜索特定名字的外延来识别。
· 查询负载中的 DNS 缓冲区溢出企图:可通过解析 DNS域及检查每个域的长度来识别。另外一个方法是在负载中搜索“壳代码利用”( exploit
shellcode) 的序列代码组合。
· 对 POP3服务器大量发出同一命令而导致 DoS攻击:通过跟踪记录某个命令连续发出的次数,看看是否超过了预设上限,而发出报警信息。
· 未登录情况下使用文件和目录命令对 FTP服务器的文件访问攻击:通过创建具备状态跟踪的特征样板以监视成功登录的 FTP对话,发现未经验证却发命令的入侵企图。
显然,特征的涵盖范围很广,有简单的报头域数值、有高度复杂的连接状态跟踪、有扩展的协议分析。
此外,不同的 IDS产品具有的特征功能也有所差异。例如:
有些网络 IDS系统只允许很少地定制存在的特征数据或者编写需要的特征数据,另外一些则允许在很宽的范围内定制或编写特征数据,甚至可以是任意一个特征;一些 IDS
系统,只能检查确定的报头或负载数值,另外一些则可以获取任何信息包的任何位置的数据。
4.2.4 响应
早期的入侵检测系统的研究和设计,把主要精力放在对系统的监控和分析上,而把响应的工作交给用户完成。现在的入侵检测系统都提供有响应模块,并提供主动响应和被动响应两种响应方式。
一个好的入侵检测系统应该让用户能够裁减定制其响应机制,以符合特定的需求环境。
1.主动响应在主动响应系统中,系统将自动或以用户设置的方式阻断攻击过程或以其他方式影响攻击过程,通常可以选择的措施有:
· 针对入侵者采取的措施;
· 修正系统;
· 收集更详细的信息。
2.被 动响应在被动响应系统中,系统只报告和记录发生的事件。
4.3 入侵检测系统的实现
4.3.1 入侵检测系统的设置网络安全需要各个安全设备的协同工作和正确设置。由于入侵检测系统位于网络体系中的高层,高层应用的多样性导致了入侵检测系统分析的复杂性和对计算资源的高需求。在这种情形下,对入侵检测设备进行合理的优化设置,可以使入侵检测系统更有效的运行。
图 4.10是入侵检测系统设置的基本过程。
可以看出,入侵检测系统的设置需要经过多次回溯,反复调整。
确定安全需求设计 IDE的拓扑拓扑改变配置系统磨合调试磨合达标使 用拓扑变更或安全更新调整参数是是否是否否图 4.10 入侵检测系统设置的基本过程
4.3.2 入侵检测系统的部署
入侵检测器是入侵检测系统的核心。入侵检测器部署的位置,直接影响入侵检测系统的工作性能。
在规划一个入侵检测系统时,首先要考虑入侵检测器的部署位置。显然,在基于网络的入侵检测系统中和在基于主机的入侵检测系统中,部署的策略不同。
1.在基于网络的入侵检测系统中部署入侵检测器基于网络的入侵检测系统主要检测网络数据报文,因此一般将检测器部署在靠近防火墙的地方。具体做法有如 图 4.11所示的几个位置。
外部 网内部网关键子网检测器 检测器 检测器检测器
1 2 43 4
5
图 4.11 基于网络的入侵检测器的部署
( 1) DMZ区在这里,可以检测到的攻击行为是:所有针对向外提供服务的服务器的攻击。由于 DMZ中的服务器是外部可见的,因此在这里检测最为需要。
同时,由于 DMZ中的服务器有限,所以针对这些服务器的检测,可以使入侵检测器发挥最大优势。但是,在 DNZ中,检测器会暴露在外部,而失去保护,遭受攻击,导致无法工作。
( 2)内网主干(防火墙内侧)
将检测器放到防火墙的内侧,有如下几点好处:
· 检测器比放在 DMZ中安全。
· 所检测到的都是已经渗透过防火墙的攻击行为。从中可以有效地发现防火墙配置的失误。
· 可以检测到内部可信用户的越权行为。
· 由于受干扰的机会少,报警几率也少。
( 3)外网入口(防火墙外侧)
优势是:
· 可以对针对目标网络的攻击进行计数,并记录最为原始的数据包。
· 可以记录针对目标网络的攻击类型。
但是,不能定位攻击的源和目的地址,系统管理员在处理攻击行为上也有难度。
( 4)在防火墙的内外都放置这种位一置可以检测到内部攻击,又可以检测到外部攻击,并且无需猜测攻击是否穿越防火墙。但是,开销较大。在经费充足的情况下是最理想的选择。
( 5)关键子网这个位置可以检测到对系统关键部位的攻击,将有限的资源用在最值得保护的地方,获得最大效益 /投资比。
2.在基于主机的入侵检测系统中部署入侵检测器基于主机的入侵检测系统通常是一个程序。在基于网络的入侵检测器的部署和配置完成后,基于主机的入侵检测将部署在最重要、最需要保护的主机上。
4.3.3 报警策略
检测到入侵行为需要报警。具体报警的内容和方式,
需要根据整个网络的环境和安全需要确定。例如:
· 对一般性服务企业,报警集中在已知的有威胁的攻击行为上;
· 对关键性服务企业,需要尽将可能多的报警记录并对部分认定的报警进行实时反馈。
4.3.4 入侵检测产品的选择
1.购买入侵检测系统考虑的基本因素
· 实时性。
· 自动反应能力。
· 能检测到所有事件,不会发生遗漏警报。
· 跨平台性好,能在多种平台上运行。
2.理想的入侵检测系统的几个特点
· 快速控制。 · 良好的误报警管理。
· 显示过滤器。 · 标志已经分析过的事件。
· 层层探究的能力。 · 关联分析能力。
· 报告能力。
4.4 入侵检测系统的标准化
为了提高 IDS产品、组件及与其他安全产品之间的互操作性和互用性,美国国防高级研究计划暑
( DARPA) 和互联网工程任务组( IETF) 的入侵检测工作组( IDWG) 发起制定了一系列建议草案,从体系结构,API,通讯机制、语言格式等方面规范 IDS的标准。
4.4.1 公共入侵检测框架
CIDF( Common Intrusion Detection Framework,公共入侵检测框架)是 DARPA从 1997年 3月就开始制定的一套规范,最早由加州大学戴维斯分校安全实验室主持起草工作。它定义了 IDS表达检测信息的标准语言以及 IDS组件之间的通信协议,使各种 IDS
可以协同工作,实现各 IDS之间的组件重用,被作为构建分布式 IDS的基础。
CIDF的规格文档主要包括四部分,IDS的通信机制、
体系结构,CISL( Common Intrusion Specification
Language,通用入侵描述语言)和应用编程接口
API。
1.CIDF的通信机制
CIDF将通信机制构成一个三层模型:
· GIDO ( Generalized Intrusion Detection Object,通用入侵检测对象)
层:它把部件间交换的数据形式都做了详细的定义,统称为 Gidos并用
CISL描述,以使 IDS理解。
· 消息层:负责对信息加密认证,不关心传输的内容,只负责建立一个可靠的传输通道,确保被加密认证消息在防火墙或 NAT等设备之间传输过程中的可靠性。同样,GIDO层也只考虑所传递信息的语义,而不关心这些消息怎样被传递。
· 协商传输层:协商传输层不属于 CIDF规范,可以采用多种现有的传输机制实现。但是,单一的传输协议无法满足 CIDF各种各样的应用需求,只有当两个特定的组件对信道使用达成一致认识时,才能进行通信。协商传输层规定 GIDO在各个组件之间的传输机制。
( 1) CIDF组件间的通信结构
( 2) CIDF的通信机制的功能及其实现
CIDF的通信机制主要解决两个问题:
· 保证 CIDFD的组件能安全、正确地与其他组件建立连接
(包括定位和鉴别);
· 连接建立后,组件能有效地进行通信。
这两个功能通过中介服务和消息层法实现。
中介服务中介服务( Matchmaking Service),通过中介代理专门负责提供查询其他 CIDF组件集的服务。这是为 CIDF各组件之间的相互识别、定位和信息共享提供了一个统一的标准机制。
它大大提高了组件的互操作性,降低了开发多组件入侵检测与响应系统的难度。通常是基于一个大型目录服务 LDAP
( Lightweight Directory Protocol,轻量级目录访问协议),
每个组件都要通过该目录服务进行注册,并通告其他组件它所使用或产生的 GIDO类型。在此基础上,组件才能被归入它所属的类别中,组件之间才能互相通信。目录中还可以存放组件的公共密钥,实现对组件接收和发送 GIDO时的身份认证。
消息层法消息层法:消息层利用消息格式中的选项,在客户端与服务器端握手阶段就可以完成提供路由信息追踪、数据加密和认证等功能,从而在易受攻击的环境中实现了一种安全
(保密、可信、完整)并可靠的信息交互机制。具体地说,
消息层可以做到:
· 使通信与阻塞和非阻塞处理无关;
· 使通信与数据格式无关;
· 使通信与操作系统无关;
· 使通信与编程语言无关。
2.CIDF的体系结构
CIDF在 IDES和 NIDES的基础上提出了一个通用模型,将入侵检测系统分为 图 4.12所示的 4个基本组件:事件产生器、
事件分析器、响应单元和事件数据库。其中,事件产生器、
事件分析器和响应单元通常表现为应用程序的形式,而事件数据库则往往是文件或数据流的形式。许多 IDS厂商则以数据收集器、数据分析器和控制台三个术语来分别代替事件产生器、事件分析器和响应单元。
CIDF将 IDS需要分析的数据统称为事件,它可以是网络中的数据包,也可以是从系统日志或其他途径得到的信息。
响应单元事件数据库事件发生器事件产生器图 4.12 CIDF的体系结构
( 1)事件产生器事件产生器的任务是从入侵检测系统之外的整个计算环境中收集事件,并将这些事件转换成 CIDF的 GIDO格式传送给其他组件。例如,事件产生器可以是读取 C2级审计踪迹并将其转换为 GIDO格式的过滤器,也可以是被动地监视网络并根据网络数据流产生事件的另一种过滤器,还可以是 SQL
数据库中产生描述事务的事件的应用代码。
( 2)事件分析器事件分析器分析从其他组件收到的 GIDO,分析它们,并将产生的新 GIDO
返回给其他组件。分析器可以是一个轮廓描述工具,统计性地检查当前事件是否可能与以前某个事件来自同一个时间序列;也可以是一个特征检测工具,在一个事件序列中检查是否有已知的滥用攻击特征;还可以是一个相关器,将有联系的事件放到一起,以便以后进一步分析。
( 3)事件数据库用来存储 GIDO,以备系统需要的时候使用。它可以是复杂的数据库,也可以是简单的文件。
( 4)响应单元响应单元根据收到的 GIDO做出反应,如杀死相关进程、将连接复位、修改文件权限等。
由于 CIDF有一个标准格式 GIDO,所以这些组件也适用于其他环境,只需要将典型的环境特征转换成 GIDO格式,这样就提高了组件之间的消息共享和互通。
3.CISL
CIDF的总体目标是实现软件的复用和 IDR( 入侵检测与响应)组件之间的互操作性。首先,IDR组件基础结构必须是安全、健壮、可伸缩的,
CIDF的工作重点是定义了一种应用层的语言 CISL( Common Intrusion
Specification Language,公共入侵规范语言),用来描述 IDR组件之间传送的信息,以及制定一套对这些信息进行编码的协议。 CISL可以表示 CIDF 中的各种信息,如原始事件信息(审计踪迹记录和网络数据流信息)、分析结果(系统异常和攻击特征描述)、响应提示(停止某些特定的活动或修改组件的安全参数)等。
CISL使用了一种被称为 S表达式的通用语言构建方法,S表达式可以对标记和数据进行简单的递归编组,即对标记加上数据,然后封装在括号内完成编组,这跟 LISP有些类似。 S表达式的最开头是语义标识符
(简称为 SID),用于显示编组列表的语义。例如下面的 S表达式:
( HostName ‘first,example,com’)
该编组列表的 SID是 HostName,它说明后面的字符串,first,example,
com”将被解释为一个主机的名字。
有时侯,只有使用很复杂的 S 表达式才能描述出某些事件的详细情况,
这就需要使用大量的 SID。 SID在 CISL中起着非常重要的作用,用来表示时间、定位、动作、角色、属性等,只有使用大量的 SID,才能构造出合适的句子。 CISL使用范例对各种事件和分析结果进行编码,把编码的句子进行适当的封装,就得到了 GIDO。
GIDO的构建与编码是 CISL的重点。
4.CIDF的程序接口
CIDF的 API负责 GIDO的编码、解码和传递,它提供的调用功能使程序员可以在不了解编码和传递过程具体细节的情况下,以一种很简单的方式构建和传递 GIDO。
GIDOD 生成分为两个步骤:
在构造树形结构时,SID分为两组:一组把 S表达式作为参数(即动词、副词、角色、连接词等),另一组把单个数据或一个数据阵列作为参数(即原子),这样就可以把一个完整的句子表示成一棵树,每个 SID表示成一个节点,最高层的 SID是树根。因为每个 S表达式都包含一定的数据,所以,树的每个分支末端都有表示原子 SID的叶子。
( 1)构造表示 GIDO的树形结构
( 2)将此结构编成字节码将字节码进行解码跟上面的过程正好相反。
CIDF的 API为实现者和应用开发者都提供了很多的方便,并分为两类:
GIDO编码 /解码 API和消息层 API。
4.4.2 IDWG的标准化工作
1999年 6月,IDWG就入侵检测出台了一系列草案。
它定义了数据格式和交换规程,用于入侵检测与响应( IDR) 系统之间与需要交互的管理系统之间的信息共享,包括三部分内容:入侵检测消息交换格式( IDMEF),入侵检测交换协议( IDXP)
以及隧道轮廓( Tunnel Profile)。
1.IDMEF
IDMEF描述了入侵检测系统输出信息的数据模型,并解释了使用此模型的基本原理。该数据模型用 XML实现,并设计了一个 XML文档类型定义。自动入侵检测系统可以使用 IDMEF 提供的标准数据格式对可疑事件发出警报,提高商业、开放资源和研究系统之间的互操作性。
IDMEF最适用于入侵检测分析器(或称为“探测器”)和接收警报的管理器(或称为“控制台”)之间的数据信道。
( 1) IDME的数据模型
IDMEF数据模型以面向对象的形式表示探测器传递给控制台的警报数据,设计数据模型的目标是为警报提供确定的标准表达方式,
并描述简单警报和复杂警报之间的关系。
IDMEF数据模型各个主要部分之间的关系如 图 4.13所示。
IDMEF-Message
Alert
Analyzer
Heartbeat
Analyzer
Create Time
Detect Time
Analyzer Time
Source
Target
Class
Node
User
Process
Service
Node
User
Process
Service
Create Time
AdditionalData
图 4.13 IDME数据模型各个主要部分之间的关系
IDMEF数据模型是用统一建模语言( UML) 描述的。 UML
用一个简单的框架表示实体以及它们之间的关系,并将实体定义为类。 IDMEF包括的主要类有 IDMEF-Message类、
Alert类,Heartbeat类,Core类,Time类 Support类,这些类还可以再细分为许多子类。所有 IDMEF消息的最高层是
IDMEF-Message,每一种类型的消息都是该类的子类。
需要注意的是,IDMEF数据模型并没有对警报的分类和鉴别进行说明。例如,对一个端口的扫描,一个分析器可能将其确定为一个多目标的单一攻击,而另一个分析器可能将其确定为来自同一个源的多次攻击。只有一个分析器决定了发送的警报类型,数据模型才能规定怎样对这个警报进行格式化。
( 2)使用 XML描述 IDMEF文档标记
XML是一种元语言,它允许应用程序定义自己的标记,
还可以为不同类型的文档和应用程序定义定制化的标记语言。
XML DTD( 文档类型定义)可用来声明文档所用的标记,
它包括元素(文档包括的不同信息部分)、属性(信息的特征)和内容模型(各部分之间的关系)。
2.IDXP
IDXP ( 入侵检测交换协议)是一个用于入侵检测实体之间交换数据的应用层协议,能够实现 IDMEF消息、非结构文本和二进制数据之间的交换,并提供面向连接协议之上的双向认证、完整性和保密性等安全特征。 IDMEF是 BEEP的一部分,后者是一个用于面向连接异步交互通用应用协议。 IDXP的许多特色功能(如认证、保密性等)都是由 BEEP框架提供的。 IDXP模型如下:
( 1) 建立连接入侵检测实体之间的 IDXP通信在 BEEP信道上完成。两个希望建立
IDXP通信的入侵检测实体在打开 BEEP 信道之前,首先要进行一次
BEEP会话,然后就有关的安全特性问题进行协商,协商好 BEEP安全轮廓之后,互致问候,然后开始 IDXP交换。
图 4.14是两个入侵检测实体 A和 B之间建立 IDXP通信的过程:
问候
xport 连接 [1]
启动安全轮廓 [2]
问候启动 IDXP[3]
图 4.14 两个入侵检测实体,Alice”和,Bob”之间建立 IDXP通信的过程使用 IDXP传送数据的入侵检测实体被称为 IDXP的对等体,
对等体只能成对地出现,在 BEEP会话上进行通信的对等体可以使用一个或多个 BEEP 信道传输数据。对等体可以是管理器,也可以是分析器。分析器和管理器之间是多对多的关系,即一个分析器可以与多个管理器通信,同样,一个管理器也可以与多个分析器通信;管理器与管理器之间也是多对多的关系。所以,一个管理器可以通过 多个中间管理器接收来自多哥分析器的大量警报。但是,IDXP 规定,分析器之间不可以建立交换。
( 2) 传输数据在每个信道上,对等体都以客户机 /服务器模式进行通信,BEEP会话发起者为客户机,而收听者则为服务器。 图 4.15描述了一个分析器将数据传输给一个管理器的简单过程。
分析器
(客户机)
管理器
(服务器)
IDXP轮廓
IBEEP会话图 4.15 一个分析器将数据传输给一个管理器的简单过程在一次 BEEP会话时,使用多个 BEEP 信道有利于对在 IDXP 对等体之间传输的数据进行分类和优先权设置。例如,一个管理器 M1在向另一个管理器 M2传送警报数据时,可以用不同的信道传送不同类型的警报数据,在每个信道上管理器 M1的作用都相当于一个客户器,而 M2则对不同信道上的数据作出相应的处理。如 图 4.16所示。
管理器 M1
( 客户机)
管理器 M2
( 服务器)IDXP轮廓,基于主机的警报
IBEEP会话
IDXP轮廓,基于网络的警报
IDXP轮廓,其他警报图 4.16 多个 BEEP信道有利于对在 IDXP对等体之间传输的数据进行分类和优先权设置
( 3) 断开连接在有些情况下,一个 IDXP对等体可以选择关闭某个信道。
在关闭一个信道时,对等体在 0信道上发送一个“关闭”
元素指明要关闭哪一个信道。 IDXP对等体也可以通过在 0
信道上发送一个指明要“关闭” 0信道的元素,来关闭整个 BEEP会话。
在上面这个模型中,IDXP对等实体之间采用了 BEEP安全轮廓实现端到端的安全,而无需通过中间的代理建立安全信任,因此只有 IDXP对等体之间是相互信任的,而代理是不可信的。
4.5 网络诱骗
防火墙以及入侵检测都是被动防御技术,而网络诱骗是一种主动防御技术。 表 4.3为两种防御系统之间的工作特点比较。
项 目 被动防御系统 主动防御系统主动性 被动地守株待兔式防御 主动跟踪攻击者攻防方式攻击这主动选择攻击目标,可随意攻击;
事先掌握攻击者的行为,进行跟踪,有效制止攻击者的破坏行为对攻击者的威慑对攻击方不构成威胁 能对攻击者造成威胁和损害:
·诱惑黑客攻击虚假网络而忽视真正的网络
·加重黑客的工作量,消耗其资源,让系统管理员有足够时间响应;
·收集黑客信息和企图,以便系统进行安全防护和检测 。
·为起诉留下证据表 4.3 主动防御与被动防御的比较
4.5.1 蜜罐主机技术网络诱骗技术的核心是蜜罐( Honey Pot)。 它是运行在 Internet上的充满诱惑力的计算机系统。这种计算机系统有如下一些特点:
· 蜜罐是一个包含有漏洞的诱骗系统,它通过模拟一个或多个易受攻击的主机,给攻击者提供一个容易攻击的目标。
· 蜜罐不向外界提供真正有价值的服务。
· 所有与蜜罐的连接尝试都被视为可疑的连接。
这样,蜜罐就可以实现如下目的:
· 引诱攻击,拖延对真正有价值目标的攻击;
· 消耗攻击者的时间,以便收集信息,获取证据。
下面介绍蜜罐的三种主要形式。
1.空系统空系统是一种没有任何虚假和模拟的环境的完全真实的计算机系统,
但是有真实的操作系统和应用程序,也有真实的漏洞。这是一种简单的蜜罐主机。
但是,空系统(以及模拟系统)会很快被攻击者发现,因为他们会发现这不是期待的目标。
2.镜像系统建立一些提供 Internet服务的服务器镜像系统,会对攻击者感到真实,
也就更具有欺骗性。另一方面,由于是镜像系统,所以比较安全。
3.虚拟系统虚拟系统是在一台真实的物理机器上运行一些仿真软件,模拟出多台虚拟机,构建多个蜜罐主机。这种虚拟系统不但逼真,而且成本较低,
资源利用率较高。此外,即使攻击成功,也不会威胁宿主操作系统安全。
4.5.2 蜜网技术
蜜网( Honey Net) 技术也称陷阱网络技术。它由多个蜜罐主机、路由器、防火墙,IDS,审计系统等组成,为攻击者制造一个攻击环境,供防御者研究攻击者的攻击行为。
1.第一代蜜网图 4.17为第一代蜜网结构图。
Internet
路由器防火墙
IDS
日志及报警管理主机安全管理子 网
Linux密罐主机交换机
Windows密罐主机 Solaris密罐主机 日志密罐主机蜜网子网图 4.17 第一代蜜网结构
( 1) 防火墙防火墙隔离内网和外网,防止入侵者以蜜网作为跳板攻击其他系统。
其配置规则为:不限制外网对蜜网的访问,但需要对蜜罐主机对外的连接予以控制,包括:
· 限制对外连接的目的地;
· 限制蜜罐主机主动对外连接;
· 限制对外连接的协议;
· …… 。
( 2) 路由器路由器放在防火墙与蜜网之间,利用路由器具有控制功能来弥补防火墙的不足,例如防止地址欺骗攻击,DoS攻击等。
( 3) IDS
IDS是蜜网中的数据捕获设备,用于检测和记录网络中可疑的通信连接,报警可疑的网络活动。
2.第二代蜜网图 4.18为第二代蜜网结构图。
路由器
HUB
密罐蜜网子网密罐 密罐
HUB
蜜网探测器蜜网子网 受保护子网图 4.18 第 二 代蜜网结构第二代蜜网技术将数据控制和数据捕获集中到蜜网探测器中进行。这样,带来的好处是:
· 便于安装和管理;
· 隐蔽性更强;
· 可以监控非授权活动;
· 可以采取积极的响应方法限制非法活动的效果,如修改攻击代码字节,使攻击失效等。
3.第三代蜜网第三代密网是目前正在开发的密网技术。它是建立在一个物理的设备上的分布式虚拟系统。如 图 4.19所示,这样就把蜜罐、数据控制、
数据捕获、数据记录等,都集中到一台物理的设备上。
Internet
宿主机系统虚拟系统 虚拟系统 … 虚拟系统图 4.19 第 三 代蜜网结构
4.5.3 常见网络诱骗工具及产品
1,蜜罐实现工具
( 1) winetd
winetd是一个在 Windows上实现蜜罐的简单工具。它安装简单,界面友好,
适合初学者使用;确定是过于简单,并不能真正诱骗攻击者进入。
( 2) DTK
DTK( Deception Tool Kit,可以从 http://all.net/dtk/网站下载)是用 C语言和 Perl脚本语言写成的一种蜜罐工具软件,能在支持 C语言和 Perl的系统
( Unix) 上运行。它能够监听 HTTP,FTP,Telnet等常用服务器所使用的端口,模拟标准服务器对接收到的请求所作出的响应,还可以模拟多种常见的系统漏洞。不足之处是,模拟不太逼真,构建过程麻烦。
( 3) honeyd
Honeyd( 可以从 http://www.citi.umich.edu/u/provos/honeyd网站下载)是一个专用的蜜罐构建软件,可以虚拟多种主机,配置运行不同的服务和操作系统。
2,蜜网实现工具
( 1)数据控制,Jptable,snort_inline.。
( 2) 数据捕获,Termlog,Sebek2,snort,Comlog。
( 3) 数据收集,Obfugator。
( 4) 数据分析,Privmsg,TASK,WinInterrogate。
以上工具可以从下面的网址下载,http://project.honeynet.org/
4.6 安全审计
4.6.1 安全审计及其功能虚拟的数字世界是十分脆弱的,随着对它们的依赖程度的增加,不安全感也随之增加。信息被篡改、信息被泄漏、
身份被伪冒,…… 的频繁报道,要求对系统安全方案中的功能提供持续的评估。这就是安全审计。据专家的预测,
安全审计技术将成为与防火墙技术,IDS技术一样的网络安全工具之一。
安全审计的功能具体来说,安全审计应当具有下面的功能:
( 1)记录关键事件。关于关键事件的界定由安全官员决定。
( 2)对潜在的攻击者进行威慑或警告。
( 3)为系安全管理员提供有价值的系统使用日志,帮助系统管理员及时发现入侵行为和系统漏洞,使安全管理人员可以知道如何对系统安全进行加强和改进。
( 4)为安全官员提供一组可供分析的管理数据,用于发现何处有违反安全方案的事件,并可以根据实际情形调整安全政策。
美国国家标准《可信计算机系统评估超标准》( Trusted
Computer System Evaluation Criteria) 给出的定义是:一个安全的系统中的安全审计系统,是对系统中任一或所有安全相关事件进行记录、分析和再现的处理系统。它通过对一些重要的事件进行记录,从而在系统发现错误或受到攻击时能定位错误和找到攻击成功的原因,并且是事故后调查取证的基础,当然也是对信息系统的信心保证。
可以看出,安全审计和报警是不可分割的。安全审计由各级安全管理机构实施并管理,并只在定义的安全策略范围内提供。
它允许对安全策略的充分性进行评价,帮助检测安全违规,对潜在的攻击者产生威慑。但是,安全审计不直接阻止安全违规。
安全报警是由个人或进程发出的,一般在安全相关事件达到某一或一些预定义阈值时发出。这些事件中,一些是需要立即采取矫正行动,另一些有进一步研究价值的事件。
4.6.2 安全审计日志审计日志是记录信息系统安全状态和问题的原始数据。理想的日志应当包括全部与数据以及系统资源相关事件的记录。但这样付出的代价太大。为此,日志的内容应当根据安全目标和操作环境单独设计。典型的日志内容有:
· 事件的性质:数据的输入和输出,文件的更新(改变或修改),
系统的用途或期望;
· 全部相关标识:人、设备和程序;
· 有关事件的信息:日期和时间,成功或失败,涉及因素的授权状态,转换次数,系统响应,项目更新地址,建立、更新或删除信息的内容,使用的程序,兼容结果和参数检测,侵权步骤等。对大量生成的日志要适当考虑数据的保存期限。
4.6.3 安全审计的类型
1.根据审计的对象分类根据审计的对象安全审计可以分为以下一些类型:
· 操作系统的审计;
· 应用系统的审计;
· 设备的审计;
· 网络应用的审计。
2,审计的关键部位通常审计的关键部位有:
( 1)对来自外部攻击的审计;
( 2)对来自内部攻击的审计;
( 3)对电子数据的安全审计。
习 题
1,审计与入侵检测技术有什么关系?
2,综述入侵检测技术的发展过程,并提出自己的思路。
3,综述有关入侵检测技术的各种定义。
4,入侵检测系统有哪些可以利用的数据源?
5,试构造一个网络数据包的截获程序。
6,试述入侵检测系统的工作原理。
7,收集资料,对国内外主要基于网络的入侵检测产品进行比较。
8,收集资料,对国内外主要基于主机的入侵检测产品进行比较。
9,分析入侵检测系统的不足和发展趋势。
10,入侵检测技术与法律有什么关系?
11,简述蜜罐技术的特殊用途。
12,用下载的蜜罐工具,构造一个简单的蜜罐系统。
13,简述安全审计的作用。
14,简述日志的作用和记录内容。
15,审计与入侵检测有什么关联?