A proteção do kernel do Linux é uma área de assunto muito complexa. Inclui um grande número de conceitos complexamente inter-relacionados e seria útil ter sua representação gráfica. Portanto, desenvolvi
um mapa protetor de kernel do Linux . Aqui está a lenda:

Portanto, o mapa contém os seguintes objetos:
- Classes de vulnerabilidade
- técnicas para sua operação na condução de ataques;
- mecanismos de detecção de erros;
- tecnologia de proteção.
Por sua vez, as principais tecnologias de proteção são heterogêneas. Alguns fazem parte do kernel vanilla Linux, outros são enviados separadamente por vários motivos (por exemplo, há recursos de segurança comercial). Existem mecanismos de proteção do kernel que requerem suporte de hardware.
Portanto, o tópico de segurança do kernel Linux é bastante extenso, e o mapa desenvolvido ajuda em seu estudo e análise. Cada linha que conecta os objetos no mapa indica sua influência mútua, cuja essência deve ser esclarecida na documentação. Este princípio pode ser ilustrado em um fragmento do mapa geral. A Figura 1 mostra os recursos de segurança da tecnologia STACKLEAK.
Diagrama 1. Recursos de segurança da tecnologia STACKLEAKPAX_MEMORY_STACKLEAK é uma tecnologia comercial de proteção de kernel do Linux que neutraliza a exploração dos seguintes tipos de vulnerabilidades: estouro de pilha em profundidade, uso de variáveis não inicializadas e vazamento de informações no espaço do usuário. O mapa contém identificadores para essas classes de vulnerabilidades (CWE, Common Weakness Enumeration).
A tecnologia
STACKLEAK foi introduzida no kernel vanilla do Linux, que é refletido no diagrama. Há também um mecanismo de depuração KMSAN que permite detectar, ao testar o kernel, o uso de variáveis não inicializadas e vazamento de informações no espaço do usuário.
Vale ressaltar que esta placa não trata da questão de reduzir o perímetro de ataque do núcleo. De fato, desabilitar quase qualquer funcionalidade que reduza o tamanho do executável também reduz o perímetro do ataque. E neste projeto, o foco principal está nas ferramentas de segurança que fornecem autodefesa do kernel Linux contra a exploração de vulnerabilidades.
A Figura 2 mostra o mapa completo da versão 5.1 do kernel (clicando na imagem, o tamanho original será aberto).
Diagrama 2. Mapa de Recursos de Segurança do Kernel Linux v5.1O mapa está em constante evolução, precisa ser atualizado pelo menos a cada versão do kernel. Portanto, é conveniente ter a fonte em forma de texto e mantê-la no sistema de controle de versão. Além disso, para não precisar organizar manualmente os objetos com um número mínimo de interseções de conexões, a linguagem DOT foi escolhida para criar o mapa e o esquema é gerado automaticamente pelo pacote GraphViz usando o seguinte comando:
dot -Tsvg linux-kernel-defence-map.dot -o linux-kernel-defence-map.svg
O Linux Kernel Security Card é um projeto de código aberto licenciado sob a GPL v3.0. O repositório está localizado
no GitHub . Este projeto é extremamente útil para:
- monitorando o estado atual da segurança do kernel,
- desenvolvendo modelos de ameaças de IP baseados no GNU / Linux,
- seleção de remédios apropriados.
Além disso, o mapa de recursos de segurança do kernel Linux foi projetado para ajudá-lo a aprender sobre código fonte, documentação e outras fontes de informações sobre este tópico:
E para automatizar a verificação das opções de segurança no arquivo de configuração do kernel Linux, criei o projeto
kconfig-hardened-check , que está se desenvolvendo ativamente graças ao trabalho colaborativo aberto. O utilitário suporta arquiteturas x86_64, arm64, x86_32 e arm.
Convido você a participar do desenvolvimento
do mapa de recursos de segurança do kernel Linux e do
utilitário kconfig-hardened-check .