
Uma ferramenta para verificar as opções de hardening de segurança do kernel Linux
(anteriormente kconfig-hardened-check)
Existem muitas opções de hardening de segurança para o kernel Linux. Muitas delas não estão habilitadas pelas principais distribuições. Temos que habilitar essas opções nós mesmos para tornar nossos sistemas mais seguros.
Mas ninguém gosta de verificar configurações manualmente. Então deixe os computadores fazerem o trabalho deles!
kernel-hardening-checker (anteriormente kconfig-hardened-check) é uma ferramenta para verificar as opções de hardening de segurança do kernel Linux.
Licença: GPL-3.0.
kernel-hardening-checker suporta verificação:
Arquiteturas suportadas:
As recomendações de hardening de segurança são baseadas em:
Eu também criei o [Linux Kernel Defence Map][4], que é uma representação gráfica das relações entre os recursos de hardening de segurança e as classes de vulnerabilidade ou técnicas de exploração correspondentes.
Por favor, note que alterar os parâmetros de segurança do kernel Linux também pode afetar o desempenho do sistema e a funcionalidade do software em espaço de usuário. Portanto, ao definir esses parâmetros, considere o modelo de ameaça do seu sistema de informação baseado em Linux e teste exaustivamente sua carga de trabalho típica.
Existem várias opções:
Você pode instalar o pacote a partir deste repositório Git usando pip:
python3 -m pip install git+https://github.com/a13xp0p0v/kernel-hardening-checker
Se encontrar um erro devido a um ambiente gerenciado externamente, crie um ambiente virtual usando python3 -m venv.
Você pode instalar o pacote kernel-hardening-checker através do gerenciador de pacotes em algumas distribuições GNU/Linux. Veja https://repology.org/project/kernel-hardening-checker/versions
Alternativamente, você pode simplesmente executar ./bin/kernel-hardening-checker a partir do repositório clonado sem instalação.
$ ./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
## Modos de saída
- sem argumento `-m` para o modo de saída padrão (veja o exemplo abaixo)
- `-m verbose` para imprimir informações adicionais:
- as opções de configuração sem uma verificação correspondente
- os detalhes internos de verificações complexas com AND/OR, como este:
```
-------------------------------------------------------------------------------------------
<<< OR >>>
CONFIG_STRICT_DEVMEM |kconfig|cut_attack_surface|defconfig | y
CONFIG_DEVMEM |kconfig|cut_attack_surface| kspp | is not set
-------------------------------------------------------------------------------------------
```
- `-m json` para imprimir os resultados em formato JSON (para combinar `kernel-hardening-checker` com outras ferramentas)
- `-m show_ok` para mostrar apenas verificações bem-sucedidas
- `-m show_fail` para mostrar apenas verificações falhadas