
Uno strumento per controllare le opzioni di hardening della sicurezza del kernel Linux.
(precedentemente kconfig-hardened-check)
Ci sono molte opzioni di hardening della sicurezza per il kernel Linux. Molte di esse non sono abilitate dalle principali distribuzioni. Dobbiamo abilitare queste opzioni noi stessi per rendere i nostri sistemi più sicuri.
Ma a nessuno piace controllare le configurazioni manualmente. Quindi lasciamo che siano i computer a fare il loro lavoro!
kernel-hardening-checker (precedentemente kconfig-hardened-check) è uno strumento per verificare le opzioni di hardening della sicurezza del kernel Linux.
Licenza: GPL-3.0.
kernel-hardening-checker supporta la verifica di:
Architetture supportate:
Le raccomandazioni di hardening della sicurezza si basano su:
Ho anche creato la [Mappa di difesa del kernel Linux][4], che è una rappresentazione grafica delle relazioni tra le funzionalità di hardening della sicurezza e le corrispondenti classi di vulnerabilità o tecniche di sfruttamento.
Si prega di notare che la modifica dei parametri di sicurezza del kernel Linux può anche influenzare le prestazioni del sistema e la funzionalità del software nello spazio utente. Pertanto, quando si impostano questi parametri, considerare il modello di minaccia del proprio sistema informativo basato su Linux e testare approfonditamente il suo carico di lavoro tipico.
Ci sono diverse opzioni:
Puoi installare il pacchetto da questo repository Git usando pip:
python3 -m pip install git+https://github.com/a13xp0p0v/kernel-hardening-checker
Se incontri un errore dovuto a un ambiente gestito esternamente, crea un ambiente virtuale usando python3 -m venv.
Puoi installare il pacchetto kernel-hardening-checker tramite il gestore di pacchetti su alcune distribuzioni GNU/Linux. Vedi https://repology.org/project/kernel-hardening-checker/versions
In alternativa, puoi semplicemente eseguire ./bin/kernel-hardening-checker dal repository clonato senza installazione.
$ ./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
## Modalità di output
- nessun argomento `-m` per la modalità di output predefinita (vedi esempio sotto)
- `-m verbose` per stampare informazioni aggiuntive:
- le opzioni di configurazione senza un controllo corrispondente
- i dettagli interni dei controlli complessi con AND/OR, come questo:
```
-------------------------------------------------------------------------------------------
<<< OR >>>
CONFIG_STRICT_DEVMEM |kconfig|cut_attack_surface|defconfig | y
CONFIG_DEVMEM |kconfig|cut_attack_surface| kspp | is not set
-------------------------------------------------------------------------------------------
```
- `-m json` per stampare i risultati in formato JSON (per combinare `kernel-hardening-checker` con altri strumenti)
- `-m show_ok` per mostrare solo i controlli riusciti
- `-m show_fail` per mostrare solo i controlli falliti