A segurança padrão no Linux Os sistemas Linux e Unix usam por padrão, o controle de acesso discricionário (DAC). Isso quer dizer que os usuários têm a capacidade de alterar as permissões em seus próprios arquivos. Um usuário, por exemplo, pode alterar as permissões de acesso em seu diretório pessoal e nada o impedirá de realizar essa ação. Mas deveria haver algum impedimento para essa ação?
Historicamente, o usuário root é onipotente nos sistemas Linux. Quando um usuário comum precisa de acesso a arquivos de um outro usuário do sistema e/ou dispositivos, utiliza-se do root para conceder as permissões necessárias. O grande problema é que qualquer descuido com as credenciais do usuário root pode comprometer um sistema Linux de maneira irreversível. Então, como melhorar a segurança de um sistema Linux?
SELinux!
Para resolver as deficiências do padrão DAC foi criado o padrão MAC (Mandatory Access Control). Nesse padrão, o sistema Linux faz uso de uma política que é definida e corrigida administrativamente.
Ainda que você altere as configurações DAC iniciais, havendo uma política em vigor que impeça que outro usuário/processo acesse seu diretório, você estará seguro. Dessa maneira, os arquivos e processos que são executados no padrão de segurança MAC ficam protegidos por políticas pré-estabelecidas. Por exemplo, ao executar um servidor web, podemos definir regras para esse processo tais como: o servidor web pode acessar apenas o seu arquivo de configuração e escrever seus arquivos de log em arquivos e diretórios específicos do sistema.
Tudo isso faz parte de uma política MAC específica para o servidor web. Caso o servidor web seja invadido e o invasor tente executar qualquer outra ação, como o roubo de senhas do sistema Linux, ele não irá obter sucesso. Sua sessão ficará restrita aos limites definidos pela política MAC do servidor web.
Criado pela Agência de Segurança Nacional dos Estados Unidos (NSA), no ano 2000, como um conjunto de patches para o kernel do Linux, usando Linux Security Modules (LSM), o SELinux ficou disponível nos projetos upstream em 2003. É comum encontrar muitos administradores Linux desativando o SELinux por encontrar dificuldades em sua implantação ou mesmo desconhecer os seus reais benefícios. Entretanto, trata-se de uma ferramenta robusta e importante na ampla estratégia de segurança das empresas. Atualmente o SELinux é parte fundamental nas imagens de containers Linux, garantindo segurança e escalabilidade em plataformas, como o Openshift, da Red Hat.