介绍
A.开始以前
1.对照你的安全策略
2.如果你还没有安全策略
请教管理层
请教律师
联系法律强制代理(FBI)
通知机构里的其他人
3.记录下恢复过程中采取的所有步骤
B. 夺回控制权
1.将遭受入侵的系统从网络上断开
2.复制遭受入侵系统的镜象
C. 分析入侵
1.查看系统软件和配置文件的更改
2.查看数据的更改
3.查看入侵者留下的工具和数据
4.检查日志文件
5.查看是否有网络sniffer 的标记
6.检查网络中的其他系统
7.检查与遭受入侵系统有关或受到影响的远程主机
D. 与相关的 CSIRT和其他站点联系
1.事件报告
2.联系 AusCERT - Australian Computer Emergency Response Team
3.联系 CERT Coordination Center
4.从其他相关站点取得联系信息
E. 从入侵中恢复
1.安装操作系统的一个干净版本
2.禁用不需要的服务
3.安装厂商提供的所有安全补丁
4.咨询AusCERT和外部安全公告
5.咨询CERT 公告,总结,厂商公告
6.小心使用备份中的数据
7.更改密码
F. 提高你系统和网络的安全性
1.复习有关Unix或NT安全配置的文章
2.复习有关安全工具的文章
3.安装安全工具
4.激活最大日志
5.配置防火墙加强网络防御
G. 重新连上因特网
H. 更新你的安全策略
1.记下从这次入侵学到的教训
2.计算本次入侵事件的损失
3.汇总安全策略的所有改变
介绍
本文罗列了一些UNIX或NT系统遭受入侵后的推荐响应步骤. (翻译时省略了一些和我国国
情不符的内容)
A.3. 记录下恢复过程中采取的所有步骤
强调记录下恢复过程中采取的所有步骤,这并不过分.恢复一个遭受入侵的系统是令人脸红
和耗时的过程.其间常见草率的决定. 记录下恢复过程中采取的所有步骤有助于防止草率
的决定,这些记录在未来还有参考价值.这对法律调查来说也是很有用的.
B. 夺回控制权
1.将遭受入侵的系统从网络上断开
为了夺回控制权,可能需要从网络上(包括拨号连接)断开所有的遭受入侵的机器.之后可以
在UNIX的单用户模式下或NT的本地管理员状态下操作,确保拥有对机器的完全控制权;然而
,通过重启动或切换到单用户/本地管理员模式,可能会丢失一些有用的信息,因为发现入侵
时的所有运行进程都会
被杀掉.
因此,你可能希望采取'C.5查看是否有网络sniffer 的标记'中的步骤来确定这台被入侵的
主机是否正在运行网络sniffer.
在UNIX系统的单用户模式下操作,会阻止用户,入侵者,和入侵进程在你要恢复系统时访问
被入侵的机器或改变该机器的状态.如果不把被入侵的主机从网络上断开,入侵者可能连入
这台主机并撤销你所做的恢复工作.
2.复制遭受入侵系统的镜象
在分析入侵之前,我们推荐建立一个系统的当前备份.这可以提供入侵被发现时刻文件系统
的快照.将来这个备份或许用的上.
如果你有一块可用的磁盘,大小和型号都与被入侵主机上的磁盘相同,就可以使用UNIX的dd
命令制作被入侵系统的一个额外拷贝.例如,在一个有两块SCSI盘的Linux系统上,下面的命
令可以制作被入侵系统(/dev/sda)的一个额外拷贝(/dev/sdb).
# dd if=/dev/sda of=/dev/sdb
更多的信息请参阅dd命令的手册.
还有许多其他创建系统备份的方法.在NT系统上,没有象dd这样的内置命令,但是有许多第
三方的应用程序可以制作整块硬盘的镜像拷贝.
假如需要恢复被入侵系统第一次被发现时的状态,创建一个低级拷贝是很重要的.而且,法
律调查也需要这些文件的协助.做好拷贝的标签,符号和制作日期并且把拷贝放到一个安全
的地点来保持数据的完整性.
C. 分析入侵
当你的系统从网络上断开之后,你可以开始彻底查看日志文件和配置文件,以期发现入侵的
信号,入侵者的改动和配置的弱点.
1. 查看系统软件和配置文件的更改
校验所有的系统二进制和配置文件.
当查看系统软件和配置文件的修改时,要记住在被入侵系统中的任何校验二进制和配置文
件的工具都有可能被更改.还要记住操作系统的内核本身也可能被更改.因此,建议从一个
可信内核启动并且使用一个干净工具来分析入侵活动.在UNIX系统中,可以创建一个启动盘
,并通过写保护来得到一
个可信内核.
建议对照发行介质彻底检查所有的系统二进制文件.入侵者可能会在整个系统的很多地方
安装木马程序.在UNIX系统中经常被木马程序取代的二进制文件有: telnet,
in.telnetd, login, su, ftp, ls, ps, netstat, ifconfig, find, du, df, libc,
sync, inetd,
和syslogd.还要检查被/etc/inetd.conf文件,网络和系统程序,动态库文件引用的任何二
进制文件.
在NT系统中,木马经常表现为计算机病毒或"远程管理"程序比如Back Orifice和NetBus.在
有些入侵案例中,负责处理Internet连接的系统文件被换成木马程序.
因为某些木马程序可能与原始的二进制文件拥有相同的时戳,校验值,在UNIX系统上推荐使
用cmp命令进行原始发行介质和二进制文件的直接比较.
或者可以对UNIX或NT系统上的可疑二进制文件进行MD5检查,把结果和原始二进制文件的
MD5校验和比较.很多厂商提供发行版本中二进制文件的MD5校验和.
接下来,对比确信没有被改动过的文件检查你的配置文件. 当检查UNIX系统的配置文件时,
需要检查:
/etc/passwd文件中不属于本系统的条目.
/etc/inetd.conf文件是否被更改.
如果允许"r命令" (rlogin, rsh, rexec) ,确保/etc/hosts.equiv和任何.rhosts中没有
不该有的内容.
检查新的SUID和SGID文件.下面的命令会打印出文件系统中所有的SUID和SGID文件:
# find / ( -perm -004000 -o -perm -002000 ) -type f -print
当检查NT系统时,需要检查:
奇怪的用户或组成员
涉及在登录或服务中启动程序的注册表项的更改.
使用"net share"命令或Server Manager工具检查未授权的隐藏共享.
使用从NT resource kit中得到的工具pulist.exe或NT任务管理器检查无法识别的进程.
2. 查看数据的更改
在被入侵系统上的数据通常都会被入侵者更改.建议检验Web页面,ftp文挡,用户主目录中
的文件,以及系统上的其他数据文件.
3. 查看入侵者留下的工具和数据
入侵者通常会安装定制的工具,以便于持续监视或再次访问被入侵的主机.入侵者经常留下
的文件类型有:
Network Sniffers
网络sniffer是一个可以监视和记录网络活动并将结果写入文件的工具.入侵者通常使用网
络sniffer来捕获在网络上明文传送的用户名和密码数据. Sniffers在UNIX平台上更常见
一些,但是在NT平台上应检查关键的日志记录程序
Trojan Horse Programs
特络依木马程序是指那些看起来完成一种功能但同时又具备另一种完全不同功能的程序.
入侵者使用木马程序来隐藏他们的活动,捕获用户名和密码,为将来再次记入被入侵的系统
创建后门.
Backdoors
后门程序设计成可以使入侵者在目标主机内部隐藏自己.后门允许安装它的用户不通过正
常的验证过程或利用系统漏洞来访问系统.
Vulnerability Exploits
大部分入侵事件都是由于计算机运行了带有漏洞的软件造成的.入侵者经常使用工具来利
用已知的漏洞从而获得非授权的访问.这些工具通常留在系统的隐含目录中.
Other Intruder Tools
上面提到的入侵者工具并不是确切及全面的列表.入侵者还会留下其他工具.应该注意的工
具有:
探测系统漏洞的工具
发起大范围探测其他站点的工具
发起拒绝服务攻击的工具
使用计算机和网络资源的工具
Intruder Tool Output
你会发现许多入侵者工具的记录文件.这些记录文件可能会包含其他相关站点的信息,你被
入侵主机的漏洞和其他站点的漏洞.建议彻底搜查这样的工具和输出文件.注意搜查时要使
用确信是干净的工具.
在被入侵系统上搜索入侵者工具时:
查看在UNIX系统中/dev目录下不应有的ACSII文件.某些木马二进制程序的配置文
件通常在/dev目录下.
仔细查看隐含文件和目录.如果入侵者建立了一个新账号和主目录,通常是隐含文
件和目录.
查看奇怪的文件和目录,比如"…"(三个点)或".. "(两个点和一些空格)[UNIX].
入侵者经常在这样的目录中使用和隐藏文件.在NT系统上,查看那些看起来很象系统文件
(EXPLORE.EXE, UMGR32.EXE, etc)的文件和目录.
4. 检查日志文件
检查日志文件会帮助你确认系统是如何被入侵的,在入侵时发生了什么事情,访问你计算机
的远程主机是谁.但是要知道被入侵系统中的任何日志信息都有可能被入侵者修改过.
在UNIX系统上,应该先看看/etc/syslog.conf文件,确定syslog在哪里记录事件.NT系统通
常向NT事件三个日志中的一个记录每件事情,所有这些可以通过事件查看器来检查.其他NT
应用程序比如IIS服务器可能记录到其他地方,IIS服务器缺省的日志是在
c:winntsystem32logfiles
下面列出了一些通用UNIX日志文件名,它们的功能和文件的内容.这些日志文件是否在系统
中存在,依赖于系统的配置.
messages
messages日志包含相当广泛的信息.查看该文件中的异常情况.超越常理的任何事情都应该
被查出来,在入侵发生时间附近的事件应该仔细检查.
xferlog
如果被入侵的系统有FTP服务器功能, xferlog会记录所有传输的文件名.这有助于发现入
侵者上载到系统中的工具,也能发现从你系统中下载的内容.
utmp
这个文件包含当前登录在系统上每一位用户的信息(二进制格式).这个文件仅在确定当前
有哪些用户登录时有用.通过who命令可以得到其中的内容.
wtmp
用户每一次成功的登录,退出,系统重启,wtmp文件都会被修改.这是一个二进制文件;因此
需要使用工具来从文件中获取有用的信息.last就是这样一种工具.last的输出包含一个表
,表中记录了用户名,相关登录时间和来源主机.在这个文件中检查可疑连接(比如从未授权
主机),这些信息可以用
于确定是否还有其他主机受到影响以及系统中究竟有哪些账号被破解使用.
secure
某些版本的UNIX(比如RedHat Linux)向secure日志文件中记录tcpwrapper消息.每次当一
个从inetd派生并使用tcpwrapper启动的服务连接建立时,该文件中会添加一条日志消息.
查看这个文件时,注意那些对不常用服务的访问或从不熟悉主机来的连接等异常情况.
查看日志文件时要注意那些不寻常的记录项.
5. 查看是否有网络sniffer 的标记
当系统入侵发生时,入侵者可以在UNIX系统上暗地里安装一个网络监视程序,通常称为
sniffer(or packet sniffer),用于捕获用户账号和密码信息.对于NT系统,为达到相同目
的,通常更多地使用远程管理程序.
检查sniffer是否被安装到系统中的第一步是看看是否有进程把任何网络设备置成混杂
(promiscuous)模式.如果任一网络设备处于混杂模式,那系统中就有sniffer程序.如果在
发现入侵的时候就重启机器或在单用户模式下操作,就不可能探测到处于混杂模式的网卡.
为此有一些工具可以使用.
cpm - UNIX
ftp://coast.cs.purdue.edu/pub/tools/unix/cpm/
ifstatus - UNIX
ftp://coast.cs.purdue.edu/pub/tools/unix/ifstatus/
(ifconfig -i命令也可以报告网卡状态)
注意某些合法的网络监视和协议分析器会将网卡置成混杂模式.探测到某块网卡处于混杂
模式并不就一定意味着系统中有入侵者的sniffer在运行.sniffer的记录文件大小通常会
很快增长,使用诸如df之类的工具可以确定文件系统的哪部分增长超过预期.记住
df,ifconfig,netstat这些命令通
常在黑客安装sniffer程序的时候都被木马替换掉了,要使用干净的工具来检查网卡状态.
如果在系统中发现了sniffer,强烈建议检查sniffer的输出文件,以确定还有哪些主机处于
危险境地.处于危险境地的主机是指那些出现在被捕获数据包目的域中的主机.但是如果口
令跨系统使用或者源目的主机相互信任,则源主机也处于危险境地.
许多常用的sniffer会象下面这样记录每个连接:
-- TCP/IP LOG -- TM: Tue Nov 15 15:12:29 --
PATH: not_at_risk.domain.com(1567) => at_risk.domain.com(telnet)
由于sniffer以这种特定的格式记录,可以执行如下命令来取得受影响主机的列表.
% grep PATH: $sniffer_log_file | awk '{print $4}' |
awk -F( '{print $1}'| sort -u
可以根据实际情况修改这条命令.也有一些sniffer程序使用加密输出,就不容易得到有用
信息.
应该注意,并不是没有出现在sniffer日志中的主机就安全,因为入侵者可能已经取走
sniffer记录并删除过老记录.或者使用了其他攻击手段威胁别的主机.
6. 检查网络中的其他系统
建议检查所有的系统,不仅仅是已知被入侵的系统.在要检查的系统中应该包括与被入侵系
统有网络服务(NFS或NIS)联系的系统,或者通过某种信任方式(hosts.equiv或.rhosts,或
者Kerberos服务器)联系的系统.在检查网络中其他系统的时候,建议使用入侵监测检查表:
http://www.cert.org/tech_tips/intruder_detection_checklist.HTML
http://www.cert.org/tech_tips/win_intruder_detection_checklist.html
7.检查与遭受入侵系统有关或受到影响的远程主机
在检查日志文件,入侵者输出文件和任何在入侵发生期间或之后更改或创建的文件时,应该
注意与被入侵系统可能有连接的远程主机的任何信息.在很多入侵事件中,与被入侵主机有
连接的主机(不论是上游或下游主机)本身就是入侵的牺牲品.这对于及时鉴别和通知另外
的潜在受害站点来说是
非常重要的.
E. 从入侵中恢复
1. 安装操作系统的一个干净版本
应该知道,如果一个系统被入侵,那么系统上的任何东西都有可能被修改过,包括内核,二进
制文件,数据文件,运行的进程和内存.通常彻底将系统从后门和入侵者修改中解放出来的
唯一方法是从发行介质重新安装操作系统,并且在重新连入网络之前安装所有的安全补丁.
仅仅确定和修复用于上
次入侵的漏洞是不够的.
建议使用干净的二进制文件来恢复系统.为了将系统置于可控状态,应该使用初始的发行介
质来重装操作系统.
2. 禁用不需要的服务
重新配置系统,仅提供那些应该提供的服务,关掉其他服务.检查这些服务的配置文件中是
否有缺陷,并确定这些服务仅对预定的其他系统开放.通常可以采用保守的策略,首先禁用
所有的服务,只启动那些需要的服务.
3. 安装厂商提供的所有安全补丁
强烈建议对每一种系统安装全套的安全补丁.这是保证系统免受攻击的主要步骤,重要性是
不言而喻的.建议定期联系供应商以取得有关系统的任何升级或补丁.
4. 咨询AusCERT和外部安全公告
5. 咨询CERT 公告,总结,厂商公告
6.小心使用备份中的数据
当从备份中恢复数据时,要确保备份本身来自于未被入侵的系统.否则有可能重新引入入侵
者可以利用而得到非法访问的漏洞.如果仅仅恢复用户的主目录和数据文件,注意任何文件
里都有可能包含木马程序.应该特别注意用户主目录下的.rhosts文件.
7.更改密码
在所有的安全漏洞和配置问题修补或更正之后,建议更改受影响系统上的所有账号的密码.
确保所有账号的密码是难猜的.可以考虑使用厂商或第三方提供的工具来增强密码的安全
性.
F. 提高你系统和网络的安全性
1.复习有关UNIX或NT安全配置的文章
参考UNIX或NT配置指南,有助于评估系统的安全性.当检查常被入侵者利用的常见配置问题
时,这些文档非常有用.
http://www.cert.org/tech_tips/unix_configuration_guidelines.html
http://www.cert.org/tech_tips/win_configuration_guidelines.html
2.复习有关安全工具的文章
考虑使用安全软件工具比如Tripwire, COPS, TCP wrapper.这些工具有助于增强系统的安
全性并阻止入侵,相关的描述在:
http://www.cert.org/tech_tips/security_tools.html
3.安装安全工具
在将主机连回网络之前,安装所有的安全工具.并且此时正好是使用类似Tripwire之类的工
具对新恢复的系统生成MD5校验快照的好时机.
4.激活最大日志
确保激活日志/审计/记账程序(比如,进行记账),并确保设置成正确的记录级别(比如
,sendmail日志应该至少在9级之上).备份日志并考虑将日志写到别的计算机上,或写到只
能添加(append-only)的文件系统上,或者一台安全的日志主机.
5.配置防火墙加强网络防御
考虑在防火墙,路由器或主机上过滤特定的TCP/IP服务.详细信息参见"包过滤防火墙系统"
http://www.cert.org/tech_tips/packet_filtering.html
G. 重新连上因特网
如果已经断开了同Internet的连接,在完成上面所有步骤之后,是重新连入的最佳时机.
H. 更新你的安全策略
CERT协调中心推荐每个站点制定自己的安全策略.每个组织有自己独特的文化和安全需求.
为Internet站点制定计算机安全策略及其步骤,详细信息参见RFC2196"站点安全手册"
ftp://ftp.isi.edu/in-notes/rfc2196.txt
1. 记下从这次入侵恢复学到的教训
记下从这次入侵恢复学到的教训,有助于明确如何修订安全策略
2. 计算本次入侵事件的损失
对很多组织来说,直到他们理解了安全的代价,才会修改安全策略.计算本次入侵的损失有
助于衡量安全对于机构的重要性.计算入侵的损失对于向管理层解释安全对于本机构的重
要性是十分有帮助的.
3.汇总安全策略的所有改变
改变安全策略是整个过程中的最后一步.确保将这些改变以及由此带来的影响通知机构中
的所有成员.
标签: