许多用于 Windows(甚至可能是 Linux?)的 rootkit 都隐藏在驱动程序中。这是为什么?
我能想到的一个原因是使用它们在内核模式下运行并具有完全系统访问权限的驱动程序,但是没有更简单的方法来实现这一点吗?或者还有其他原因吗?
许多用于 Windows(甚至可能是 Linux?)的 rootkit 都隐藏在驱动程序中。这是为什么?
我能想到的一个原因是使用它们在内核模式下运行并具有完全系统访问权限的驱动程序,但是没有更简单的方法来实现这一点吗?或者还有其他原因吗?
正如您所说,大多数驱动程序都在内核模式下运行,因此它们可以访问所有有趣的东西并且可以轻松地对调试器隐藏。
有更多的原因使司机成为一个有趣的地方:
有大量的设备驱动程序,供应商提供了与操作系统中包含的版本不同的新版本的驱动程序。因此,与操作系统的核心部分不同,使用已知好文件的哈希值来管理数据库并不容易。
有用于开发驱动程序的标准工具和文档。所以这比直接修补内核内存或更换引导加载程序要容易得多。
设备驱动程序中的直接内存访问并不可疑。
一些驱动程序在启动过程中提前加载,因此它们可以在病毒扫描程序加载之前应用它们的魔法。所以病毒扫描程序只看到rootkit希望它看到的东西。
一种对 rootkit 感兴趣的特定驱动程序类型是文件系统驱动程序。rootkit 可以轻松过滤目录列表的结果并将其自身隐藏在用户和其他系统工具之外。
同样,隐藏在网络驱动程序中可以过滤一些连接并将它们从打开的连接列表中删除。
在驱动程序级别,应用程序可以完全访问系统的硬件。这包括以完全透明的方式插入硬件驱动程序和操作系统之间的过滤器驱动程序,使得其他应用程序几乎不可能检测到它们的存在。
这可以应用于文件系统驱动程序、网络驱动程序、输入设备(键盘......)。
驱动程序级别的应用程序也可以对进程监控不可见,这使得它们很难被发现和摆脱。