如何在天网入侵后发现安全漏洞?

几天前,一位朋友的服务器遭到入侵。 该攻击安装了一个新的SSH守护进程,让任何有效的帐户,而不提供有效的密码。 login后,每个帐户自动获得root权限,服务器如下所示:

天网登录

这次攻击还删除了显示入侵的系统日志条目(我们通过系统日志的日志来计算出来),并更改了/etc/apt/sources.listDebian软件包位置path。

服务器在Debian Etch下运行,在攻击过程中没有及时更新:Apache / PHP没有安装所有安全更新。 我们认为这些入侵可能是因为这些缺失的更新而发生的,但我们其实并不确定。 在攻击前一天,我们安装了Wordpress 3.0.1; 但是我们不知道Wordpress的安装是否是开门红。

有什么方法可以找出服务器上的哪个安全漏洞允许入侵?

一旦攻击者获得根源,通常很难判断他们是如何进入的,因为他们可以修改系统,包括日志。 除非通过networking将日志发送到另一个系统,否则可能不太好运 – 尤其是因为您提到正在修改的日志。

很显然,吸取的教训是,你需要保持最新的补丁。 我们通常在通过yum / apt-get发布的一天之内应用补丁。

请注意,对PHP,Apache或Wordpress的攻击可能只会给攻击者的Web服务器权限。 但从你的描述看来,他们肯定有根。 所以如果他们通过一个networking应用程序进入,还有另一个让他们从Apache获得根源的折中。 但是,我也想知道,如果他们通过SSH等弱根密码进入…

但是,知道攻击它的方法可能不会让你清除它。 从目前的说法来看,这台机器非常重视,最好的办法是从头开始安装新的操作系统,并将系统设置为备用。 审核您从旧盒子带来的所有数据和软件。 修复一个妥协的盒子是非常困难的。

在任何情况下,要回答你的问题是否有任何方法可以find,这里有一些常见的地方去寻找发生的事情:

  • / var / log / syslog或/ var / log / messages – 寻找攻击可能发生的时间,可能是日志中的空白,或者你无法解释的活动。
  • 其他日志可能没有像/ var / log / security一样被清除
  • .bash_history包括root和web服务器在内的各种账号。 这可能会提供他们运行的命令或有关完成的信息。
  • 查找正在运行但无法识别的进程,或者查找可能从exception目录或名称运行的进程。 查看您正在运行的进程的各种进程ID($ PID)的/ proc / $ PID和/ proc / $ PID / fd。
  • 也许“最后”会告诉你一些事情,但他们可能已经把它消灭了。
  • rkhunter可以帮助告诉你什么是在系统上妥协,并帮助find你可以寻找更多的信息。
  • Apache日志可能会显示一些exception活动的迹象,但通常很难从实际上破坏系统的攻击中筛选出所有的攻击。

这些工作大部分是严重的不同日志文件之间的相互关联,以找出什么是有趣的,什么是噪音。

做这种调查不是快捷的工作。 这可能需要4个或更多的时间,特别是如果这是你第一次做一个。

除非你有某种远程日志logging,否则你可能运气不好。

我认为最好把这个logging为“经验教训”,从头重新安装系统(严重的是,不要跳过这一步!),然后保持新系统的补丁。

根据我的经验,拥有自动更新和风险必须在不良的自动修补程序之后进行清理要比手动执行更新并冒险落后并发生这种情况要好得多。 在第一种情况下,在很less发生错误的供应商/发行版补丁的情况下,通常可以在最糟糕的情况下用几分钟的时间修复问题。 由于系统的妥协,这是一个整体重build和大量的时间损失。