
Un outil pour vérifier les options de durcissement de sécurité du noyau Linux
(anciennement kconfig-hardened-check)
Il existe de nombreuses options de durcissement de sécurité pour le noyau Linux. Beaucoup d'entre elles ne sont pas activées par les principales distributions. Nous devons activer ces options nous-mêmes pour rendre nos systèmes plus sécurisés.
Mais personne n'aime vérifier les configurations manuellement. Alors laissons les ordinateurs faire leur travail !
kernel-hardening-checker (anciennement kconfig-hardened-check) est un outil pour vérifier les options de durcissement de sécurité du noyau Linux.
Licence : GPL-3.0.
kernel-hardening-checker prend en charge la vérification :
Architectures prises en charge :
Les recommandations de durcissement de sécurité sont basées sur :
J'ai également créé la [Linux Kernel Defence Map][4], qui est une représentation graphique des relations entre les fonctionnalités de durcissement de sécurité et les classes de vulnérabilités ou techniques d'exploitation correspondantes.
Veuillez noter que la modification des paramètres de sécurité du noyau Linux peut également affecter les performances du système et la fonctionnalité des logiciels utilisateur. Par conséquent, lors de la définition de ces paramètres, tenez compte du modèle de menace de votre système d'information basé sur Linux et testez minutieusement sa charge de travail typique.
Il existe plusieurs options :
Vous pouvez installer le paquet depuis ce dépôt Git en utilisant pip :
python3 -m pip install git+https://github.com/a13xp0p0v/kernel-hardening-checker
Si vous rencontrez une erreur due à un environnement géré en externe, créez un environnement virtuel en utilisant python3 -m venv.
Vous pouvez installer le paquet kernel-hardening-checker via le gestionnaire de paquets sur certaines distributions GNU/Linux. Voir https://repology.org/project/kernel-hardening-checker/versions
Alternativement, vous pouvez simplement exécuter ./bin/kernel-hardening-checker depuis le dépôt cloné sans installation.
$ ./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
## Modes de sortie
- pas d'argument `-m` pour le mode de sortie par défaut (voir l'exemple ci-dessous)
- `-m verbose` pour afficher des informations supplémentaires :
- les options de configuration sans vérification correspondante
- les internes des vérifications complexes avec AND/OR, comme ceci :
```
-------------------------------------------------------------------------------------------
<<< OR >>>
CONFIG_STRICT_DEVMEM |kconfig|cut_attack_surface|defconfig | y
CONFIG_DEVMEM |kconfig|cut_attack_surface| kspp | is not set
-------------------------------------------------------------------------------------------
```
- `-m json` pour afficher les résultats au format JSON (pour combiner `kernel-hardening-checker` avec d'autres outils)
- `-m show_ok` pour afficher uniquement les vérifications réussies
- `-m show_fail` pour afficher uniquement les vérifications échouées