UNIX应急响应攻略

应急响应有一半是非技术的内容 , 制定一个合理的响应策略是至关重要的!
记住:现在开始对受害系统的每一步操作都可能改变已存在的证据或是导致敏感信息的丢失!
{{初始响应}}
目标:在进行司法鉴定复制之前获得系统中的易失数据 , 初步确定突发事件概况 。
==============
创建响应工具包
==============
我们调查系统 , 必须以高度可信赖的程序执行命令 , 再加上备份与修复 , 创建一个工具包是很有必要的 。
即使在非Unix/Linux系统上 , 创建工具包也应该作为响应的第一步 。
首先 , 我们需要在对应体系结构的系统上编译响应期间需要的工具 , 且编译程序需要考虑系统兼容的问题 。
通常我们需要如下的工具:
ls dd des file pkginfo
find icat lsof md5sum nc
netstat pcat perl ps strace
strings truss df vi
cat kstat ifconfig chkrootkit
more gzip last w rm
script bash modinfo lsmod
读者可根据自己的需要自行添加 , 但是一个工具包通常只能用来完成对某一特定平台的工作 ,
把对多个平台编译的工具放进同一个工具包反而会显得紊乱 。
在Linux上创建响应工具包时 , 可以用gcc的–static参数编译源代码 , 或者用ldd检查动态连接库 ,
在响应工具包存储介质上建立库文件目录 , 并拷贝所有工具需要的动态连接库的副本 , 最后设置环境变量 。
这个过程有点类似于创建一个Linux的优盘启动盘 。
============
获取易失数据
============
易失的数据包括:当前打开的套接字 , 进程列表 , RAM内容 , 非链接文件的位置 。
【UNIX应急响应攻略】*unix特性: unix允许进程正在执行时将其删除!
非链接文件是访问该文件的进程中止时被标记为删除的文件 。当系统关闭时(正常关机或突然断电非正常关机) ,
标记为删除的文件都将消失 。因此在找到被标记为删除的文件之前不能关机!
=================
执行可信赖的shell
=================
使用我们自己准备的响应工具包 , 装载该介质的文件系统 ,
mount –t auto /dev/sda1 /mnt/usb 或
mount –t iso9660 /dev/cdrom /mnt/cdrom
按下Ctrl Alt F1~F6,从控制台以root身份登陆 。
请一定要区分原环境变量中的命令和当前响应工具包的相同名字的命令集 , 防止潜在的二进制特洛伊木马攻击 。
==================
查看登陆系统的用户
==================
[root@ay4z3ro foo]# w
19:50:48 up 43 min, 2 users, load average: 0.00, 0.00, 0.00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root :0 19:08 ?xdm? 11.10s 0.43s gnome-session
root pts/0 19:08 1.00s 0.21s 0.01s w
输出标题行显示了当前系统时间 , 该系统已运行的时间 , 当前登陆用户数 , 最近1分钟 , 5分钟和15分钟内的平均系统负载 。
USER字段显示当前登陆的用户名 。TTY字段显示了会话的控制终端 , tty表示从控制台登陆 , pts/typ则可以表示通过一个网络连接 ,
因为X是个C/S模式的应用程序 , 所以我在GNOME下开的shell窗口显示为pts 。如果不从本地登陆 , 输出中还有FROM字段,
表示建立会话的源地址的域名或IP 。LOGIN@显示该连接的本地开始时间 。IDLE字段显示了自上一个进程运行以来的时间长度 。
JCPU显示与tty或pts关联的全部进程所使用的时间 。PCPU字段显示了WHAT列中当前进程所使用的CPU时间 。WHAT列显示用户当前运行的进程 。
================
查看系统进程列表
================
Solaris中使用ps –eaf,而在FreeBSD和Linux中则使用ps –aux.

推荐阅读