UNIX应急响应攻略[4]

[入库:2005年9月19日] [更新:2007年3月25日]

本文简介:

监听服务和运行进程相关的二进制文件都应该检查,查看/etc/inetd.conf时可能会发现合法的服务在合法的端口监听,
但是那个进程的二进制文件可能是被替换过的,所以先要确保正在运行的不是rootkit(lrk4,lrk5……)
[root@ay4z3ro tool]# ./chkrootkit
chkrootkit是一个用于检查完整性的工具,如果之前用过tripwire,则可以用tripwire校验。
或者用rpm自身的MD5校验和功能。

============
勘查系统弱点
============
检查各服务,应用程序,内核及补丁的版本,对照bugtraq上已知的漏洞列表,查找系统弱点,从正面挖掘潜在的和可能被忽略漏洞。
这要求响应人员具有一个职业入侵者的相关技能!试图扮演一个入侵者也能从中发掘对方是如何进入系统的。

============
分析信任关系
============
首先UNIX中的信任关系一度成为被攻击的弱点。其次,如果该关系被利用,那么受害范围将扩大,
此时受信任的系统也被认为是不安全的,并将其同时列入响应对象的范围。

============
分析黑客工具
============
如果很有幸的,入侵者留下了或者是我们用某种聪明的办法恢复了入侵者在活动过程中使用的工具,代码,就可以对其进一步分析。
如果是源代码,直接拿过来就能读(当然是LKM RootKit的源码最好,呵呵)。不熟练的家伙甚至把原来的工具比如sniffit名字都不
改就运行了,这样的就比较好对付。
如果我们得到的是一个正在运行进程的二进制文件的副本,可以使用gdb等调试器反汇编,跟踪调试。
但是如果一个极具水准的攻击者这样编译他的程序:
[root@ay4z3ro evil]# gcc –O4 evil.c –o evil
用-O4参数优化编译后会减少指令,然后用strip去掉二进制文件中的符号信息:
[root@ay4z3ro evil]# strip ./evil
这样我们的工作就会变得非常困难。
File命令可以显示文件的类型信息,是否被strip过等。
Strings命令可以用来显示可执行文件中的ASCII字符串,比如一个本地缓冲区溢出exploit中由printf()语句控制的行,出错处理的消息,
默认的-h参数的返回信息等。此外还有可能得到函数,变量名,编译之前所用的文件名,创建该文件的编译器版本等,通过这些关键字进行
在线搜索就有可能找到该工具的源码。
同样我们可以对二进制文件进行动态分析,用strace工具跟踪系统调用。strace显示了文件执行时所产生的文件访问,网络访问,
内存访问和许多其它的系统调用信息。通常通过观察关键的系统调用我们大致能确定该程序作了什么。由此重构该文件的运行情景也是可能
的。strace给我们提供了极大的方便,在整个响应过程中,我们还可以利用它做很多事情。

}
应急响应并不需要完全遵循固定的模式,思路新颖可以适度发挥,如果遇到的对手是水平极高的攻击者,应该适当改变策略,
为了安全起见,最后重装系统或许也是必要的。
写给广大“搞机器一族”的话:
纵使有人觉得自己入侵技巧高明,但事实上防御的一方总是或多或少的有些出乎你意料之外的对策,一点小马虎可能就会使你很难堪。
即使你认为已经清除了目标系统上所有的日志,但是前端路由器或IDS,Firewall上可能有你无法“处理”甚至你未曾察觉到的跟踪记录,
为了自身的安全,找一条快速的线路,用多重跳板来发动一次真正的攻击是很有必要的。从“开始”到“结束”都不能暴露自己!

本文关键:UNIX应急响应攻略
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top