第六章
入侵检测系统
6.1 入侵检测原理与结构
6.1.1 入侵检测发展历史
6.1.2 入侵检测原理与系统结构
6.1.3 入侵检测人类方法
6.1.4 入侵检测主要性能指标
6.1.5 入侵检测系统部署
6.2 入侵检测审计数据源
6.2.1 审计数据源
6.2.2 审计数据源质量分析
6.2.3 常用审计数据源采集工具
第六章 入侵检测系统
? 6.3主机系统调用入侵检测
? 6.3.1 系统调用跟踪概念
? 6.3.2 前看系统调用对模型
? 6.3.3 每局序列匹配模型
? 6.3.4 短序列频度分布向量模型
? 6.3.5 数据挖掘分类规则模型
? 6.3.6 隐含马尔科夫模型
? 6.3.7 支持向量机模型
? 6.4 网络连接记录入侵检测
? 6.4.1 网络数据报协议解协
? 6.4.2连接记录属性选择
? 6.5 Snort 主要特点
? 6.5.2 Snort 系统组成
? 6.5.3 Snort检测规则
? 6.6 本章知识点小结
?
? 传统的安全防御机制主要通过信息加密、身份认证、访问
控制、安全路由、防火墙和虚拟专用网等安全措施来保护
计算机系统及网络基础设施。入侵者一旦利用脆弱程序或
系统漏洞绕过这些安全措施,就可以获得未经授权的资源
访问,从而导致系统的巨大损失或完全崩溃。
? 网络除了要采取安全防御措施,还应该采取积极主动的入
侵检测与响应措施。
? 入侵检测技术是近年发展起来的用于检测任何损害或企图
损害系统保密性、完整性或可用性行为的一种新型安全防
范技术。
6.1 入侵检测原理与结构
? 入侵是指系统发生了违反安全策略的事件,包括
对系统资源的非法访问、恶意攻击、探测系统漏
洞和攻击准备等对网络造成危害的各种行为。
? 入侵检测作为一种积极主动的网络安全防御技术,
通过监视系统的运行状态发现外部攻击、内部攻
击和各种越权操作等威胁,并在网络受到危害之
前拦截和阻断危害行为。
6.1.1 入侵检测发展历史
1,入侵检测的起源
2,入侵检测的迅速发展
3,商用入侵检测系统问世
4,入侵检测的标准化
? James P,Anderson早在 1980年 4月为美国空军所作的著名研究报告
“计机安全威胁监测与监视”
( computer security threat monitoring and surveillance)。
? 1983年,斯坦福研究所 SRI( Stanford research institute)的
Dorothy E,Denning和 Peter Neumann承担了美国空海作战系统指挥
部资助的入侵检测系统研究课题。研究成果命名为入侵检测专家系统
IDES( intrusion detection expert system)。
? 1985年,美国国防部所属的国家计算机安全中心正式颁布了网络安全标
准,既可信计算机系统评估准则 TCSEC
( trusted computer system evalution criteria)。
? 1987年 2月,Dorothy E,Denning和 Peter Neumann在总结几年研究
工作的基础上,正式发表了入侵检测模型著名论文( an intrusion
detection model)。
入侵检测的起源
? 入侵检测的核心思想起源与安全审计机制。
? 审计是基于系统安全的角度来记录和分析
事件,通过风险评估制定可靠的安全策略
并提出有效的安全解决方案 。
入侵检测的起源 (续 )
计算机安全威胁监测与监视
? 在计算机系统遭受攻击时, 审计机制应当给安全管理人
员提供足够的信息识别系统的异常行为 。
? 将计算机系统的威胁划分为外部渗透, 内部渗透和不法
行为三种类型 。
? James P,Anderson提出的利用安全审计监视入侵行为
的思想为开展入侵检测研究创建了思想方法, 是公认的
入侵检测技术创始人 。
入侵检测专家系统 IDES
? 采用审计数据统计分析方法建立系统用户的行为
模式,当用户行为明显偏离系统所建立的行为模
式时,将产生报警信号。
? 采用基于规则匹配的专家系统机制来检测已知入
侵行为,当入侵特征与检测规则匹配时,系统产
生报警信号。
可信计算机系统评估准则 TCSEC
? TCSEC根据计算机系统硬件、软件和信息资源的不同安全保
护要求,将网络安全等级由高到低划分成 A,B,C,D四大类
七个安全子级别 A1,B3,B2,B1,C2,C1和 D。其中,
A1安全级别最高,D安全级别最低。
? TCSEC评估准则的颁布不仅推动了操作系统、数据库管理系
统及应用软件在安全方面的发展,也对入侵检测系统等安全
技术的发展起到了巨大的推动作用。
? TCSEC评估准则已成为评估各类网络安全产品的重要依据之
一,是计算机网络安全发展史上的一个重要里程碑。
入侵检测模型
? 入侵检测模型的核心思想就是异常用户模式不同于正
常用户模式, 因此, 通过分析审计记录和网络数据包
能够识别违反系统安全策略的入侵行为 。
? 通用入侵检测模型为以后研发入侵检测系统 IDS
( intrusion detection system) 产品奠定了坚实的
理论基础 。
入侵检测的迅速发展
? 1988年 5月,加州大学戴维斯分校劳伦斯利弗莫尔
( Lawrence Livermore)国家实验室承接了为美国空军基地开发新型
IDS Haystack的科研课题。
? 1989年创建了以科研课题名称 Haystack命名的商业公司,并将公司开
发的 IDS产品称为 STALKER 。
? 1990年 5月是入侵检测发展史上的另一个里程碑,加州大学戴维斯分校
的 L,T,Heberlein等研究人员首次利用网络数据包作为安全审计数据源,
通过监测网络流量来识别网络入侵行为。
? 1991年 2月,Haystack公司与 L,T,Heberlein等人共同展开了对分布式
入侵检测系统 DIDS( distributed intrusion detection system)的研
究。
? 1992年,斯坦福研究所决定对早期的 IDES进行改进,开发下一代入侵
检测专家系统 NIDES( next-generation intrusion detection expert
system)新产品。
STALKER系统
? STALKER系统的分析引擎采用状态转移方法描述已知入侵
模式。
? 入侵特征包括初始状态、针对入侵模式的状态转移函数和
结束状态。
? 入侵行为一旦与分析引擎所保存的入侵特征匹配,系统将
根据预先定义的安全策略采取相应的响应措施。
? STALKER系统是第一个采用误用检测技术的 IDS,也是第
一款在安全市场上销售成功的商业化产品。
网络安全监视器 NSM
? NSM系统与以前 IDS的最大区别就是用网络数
据包作为审计数据源,没有采用主机系统的审
计记录,从而在不必进行审计记录格式变换的
条件下实现了异构系统的入侵检测。
? 开辟了基于主机和基于网络两个重要的入侵检
测研究方向。
? 审计数据源分别来自网络数据包。
分布式入侵检测系统 DIDS
? 审计数据源分别来自网络数据包,主机审计记录。
? 将基于主机和基于网络两种入侵检测方法集成在
一起。
? 采用层次体系的检测系统结构。
? 通过基于主机和基于网络两种入侵检测方法的优
势互补。
? 创建了混合型入侵检测系统原型 。
下一代入侵检测专家系统 NIDES
? NIDES基本沿用了 IDES的入侵检测机制。
? 采用统计分析方法实现异常行为检测。
? 采用规则匹配方法实现已知攻击检测。
? 但 NIDES原型系统在统计分析算法、组件接口、组件封装、
可移植性、可扩展性和用户接口等方面都对 IDES进行了重
大改进。
? 1994年 9月正式发布了最终测试版本。
? NIDES是著名的非商用入侵检测系统之一。
商用入侵检测系统问世
? 因特网安全系统公司 ISS( Internet security systems)在
1994年 4月创建的同时,发布了因特网安全漏洞扫描软件
Internet Scanner。 1996年 12月,ISS公司又推出实时入侵检
测产品 RealSecure。
? 1997年 5月,两家美国著名的网络安全公司 McAfee Associates
和 Network General合并组建了网络联盟有限公司 NAI
( network associates inc.)。随后 NAI与 WheelGroup公司合
作,推出了 CyberCop 入侵防护系统( CyberCop intrusion
protection)。
? 思科公司( Cisco )将 Wheel Group公司早期开发的网络实时入
侵检测系统 NetRanger更名为 Secure IDS 。
RealSecure
? RealSecure采用传感器( sensor)和管理控制台( workgroup
manager)两级体系结构。
? 传感器包括网络传感器( network sensor)、系统传感器( OS
sensor)和服务传感器( server sensor),网络传感器负责对网络数
据包进行检测。系统传感器检测系统文件和系统日志。服务传感器则对
服务器系统文件、系统日志和进出服务器的网络数据实施检测。
? 传感器与管理控制台之间的通信采用 128-bit RSA进行加密和认证,具
有详细的协议分析功能和出色的碎片重组能力,并且支持多种品牌防火
墙和路由器的联动配置,一旦检测到非法入侵即可立即切断网络连接。
CyberCop入侵防护系统
? CyberCop 入侵防护系统主要由网络扫描( CyberCop scanner)、
网络监视( CyberCop monitor)、网络诱骗( CyberCop sting)和
用户审计脚本语言( custom audit scripting language)四部分组
成。
? 网络扫描对系统与网络进行分析,发现其中的安全漏洞与安全策略问
题。
? 网络监视是整个入侵防护系统的核心部件,采用分布式技术监测系统
与网络中的可疑事件。
? 网络诱骗则在主机上营造一个虚拟网络环境,诱骗入侵者进行网络攻
击,以便捕获新的攻击特征。
? 用户审计脚本语言则容许用户自己编写攻击程序,通过对脚本攻击测
试实现对未知攻击的防护。
Secure IDS
? Secure IDS与其他入侵检测系统产品类似,主要
由传感器、管理控制台( director)和入侵检测
系统模块 IDSM( intrusion detection system
module)三大部分组成。
? 传感器包括网络传感器和主机传感器两类,分别
负责网络数据包和主机审计数据的采集与分析 。
非商用开放源代码 IDS软件
? Martin Roesch开发的 Snort.
? Purdue大学开发的入侵检测自治代理 AAFID( autonomous
agents for intrusion detection),
? 卡内基梅隆大学计算机应急响应协作中心( computer
emergency response team coordination center at
Carnegie Mellon university)开发的自动事件报告 AirCERT
( automated incident reporting),
? 劳伦斯伯克利国家实验室( Lawrence Berkeley national
laboratory) Vern Paxson开发的 Bro.
? Yoann Vandoorselaere开发的混合入侵检测系统
Prelude IDS( hybrid intrusion detection system),
? Shmoo 研究组开发的 Osiris.
? Dominique Karg开发的开放源码安全信息管理系
统 OSSIM( open source security information
management),
? Samhain开发的文件完整性检查与入侵检测系统
SAMHAIN ( file integrity and intrusion detection
system),
非商用开放源代码 IDS软件 (续 )
入侵检测的标准化
? 在规模上采用了跨网络和分时段的大规模分布式技术。
? 在技术方法上则采用了多种入侵技术并用、入侵主体隐蔽
和攻击网络防护系统等技术手段。
? 通用入侵检测框架 CIDF( common intrusion detection
framework)和因特网工程任务组 IETF( Internet
engineering task force)下属的入侵检测工作组 IDGW
( intrusion detection working group)两个国际组织
都从不同角度定义了 IDS的标准。
通用入侵检测框架标准 CIDF
? 通用 IDS体系结构由事件发生器( event generators)、事件分析
器( event analyzers)、响应单元( response units)和事件数
据库( event databases)四个独立组件构成。
? 事件发生器负责采集审计数据, 并完成审计数据的统一格式化工作 。
事件分析器是 IDS的检测引擎, 负责确定可疑事件的性质 。 响应单
元一旦获得事件分析器的入侵报告, 立即报警或采取相应的反击措
施 。 事件数据库则用来存储来自各个组件的中间及最终事件的
GIDO,用于指导事件的采集, 分析和反应过程 。
? 通用入侵检测对象必须采用通用入侵规范语言 CISL( common
intrusion specification language)。
事件发生器
事件分析器
响应单元
事件数据库
GIDO
GIDO GIDO
?组件之间交换的数据统称为通用入侵检测对象 GIDO
( general intrusion detection object)。
图 6.1
通用入侵检测系统体系结构
? CIDF通信机制主要解决组件之间的定位、
认证和认证后的安全有效通信。
? CIDF采用中介代理服务( matchmaking
service)方式保证各组件之间的安全连接。
? CIDF采用 GIDO层、消息层和协商传输层
( negotiated transport)三层协议层次
实现组件之间的安全可靠通信。
通用入侵检测框架标准 CIDF (续 )
CIDF三层协议层次实现组
? GIDO层为不同入侵检测系统之间实现异构数据交换奠定了基础,GIDO
的结构与编码在 CISL语言规范中有详细的定义。 GIDO层不包含任何传
输控制信息,只包含需要传输的信息内容。
? 消息层通过定义消息长度、序列号、时间戳、目的地址、选择项和加密
签名等字段实现了组件间的安全有效通信,消息层传输的内容就是 GIDO
层的数据,消息层仅向 GIDO层提供服务,只负责将消息从源端安全可靠
地传送到目的端,并不清楚所传输的内容。此外,消息层还实现了通信
与操作系统、编程语言、数据格式以及是否拥塞无关的目的。应用程序
利用消息格式定义中的选择项,可以实现路由跟踪、数据加密、认证和
签名等安全机制。
? 协商传输层是通信双方通过协商使用的传输协议选项,CIDF默认的传输
协议是 UDP,也可以通过协商使用可靠 UDP,TCP协议或其他传输协议 。
GIDO层
消息层
协商传输层
GIDO层
消息层
协商传输层
CIDF三层协议信息交换机制
图 6.2
通用入侵规范语言 CISL
? 采用 CIDF设计入侵检测系统的基础, 因为
CISL语言保证了通信双方的相互理解 。 与入侵
检测系统相关的各种事件, 入侵和响应都必须
采用 CISL语言描述 。
? CISL语言具有描述广泛性, 唯一性, 精确性,
扩展性和简洁性等特点 。
入侵检测工作组标准 IDGW
? IDGW定义了交换信息的数据格式和传输这些信息的通
信协议 。
? 主要包括入侵检测消息交换格式 IDMEF( intrusion
detection message exchange format)和入侵检测
交换协议 IDXP( intrusion detection exchange
protocol)。
入侵检测消息交换格式 IDMEF
? IDMEF的目的是定义数据格式和传感器, 响应系统和控制台共享
信息的数据交换过程 。
? 采用面向对象的方法描述入侵检测系统输出信息的数据模型, 数
据模型使用扩展标志语言 XML( extensible markup language)
实现 。
? 入侵检测系统可以使用 IDMEF标准数据格式对可疑事件发出警报,
提高商业产品, 开放源码系统和研究系统之间的互操作性, 用户
可以根据这些系统的优缺点综合配置入侵检测系统参数, 以便获
得最佳的检测性能 。
? IDMEF更适用于传感器和控制台之间的数据通信场景 。
入侵检测交换协议 IDXP
? IDXP是一个用于入侵检测实体之间交换数据的应用层协议, 支
持面向连接协议之上的双方认证, 完整性和保密性, 不仅能够
实现 IDMEF消息交换, 也支持无结构文本和二进制数据的交换,
解决了入侵检测实体之间的安全可靠通信 。
? IDXP是建立在块扩展交换协议 BEEP( blocks extensible
exchange protocol) 基础之上的入侵检测交换协议,
? BEEP是基于面向连接和异步交互的通用应用协议框架, 因此,
消息交换的认证, 完整性和保密性等安全属性都由 BEEP框架提
供 。
? 采用 IDXP交换数据的入侵检测实体称为对等体, 在 BEEP会话上进
行通信的对等体可以使用一个或多个 BEEP信道传输数据, 使用多个
BEEP信道有利于对传输数据进行分类和优先权设置 。
? 对等体在 BEEP信道上开始 IDXP交换数据之前, 首先要通过 BEEP
会话建立安全连接, 然后 IDXP对等体开始以客户机与服务器模式实
现 IDMEF消息交换, 消息交换结束后关闭整个 BEEP会话 。
? 与 CIDF采用中介代理服务保证组件之间的安全连接不同, IDXP采
用 BEEP安全模式实现了端对端的安全连接 。 因此, IDXP并不需要
通过中介代理服务建立安全信任关系 。
入侵检测交换协议 IDXP (续 )
6.1.2 入侵检测原理与系统结构
? 入侵检测技术从本质上可以归结为安全审计数据的分析与处
理过程。通过监视系统的活动状态,发现任何损害或企图损
害系统保密性、完整性和可用性的非法行为,并根据事先设
定的安全策略激活对应的响应措施。
? 入侵检测之所以能够发现非授权或恶意的系统与网络行为,
重要的前提是非法行为与合法行为是可以区分的,也就是说,
可以通过提取行为的模式特征来分析判断该行为的性质。
? 入侵检测技术的核心问题就是如何获取描述行为特
征的数据;如何利用特征数据精确地判断行为的性
质;如何按照预定策略实施响应。
? IDS至少应包括数据采集、入侵检测分析引擎和响应
处理三部分功能模块。
入侵检测技术
IDS的分类
? IDS正是根据数据采集的位置、入侵检测分析引擎采用的分析
方法、分析数据的时间和响应处理的方式进行分类的。
? 根据数据采集的位置,IDS分为基于主机( host-based)、
基于网络( network-based)、基于应用( application-
based)和基于目标( target-based)等不同类型。
? 依据入侵检测分析引擎采用的分析方法,分为异常检测
( anomaly detection)和误用检测( misuse detection)。
? 按照分析数据的时间不同,又分为实时检测和离线检测。由
于数据采集、响应处理和误用检测在技术上相对比较成熟,
目前大多数研究人员主要针对异常入侵检测模型展开研究。
? 数据采集负责采集反映受保护系统运行状态的原始数据, 为入
侵分析提供安全审计数据 。
? 所采集的数据源可以是操作系统审计记录, 系统日志, 应用日
志和主机系统调用跟踪, 也可以是网络数据包或来自其他安全
系统的日志信息 。
? 数据采集模块在获得原始审计数据之后, 还需要对原始审计数
据进行预处理, 如审计日志精简, 格式化, 网络数据包协议解
析和连接记录属性精简等预处理工作, 然后将能够反映系统或
网络行为事件的数据提交给入侵检测分析引擎 。
数据采集模块
? 入侵检测是基于审计数据分析来判断事件的性质。数据源的可靠性、
数据质量、数据数量和数据预处理的效率都会直接影响 IDS的检测
性能,所以数据采集是整个 IDS的基础工作。
? 入侵检测分析引擎也称为入侵检测模型,是 IDS的核心模块,负责
对采集模块提交的数据进行分析。
? 通过从审计数据中抽取出当前系统或网络行为模式,与模式知识库
中的入侵和正常行为模式比较,按照预先配置的安全策略执行实际
的入侵或异常行为检测,然后将检测结果传递给响应模块进行处理。
IDS对入侵和可疑行为的鉴别能力直接取决于分析引擎的检测精度。
入侵检测模型
入侵检测分析引擎目前采用的分析技术主要有模式匹配( pattern
matching)、专家系统、状态转移( state transition )、着色
Petri网( colored Petri nets)、语言和应用程序接口( language
and API),Denning模型、量化分析( quantitative analysis)、
统计分析、聚类分析( clustering analysis)、基于规则检测( rule-
based detection)、神经网络( neural networks)等各种不同分
析方法。在近期 IDS研究中,研究人员又提出了免疫系统( immune
system)、遗传算法( genetic algorithm)、基于 Agent的检测
( agent-based detection)、基于内核检测( kernel-based
detection)、隐含马尔科夫模型( Hidden Markov model)、支持
向量机模型( support vector machine)和数据挖掘模型( data
mining)等新型入侵检测分析方法。
入侵检测模型 (续 )
响应处理模型
? 响应处理模块根据预先设定的策略记录入侵过程、
采集入侵证据、追踪入侵源、执行入侵报警、恢复
受损系统或以自动或用户设置的方式阻断攻击过程。
? 响应处理模块同时也向数据采集模块、检测分析引
擎和模式知识库提交反馈信息。
? 例如,要求数据采集模块提供更详细的审计数据或
采集其他类型的审计数据源;优化检测分析引擎的
检测规则或检测阈值;更新模式知识库中的正常或
入侵行为模式等。
当前系统或
网络行为
入侵检测
分析引擎
入侵

数据采集


证据记录
响应处理
模式知识库
安全策略入侵行为模式
正常行为模式
入侵检测系统基本工作原理
图 6.3
6.1.3 入侵检测分类方法
1.根据数据采集位置分类
2.根据检测分析方法分类
3.根据检测时间分类
根据数据采集位置分类
1,主机入侵检测系统
? 当入侵检测监视的对象为主机审计数据源时, 称为主
机入侵检测系统 HIDS ( host-based
intrusion detection system) 。
? HIDS利用数据分析算法对操作系统审计记录、系统日
志、应用程序日志或系统调用序列等主机数据源进行
分析,归纳出主机系统活动的特征或模式,作为对正
常和异常行为进行判断的基准,主要用于保护提供关
键应用服务的服务器。
HIDS的 优点
? 检测精度高。 HIDS针对用户和系统活动进行
检测,更适用于检测内部用户攻击或越权行为。
? 不受加密和交换设备影响 。 HIDS只关注主机本身发生
的事件, 并不关心主机之外的网络事件, 所以检测性
能不受数据加密, 隧道和交换设备影响 。
? 不受网络流量影响 。 HIDS并不采集网络数据包, 不
会因为网络流量增加而丢失对系统行为的监视, 故其
检测性能与网络流量无关 。
HIDS的缺点
? HIDS安装在需要保护的主机上, 必然会占用主机系统资
源, 额外负载将降低应用系统的效率 。
? HIDS完全依赖操作系统固有的审计机制, 所以必须与操
作系统紧密集成, 导致平台的可移植性差 。
? HIDS本身的健壮性也受到主机操作系统安全性的限制 。
? HIDS只能检测针对本机的攻击, 而不能检测基于网络协
议的攻击 。
? 当入侵检测监视的对象为网络关键路径上的网络数据包时,称
为网络入侵检测系统 NIDS( network-based
intrusion detection system)。
? 局域网通常采用的都是基于广播机制的以太网协议
( ethernet), 以太网协议能够使主机接收同一网段内的所有
广播数据包 。
? 以太网络适配器有正常和混杂两种工作模式, 正常模式只接收
本机地址和广播地址的数据包, 混杂模式则接收本网段内的所
有数据包 。
? NIDS正是利用了网络适配器的混杂工作模式来实时采集通过网
络的所有数据包, 通过网络协议解析与模式匹配实现入侵行为
检测 。
2,网络入侵检测系统
NIDS的 优点
? 检测与响应速度快。 NIDS能够在成功入侵之前发现攻击和可疑意
图,在攻击目标遭受破坏之前即可执行快速响应中止攻击过程。
? 入侵监视范围大。由于每个网络传感器能够采集共享网段内的所
有数据包,一个网络传感器就可以保护一个网段。因此,只在网
络关键路径上安装网络传感器,就可以监视整个网络通信。
? 入侵取证可靠。 NIDS通过捕获数据包收集入侵证据,攻击者无法
转移证据。
? 能够检测协议漏洞攻击。许多攻击程序是基于网络协议漏洞编写
的,诸如同步洪流( SYN flood),Smurf攻击和泪滴攻击
( teardrop)等只有通过查看数据包头或有效负载才能识别。
? 以应用程序日志作为入侵检测的数据源, 一般就称为基于应用的
入侵检测系统 。
? 基于应用的 IDS是 HIDS的一个特例 。 尽管应用日志的可信度不及
操作系统提供的审计记录和系统日志, 但应用日志提供了系统层
次之外的应用与用户层次信息 。 由于监控的内容与对象视野集中,
更有利于准确检测应用程序和用户的非法行为 。
? 数据库管理系统日志和 WWW服务器日志都是基于应用 IDS常用的
数据源 。 基于应用 IDS的特点与 HIDS相似, 目前在电子商务中得
到广泛关注 。
3,基于应用的入侵检测
4,文件完整性检测系统
? 文件完整性检测系统 ( file integrity checker) 也称为基于目
标的入侵检测系统, 可以看作是 HIDS的另一个特例 。
? 基本方法是使用单向杂凑函数 Hash计算保护文件的消息摘要
( message digest), 并将文件的消息摘要存储在安全区域 。
? 文件完整性检测系统完全依赖消息摘要数据库, 一旦消息摘要
数据库被恶意攻击者修改, 关键文件将失去保护作用 。 因此,
文件的消息摘要必须存放在安全区域 。
Hash函数
? Hash函数有一个独特的特点,即使输入到 Hash函数
的文件发生微小变化,其输出的文件消息摘要也会产
生很大变化,两个不同的文件不可能具有相同的消息
摘要。只要保护文件被修改,文件完整性检测系统就
可以检测出来。
? 典型的 Hash函数有 MD4,MD5和 SHA等,Tripwire
是当前开放源代码软件中的最常用文件完整性检测系
统。
根据检测分析方法分类
1,异常检测
? 异常检测 ( anomaly detection) 根据用户行为或资源使用的
正常模式来判定当前活动是否偏离了正常或期望的活动规律,
如果发现用户或系统状态偏离了正常行为模式 ( normal
behavior profile), 就表示有攻击或企图攻击行为发生, 系
统将产生入侵警戒信号 。
? 异常检测的核心问题是正常使用模式的建立以及如何利用该模
式对当前的系统或用户行为进行比较, 以便判断出与正常模式
的偏离程度 。 任何不符合历史活动规律的行为都被认为是入侵
行为, 所以能够发现未知的攻击模式 。
? 主要缺陷是误报率( false positives)较
高。因正常模式库是通过统计大量历史活动建
立的,不可能绝对精确的覆盖用户和系统的所
有正常使用模式。当正常使用模式发生变化时,
异常检测系统就会将正常使用模式错误地判断
成入侵行为,产生错误地报警信号。
异常检测的缺陷
? 误用检测( misuse detection)根据事先定义好的入
侵模式,通过判断入侵模式是否出现来实现入侵监测。
? 误用检测依据特征库进行判断,具有很高的检出率
( detection Rate)和很低的误报率,但检测全部入
侵行为的能力取决于特征库的及时更新程度。
? 误用检测的主要缺陷是只能检测已知的攻击模式,当
出现针对新漏洞的攻击手段或针对旧漏洞的新攻击手
段时,需要由人工或者机器学习系统得出新攻击的特
征模式,添加到误用模式库中,才能使系统具备检测
新攻击手段的能力。
2,误用检测
异常检测和误用检测
? 误用检测根据已知攻击特征和系统漏洞来实现入侵检测,所以大
多数商业产品采用了技术上成熟的基于特征模式匹配的误用检测。
? 异常检测需要首先使用审计数据源建立程序、用户或系统资源的
正常行为模式,然后通过计算实际目标行为模式与正常行为模式
之间的偏差值识别事件的行为性质。由于异常检测在正常行为模
式构建和异常分析方法等方面在技术上还不够成熟,并没有真正
转化成商业产品。
? 异常检测和误用检测在识别已知攻击与未知攻击方面具有互补性,
误用检测用于识别已知攻击,异常检测用于识别未知攻击,将两
者混合在一起能够获得更好的检测能力。
根据检测时间分类
1,实时检测
? 实时检测是指 IDS能够实时分析审计数据,在入
侵行为造成危害之前及时发现和拦截入侵事件。
入侵检测速度的快慢取决于数据采集、数据分析
算法、攻击特征提取和模式比较等多个因素,
? 实时检测主要依赖于攻击特征提取的难易程度。
?对 NIDS而言,可以根据从捕获的数据包中提取攻击特征所需
要的时间长短,将提取攻击特征的难易程度划分成不同等级。
?从网络数据包头信息中可以直接获取攻击特征的属性作为第
一级,如服务类型、控制标记、目的 IP地址、传输字节数等。
?将网络连接过程中能够捕获攻击特征的属性作为第二级,如
SYN标记对方无应答、三次握手后没有关断等各种非正常连接
类型。
?将只有在网络连接结束后才能获取攻击特征的属性归类到第
三级,诸如连接持续时间、源传送字节数、目的传送字节数与
重传率等网络连接记录基本属性。
实时检测等级分类
? 将时间统计属性归类到第四级。实时检测受到不同
攻击特征捕获延时的限制。
? 对于第一级和第二级属性能够揭示出的攻击行为,
攻击特征捕获延时短,可以采用实时检测。由于第三
级和第四级属性需要耗费大量的计算资源,攻击特征
捕获延时长,很难采用实时检测获得准确的检测结论。
实时检测等级分类 (续 )
? 离线检测是指入侵检测系统先将采集的审计数据暂
时保存起来, 然后采用批处理分析方式定时发给入
侵检测分析引擎 。
? 离线检测不能及时防范和响应攻击事件 。 但在获取
攻击特征需要 消耗大量计算资源的条件下, 采用离
线检测可以降低系统负担 。
? 在 捕获攻击特征需要较长时间或高速网络环境下,
为了获得高的 检测精度, 也不得不使用 离线检测 。
2,离线检测
实时检测和离线检测
? 实时检测和离线检测各有优势与劣势 。
? 实时检测能够及时防范和响应攻击事件, 但检测精
度不及离线检测 。
? 可以采用实时检测先对事件进行初步分析, 实时检
测出具有明显 攻击特征的入侵行为 。 然后再使用 离
线检测对事件进行详细分析, 查出那些具有隐含 攻
击特征的入侵行为 。
6.1.4 入侵检测主要性能指标
1.检测率和误报率
误报率 100%
检测率 100%
图 6.4 检测率和误报率之间的关

检测阈值
? 检测率和误报率是 IDS最重要的性能指标。特别对于
异常检测来说。
? 异常和正常是相对而言的。为了判别某一事件是否
属于异常,必须首先建立判别标准,即通常所讲的检
测阈值。
? 如果检测阈值设置的较高,就可能将正常事件判断
成异常事件,在提高检测率的同时也提高了误报率。
检测率和误报率
? 如果检测阈值设置的较低,就可能将异常事件识别
成正常事件,降低误报率的同时也降低了检测率。
? 检测率和误报率相互影响成矛盾关系。降低误报率
能够减轻安全人员的分析负担,但增加了入侵风险。
? 在比较不同 IDS的检测能力时,必须在相同误报率
的条件下比较检测率,有较高检测率的系统为优,反
之亦同。
检测率和误报率 (续 )
ROC曲线
? 目前国际上广泛采用接收机操作特性 ROC
( receiver operating characteristic)曲线方
法来评估 IDS的检测率和误报率。
? 在入侵检测评估中使用 ROC曲线,能够客观反映
出检测率和误报率之间的制约关系 。
? 当采用 ROC曲线分析不同 IDS的检测能力
时,对应的 ROC曲线有可能集中分布在左上
角互相缠绕在一起,很难彼此区分。为了克
服 ROC曲线这一缺点,A,Martin等人对 ROC
曲线进行了改进,提出了检测误差权衡 DET
( detection error tradeoff)曲线评估方法。
ROC曲线 (续 )
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.10.2 0.5 1 2 5 10 20 40
0.1
0.2
0.5
1
2
5
10
20
40
ROC1
ROC2ROC3
DET1
DET2
DET3
图 6.5 三个不同系统的 ROC曲线 图 6.6 三个不同系统的 DET曲线
ROC曲线和 DET曲线
2,系统资源占用率
? HIDS的开销主要消耗在审计记录格式化和入侵分析上, 因此,
精简审计记录和提高入侵分析算法是降低 HIDS资源占用率的关
键 。
? NIDS的开销主要消耗在网络数据包协议解析与特征匹配上, 特
别在高速网络环境下, 系统资源占用率将显著增大 。
? 系统资源占用率与 IDS的检测率和误报率常常是相互矛盾的,
降低系统资源占用率需要用检测率和误报率作为代价 。 因此,
应当根据应用环境, 权衡系统资源占用率和检测精度的利弊 。
3.系统扩展性
? 时间上的可扩展性
? 许多攻击事件是由多个独立事件按时间顺序组合而成
的, 单个孤立事件并没有表现出异常行为, 只有将多个独
立事件在时间上关联起来, 才能识别出攻击行为 。 如果组
成攻击行为的多个独立事件在时间上依次发生很快, 相对
比较容易发现 。 但是当多个独立事件在时间上依次发生的
间隔很长, IDS必须长期保存每个独立事件的状态, 才可
能通过事件关联检测出这种攻击行为 。 因此, 只有将攻击
事件作为时间的函数, IDS在时间上才具有良好的可扩展
性 。
? 空间上的可扩展性
? 多数 NIDS采用多个网络传感器和一个中心控制台
( console) 的客户服务器体系结构, 当网络传感器监视
的主机数量和网络传感器本身数量扩大后, 网络传感器
的监测能力和中心控制台的综合计算能力是否仍然能够
满足规模扩展的要求 。 如果监测的规模扩大后, 在不过
多增加系统开销的基础上, IDS仍然能够准确地检测各种
攻击行为, 则表明具有良好的空间可扩展性 。
3,系统扩展性 (续 )
4,最大数据处理能力
? NIDS最大数据处理能力包括最大网络流量, 最大采集包数,
最大网络连接数和最大事件数等 。
? 最大网络流量是指 NIDS的网络传感器单位时间内能够处理的
最大数据流量, 一般用每秒兆位 ( Mbps) 表示最大网络流量 。
? 最大采集包数是指 NIDS的网络传感器单位时间内能够采集的
最大网络包数, 一般用每秒包数 ( pps) 表示最大采集包数 。
最大网络流量等于最大采集包数乘以网络数据包的平均大小 。
? 最大网络连接数是指 NIDS单位时间内能够监控的最大网络连接数,
最大网络连接数反映了 IDS数据包重组与连接跟踪的能力。数据
包重组与连接跟踪是网络数据包协议解析和应用层入侵分析的基
础。最大网络连接数反映了 IDS在网络连接记录层次和应用层检
测入侵的能力。
? 最大事件数是指 NIDS单位时间内能够处理的最大报警事件数,最
大事件数反映了入侵检测分析引擎处理攻击事件和事件日志记录
的能力。 NIDS发现攻击或可疑事件后,将产生报警信号,同时将
攻击或可疑事件记录到后台的安全事件日志中,以便安全人员进
行进一步分析。
4,最大数据处理能力 (续 )
6.1.5 入侵检测系统部署
1,主机入侵检测系统部署
? HIDS的功能就是通过监测主机审计数据源或对主机的网络访问发现
外部入侵和内部用户越权操作等异常行为,采取积极主动的响应措施
防止各种恶意行为的破坏,最大限度地保障主机系统的正常运行。
? 大多数 HIDS都采用了主机分析引擎和中心控制台的客户服务器分布
式体系结构。主机分析引擎根据用户定义的安全策略监测主机的操作,
一旦发现入侵行为立即通过数据加密传输向中心控制台报警。
? 中心控制台是主机入侵检测系统的管理中心,通常由多个管理组件构
成。主要用于控制本地或远程的多个分析引擎;提供报警显示、报警
管理、安全策略配置、系统漏洞检查和入侵事件记录等管理功能,中
心控制台管理软件对主机系统需求一般高于分析引擎。
小规模主机入侵检测系统典型部署
引擎 C
引擎 B引擎 A
引擎 D
中心控制台
图 6.7
大规模 HIDS典型部署
引擎 C
引擎 B引擎 A
引擎 D
引擎 F引擎 E
引擎 G 引擎 H
子控制台
中心控制台
图 6.8
2,网络入侵检测系统部署
? NIDS利用网络传感器在网络关键路径侦听网络数据流, 通过攻击
特征匹配, 连接记录跟踪, 应用协议分析等技术手段监测威胁系
统与网络资源的各种入侵行为 。
? NIDS的体系结构类似于 HIDS,由多个网络传感器和中心控制台
组成 。 网络传感器主要负责数据包采集, 特征匹配, 协议解析,
事件生成和入侵报警等关键任务, 中心控制台则主要负责入侵事
件记录, 事件查询, 报警显示与管理, 事件协作分析和以多种方
式实施入侵响应 。
? NIDS的部署就是网络传感器的部署, 只有将网络传感器接入到网
络关键路径处, 才能真正发挥保护系统与网络资源的目的 。
集线器共享网络部署
? 早期网络多使用集线器 ( hub) 作为共享网络的
连接设备, 虽然网络拓扑为星型结构, 但集线器内
部将所有端口都连接到一个网段, 共享传输介质以
广播方式传输数据 。 由于在共享网络环境下, 网络
传感器能监听到整个冲突域内的网络流量, 因此,
只需要将网络传感器的监听端口接到集线器端口即
可实现整个冲突域的监控 。
1,集线器共享网络部署
网络传感器服务器
工作站 集线器 中心控制台
图 6.9
2,交换机交换网络部署
? 交换网络将节点分为端点和中间节点, 端点就是用户接口点,
中间节点则是交换机本身 。 交换机为端点提供存储转发与路由
功能, 使多对端点之间能够沿着指定的路径同时传输数据, 而
不会发生数据冲突, 提高了网络吞吐量, 减小了网络延时 。
? 交换机是交换网络的连接设备, 表面上与集线器相似, 但内部
结构和网络性能完全不同 。 交换机通过端口交换阵列连接到背
板上多个网段, 每个端口都是一个独立的网段, 不同网段之间
通过内部网桥实现互联, 便于网络管理软件对端口进行设置 。
? 网络传感器都是基于网络适配器混杂工作模式来
实时采集网络数据包,不能直接将网络传感器的
监听端口接入交换机用户端口,否则,网络传感
器将捕获不到任何数据。
? 常用的解决方法是在交换机的出入口上接入一台
集线器,将交换网络转换成共享网络环境。
? 这种方法只适应于对网络速度要求不高的场合。
交换网络转换成共享网络部署
交换网络转换成共享网络部署图
工作站 交换机
服务器
网络传感器
中心控制台
集线器
图 6.10
? 如果交换机支持供调试使用的镜像端口 ( mirror port) 功能,
可以通过端口配置将要监听的端口数据全部映射到镜像端口, 将
网络传感器监听端口接到镜像端口即可实现所有端口的监听 。 虽
然采用镜像端口不改变网络结构, 但仍然会影响交换机的性能 。
? 不同公司对镜像端口的命名不一致, 例如, Cisco公司称为交换
端口分析器 SPAN (switched port analyzer),3COM公司则
称为分析器端口 ( analyzer port) 。
交换网络镜像端口部署
工作站 交换机
服务器
网络传感器
中心控制台
镜像端口
交换网络镜像端口部署图
图 6.11
? 如果交换机不具备镜像端口功能,或者希望接入网络传感
器不影响网络性能,也可以考虑使用测试接入端口 TAP
( test access port)专用网络设备。
? 网络 TAP为网络监视设施监测全双工快速以太网提供了永
久接入端口,网络 TAP可应用于诸如路由器、防火墙或交
换机等任意网络设备之间。
? TAP并不改变网络数据包的内容和结构,只是将输入端口
的网络流量分流到三个快速以太网端口,其中一个端口连
接输出设备,另外两个分析端口供网络监视设施使用。
交换网络 TAP部署
交换网络 TAP部署图
交换机
网络传感器
中心控制台
网络传感器 网络 TAP
图 6.12
服务器
? 非军事区的原意是禁止军事活动的区域,网络安
全借用军方术语表示处于内部网络与外部网络之
间的一个相对独立的不可信任区域,通常是指防
火墙外部端口与 Internet路由器内部端口之间的
网段。
? 将 WWW和 E-mail等对外开放服务的服务器放在
非军事区,能够在对外提供优质服务的同时,最
大限度地保护内部网络安全。
3,防火墙和非军事区部署
? 防火墙内部端口和非军事区入口是来自 Internet攻击
的唯一路径,在非军事区入口部署网络传感器,能
够实时监测非军事区与 Internet和内部网之间的所有
网络流量,不仅保护了对外提供的服务,同时也保
护了防火墙本身。
? 防火墙是外部攻击的首选目标。在防火墙内部端口
部署网络传感器,则可以实时监测 Internet与内部网
之间的所有网络流量,发现可能存在的各种外部和
内部入侵行为。
防火墙和非军事区部署 (续 )
网络传感器
中心控制台 服务器 工作站
DNS服务
WWW服务
E-mail服务
二级交换机
主干交换机
DMZ交换机 防火墙
路由器网络传感器
图 6.13
防火墙和非军事区部署图
6.2 入侵检测审计数据源
IDS是典型的审计数据驱动分析系统,之所以能够
检测入侵行为,是因为审计数据记录了入侵行为证据。
因此,入侵检测的技术基础就是利用审计数据来区分合
法与非法行为。只有从大量审计数据中获取能够识别行
为模式的特征,才有可能利用模式特征准确发现入侵证
据。
6.2.1 审计数据源
1.操作系统审计记录
某审计事件的所有数据集合就称为该事件的审计记录
( audit record),审计记录的内容与审计事件、操作系
统都密切相关。记录是由操作系统内部专用的审计系统生
成的,由一个或多个审计文件组成。每个审计文件由多条
审计记录组成,每条审计记录都记载了一次独立的系统事
件。其主要功能就是记录、检测和审核系统中与安全相关
的活动。
操作系统审计记录特点
?数据源可靠性高 。
?审计事件划分粒度小 。
?审计记录具有连续性与完备性 。
?不同操作系统审计记录数据格式不兼容 。
?数据格式不适应机器学习 。
?审计记录数量庞大 。
Sun Solaris操作系统审计记录简介
Sun Solaris操作系统审计机制由基础安全模
块 BSM( basic security module) 审计子系统提
供, 可对内核系统调用事件, Solaris应用程序事件
和第三方用户程序事件进行安全审计 BSM采用分层
结构化方式组织审计记录文件, 审计记录文件也称
为审计跟踪 ( audit trail), BSM审计记录文件结
构如图 6.14所示 。
BSM审计记录文件结构
图 6.14
审计记录文件
审计文件
……
审计文件
审计文件
审计记录
前审计文件
审计记录
后审计文件
……
审计标记
审计标记
审计标记
……
事件属性审计文件
审计记录
微软视窗操作系统,如,Windows NT 4.0 Server、
Windows 2000 Server等具有相似的安全审计机制,
主要由操作系统内部的安全参考监视器 SRM( security
reference monitor)、本地安全认证 LSA( local
security authority)、安全账户管理 SAM( security
account management)和事件记录器 EL( event
logger)共同完成。 Windows操作系统审计结构如图
6.15所示。
Windows操作系统审计记录简介
Windows操作系统审计结构
图 6.15
事件日志
用户模式
核心模式
审计策略 审计记录
安全账户库 事件记录器 EL
安全参考
监视器
SRM
对象访问
进程跟踪
特权使用
文件系统
审计日志
审计策略库
策略更改
登录事件
账户登录


线

本地安全认证 LSA
安全账户
管理 SAM
Windows操作系统 事件日志
Windows事件日志
安全事件日志
操作系统事件日志
应用事件日志
记录用户登录、系统资源使用等与系
统安全相关的事件,对用户不开放
记录操作系统组件的事件,对所有用
户开放
记录应用程序产生的事件,对所有用
户开放
2.系统日志和应用日志
系统日志和应用日志是由操作系统之外
的应用软件生成的, 用于记录各种系统和应
用事件流水活动 。 对入侵检测来说, 系统日
志和应用日志提供了审计记录数据源之外的
附加信息, 基于多个独立数据源从不同的角
度对同一个事件进行定性, 具有更高的可靠
性 。
系统日志和应用日志 相对于审计记录 具有
如下不足:
? 系统日志和应用日志容易遭受恶意破坏和篡改。
? 系统日志和应用日志不受系统管理员控制。
? 应用日志可能存在垃圾数据。
? 应用日志可信级别低于审计记录和系统日志。
系统日志和应用日志的 不足
程序的系统调用跟踪( system call trace)能够很
好地满足入侵检测对审计数据源的基本要求。系统调用
依赖进程执行路径,进程执行路径又取决于诸如进程输
入参数、系统当前状态等多个因素。如果将系统调用跟
踪按照窗口大小划分为一定长度的短序列( short
sequences),当系统调用跟踪足够长时,系统调用短
序列在统计意义上具有良好的稳定性。而且,这些系统
调用短序列不同于程序异常执行和其他程序执行时所产
生的系统调用短序列。
3.系统调用跟踪
系统调用跟踪 的三个基本特性
一般而言, 入侵检测使用的审计数据源 应当满
足三个基本特性,
? 审计数据在正常行为时具有良好的稳定性。
? 审计数据在异常行为时明显地不同于正常
行为审计数据。
? 审计数据在异常行为时的数据量明显地小
于正常行为数据量。
系统调用跟踪 的优势
系统调用跟踪作为主机入侵检测数据源同操作
系统审计记录, 系统日志和应用日志相比, 具有下
列明显的优势 。
? 易于构建高精度异常检测模型。
? 易于将入侵检测与操作系统捆绑。
? 易于构建实时检测模型。
? 数据格式适合机器学习要求。
4.网络审计数据
主机审计数据源有:操作系统审计记
录, 系统日志, 应用日志和系统调用跟踪
网络审计数据源 是指通过网络监听方式从
网络关键路径或其他网络设施获取的供入
侵分析使用的数据来源, 网络数据是当前
商用网络入侵检测系统使用的最主要审计
数据源 。
6.2.2 审计数据源质量分析
入侵检测的实质就是利用审计数据观测用
户、程序或网络等主体的行为,审计数据反映
主体行为的规律性越强,对主体行为性质的决
策就越准确。 通过度量审计数据的规律性能够
了解审计数据源的质量,用高质量审计数据源
构造的检测模型必然具有高的检测精度。
信 息 熵
信息理论中常用的信息熵、条件熵、相对熵和
相对条件熵概念从不同角度反映了数据集的规律性,
为审计数据源的质量分析奠定了理论基础。
信息熵( information entropy):
物理意义是对传输数据的类别进行编码所需
的二进制位数。
信息熵能够用于度量数据的 规律性 。
假设 X是一个数据记录集合, x是 X中的任意一个
数据记录, Cx是数据集 X的所有已知类别集合, 每个
数据记录 x都属于一个类别, 即 。 假设 P(x)是 x
在 X中的概率分布, 则数据集 X的 信息熵 E(X)定义为:
信息熵定义
(6.1)
审计数据集的信息熵越小,表明审计数据记录的
类别就越少,入侵检测模型也就更容易对审计数据记
录进行分类。
?
?
??
xCx xP
xPXE )(1l o g)()(
xCx?
假设 Y是与数据集合 X具有相同数据结构的数据集
合, y是 Y中的任意一个数据记录, Cy是数据集 Y的所有
已知类别集合,。 P(x,y)是 x与 y的联合概率, P(x/y)
是 x在给定 y时的条件概率, 则 X在给定 Y时的 条件熵
( conditional entropy) E(X/Y)定义为:
条件熵定义
(6.2)?
??
??
yx CyCx yxP
yxPYXE
,)/(
1l o g),()/(
yCy?
条 件 熵
网络安全事件常常在 时间序列上 具有很
强的依赖性,而条件熵恰好反映了数据集 X
对数据集 Y的依赖程度,所以,通过计算审
计数据集的条件熵能够知道安全事件在时间
序列上的 依赖规律 。
下面结合一个例子来说明 。
条 件 熵 举 例
例, 设 X={(e1,e2,…,ei,…,en)}是安全事件
ei(1≤i ≤ n) 序列的集合, Y={(e1,e2,…,ei,…,ek)}
是由 X的子序列构成的集合, 其中 k<n。 X的条件
熵 E(X/Y)反映了用 X的前 k个安全事件 (e1,e2,…,
ei,…,ek)预测第 n个事件 en的概率大小, X的条件
熵越小, 安全事件在时间序列上的依赖性就越强,
用已知事件预测未知事件的准确性也就越高 。
相 对 熵
异常检测模型必须在测试数据集上进行预测精度
的评估,如果预测精度能够满足 IDS的要求,异常检
测模型才能用于对实际目标数据集中的数据记录进行
分类。异常检测模型的检测精度与训练数据集和测试
数据集、目标数据集之间的相似度密切相关,数据集
之间的相似度越高,检测模型的检测精度也就越高。
使用 相对熵( relative entropy) 能够度量两个数据
集之间的 相似性 。
相 对 熵 定 义
假设训练数据集和测试数据集分别用 X、
Y表示, P(x),Q(x)分别是 x在 X和 Y中的概率
分布, 则 X和 Y之间的 相对熵 RE(X/Y)定义为:
?
?
??
xCx xQ
xPxPYXRE
)(
)(l o g)()/( (6.3)
相对条件熵定义
X和 Y间的相对熵越小, 两个数据集间的相似性就越
高 。 若相对熵为零, 表明这两个数据集具有完全相同的概
率分布, 检测模型表现出最好的检测性能 。 当使用条件熵
度量 X在时间上对 Y的依赖程度时, 类似于相对熵, 可以
利用 相对条件熵 ( relative conditional entropy) 度量
事件序列数据集间的相似性, 相对条件熵 RCE(X/Y)定义
为:
?
??
??
yx CyCx yxQ
yxPyxPYXR C E
,)/(
),(l o g),()/( (6.4)
6 2.3 常用审计数据源采集工具
网络数据采集是指从数据链路层截获数据
包并按照网络协议解释数据包首部各字段含义
的过程,是实现网络入侵检测、网络监听和网
络协议分析的基础工作,由于网络数据采集可
用于正反两个方面,网络数据采集工具也称为
网络监视器、网络嗅探器( network sniffer)
或协议解码器。
1.伯克利数据包过滤器 BPF
20世纪 90年代美国劳伦斯伯克利国家实验室的
Steven McCanne和 Van Jacobson对 CSPF进行了重
大改进,提出了著名的 Unix内核数据包采集与过滤机
制 BPF( Berkeley packet filter)。 BPF主要对
CSPF的系统结构进行了两方面的改进,
? 采用基于寄存器的数据包过滤机制,能够充分利用精
简指令系统计算机 RISC寄存器高速存取的优势。
? 采用非共享缓存模型扩展了存储地址空间,提高了数
据包采集的性能。
? BPF主要由网络分接器( network tap)和包过滤
器( packet filter)组成。
? 网络分接器:负责从链路层网络设备驱动程序截获数
据包并传递给监听程序。
? 包过滤器:根据事先定义的过滤规则决定是否将数据
传递给应用程序。
? 目前大多数网络监听程序都需要 BPF作为底层驱动。
伯克利数据包过滤器 BPF
2.经典数据包采集与分析工具 Tcpdum
Tcpdum是由美国劳伦斯伯克利国家实验室开
发的用于网络数据包头采集和协议分析的经典网络工
具,Tcpdum必须将网络适配器设置成混杂工作模式,
因此,只有超级用户才有权执行数据采集和分析,而
且只能采集共享网段内的数据流量。 Tcpdum程序需
要使用 BPF作为底层驱动,并使用 Libpcap
( packet capture library)作为数据包捕获函数库。
Tcpdum和相关接口函数库
程序名称 最高版本 操作系统 下载地址
Tcpdum 3.8.3 Unix,Linux http://www.tcpdump.org/
BPF Unix,Linux http://www.tcpdump.org/
Libpcap 0.8.3 Unix,Linux http://www.tcpdump.org/
Libnet 1.0.0 Unix,Linux http://libnet.sourceforge.net/
Libicmp 1.0.0 Unix,Linux
Libnids 1.19 Unix,Linux http://libnids.sourceforge.net/
WinDum 3.6.2 Windows http://windump.polito.it/
WinPcap 3.0 Windows http://winpcap.polito.it/
Libnids-
win32
1.16 Windows http://www.datanerds.net/~mike/lib
nids
3.其他网络数据包采集与分析工具
Ethereal是一款开放源码的用于采集和显示网络数
据包的跨平台网络分析器。
Ethereal主要功能,
? 从网络适配器实时采集数据包;
? 支持 602种网络协议显示网络数据包;
? 打开和保存捕获的数据包文件;
? 能够与多个数据包采集工具实现数据包的导入与导出;
? 根据多种规范过滤与搜索网络数据包;
? 生成各种统计信息等。
常用开放源码或非商业数据包
采集与分析软件
程序名称 最高版本 操作系统 下载地址
Ethereal 0.10.7 Unix,Linux、
Windows
http://www.ethereal.com/
Jpcap 0.01.16 Unix,Linux、
Windows
http://sourceforge.net/projects/jp
cap/
Ettercap 0.7.1 Unix,Linux、
Windows
http://sourceforge.net/projects/ett
ercap/
Network
Sniffer
1.0 Windows http://sourceforge.net/projects/sc
hniefer/
Packetyzer 3.0.3 Windows http://sourceforge.net/projects/pa
cketyzer/
Ngrep 1.42 Unix,Linux、
Windows
http://sourceforge.net/projects/ng
rep/
Sniffit 0.3.7 Linux、
Windows
http://reptile.rug.ac.be/~coder/sni
ffit/
6.3 主机系统调用入侵检测
自从新墨西哥大学计算机免疫系统研究小组发现
监视系统调用跟踪能够识别针对特权程序的攻击行为
以来,为了获得简洁的检测模型并提高模型精度,研
究人员随后又提出了前看系统调用对、枚举序列匹配、
最小汉明间距、短序列频度分布向量、数据挖掘、隐
含马尔科夫和支持向量机模型等多种基于系统调用跟
踪的入侵检测建模方法。
6.3.1 系统调用跟踪概念
1.特权程序
? UNIX操作系统的体系结构主要由系统内核, 特权程
序和应用程序三部分组成 。
? 特权程序 就是某个特权进程所执行的程序, 这些程序
具有特殊权限, 有权访问普通用户不能访问的系统资源,
服务程序和扩展程序 ( amplification programs) 通常
都属于特权程序 。
? 由于特权程序一般都具有超级用户的执行权限, 比一
般的应用程序具有更大的活动范围和资源控制权限, 所
以攻击或滥用特权程序对系统具有更大的破坏能力 。
2.系统调用跟踪
操作系统在其内核中设置了一组用于实现各种系统
功能的内建函数,这些内建函数就称为 系统调用 。系统
调用是用户进程和系统内核之间的功能接口,是用户进
程进入系统内核的 唯一途径 。系统调用通过软中断实现,
软中断指令将 CPU切换到特殊监管方式,然后调用内核
系统调度例行程序( dispatch routine)启动相应的
系统调用功能。
系统调用跟踪
? 进程从创建, 推进到撤销的整个过程称为进程的生命周
期, 系统调用跟踪或系统调用序列实质上就是某个程序的
进程在其生命周期内所执行的所有 系统调用列表, 由多个
有序的系统调用组成 。
? 由于程序的规模, 复杂性和运行环境不同, 所以不同程
序的系统调用和跟踪长度也不同 。 即使同一个程序的不同
版本, 在后台或在前台运行, 其系统调用和跟踪长度也不
完全相同 。
部分正常 Sendmail系统调用跟踪
表 6.3是新墨西哥大学研究小组从运行 SunOS 4.1.1
的 Sun SPARC工作站上采集的部分正常 Sendmail系统
调用跟踪数据集, 其进程标识为 8840。 正常 Sendmail
系 统 调 用 跟 踪 数 据 集 共 有 71760 个 进 程 跟 踪,
44500219个系统调用组成 。
表 6.3
系统
调用
编号
4 2 66 66 4 138 66 5 …
系统
调用
名称
write fork sstk sstk write sethosid sstk open …
6.3.2 前看系统调用对模型
1.正常系统调用跟踪扫描
首先使用长度为 k的滑动窗口( sliding window)对
特权程序正常系统调用跟踪扫描,截取滑动窗口内的系统
调用短序列,记录正常系统调用跟踪中不同模式的系统调
用短序列。
例,用长度为 4的滑动窗口对图 6.16的系统调用跟
踪扫描,不同模式的系统调用短序列如表 6.4所示。其中
p3,p2,p1,p0分别表示系统调用短序列中 4个系统调用
所处的位置,p0表示当前执行的系统调用位置,p1表示位
于 p0之前执行的系统调用位置,以此类推。
滑动窗口扫描系统调用跟踪
k=4滑动窗口扫描
图 6.16
11 45 5 108 90 6 5 90 91
不同模式系统调用短序列
P3 P2 P1 P0
11
11 45
11 45 5
11 45 5 108
45 5 108 90
5 108 90 6
108 90 6 5
90 6 5 90
6 5 90 91
表 6.4
2.系统调用短序列合并
检测不同模式系统调用短序列在 p0位置
是否具有相同的系统调用编号, 将当前位置
系统调用编号相同的系统调用短序列进行合
并, 不同模式系统调用短序列的合并结果如
表 6.5所示 。
表 6.5
11
11 45
108 11,90 45,6 5
11 45 5 108
45,90 5,6 108,5 90
5 108 90 6
6 5 90 91
P3 P2 P1 P0
不同模式系统调用短序列的合并结果
3.前看系统调用对组合
在不同模式系统调用短序列合并结果的
基础上, 从当前执行的系统调用 p0位置向 p1,
p2,p3方向看, 然后分别将 (p0, p1),(p0,
p2)和 (p0, p3)组合成前看系统调用对, 组合
后的前看系统调用对如表 6.6所示, 并作为系
统调用跟踪对应特权程序的正常行为模式 。
表 6.6
(p0, pi) 前看系统调用对
(p0, p1) (45,11); (5,45); (5,6); (108,5); (90,108);
(90,5); (6,90); (91,90)
(p0, p2) (5,11); (5,90); (108,45); (90,5); (90,6);
(6,108); (91,5)
(p0, p3) (5,108); (108,11); (90,45); (90,90); (6,5);
(91,6)
前看系统调用对特权程序正常模式
4.目标特权程序检测
按照构建特权程序正常行为模式的方法, 将目标系
统调用跟踪转换成前看系统调用对, 用前看系统调用对
表征目标特权程序的行为模式 。 如果目标特权程序的前
看系统调用对不在表 6.6所示的正常行为模式库中, 则将
目标特权程序标识为异常 。 例如, 假设目标系统调用跟
踪为 5,108,90,11,因前看系统调用对 (p0,p1)= (11,
90),(p0,p2)= (11,108)和 (p0,p3)= (11,5)没有出现在正
常行为模式库中, 将目标系统调用跟踪 5,108,90,
11标识为异常 。
6.3.3 枚举序列匹配模型
枚举序列匹配 ( enumerating sequences) 异常检
测模型类似于前看系统调用对模型, 同样使用长度 k的滑
动窗口对特权程序正常系统调用跟踪扫描, 通过枚举不同
模式的系统调用短序列来构建特权程序正常行为模式 。 枚
举序列匹配模型用于异常检测时, 将目标系统调用跟踪中
的短序列与正常行为模式库进行比较, 凡与正常行为模式
库不匹配的短序列称为错配 ( mismatch), 采用错配数
量来识别程序的异常行为 。
最小汉明间距
可使用 最小汉明间距 ( minimum Hamming
distance) 计算目标短序列与正常模式库中短序列之
间相似度的思想, 并将目标短序列与正常模式库之间
的最小汉明间距定义为式 ( 6.5) 。 其中, S为程序正
常行为模式集 ( pattern sets), i表示当前目标短序
列, d(i,j)表示目标短序列 i和正常短序列 j之间的汉明
间距 。
}),(m i n {)(m i n Sjjidid ??? ( 6.5)
最小汉明间距 dmin(i)反映了目标短序列偏离
程序正常模式的程度, 也就是目标短序列的异
常强度 。 目标短序列的异常强度越大, 将目标
短序列定性为异常的正确概率就越高, 所以,
在目标系统调用跟踪中的最大异常强度定义为
程序异常信号标志 SA。
} )(m a x { m i n iidS A ??
(6.6)
最大异常强度
6.3.4 短序列频度分布向量模型
短序列频度分布向量模型 ( frequency-based
method)试图对不同短序列在系统调用跟踪中出现的
频度进行建模,核心思想采用了对文本文档分类的向量
方法。每个系统调用跟踪用一个短序列频度分布向量来
表示,向量中的每一个元素对应一个长度为 k的短序列,
元素值就是短序列在系统调用跟踪中出现的频度。采用
如下 6.7点积公式计算两个短序列频度分布向量之间的
相似度。
相似度定义
? ?
?
? ?
?
?
J
j
J
j
njmj
J
j
njmj
nm
xx
xx
XXSi m i l ar i t y
1 1
22
1
),(
(6.7)
其中 Xm=(xm1,xm2,…,xmj)和 Xn=(xn1,xn2,…,xnj)分
别表示两个短序列频度分布向量, j为频度分布向量维
数 。 程序正常系统调用跟踪对应的短序列频度分布向量
作为质心 ( centroid), 凡远离质心的系统调用跟踪就
认为是异常的 。
? 程序系统调用跟踪结束之前,无法形成短序列频度分布
向量,所以不适应于实时在线检测。
? 不同模式系统调用短序列空间过于庞大,不能保证正常
模式库一定包含了所有可能的正常系统调用短序列,所以
维数很难确定。
? 假定了系统调用短序列之间是相互独立和静态的,事实
上,系统调用跟踪中的短序列并不满足这个约束条件。
短序列频度分布向量模型 不足之处
6.3.5 数据挖掘分类规则模型
数据挖掘分类规则模型 以枚举序列匹配建模方法为基础,
采用“重复增量裁减缩减错误”数据挖掘快速分类算法 RIPPER,
从系统调用短序列训练数据集归纳分类规则集作为入侵检测模
型。在应用分类算法以前,首先按照枚举序列匹配方法构建特
权程序短序列正常行为模式库,然后将异常系统调用跟踪中的
短序列与正常行为模式库进行比较。凡与正常行为模式库匹配
的短序列标注成正常类标,凡与正常行为模式库不匹配的短序
列则标注成异常类标,正常系统调用跟踪中的所有短序列都统
一标注成正常类标。
数据挖掘分类规则模型
为了提高模型的检测效果, 对枚举序列匹配模型进行
了优化 。 数据挖掘分类规则模型将 RIPPER规则预测出的
类标序列划分成多个区域, 每个区域由多个类标序列组成 。
当区域中的异常类标数量大于正常类标数量时, 区域被定
性为异常区域, 否则, 区域被定性为正常区域 。 通过计算
异常区域在目标系统调用跟踪中的百分比来决定程序的行
为状态, 当异常区域百分比超过某个事先确定的阈值时,
认为程序具有异常行为 。
6.3.6 隐含马尔科夫模型
马尔科夫链对随机过程建模时, 对随机变量的两个要求:
? n+1时刻随机变量 sn+1的状态概率分布只与 n时刻随机变
量 sn的状态有关, 而与 n时刻以前的随机变量无关 。 设 pij表
示系统在 n时刻处于状态 i,n+1时刻处于状态 j的概率, 则
系统在 n+1时刻为状态 j的概率满足式 ( 6.8) 。
ijnn pisjsP ???? )/( 1
? 随机变量从 n时刻到 n+1时刻的状态转移与 n时刻的状态
无关。
(6.8)
实际的系统调用跟踪并不完全满足上述马尔科夫
条件,直接采用马尔科夫链对正常系统调用跟踪建模,
并不能获得良好的异常检测效果。人们发现在语音识别
中广泛使用的隐含马尔科夫模型 HMM( hidden
Markov model)更适合对系统调用跟踪建模,由于
HMM保留了更多系统调用训练数据的统计特性,被认
为是目前最强有力的系统调用跟踪分类算法。
隐含马尔科夫模型
? ?? s tststsssssss ObpObpObpObsOP )()()()()()/( 133322221111 ???
HMM随机过程的当前状态是隐含的,仅能依据
当前状态的概率分布函数 bi观察随机过程的输出信号
序列 O,通过输出信号序列才能推断出随机过程的隐
含状态。一旦通过正常系统调用跟踪数据集建立了
HMM的参数集 λ=(π,A,B),其输出信号序列 O=(O1,
O2,…,Ot) 的概率就可以由式 ( 6.9) 计算确定。
输出信号序列的概率公式
( 6.9)
6.3.7 支持向量机模型
支持向量机 SVM( support vector machine) 是一
种建立在统计学习理论基础之上的机器学习方法, SVM学
习算法能够在高维空间中找到一个最优分界超平面, 以最
小的错误分类率对二值样本进行分类 。 假设存在训练样本
{(x1,y1),(x2,y2),…,(xk,yk)} 其中 x为 k维向量, y是 x的二值
类标, l为训练样本的个数, 即, 。 在线
性可分的条件下, 存在一个式 ( 6.10) 所描述的超平面使
两类样本完全分开 。
kRx? }1,1{ ???y
0)( ??? bxw
( 6.10)
( 6.10) 式中, ·”是向量的点积运算, w为超平面的法线
向量, b为偏移值 。 当 k维向量 xi满足 时,
xi的类标 yi= +1,当满足 时, xi的类标
yi= -1。 为了在高维空间中找到一个最优分界超平面, 要求
w满足式 ( 6.11), 式中 αi为拉格朗日乘子,
,C是一个正常数 。
0)( ??? bxw i
0)( ??? bxw i
liCi,,2,1],,0[ ????
?
?
?
l
i
iii yxw
1
?
支持向量机模型
( 6.11)
由式 6.11可以看出, αi=0的训练样本对分类不起任何作
用, 只有 αi>0的训练样本才确定了分界超平面, 所以将
αi>0的样本称为支持向量 。 在训练样本集上获得参数 αi
和 b以后, 对给定的测试样本 x进行分类, 采用式
( 6.12) 定义的线性支持向量机判决函数确定样本的
类属 。
?
?
??????
l
i
iii bxxybxwxd
1
)()( ?
( 6.12)
支持向量机模型 ( 续 )
支持向量机模型 ( 续 )
对于非线性分类问题, 可以将样本 x影射到高维空间
以后, 采用内积函数 K(xi·xj)实现非线性变换后的线
性分类, 所以非线性支持向量机的判决函数为式
( 6.13) 。
?
?
??
l
i
iii bxxKyxd
1
),()( ?
( 6.13)
6.4 网络连接记录入侵检测
网络连接记录入侵检测利用网络监听软
件采集网络中传输的数据流, 通过网络协议
解析将数据包还原成传输层或应用层的网络
连接记录, 然后从连接记录中提取能够识别
网络异常行为的特征属性 。 利用机器学习算
法生成网络入侵检测模型, 用于对实际网络
中的连接记录进行决策 。
6.4.1 网络数据包协议解协
网络数据包本身提供的信息很少, 直接利用
网络数据包很难准确识别入侵行为 。 如通过网络
协议解析将数据包还原成传输层或应用层的网络
连接记录, 因网络连接记录包含了许多反映网络
行为的特征属性, 利用传输层 TCP,UDP和应用
层 FTP,TELNET,HTTP等连接记录的特征属性
或攻击特征就可以准确地识别出网络入侵行为 。
1.网络数据包协议解析过程
网络数据包协议解析过程如图 6.17所示, 网络数据
包捕获软件安装在内部局域网和外部网或 Internet之间
的通用网关, 能够捕获所有进出网关的网络流量 。 但常
用网络数据包捕获软件并不是专门用于网络安全分析目
的, 网络数据包的输出格式不能直接用于构建入侵检测
分析模型, 需要通过大量网络协议解协预处理才能将网
络数据包还原成具有多个特征属性的传输层或应用层网
络连接记录 。
网络数据包协议解析过程
图 6.17
网络连接记录
网络检测模型



工作站
集线器
服务器 服务器
局域网 通用网关
数据包输出格式
机器学习
10:35:41.504694 1.0.256.256.7000 >
2.0.256.256.7001,udp 148
10:35:41.517993 2.0.256.256.1362 >
5.0.256.256.25,,ack 1 win 4096
10:35:41.583895 2.0.256.256.25 >
13.0.256.256.2845,,ack 46 win 4096
10:35:41 1.0.256.256
2.0.256.256 udp 148 SF
10:35:41 2.0.256.256
5.0.256.256 smtp 88 SF
Internet
2,Tcpdump数据包输出格式
图 6.18
Tcpdump只按照数据包到达的先后顺序输出数据包
头信息,不包括数据包中传送的任何用户数据。
源端口 目标端口
10:35:41.669954 4.0.256.256.80 > 2.0.256.256.2621,S 953841174:953841174 (0)
ack 440192001 win 9112 <mss 536> (DF)
初始序
列号
时间

源 IP
地址
数据
流向
控制
标志
应答序
列号 IP数据包分段标记
最大分
段长度TCP
窗口
传输字
节数
应答
标记
结束序
列号
目标 IP
地址
3.常见 TCP网络连接类型
类型
序号
类型含义 类型
序号
类型含义
1 连接正常结束 6 三次握手后,源端发 RST标志
关断
2 有 SYN标志,对方无应答 7 三次握手后,没有关断
3 有 SYN标志,对方以 RST标志
应答
8 三次握手后,对方发 RST标志
关断
4 有 SYN标志,应答与初始序列
号不符
9 源端半关闭,目的端没有关闭
5 重新发 SYN标志,前后初始序
列号不同
10 目的端半关闭,源端没有关闭
? 攻击事件通常在时间序列上都表现出很强的关联性,但
基本属性集主要反映的还是连接记录内数据包的信息,并
没有从时间序列上揭示出连接记录的特征。
?为了在更抽象的层次上来观察网络连接记录, 必须在基
本属性的基础上添加基于时间统计的特征属性 。 目前大多
数研究人员都使用了时间窗的概念, 即针对每一条连接记
录, 统计在过去 n秒钟时间内与当前连接记录在属性上存
在某种联系的连接记录 。
6.4.2 连接记录属性选择
TCP连接记录相同目标主机和
服务时间统计属性
序号 统计属性意义 序号 统计属性意义
目标主机与当前连接记录相同,目标服务与当前连接记录相同:
1 SYN标记错误的百分比 10 SYN标记错误的百分比
2 复位标记出现的百分比 11 复位标记出现的百分比
3 连接非正常关闭的百分比 12 连接非正常关闭的百分比
4 SREJ标记出现的百分比 13 SREJ标记出现的百分比
5 目标服务与当前连接相同的记
录条数
14 目标主机与当前连接相同的条数
6 目标主机与当前连接相同的条

15 目标主机与当前连接不同的百分

7 连接的平均持续时间 16 连接的平均持续时间
8 源到目的端平均传输字节数 17 源到目的端平均传输字节数
9 目的到源端平均传输字节数 18 目的到源端平均传输字节数
TCP连接记录相同源主机和其
他时间统计属性
序号 统计属性意义 序号 统计属性意义
源主机与当前连接记录相同:
( 1~4)
6 目标服务与当前连接记录相同
的数目
1 目标主机与当前连接相同的
记录条数
7 目标主机与当前连接记录相同
的数目
2 SYN标记错误的百分比 8 连接的平均持续时间
3 SREJ标记出现的百分比 9 源到目的端的平均传输字节数
4 目标服务与当前连接相同的
百分比
10 目的到源端的平均传输字节数
6.5 典型入侵检测系统简介
6.5.1 Snort主要特点
Snort是采用 C语言编写的一个基于 Libpcap,Libnet
和检测规则的入侵检测软件,是典型的跨平台、轻量级基
于误用检测的网络入侵检测系统。 Snort采用规则匹配机
制检测网络数据包是否违反了事先配置的安全策略,一旦
发现入侵和探测行为,具有将报警信息发送到系统日志、
报警文件或通过 Samba服务器生成 Windows平台消息格
式等多种实时报警方式。 Snort不仅能够检测各种网络攻
击,还具有网络数据包采集、分析和日志记录功能。
6.5.2 Snort系统组成
Snort提供了两种日志记录格式和多种报警方式
供选择, 容许采用文本格式或二进制格式记录协议解
析后的数据包, 分别用于日志分析和磁盘记录, 也可
以选择关闭日志记录功能 。 报警信息不仅可以发到系
统日志, 而且可以采用文本或二进制格式记录到报警
文件, 也 容 许 基 于 服 务 器 消 息 块 协 议 发 送 到
Windows平台 。
Snort 的功能模块
Snort 的三个 功能模块,
? 数据包协议解析:据事先定义的数据结构从网络数据包中
解析出协议信息,为检测引擎进行规则匹配奠定基础。
? 入侵检测引擎和日志:是核心模块,根据规则模式匹配具
体实施入侵检测。检测规则由规则头( rule header)和规
则选项( rule option)两部分组成,规则头主要用于定义
数据包的公共属性,而规则选项主要用来定义攻击特征。
? 报警响应处理:当数据包满足检测规则定义的条件时,就
会立即触发日志和报警操作。
6.5.3 Snort检测规则
规则文件是检测系统的入侵模式库, Snort检测入
侵的能力完全取决于规则文件是否包含了完整的入侵标
识 。 为方便更新入侵模式库, 规则文件为一般的文本文
件, 可以使用任意文本编辑器对规则文件进行修改 。
Snort检测规则由规则头和规则选项组成, 规则头定义
了 IP地址, 端口, 协议类型和满足规则条件时执行的操
作, 规则选项定义了入侵标志和发送报警的方式,
Snort检测规则的一般格式如图 6.19所示 。
Snort检测规则 的一般格式
alert tcp any any -> 192.168.1.0/24 80 (content,"/cgi-bin/phf"; msg,"PHF probe!")
操作 协议
源 IP地址
源端口
数据
流向
目的
IP地址
目的
端口
子网掩码 选项
关键字
选项
关键字
选项变量 选项变量
规则头 规则选项
图 6.19
6.6 本章知识点小结
1.入侵检测原理与结构
( 1)入侵检测发展历史
( 2)入侵检测原理与系统结构
( 3)入侵检测分类方法
( 4)入侵检测主要性能指标
( 5)入侵检测系统部署
2.入侵检测审计数据源
( 1)审计数据源
( 2)审计数据源质量分析
( 3)常用审计数据源采集工具
6.6 本章知识点小结 ( 续 )
3.主机系统调用入侵检测
4.网络连接记录入侵检测
( 1)网络数据包协议解协
( 2)连接记录属性选择
5.典型入侵检测系统简介