
Инструмент для проверки параметров усиления безопасности ядра Linux
(ранее kconfig-hardened-check)
Существует множество опций для усиления безопасности ядра Linux. Многие из них не включены по умолчанию в основных дистрибутивах. Нам приходится включать эти опции самостоятельно, чтобы сделать наши системы более безопасными.
Но никому не нравится проверять конфиги вручную. Так пусть компьютеры делают свою работу!
kernel-hardening-checker (ранее kconfig-hardened-check) — это инструмент для проверки опций усиления безопасности ядра Linux.
Лицензия: GPL-3.0.
kernel-hardening-checker поддерживает проверку:
Поддерживаемые архитектуры:
Рекомендации по усилению безопасности основаны на:
Я также создал [Карту защиты ядра Linux][4], которая представляет собой графическое изображение связей между функциями усиления безопасности и соответствующими классами уязвимостей или техниками эксплуатации.
Пожалуйста, учтите, что изменение параметров безопасности ядра Linux может повлиять на производительность системы и функциональность пользовательского программного обеспечения. Поэтому при установке этих параметров учитывайте модель угроз вашей информационной системы на базе Linux и тщательно тестируйте её типовую рабочую нагрузку.
Есть несколько вариантов:
Вы можете установить пакет из этого Git-репозитория с помощью pip:
python3 -m pip install git+https://github.com/a13xp0p0v/kernel-hardening-checker
Если вы получили ошибку из-за внешне управляемого окружения, создайте виртуальное окружение с помощью python3 -m venv.
Вы можете установить пакет kernel-hardening-checker через менеджер пакетов в некоторых дистрибутивах GNU/Linux. См. 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
## Режимы вывода
- аргумент без `-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` для отображения только неудачных проверок