怎么知道他们是否有rootkit?

信息安全 反恶意软件 Rootkit
2021-08-29 09:23:59

他们不可能被发现吗?鉴于攻击者拥有管理员权限,并且可以修改反病毒软件,否则这些软件可能会被用来检测或规避 root 工具包。是否存在指向根工具包的某些危险信号?他们能看到你所做的一切吗?

2个回答

“rootkit”通常会非常努力地不被发现。但是,理论上它不可能完全无法检测到,因为 rootkit 的目的是为攻击者维护一个进入路径,所以至少攻击者可以知道 root kit 是否存在。

过去使用了很多方法。例如,一些 rootkit 将自己安装在内核内存中,并且在硬盘上没有留下任何痕迹——因此它们很难被发现,但在下次重新启动时会消失。更常见的是,rootkit 修改某些文件或磁盘的某些部分以抵抗重新启动,但随后它们必须更改内核,以便机器上的进程看不到它们的修改。

因此,基本上,如果 rootkit 正常工作,那么您将无法从机器本身检测到它。如果您在 Live CD 或 USB 密钥上重新启动计算机,然后从操作系统(假定干净)检查硬盘,可能会发现它如果相同的文件看起来不一样,当从外部(操作系统在 live CD 上启动)和从内部检查时,这是一个相当明确的犯规迹象。

所有这一切都假设 rootkit 擅长于它应该做的事情。有许多不熟练的 rootkit(或不熟练的攻击者)会留下痕迹。例如,根目录(或管理员)的主目录中的奇怪文件。


在攻击者完全控制您的机器的情况下, rootkit是有意义的;rootkit 的工作就是维持这种控制水平。然后攻击者可以看到你在机器上所做的一切,只要 rootkit 处于活动状态,他就可以继续看到你在机器上所做的一切。

(术语“rootkit”也被应用于升级工具,即利用本地漏洞将用户级访问转换为机器上的完整 adin 级访问的工具。同样的结果:机器不再是你的机器。)

是否存在指向根工具包的某些危险信号?他们能看到你所做的一切吗?我是安全新手,所以请放轻松。

一般而言,对于 rootkit 来说是肯定的,不会。然而,正如 Thomas 已经指出的那样,rootkit 必须为攻击者留下一个入口线索,也就是说,攻击者的用户模式代码必须能够以某种方式与 rootkit 对话。

举一些例子来说明如何实现这一目标:

  • 实现一个/proc具有重要外观名称的自定义设备,比如说/proc/gpuinfo. 好的,这有点明显,但你明白了 - 在通信端点上/proc(procfs 是 Linux 中的一个元文件系统,可让你与用户空间通信),/sys或者/dev通常不存在,但系统管理员会认为是正常的。

    如果您查看 rkhunter 日志,您会看到它正在寻找这些。

  • 修改上述项目之一的条目以响应通常不会响应的内容。大多数设备条目响应不同的代码,告诉他们做某事——这在/dev. 添加一个晦涩的代码作为您的通信机制。

    在 Windows 系统上,您可以使用过滤器驱动程序来实现相同的目的,或者修补目标的驱动程序对象,随心所欲(但过滤器驱动程序更稳定)。

    一种检测机制是在不(通常)响应这些的设备上尝试虚假设备代码。如果您在系统上得到除了相关的“未实现”错误代码之外的任何内容,那么就会发生一些奇怪的事情。

  • 将您的系统驱动器安装在不同的 PC 上会产生与您预期不同的文件系统大小,或者您以前看不到的文件。请注意,不同的文件系统大小本身并不是 rootkit 的症状,因为某些 Windows 版本仍然使用磁盘几何结构并且......是的,不要马上惊慌,但是在野 rootkit 中我不能记住在 NTFS 卷末尾创建的加密文件系统的名称,方便地为您缩小磁盘。类似地,一个常见的 rootkit 行为是从活动系统的 FS 中删除文件条目(以隐藏它们)。

不幸的是,一般来说,rootkit 并没有通用的危险信号——这场战斗更像是猫捉老鼠。一旦 rootkit 作者意识到扫描器能够检测到一种类型的通信通道或钩子,他们就会改变策略。

他们能看到你所做的一切吗?

Rootkit 这个术语我倾向于认为它是一种内核级别的攻击,其目的是维护对您系统的入侵通常能够,是的,因为内核管理整个系统并且 rootkit 将具有相同的特权。有一些防御措施;现代 Windows 和一些 Linux 发行版强制执行签名的内核驱动程序/模块,并且可能会强制执行此操作。这会将攻击向量移动到引导序列(在内核有机会强制执行任何操作之前),UEFI 安全引导旨在解决这个问题。

你没有问这个,但我还是要说明这一点。通常,除非您的系统策略有点疯狂,否则插入内核模块/驱动程序需要管理员权限。因此,要安装rootkit,攻击者必须首先进行权限提升攻击。尽最大努力确保不会发生这种情况是防御 rootkit 的方法。

旁白 1:rootkit 不必在内核领域,类似拦截的恶意软件也不必。可以在没有内核驱动程序的情况下实现这一点。如果相关用户不是管理员,则损害通常更为有限。