Linux内核模块基础知识

 什么是内核模块?

        内核是操作系统的中枢神经系统,控制着它所做的一切,包括管理硬件组件之间的交互和启动必要的 服务。内核在你看到的用户应用程序和运行所有东西的硬件(如 CPU,内存和硬盘驱动器)之间运行。
         Linux 是一个单片内核,可以添加内核模块。因此,可以在内核中添加和删除模块。内核有时需要更新, 这可能需要安装新的设备驱动程序(如视频卡,蓝牙设备或 USB 设备),文件系统驱动程序,甚至系统扩展。 必须将这些驱动程序嵌入到内核中才能完全正常运行。在某些系统中,要添加驱动程序,您必须重建、编 译和重新引导整个内核,但 Linux 能够在不经过整个过程的情况下向内核添加一些模块。这些模块称为可加 载内核模块或 LKM
        LKM 必须能够访问内核的最低级别,这使得它们成为骇客极易攻击的目标。一种称为 rootkit 的特殊类型的恶意软件通常通过这些 LKM 嵌入到操作系统的内核中。如果恶意软件嵌入内核,骇客就可以完全控制操作系统。
        如果骇客可以让 Linux 管理员将新模块加载到内核,那么骇客不仅可以获得对目标系统的控制权,而且因为他们在操作系统的内核级别运行,可以控制目标系统正在运行的进程,端口,服务,硬盘空间以及您 能想到的几乎任何其他内容。
         因此,如果骇客可以成功诱使 Linux 管理员安装其中嵌入了 rootkit 的视频或其他设备驱动程序,则骇客可以完全控制系统和内核。这是一些最阴险的 rootkit 利用 Linux 和其他操作系统的方式。

检查内核版本

了解内核的第一步是检查系统正在运行的内核。至少有两种方法可以做到这一点。首先,我们可以输 入以下内容:
        kali >uname -a
Linux内核模块基础知识_第1张图片
内核通过告诉我们,我们的操作系统正在运行的发行版是 linux kali,内核版本是5.9.1,它构建的架构是 x86_64 架构。它还告诉我们它具有对称多处理(SMP)功能(意味着它可以在具有多个核心或处理器的 机器上运行),并于 2020 10 29 日在 Debian 5.9.1上构建。根据构建中使用的内核和系统中的 CPU,您 的输出可能会有所不同。安装或加载内核驱动程序时可能需要这些信息,因此了解如何获取这些信息非常 有用。
获取这些信息以及其他一些有用信息的另一种方法是对/proc/version 文件使用 cat 命令,如下所示:
kali >cat /proc/version
在这里,你可以看到/proc/version 文件返回了相同的信息。

管理内核模块

        Linux 至少有两种方法来管理内核模块。较旧的方法是使用围绕 insmod suite-insmod 构建的一组命令代表插入模块,用于处理模块。第二种方法,使用 modprobe 命令。在这里,我们使用 insmod 套件中的 lsmod 命令列出内核中已安装的模块:
Linux内核模块基础知识_第2张图片

你可能感兴趣的:(linux,运维,服务器,网络)