10.4. 调查事件

调查计算机破坏就如同调查犯罪现场一样。侦探们会收集证据;注意所有异常线索;并总结丢失的和损坏的物品。对计算机攻击的分析可以在攻击正在发生的时候进行,也可以进行事后调查分析(post-mortem)

虽说信任被攻击的系统上的日志文件是不明智的,但是你还可以使用其它工具来帮助你分析情况。这些工具的目的和功能都不尽相同,但是它们大多都会创建媒介、交关事件和进程的位图映像;显示低级文件系统信息;并在可能的时候恢复删除的文件。

使用 script 命令来记录所有在泄密的系统上进行的调查行动也是一个好办法。如以下例子所示:

script -q <file-name>

<file-name> 替换成 script 日志的文件名。总是把该日志文件保存在泄密系统的硬盘以外的介质上 — 软盘就这个目的而言就特别有用。

通过记录所有行动,你就会建立一个审核行踪。这在捕获了攻击者后就会显示出其价值。

10.4.1. 收集证据映像

创建媒介的位图映像是一个比较现实的第一步骤。如果要进行数据化验工作,它还是一个必需的条件。推荐你做两份映像:一份用于分析调查,一份和其它证据原件一起保存以用于法律目的。

你可以使用 dd 命令来创建被破坏系统的一个整块映像。dd 命令是红帽企业 Linux 的 coreutils 软件包中的一部分。所创建的整块映像可以被用作调查证据,或用来和信任的映像做比较。假定系统上有一个你想制作映像的硬盘,把它连接为你的系统的从属,然后使用 dd 命令来创建映像文件,如:

dd if=/dev/hdd bs=1k conv=noerror,sync of=/home/evidence/image1

这个命令会使用 1k 的块来创建一个叫做 image1 的单个文件。conv=noerror,sync 选项强制 dd 即便在驱动器上遇到了坏块也要继续读取和转储数据。现在,你就可以研究这个映像文件,甚至试图恢复删除的文件了。

10.4.2. 收集入侵后的信息

数字化验和分析这个课题本身的涉及面比较广泛,可是它所用的多数工具却是体系特有的,而且不能被通用。然而,事件响应、分析、和恢复是很重要的课题。若具备了恰当的知识和经验,红帽企业 Linux 能够成为执行这类分析的优秀平台,因为它包括了好几种用于执行事后响应和修复的工具。

表 10-1详细的介绍了一些用于文件审核和管理的命令。它还列举了一些能够被用来正确识别文件和文件属性(如权限和存取日期)的例子,因此你可以收集更多证据来进行分析。这些工具,当和入侵检测系统、防火墙、被强化的服务、以及其它保安措施一起使用时,能够帮助你在发生攻击时减小潜在的破坏程度。

注记注记
 

关于每个工具的详细信息,请参考相应的说明书页。

命令功能例子
dd创建文件和分区的位图映像(或磁盘转储,disk dump)。再对每个映像进行 md5sums 检查,管理员就能够比较一下分区或文件在被破坏前的映像和被破坏后的映像,来决定校验和是否匹配。 dd if=/bin/ls of=ls.dd |md5sum ls.dd >ls-sum.txt
grep在文件和目录中找出有用的文本信息,如权限、脚本改变、文件属性等等。多数用作被另一个命令(如 lsps、或 ifconfig)管道输出的命令。ps auxw |grep /bin
strings显示文件中的可显示字符。这在审核可执行文件(如 mail 命令)中的异常情况时最有用。你可以注意到陌生的地址或者到非标准的日志文件的记录。strings /bin/ps |grep 'mail'
file根据格式、编码、所链接的库(若有)、以及文件类型(二进制、文本等)来判定文件的特性。它可以用来判定 /bin/ls 之类的可执行文件是否已被静态库修改了。这种迹象表明该可执行文件已经被蓄意不良的用户安装的文件替换了。file /bin/ls
find在目录中搜索特定文件。它在按照关键字、存取日期和时间、权限等来搜索目录结构上很有用途。这有助于管理员执行对某些文件或目录的常规系统审核。 find -atime +12 -name *log* -perm u+rw
stat显示关于某文件的各类信息,包括最后存取时间、权限、UID 和 GID 位的设置等等。它对于检查某个遭到破坏的系统可执行文件在何时被最后使用或修改方面有用。stat /bin/netstat
md5sum使用 md5 散列算式来计算128位的校验和。你可以使用这个命令来创建一个文本文件,在其中列举所有可能会在安全破坏中被修改或替换的重要文件。把这个校验和重新导向到一个文件来创建一个简单的校验和数据库,然后把这个文件复制到只读介质如光盘上。md5sum /usr/bin/gdm >>md5sum.txt

表 10-1. 文件审核工具