(原名 kconfig-hardened-check)
Linux 内核拥有大量安全加固选项。大多数主流发行版并未启用其中的许多选项。我们必须自行启用这些选项,以使我们的系统更加安全。
但没人喜欢手动检查配置。所以让计算机来完成它们的工作吧!
kernel-hardening-checker(原名 kconfig-hardened-check)是一款用于检查 Linux 内核安全加固选项的工具。
许可证:GPL-3.0。
kernel-hardening-checker 支持检查:
支持的架构:
安全加固建议基于:
我还创建了 [Linux 内核防御地图][4],这是一张图形化表示,展示了安全加固特性与相应漏洞类别或利用技术之间的关系。
请注意,更改 Linux 内核安全参数可能会影响系统性能和用户空间软件的功能。因此,在设置这些参数时,请考虑您的基于 Linux 的信息系统的威胁模型,并彻底测试其典型负载。
有多种选择:
您可以使用 pip 从此 Git 仓库安装包:
python3 -m pip install git+https://github.com/a13xp0p0v/kernel-hardening-checker
如果遇到因外部管理环境导致的错误,请使用 python3 -m venv 创建虚拟环境。
您可以在某些 GNU/Linux 发行版上通过包管理器安装 kernel-hardening-checker 包。参见 https://repology.org/project/kernel-hardening-checker/versions
或者,您可以直接从克隆后的仓库中运行 ./bin/kernel-hardening-checker,无需安装。
$ ./bin/kernel-hardening-checker -h usage: kernel-hardening-checker [-h] [--version] [-m {verbose,json,show_ok,show_fail}] [-a] [-c CONFIG] [-v KERNEL_VERSION] [-l CMDLINE] [-s SYSCTL] [-p {X86_64,X86_32,ARM64,ARM,RISCV}] [-g {X86_64,X86_32,ARM64,ARM,RISCV}]
A tool for checking the security hardening options of the Linux kernel
options: -h, --help show this help message and exit --version show program's version number and exit -m, --mode {verbose,json,show_ok,show_fail} select a special output mode instead of the default one -a, --autodetect autodetect and check the security hardening options of the running kernel -c, --config CONFIG check the security hardening options in a Kconfig file (also supports *.gz files) -v, --kernel-version KERNEL_VERSION extract the kernel version from a version file (such as /proc/version) instead of using a Kconfig file -l, --cmdline CMDLINE check the security hardening options in a kernel command line file (such as /proc/cmdline) -s, --sysctl SYSCTL check the security hardening options in a sysctl output file (the result of "sudo sysctl -a > file") -p, --print {X86_64,X86_32,ARM64,ARM,RISCV} print security hardening recommendations for the selected architecture -g, --generate {X86_64,X86_32,ARM64,ARM,RISCV} generate a Kconfig fragment containing the security hardening options for the selected architecture
## Output modes
- 无 `-m` 参数时使用默认输出模式(参见下方示例)
- `-m verbose` 用于打印额外信息:
- 没有对应检查的配置选项
- 含有 AND/OR 的复杂检查的内部结构,如下所示:
```
-------------------------------------------------------------------------------------------
<<< OR >>>
CONFIG_STRICT_DEVMEM |kconfig|cut_attack_surface|defconfig | y
CONFIG_DEVMEM |kconfig|cut_attack_surface| kspp | is not set
-------------------------------------------------------------------------------------------
```
- `-m json` 用于以 JSON 格式打印结果(用于将 `kernel-hardening-checker` 与其他工具结合使用)
- `-m show_ok` 用于仅显示成功的检查
- `-m show_fail` 用于仅显示失败的检查