首页 安全基础 网络安全 安全协议 病毒分析 防火墙 OS安全 无线安全 Web安全 PKI与PMI 入侵检测 经典案例
安全审计 设备安全 安全管理 安全标准 法律法规 隔离网闸 DB安全 XML安全 开源项目 资源下载 安全论坛 备份恢复
 当前位置:首页>>入侵检测>>入侵分析>>正文
判定一个Unix系统受到入侵(中级)
文章出处:赛迪网 赛迪网技术天地翻译小组    发布时间:2004-10-22   点击:0
 

    鉴别Unix系统是否被入侵,需要一点独特的艺术,当然也有一些非常简单的方面。

    首先要检查系统日志、进程表和文件系统,看是否有一些"奇怪的"消息、进程或者文件。这样的例子有:2个运行的inetd进程(译者注:应该只有一个),ssh以root的EUID运行而不是以root的UID运行,在"/"下的RPC服务的核心文件,新的setuid/setgid程序,大小迅速增长的文件,df和du的结果不相近,perfmeter/top/BMC Patrol/SNMP(译者注:以上都是一些监控的程序)的监视器与vmstat/ps的结果不符,远高于平时的网络流量。
    检查/etc/passwd和/etc/shadow,看是否有不正常或者没有密码的帐号存在。
    检查/.rhosts,/etc/hosts.equiv,/.ssh/known_hosts和~/.rhosts,看是否有不合适的新条目存在。
    如果你有任何可疑的发现,那么请在另一台主机上装一个嗅探器,观察可疑主机的内/外连接情况。联系你的本地计算机紧急事件响应小组,来帮助检查网络的其他主机,并恢复受损站点。
    密切注意那些隐蔽的信任关系。NFS上主机之间是怎么挂载的?哪台主机有关于别的主机的.hosts、.shosts和hosts.equiv条目?哪台主机有.netrc文件?
    该主机与谁共享网段?你应该继续对它做一番调查。通常攻击者会破坏不止一台主机,他们从一台主机跳到另一台,隐藏好踪迹,并开放尽可能多的后门。
    Scott Kennedy写了第一个草稿,如果有改进的建议,请向handler@incidents.org发送邮件,主题为Unix Compromise。
    George Drake 如下信息:
    我想下列对象也应该进行检查:
    /dev下的普通文件和目录条目,尤其是看起来名称比较正常的。
    /tmp、/var/tmp和其他有可写权限的目录下的奇怪文件名。这里所指的奇怪是指名字类似于"…"的(3个点)。如果你发现这样的名称,但实际上却是个目录的话,那么你的系统十有八九存在问题。如果你幸运的话,你可能会发现里边所有的文件都被某个普通用户所拥有,而且"仅仅"是一个irc服务器(包括后门在内)。有的时候,你也会在里边发现安装的包嗅探器。如果这些事情确实发生了,而且有日至表明系统被入侵并得到root权限,那你最好迅速提高安全性,并重装系统。(参见CERT关于如何恢复一个被获得root系统的推荐列表,至少你得完全重装系统)。[这是为了去除攻击者所安装的无所不在的后门]。
    如果系统的数据非常重要,尤其数据不可恢复的情况下,那么就将系统停止(比如说在Sun下按Stop-A)。不要把网线拔下(译者注:似乎应该是把网线拔下,可能是作者的笔误?),也不要关机,只是终止系统。然后小心的备份系统(不要连到网络上,不要进入多用户模式-最好使用CD或者其他你认为不可能被修改的介质)。
    你很想继续监视这个被入侵主机的动向,但是否应该这样做,取决于你系统的性质。如果这"只"是一台网页服务器,备份也做得很好,你可以这么做;如果这"只"是一些公共计算领域的工作站,你也可以这么做;如果是一个用来处理事务的系统,那你最好不要;如果这是一个用来收集科学数据或者仪器控制的系统,那你也最好不要这么做。
    关于对隐藏信任关系的评论,其实不用过分强调,更好的方式是在处理多个受害系统之前就对此类问题进行检查。像例子中那样,可以使用find命令来对每一个系统进行查找,但实际上你只须在几个关键的系统中运行find命令就可以知道问题的所在了。对信任.rhost文件的用户,通常会将把他们指向所有的主机:如果主机A指向主机B,那么很有可能主机B也指向主机A。继续使用rlogin和rsh(参见SANS的ssh项目),虽然没有什么错误,但这些服务起不了什么有用的作用,只不过为非法用户进入你的系统多开了几个门而已。
    每一个系统管理员应该采取的最有效地防御措施,就是立刻在每一个系统上编译并运行tripwire,并且确保手头上有一份不能被篡改的特征数据库(比如CD,或者没有挂载的磁带,甚至没有连接在系统上的驱动器)。曾经有一次,入侵者通过一个系统帐号侵入系统,并试图安装一个保持root特权的工具包。但是该工具包并不适合于该系统,最后使得系统崩溃。管理员能够在tripwire数据库(使用6个月)的帮助下在几个小时之内恢复系统,因为他知道究竟那个文件曾经被修改过。(如果入侵者获得了root权限,对数据库进行修改,后果是不可想象的)。Tripwire应该尽量每天都被运行,并且运行结果通过邮件或其他方式传送给一个或多个系统,最后被专门负责监视的人接收。使用tripwire时,需要在系统改变时及时更新配置文件,但这个工作量要比为被破坏的系统重新安装要少得多。
    Olaf Schreck增添了如下信息:
    George Brake提到了tripwire在检测系统修改中的重要作用,我非常同意,但是我认为tripwire的数据库只须在新安装的系统上取得就可以了。另一方面,更新已经与互联网相连一段时间主机的tripwire数据库是非常危险和愚蠢的,尤其是在一个你怀疑已经被破坏的主机上,如果你不和以前的原始值相比较,没有理由相信当前的系统文件。
    有一次,有人请我"检查"一个"行为异常"的系统,该系统没有初始的tripwire数据来做比较。我曾经不止一次的用"find / -mtime -3 -print"(列出所有3天以内inode变化的条目)发现入侵的痕迹。当然,这不会发现技术高超的攻击者,但这确实能发现脚本小子的攻击。
    请注意这种简单"检查"很容易被绕过,只需要在root权限下重设系统时间就可了。这一行为将在系统日志中记录,除非攻击者将日至文件修改或删除(也需要root权限)。因此虽不像tripwire那样可靠,但确实是一种可行的方法。
    你可能需要下载几个适合你操作系统的最新的root工具包,因为这些二进制文件是你需要重点关注的。
Tripwire也有小型的替代品:请参考http://www.pgci.ca/p_articles.html,另外对于使用rpm包的Linux系统(Redhat,Suse)来说,可以使用RPM内建的功能来校验特征值。


 

 

作者:
[返回顶部↑]  [推荐好友] [查看评论]  
用户名: 新注册) 密码: 匿名评论 [查看评论]  发表评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 
↑文章搜索
  关键字:  
  范  围:  
  开始搜索  
※相关文章※
 

◎Unix常用手工入侵检测方法
◎分析进入Win2000后留下的足
◎很酷的一篇入侵分析
◎一个被入侵网站分析报告
◎分析进入Win2000后留下的足
◎分析某台机器上发现的工具
◎一次被DNS攻击后的分析

 
※热点文章※
  ·分析进入Win2000后留下的足
·很酷的一篇入侵分析
·一个被入侵网站分析报告
·分析进入Win2000后留下的足
·分析某台机器上发现的工具
·一次被DNS攻击后的分析
·分析一机器上被放置的 roo
 

关于我们 | 征搞启示 | 版权信息 | 联系我们 | 友情链接

版权所有:中国信息安全组织 © 2003-2005 Power by DedeCms