发新话题
打印

[转载]判定一个Unix系统受到入侵

[转载]判定一个Unix系统受到入侵

文章作者:赛迪网技术天地翻译小组

鉴别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内建的功能来校验特征值。
qq310926是我唯一用号,除此之外有其他号码号自称邪八冰血封情,则非本人。

TOP

那么事先就必须要有MD5 假如他们 一开始没做这个工作 那....
我们如果做安全检测就要另外再想办法:)
qq310926是我唯一用号,除此之外有其他号码号自称邪八冰血封情,则非本人。

TOP

发新话题