
Ein Tool zur Überprüfung der Sicherheitshärtungsoptionen des Linux-Kernels
(ehemals kconfig-hardened-check)
Es gibt viele Sicherheitshärtungsoptionen für den Linux-Kernel. Viele davon sind von den großen Distributionen nicht aktiviert. Wir müssen diese Optionen selbst aktivieren, um unsere Systeme sicherer zu machen.
Aber niemand überprüft gerne Konfigurationen manuell. Also lasst die Computer ihre Arbeit machen!
kernel-hardening-checker (ehemals kconfig-hardened-check) ist ein Werkzeug zur Überprüfung der Sicherheitshärtungsoptionen des Linux-Kernels.
Lizenz: GPL-3.0.
kernel-hardening-checker unterstützt die Überprüfung von:
Unterstützte Architekturen:
Die Sicherheitshärtungsempfehlungen basieren auf:
Ich habe auch die [Linux Kernel Defence Map][4] erstellt, eine grafische Darstellung der Beziehungen zwischen Sicherheitshärtungsfunktionen und den entsprechenden Schwachstellenklassen oder Ausbeutungstechniken.
Bitte beachten Sie, dass das Ändern der Linux-Kernel-Sicherheitsparameter auch die Systemleistung und die Funktionalität der Userspace-Software beeinträchtigen kann. Berücksichtigen Sie daher bei der Einstellung dieser Parameter das Bedrohungsmodell Ihres Linux-basierten Informationssystems und testen Sie gründlich die typische Arbeitslast.
Es gibt mehrere Optionen:
Sie können das Paket aus diesem Git-Repository mit pip installieren:
python3 -m pip install git+https://github.com/a13xp0p0v/kernel-hardening-checker
Wenn ein Fehler aufgrund einer extern verwalteten Umgebung auftritt, erstellen Sie eine virtuelle Umgebung mit python3 -m venv.
Sie können das Paket kernel-hardening-checker über den Paketmanager auf einigen GNU/Linux-Distributionen installieren. Siehe https://repology.org/project/kernel-hardening-checker/versions
Alternativ können Sie einfach ./bin/kernel-hardening-checker aus dem geklonten Repository ohne Installation ausführen.
$ ./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
## Ausgabemodi
- kein `-m`-Argument für den Standard-Ausgabemodus (siehe Beispiel unten)
- `-m verbose` zum Anzeigen zusätzlicher Informationen:
- die Konfigurationsoptionen ohne entsprechende Prüfung
- die Interna komplexer Prüfungen mit AND/OR, wie folgt:
```
-------------------------------------------------------------------------------------------
<<< OR >>>
CONFIG_STRICT_DEVMEM |kconfig|cut_attack_surface|defconfig | y
CONFIG_DEVMEM |kconfig|cut_attack_surface| kspp | is not set
-------------------------------------------------------------------------------------------
```
- `-m json` zum Ausgeben der Ergebnisse im JSON-Format (zum Kombinieren von `kernel-hardening-checker` mit anderen Tools)
- `-m show_ok` zum Anzeigen nur erfolgreicher Prüfungen
- `-m show_fail` zum Anzeigen nur fehlgeschlagener Prüfungen