首先,我不是在寻找用于检测植入服务器的 rootkit 的软件,因为这可能有效也可能无效,尤其是在实时系统上。
我很好奇,想知道 rootkit 接管一台服务器的迹象是什么。至少,在发生这种情况时,人们可以预期和看到哪些损害和外部可检测的行为?
我的想法 - 也许是错的 - 是如果你无法通过诸如ps
、、top
之类的工具netstat
(根据定义,这些工具会被篡改)检测到系统的危害,那么你或许可以确信系统已被以下工具扎根:
- loadvg 异常?
- 磁盘 IO 和/或硬盘温度异常?
- 一般出站流量高?(有问题)
- 电子邮件会将消息退回到合法的 MTA,以响应未发送的电子邮件?
- 被列入公共黑名单?
(显然,我们谈论的是可公开访问的服务器)。
我走的路正确吗——可以通过这种方法识别 root 服务器吗?如何识别?
答案1
首先要问的是入侵者入侵您的服务器的原因是什么。进行非法活动的动机很可能是为了钱。它可能不是任何需要计算能力的东西,因此监控系统资源的使用情况并不那么重要。
那么,如何利用被劫持的计算机牟利呢?通过窃取信息或将其变成垃圾邮件服务器等。所有这些的共同点是它们都需要网络连接。因此,您应该监控异常的网络流量。
由于受感染的服务器可能会隐藏这些连接(使它们对系统本身不可见),最有效的方法是使用带有入侵防御系统服务器和互联网之间。
答案2
通过启用内核命令行,可以在攻击时有效地压制许多内核级 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.
为了充分利用这一点,您最好使用一个“原始”内核,该内核仅使用来自系统主存储库的模块。这样做的结果是,您只允许加载由您最初从中获得内核的受信任存储库签名的内核模块。
关于检测和/或预防用户空间 rootkit——rpm -V
可以帮助提供一些开箱即用的异常,但如果ssl
库已被篡改,这仍然是可能的。
但归根结底,这些类型的安全检查都是徒劳的。如果您希望保持系统一定程度的防篡改能力,则需要改变对安全工作原理的认识。
你需要定义系统应该做而不是系统不应该做。通常这在时间上很难列举,或者系统管理员不知道,这是问题的关键。
然而,一旦你知道了系统应该您是否可以在 SELinux 等系统中定义安全策略(这本身就是一个庞大的主题,但启用它是一个很好的开始)。如今,SELinux 拥有相当不错的策略,这些策略在很大程度上试图定义典型的 Linux 应该做什么应该做已经。
下一步(如果您真的非常偏执)是购买包含 TPM 芯片的硬件,并通过合并到内核的 IMA 设施设置服务器,使其完全防篡改。
这依赖于物理防篡改芯片,该芯片为内核提供加密服务,通过该芯片,您可以对特定文件和二进制文件进行加密签名,以使其真正具有防篡改功能(内核可以拒绝执行未以这种方式签名的代码)。
不幸的是,其中大部分内容都十分新颖,尚未真正准备好发行,但当它准备好时,了解它的存在还是很有好处的。
https://wiki.gentoo.org/wiki/Integrity_Measurement_Architecture
答案3
恶意软件种类繁多,编写良好的恶意软件很难被发现。如今,大多数恶意软件都旨在利用您的服务器攻击其他人(勒索软件除外,不幸的是,勒索软件很容易被发现),因此最好的外部检查点是您的服务器发送的内容。恶意软件的三个最常见目标是通过钓鱼网站、垃圾邮件和 DDOS 服务赚钱。
通常可以通过网络服务器的访问日志检测钓鱼网站。要查找的是网站文档根目录中随机生成的子目录,或看起来像应用程序框架一部分的目录(例如,我见过 WordPress 的 wp-files 和 wp-config)。此文件夹中将有一个看起来像流行服务或金融机构登录页面的页面,以及用于获取用户信息的文本文件或邮件客户端。这需要了解您的访问日志通常是什么样的,但很容易发现。
导致服务器发送垃圾邮件的恶意软件通常可以通过检查邮件队列来检测,因为很可能会出现大量退回错误。您还可以使用类似发件人基础查看您的邮件流量是否出现异常峰值。黑名单检查器(如 MxToolbox 和多路复用也很有用。
检测您的服务器是否参与了 DDOS 攻击可能更加困难。最好的方法是跟踪您的估计带宽使用情况,因为出站流量突然激增很可能表明存在恶意软件。
总体而言,您的列表是一个很好的开始,因为恶意软件可以表现为多种不同的形式。您只需记住,如果不使用 IDS/IPS 和其他监控软件,编写良好的恶意软件几乎不可能被检测到。