第 5章
系统攻击及入侵检测
本章学习目标
本章主要讲解系统入侵的基本原理,
主要方法以及如何实现入侵检测, 进
行主动防御 。 通过本章学习, 读者应
该掌握以下内容,
l 系统入侵的概念
l 几种系统攻击方法的原理
l 入侵检测的原理
l 入侵检测系统的组成及结构
5.1 系统攻击概述
系统攻击或入侵是指利用系统安全漏洞, 非授权进入他人
系统 ( 主机或网络 ) 的行为 。 了解自己系统的漏洞及入侵
者的攻击手段, 才能更好的保护自己的系统 。
5.1.1 黑客与入侵者
5.1.2系统攻击的三个阶段
( 1) 收集信息
( 2) 探测系统安全弱点
( 3) 实施攻击
5.1.3网络入侵的对象
1,固有的安全漏洞
2,系统维护措施不完善的系统
3,缺乏良好安全体系的系统
5.2 系统攻击方法
5.2.1 口令攻击
1,获取口令的一些方法
( 1) 是通过网络监听非法得到用户口令
( 2) 口令的穷举攻击
( 3) 利用系统管理员的失误
2,设置安全的口令
( 1) 口令 的选择:字 母数字及标 点的组合, 如:
Ha,Pp@y!和 w/(X,y)*;使用一句话的开头字母做口令, 如:
由 A fox jumps over a lazy dog!产生口令,AfJoAld!。
( 2) 口令的保存:记住, 放到安全的地方, 加密最好 。
( 3) 口令的使用:输入口令不要让别人看到;不要在不同
的系统上使用同一口令;定期改变口令 。
3,一次性口令
( OTP,One-Time Password) 。
所谓的一次性口令就是一个口令仅使用一次
,能有效地抵制重放攻击,这样窃取系统的口令
文件、窃听网络通信获取口令及穷举攻击猜测口
令等攻击方式都不能生效。 OTP的主要思路是,
在登录过程中加入不确定因素,使每次登录过程
中的生成的口令不相同。
使用一次性口令的系统中,用户可以得到一个口令列表
,每次登录使用完一个口令后就将它从列表明中删除;
用户也可以使用 IC卡或其他的硬件卡来存储用户的秘密
信息,这些信息再随机数、系统时间等参数一起通过散
列得到一个一次性口令。
5.2.2 IP欺骗
1,IP欺骗的工作原理
( 1) 使被信任主机丧失工作能力
TCP SYN-Flood,
t1,Z ( X) --- SYN --- > B
Z ( X) --- SYN ---> B
Z ( X) --- SYN ---> B
……………………………
t2,X <--- SYN/ACK--------B
X <--- SYN/ACK--------B
……………………………
t3,X <--- RST --- B
( 2) 序列号猜测
序列号的猜测方法如下:攻击者先与被攻击主机
的一个端口 ( SMTP是一个很好的选择 ) 建立起
正常的连接 。 通常, 这个过程被重复若干次, 并
将目标主机最后所发送的 ISN( 初始序列号 ) 存
储起来 。 攻击者还需要估计他的主机与被信任主
机之间的 RTT时间 ( 往返时间 ), 这个 RTT时间
是通过多次统计平均求出的 。 RTT对于估计下一
个 ISN是非常重要的 。 一般每秒钟 ISN增加 128000,
每次连接增加 64000。 现在就不难估计出 ISN的大
小了, 它是 128000乘以 RTT的一半, 如果此时目
标主机刚刚建立过一个连接, 那么再加上一个
64000。
(3) 实施欺骗
Z伪装成 A信任的主机 B攻击目标 A的
过程如下,
t1,Z( B) -- SYN --- > A
t2,B <--- SYN/ACK--- A
t3,Z( B) --- ACK---> A
t4,Z( B) --- —PSH---> A
2,IP欺骗的防止
( 1) 抛弃基于地址的信任策略
( 2) 进行包过滤
( 3) 使用加密方法
( 4) 使用随机化的初始序列号
5.2.3 端口扫描
1,端口与服务
许多的 TCP/IP程序都是可以通过网络启动的
客户 /服务器结构。服务器上运行着一个守
护进程,当客户有请求到达服务器时,服务
器就启动一个服务进程与其进行通信。为简
化这一过程,每个应用服务程序(如 WWW、
FTP,Telnet等)被赋予一个唯一的地址,这
个地址称为端口。端口号由 16位的二进制数
据表示,范围为 0~65535。守护进程在一个
端口上监听,等待客户请求。
2,端口扫描
端口扫描是获取主机信息的一种常用方法。
利用端口扫描程序可以了解远程服务器提供的
各种服务及其 TCP端口分配,了解服务器的操作
系统及目标网络结构等信息。作为系统管理员使
用扫描工具,可以及时检查和发现自己系统存在
的安全弱点和安全漏洞,是非很常用的网络管理
工具,许多安全软件都提供扫描功能。
端口扫描也广泛被入侵者用来寻找攻击线索和
攻击入口。通过这种方法,还可以搜集到很多关
于目标主机的各种有用的信息,比如:是否能用
匿名登陆,是否有可写的 FTP目录,是否能用
TELNET等等。端口扫描程序在网上很容易找到
,因而许多人认为扫描工具是入侵工具中最危险
的一类。
5.2.4 网络监听
网络监听可以监视网络的状态、数据流动情况
以及网络上传输的信息,是网络管理员的一种监视
和管理网络的一种方法,但网络监听工具也常是黑
客们经常使用的工具。当信息以明文的形式在网络
上传输时,便可以使用网络监听的方式来进行攻击
。只要将网络接口设置在监听模式,便可以源源不
断地将网上传输的信息截获。
网络监听可以在网上的任何一个位置实施,如
局域网中的主机、网关或远程网的调制解调器之间
等。黑客们用得最多的是截获用户的口令。
1.网络监听的原理
以太网协议的工作方式为将要发送的数据帧发往物
理连接在一起的所有主机。在帧头中包含着应该接
收数据包的主机的地址。数据帧到达一台主机的网
络接口时,在正常情况下,网络接口读入数据帧,
并检查数据帧帧头中的地址字段,如果数据帧中携
带的物理地址是自己的,或者物理地址是广播地址,
则将数据帧交给上层协议软件,否则就将这个帧丢
弃。对于每一个到达网络接口的数据帧,都要进行
这个过程。然而,当主机工作在监听模式下,不管
数据帧的目的地址是什么,所有的数据帧都将被交
给上层协议软件处理。
2.网络监听工具及其作用
嗅探器( sniffer) 就是一种网络监听工具。
sniffer工作在网络环境中的底层,它会拦截所有的
正在网络上传送的数据,并且通过相应的软件处理,
可以实时分析这些数据的内容,进而分析所处的网
络状态和整体布局,Sniffer实施的是一种消极的安
全攻击,它们极其安静地躲在某个主机上偷听别人
的通信,具有极好隐蔽性。
网络监听对系统管理员是很重要的,系统管理
员通过监听可以诊断出大量的不可见问题,这些问
题有些涉及两台或多台计算机之间的异常通讯,有
些牵涉到各种协议的漏洞和缺陷。
3,如何发现 sniffer
通过下面的方法可以分析出网络上是否存在
sniffer进行分析 。
?网络通讯掉包率反常的高 。
?网络带宽将出现异常 。
?对于怀疑运行监听程序的主机, 用正确的 IP地址
和错误的物理地址去 PING,正常的机器不接受错
误的物理地址, 处于监听状态的机器能接受, 这
种方法依赖系统的 IPSTACK,对有些系统可能行
不通 。
? 往网上发大量包含着不存在的物理地址的包,由
于监听程序将处理这些包, 将导致性能下降, 通
过比较前后该机器性能 ( icmp echo delay等方法 )
加以判断 。
5.2.5 拒绝服务 ( DoS)
1,什么是拒绝服务
拒绝服务攻击( Denial of Service) 是指一个用户占据了
大量的共享资源,使系统没有剩余的资源给其它用户提
供服务的一种攻击方式。拒绝服务攻击的结果可以降低
系统资源的可用性,
2,拒绝服务攻击的方式
信息数据包流量式,
SYN-Flooding攻击,
过载攻击,服务过载,进程过载攻击、系统过载
攻击、磁盘过载攻击
3,分布式拒绝服务 ( DDoS)
DDoS就是利用通过组织和操纵更多的
机器来发起进攻, 来实现拒绝服务攻击 。
分布式拒绝服务攻击程序由两部分组
成:在主控主机上的客户端和在代理主机
上的守护进程。主控端向其代理端发送要
攻击的目标主机的列表,代理端据此列表
对目标进行拒绝服务攻击。由一个主控端
控制的多个代理端能够在攻击过程中相互
协同,保证攻击的连续性。
5.2.6 缓冲区溢出
缓冲区溢出是目前最为常见的安全漏洞, 也是黑
客利用最多的攻击漏洞 。
1.缓冲区溢出的原理
在程序试图将数据放到机器内存中的某一个位置
的时候,如果没有足够的空间就会发生缓冲区溢
出。
大多造成缓冲区溢出的原因是程序中没有仔细检
查用户输入参数而造成的。
危害,一是过长的字符串覆盖了相邻的存储单元
,引起程序运行失败,严重的可导致系统崩溃;
另有一个结果就是利用这种漏洞可以执行任意指
令,甚至可以取得系统根用户的权限 。
例如下面一段简单的 C程序,
void fuction(char *str)
{
char buf[10];
gets(buf);
strcat(str,buf);
}
main()
{
char str[20];
scanf(“%s”,str);
printf(“%s”,fuction(str));
}
3,缓冲区溢出的保护
目前有四种基本的方法保护缓冲区免受缓冲区
溢出的攻击和影响,
一是强制编写正确的代码的方法 。
二是通过操作系统使得缓冲区不可执行, 从而
阻止攻击者植入攻击代码 。
三是利用编译器的边界检查来实现缓冲区的保
护 。
四是一种间接的方法, 该方法在程序指针失效
前进行完整性检查 。
5.3 入侵检测
5.3.1 入侵检测概述
5.3.2,入侵检测的主要任务和作用
5.3.3入侵检测系统的工作原理
1,信息收集
(1) 系统和网络日志文件
(2) 目录和文件中的不期望的改变
(3) 程序执行中的不期望行为
(4) 物理形式的入侵信息
2,信号分析
(1)模式匹配,
(2) 统计分析
(3) 完整性分析
5.3.4入侵检测系统的分类
1,按照入侵检测系统的数据来源划分
( 1) 基于主机的入侵检测系统
( 2) 基于网络的入侵检测系统
( 3) 采用上述两种数据来源的分布式的入侵
检测系统
2,按照入侵检测系统采用的检测方法来分类
( 1) 基于行为的入侵检测系统,
( 2) 基于模型推理的入侵检测系统,
( 3) 采用两者混合检测的入侵检测系统,
3,按照入侵检测的时间的分类
( 1) 实时入侵检测系统,
( 2) 事后入侵检测系统,
5.3.5 入侵检测系统的 CIDF模型
通用入侵检测框架( CIDF) 是由美国
加州大学 Davis分校的安全实验室提出的
框架。
CIDF从逻辑上把 IDS分成面向任务的
一个组件集合,这些组件一起定义了入侵
检测系统的结构。
这些组件包括:事件发生器( E-
boxes),分析引擎 (A-boxes),存贮机制
( D-boxes) 以及对抗措施( C-boxes)。
C - b o x
E - b o x
D - b o xA - b o x
输出:对事件的反应
输出:新的或低层事件
输出:事件存贮
输出:高层、经
解释的事件
图 5-1 CIDF组件关系
5.4
入侵检测系统的结构
入侵检测系统的结构大体上可
分为三种模式,
基于主机系统的结构,
基于网络系统的结构,
基于分布式系统的结构
5.4.1基于主机的入侵检测系统
攻击模式库
配置系统库
入侵检测器 应急措施
主机系统
审计记录
报警
系统操作
这种类型的系统依赖于审计数据或系统日
志的准确性、完整性以及安全事件的定义。若
入侵者设法逃避审计或进行合作入侵,则基于
主机的检测系统的弱点就暴露出来了。特别是
在现代的网络环境下,单独地依靠主机审计信
息进行入侵检测难以适应网络安全的需求。
这主要表现在以下四个方面,一 是主机的
审计信息弱点,如易受攻击,入侵者可通过使
用某些系统特权或调用比审计本身更低级的操
作来逃避审计。 二 是不能通过分析主机审计记
录来检测网络攻击。 三 是 IDS的运行或多或少影
响服务器性能。 四 是基于主机的 IDS只能对服务
器的特定用户、应用程序执行动作、日志进行
检测,所能检测到的攻击类型受到限制 。
5.4.2 基于网络的入侵检测系统
网络接口
探测器 探测器
安全配置构造器
网络安全数据库
分析引擎
分析结果
基于网络的 IDS的优点是,
( 1) 服务器平台独立,基于网络的
IDS监视通信流量而不影响服务器平台
的变化和更新 。
( 2) 配置简单,基于网络的 IDS环境
只需要一个普通的网络访问接口 。
( 3) 检测多种攻击,基于网络的 IDS
探测器可以监视多种多样的攻击包括协
议攻击和特定环境的攻击, 长于识别与
网络低层操作有关的攻击 。
5.4.3 基于分布式系统的入侵
检测技术
典型的入侵检测系统是一个统一集中的
代码块,它位于系统内核或内核之上,
监控传送到内核的所有请求。但是,随
着网络系统结构复杂化和大型化,系统
的弱点或漏洞将趋于分布化。另外,入
侵行为不再是单一的行为,而是表现出
相互协作的入侵特点,在这种背景下,
产生了基于分布式的入侵检测系统 。
操作员提供反馈
训练模块
网络原语层
原始网络层(D L P I )
受训练的代理







的ID
S


5.5 入侵检测产品简介
5.5.1 Cisco公司的 NetRanger
NetRanger是基本网络的入侵检测系统,可在
Internet/Intranet两种环境中运行。系统包括两
部分:检测网络包和发出报警的检测器,接收
并分析报警和启动对策的控制器。
5.5.2 ISS公司的 RealSecure
RealSecure 2.0 for Windows NT是一种领导市场的攻击
检测方案,它提供了分布式的安全体系结构。多个检
测引擎可以监控不同的网络并向中央管理控制台报告。
控制台与引擎之间的通信可以通过 128bit RSA进行认证
和加密。