识别rootkit服务器

首先,我并不是在寻找安装在服务器上的Rootkit检测软件,因为这可能并且可能行不通,尤其是在现场系统上。

我很想知道rootkit接pipe一台服务器的迹象是什么。 至less在发生什么事情的时候,可以期待和目睹什么样的损害和外在的检测行为呢?

我的想法 – 也许是错误的 – 如果你不能通过像pstopnetstat这样的工具检测到系统的危害(根据定义,这可能会被篡改),或许可以确定系统是根植于:

  • 不寻常的loadvg?
  • 不寻常的磁盘IO和/或硬盘温度?
  • 高普通出站stream量? (问题)
  • 电子邮件退回邮件合法的MTA,以回应没有发送电子邮件?
  • 在公共块列表上列出?

(显然,我们正在谈到可以公开访问的服务器)。

我在正确的道路上 – 可以通过这种方法来识别服务器,以及如何?

首先要问的是,入侵者有什么原因让你的服务器摆在首位。 非法活动的动机最有可能是金钱。 它可能不是任何需要计算能力的东西,所以监视系统资源的使用并不重要。

那么,如何利用劫持电脑获利? 通过窃取信息或将其变成垃圾邮件服务器等。所有这些都有共同点,他们需要networking连接。 所以你应该监视不正常的networkingstream量。

由于被入侵的服务器可能会隐藏这些连接(使之从系统本身不可见),所以最有效的方法是在服务器和互联网之间安装一个带有入侵防御系统的外部防火墙。

通过启用内核命令行module.sig_enforce许多内核级别的rootkit在攻击时可以被有效地压扁module.sig_enforce

http://lxr.free-electrons.com/source/Documentation/kernel-parameters.txt?v=4.8

  module.sig_enforce [KNL] When CONFIG_MODULE_SIG is set, this means that modules without (valid) signatures will fail to load. Note that if CONFIG_MODULE_SIG_FORCE is set, that is always true, so this option does nothing. 

为了充分利用这个好处,你最好想要一个只使用来自系统主存储库的模块的“vanilla”内核。 这样做的结果是你只允许加载由你最初得到你的内核的信任仓库签名的内核模块。

关于用户空间rootkit的检测和/或预防 – rpm -V可以帮助提供一些开箱即用的exception,但是如果ssl库已经被篡改,这仍然有可能超出。

最终这些types的安全检查是没有结果的。 如果您有兴趣为您的系统保持一定程度的防篡改,您需要改变您的安全工作原理。

你需要定义系统该做什么,而不是系统不应该做什么。 通常这是很难列举的时间或系统pipe理员所不知道的,这是问题的关键。

但是,一旦你知道系统该做什么,你可以在SELinux(一个完整的主题本身,但把它打开是一个很好的开始)的东西中定义安全策略。 现在SELinux已经有了相当不错的策略,已经很长的一段时间来试图定义一个典型的Linux 应该做什么了。

未来的一步(如果你确实真的非常偏执),你是否购买了含有TPM芯片和设置服务器的硬件,通过合并到内核中的IMA设备来完全防篡改。

这依赖于物理防篡改的芯片,它为内核提供encryption服务,通过它可以对特定的文件和二进制文件进行encryption签名,以使其真正具有防篡改function(内核可以拒绝执行未login的代码这条路)。

其中大部分都是如此新鲜和新鲜,不幸的是,它不是真正的发行版本,但是当它准备就绪时,它很好的知道它的存在。

https://wiki.gentoo.org/wiki/Integrity_Measurement_Architecture

那里有各种各样的恶意软件,写得很好的种类很难被发现。 现在大部分的恶意软件都是为了使用你的服务器来攻击其他人(除了勒索软件,这很不容易被发现),所以最好的外部地方是围绕你的服务器发送的。 恶意软件的三个更常见的目标是通过networking钓鱼网站,垃圾邮件和DDOS服务赚钱。

networking钓鱼网站通常可以通过您的networking服务器的访问日志进行检测。 要寻找的东西是一个随机生成的子目录,在一个站点的文档根目录,或一个目录,看起来像你的应用程序框架的一部分(我见过wp文件和wp-config为WordPress例如)。 在这个文件夹内部将是一个看起来像一个受欢迎的服务或金融机构的login页面的页面,以及文本文件或邮件客户端来获取用户的信息。 这需要一些关于你的访问日志通常看起来像什么的知识,但是很容易发现。

通常可以通过检查邮件队列来检测导致服务器发送垃圾邮件的恶意软件,因为很可能会有一些反弹错误。 您还可以使用像senderbase这样的工具来查看邮件通信量是否出现exception。 像MxToolbox和multirbl这样的黑名单检查器也很有用。

检测您的服务器是否参与DDOS攻击可能会更难以检测到。 最好的方法是跟踪估计的带宽使用情况,因为您的出站突然激增显示恶意软件。

总的来说,你的列表是一个好的开始,因为恶意软件可以performance出许多不同的forms。 你只需要记住,没有使用IDS / IPS和其他监控软件,写得很好的恶意软件几乎是不可能检测到的。