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.