ATT&CK - 内核模块和扩展

admin 2024年4月15日01:38:18评论1 views字数 998阅读3分19秒阅读模式

内核模块和扩展

可加载内核模块 (LKMs) 是可以根据需要加载和卸载到内核中的代码片段。
它们不需要重启系统即可扩展内核的功能。
例如,设备驱动程序是一类模块,它使内核可以访问连接到系统的硬件。
恶意使用时,可加载内核模块 (LKM) 可以是一种内核模式的 Rootkit,具有最高的操作系统特权 (Ring 0)。
攻击者可以利用可加载内核模块来隐秘地在系统上实现持久化,并规避防御。
在民间已经发现了一些例子,并且有一些开源项目。

基于 LKM 的 rootkit 的常见特性包括:隐藏自身、选择性地隐藏文件、进程和网络活动,以及篡改日志,提供经过身份验证的后门,并允许非特权用户启用 root 访问权限。

内核扩展,也称为 kext,在 macOS 中用于将功能加载到系统,类似于 Linux 的 LKM。
它们通过 kextloadkextunload 命令进行加载和卸载。
已经发现了几个可以使用该方法的例子。
在民间发现了一些例子。

缓解

用于检测 Linux rootkit 的常用工具有:rkhunter、chrootkit,尽管 rootkit 可能被设计成绕过某些检测工具。
安装 LKM 和内核扩展需要 root 级别的权限。
通过适当的权限分离和限制特权提升,限制对 root 帐户的访问并防止用户加载内核模块和扩展。
应用程序白名单和软件限制工具(如 SELinux) 也可以帮助限制内核模块的加载。

检测

从 Linux 内核版本 2.6 开始,LKM 通常被加载到/lib/modules 并具有扩展名 .ko(“kernel object”)中。

许多 LKM 需要 Linux 头文件(特定于目标内核)才能正确编译。
这通常通过操作系统包管理器获得,并像普通包一样安装。
攻击者可能会在加载恶意模块之前在目标系统上运行这些命令,以确保它被正确编译。

在基于 Ubuntu 和 Debian 的系统上,这可以通过运行:apt-get install linux-headers-$(uname -r) 来完成
在基于 RHEL 和 CentOS 的系统上,这可以通过以下方式实现:yum install kernel-devel-$(uname -r)
通过监视以下命令,可以检测 Linux 系统上的加载、卸载和操作模块:modprobe insmod lsmod rmmod modinfo
对于 macOS,监视 kextload 命令的执行,并与其他未知或可疑的活动相关联。

- 译者: 林妙倩、戴亦仑 . source:cve.scap.org.cn

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月15日01:38:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ATT&CK - 内核模块和扩展http://cn-sec.com/archives/2658006.html

发表评论

匿名网友 填写信息