Eu tenho que configurar um servidor que deve ser o mais seguro possível. Qual aprimoramento de segurança você usaria e por que, SELinux, AppArmor ou grsecurity? Você pode me dar algumas dicas, sugestões, prós / contras para esses três?
ATÉ ONDE SEI:
- SELinux: mais poderoso, mas mais complexo
- AppArmor: configuração / gerenciamento mais simples que o SELinux
- grsecurity: configuração simples devido ao treinamento automático, mais recursos do que apenas controle de acesso
Respostas:
Eu fiz muita pesquisa nesta área. Eu até explorei os conjuntos de regras do AppArmor para MySQL . O AppArmor é a forma mais fraca de separação de processos. A propriedade que estou explorando é que todos os processos têm privilégios de gravação em alguns dos mesmos diretórios, como
/tmp/
. O legal do AppArmor é que ele quebra algumas explorações sem atrapalhar os usuários / administradores. No entanto, o AppArmor tem algumas falhas fundamentais que não serão corrigidas tão cedo.O SELinux é muito seguro, também é muito irritante. Diferentemente do AppAmoror, a maioria dos aplicativos legítimos não será executada até que o SELinux seja reconfigurado. Geralmente, isso resulta na configuração incorreta do administrador do SELinux ou na desativação de tudo isso.
O grsecurity é um pacote muito grande de ferramentas. O que eu mais gosto é o chroot aprimorado do grsecuirty. Isso é ainda mais seguro que o SELinux, embora seja necessário um pouco de habilidade e algum tempo para configurar uma prisão chroot onde SELinux e AppAprmor "simplesmente funcionam".
Existe um quarto sistema, uma máquina virtual. Foram encontradas vulnerabilidades em ambientes de VM que podem permitir que um invasor se "rompa". No entanto, uma VM possui uma separação ainda maior do que um chroot, porque em uma VM você está compartilhando menos recursos entre processos. Os recursos disponíveis para uma VM são virtuais e podem ter pouca ou nenhuma sobreposição entre outras VMs. Isso também se refere à
<buzzword>
" computação em nuvem "</buzzword>
. Em um ambiente em nuvem, você pode ter uma separação muito limpa entre o banco de dados e o aplicativo da Web, o que é importante para a segurança. Talvez também seja possível que uma exploração possua toda a nuvem e todas as VMs em execução nela.fonte
<buzzword>
tag você pode apenas escrever "minha bunda", todo mundo vai saber o que você quer dizer;)Pessoalmente, eu usaria o SELinux porque acabaria tendo como alvo algum sabor do RHEL, que foi configurado de maneira imediata. Há também um conjunto responsivo de mantenedores na Red Hat e muita documentação muito boa disponível sobre como configurar o SELinux. Links úteis abaixo.
fonte