Como eu respondi à outra pergunta, uma grande diferença entre o AppArmor e o SELinux é a rotulagem. O AppArmor é baseado em caminhos, enquanto o SELinux adiciona rótulo adicional a todos os objetos. É por isso que a reclassificação automática é feita na primeira inicialização para aplicar os rótulos de arquivo padrão. Caso contrário, não seria possível escrever diretivas significativas para o acesso a arquivos, pois todos os arquivos seriam considerados iguais (devido a ter os mesmos rótulos).
O AppArmor e o SELinux possuem domínios não delimitados, que não restringem os processos. Ambos os sistemas também possuem o modo de reclamação (chamado de domínio permissivo no SELinux), que registra apenas violações de políticas, mas não impõe a política. Tanto o AppArmor quanto o SELinux são ativados em todo o sistema e é possível em ambos os sistemas executar processos que não são restritos pelo módulo de segurança.
Quando se trata de geração automática de políticas, ambos os sistemas possuem ferramentas e mecanismos semelhantes.
Os perfis do AppArmor podem ser gerados usando aa-genprof
e < href="https://manpages.debian.org/unstable/apparmor-utils/aa-logprof.8.en.html"> aa-logprof
. aa-genprof
cria um perfil básico e o define no modo de reclamação. Depois de executar o programa, as regras podem ser geradas a partir de arquivos de log.
As ferramentas do SELinux são policygentool
e audit2allow
. A principal diferença é a rotulagem do arquivo, mas policygentool
pode criar automaticamente tipos de arquivo para dados do programa (var), arquivos de configuração e arquivos de log. A política pode então ser carregada no modo permissivo e as regras podem ser geradas a partir de logs usando audit2allow
.