SELinux vs AppArmor: Quais são as diferenças e qual você deve usar?

Selinux Vs Apparmor
⏱️ 8 min read

SELinux (abreviação de Security Enhanced Linux) é um módulo de segurança do kernel Linux que é usado para aumentar a segurança em distribuições Linux, fortalecendo o acesso a arquivos e processos. Outro módulo de segurança do kernel Linux semelhante usado para essa finalidade é o AppArmor. Há muito interesse nesses dois módulos por causa de suas funções sobrepostas no controle de acesso para sistemas operacionais Linux. Este artigo aborda as diferenças entre o SELinux e o AppArmor, permitindo que os usuários determinem qual desses módulos é melhor para suas necessidades por meio de uma comparação de recursos e facilidade de uso.

O que é o SELinux?

Proteger servidores com SELinux acaba com a dependência de acesso estilo DAC baseado em usuários e funções reais do sistema. Em vez disso, ele introduz um sistema de contexto de três strings para cada processo ou usuário do sistema. As três cordas, ou seja, nome de usuário, Funçãoe domíniopermitem mais flexibilidade e controle sobre o acesso ao sistema.

Um processo só pode ser permitido em um domínio específico através da configuração de política no SELinux. A única exceção é quando um processo é lançado em um contexto explicitamente definido por meio do runcon comando. Entretanto, se existirem políticas conflitantes para tal processo já em configuração, o SELinux pode negar tal transição para outro contexto. Isso garante que o SELinux funcione com o princípio de negação por padrão. Qualquer processo ou usuário precisa ter uma configuração de acesso explícita para um arquivo ou recurso do sistema antes de acessá-lo.

Operações e comandos do SELinux

Como uma extensão de comandos utilitários comuns no terminal, o SELinux fornece -Z switch, que permite a exibição do contexto de segurança dos arquivos e processos. Comandos como ps e ls beneficie-se deste switch para depurar rapidamente ou identificar erros na configuração. Abaixo, uma captura de tela do ls comando é mostrado.

ls -Z
Selinux vs Apparmor 1 1

A primeira parte de cada linha de saída é o domínio, a segunda é o tipo de objeto e a terceira é o nome de usuário na configuração do SELinux. Dessa forma, o SELinux pode fornecer controle total sobre o acesso a cada arquivo e processo. Os comandos a seguir são usados ​​para manipular o contexto de arquivos e diretórios.

Comando Uso
chcon -t Alterar o contexto de um arquivo de destino
chcon -R Alterar o contexto de um diretório de destino (esta alteração é recursiva)
restorecon -v Restaurar o contexto de um arquivo para o padrão
restorecon -v -R Restaurar o contexto de um diretório para o padrão (esta alteração é recursiva)
semanage fcontext -a -t Defina o contexto padrão de um diretório para ser o que o REGEX avalia

Por exemplo, se houver necessidade de alterar o contexto de todos os arquivos do diretório “/srv/web” para “httpd_sys_content_t”, o seguinte comando pode ser utilizado:

sudo semanage fcontext -a -t httpd_sys_content_t “/srv/web(/.*)
Selinux vs Apparmor 2 1

Como esse contexto visto na captura de tela já está definido para o diretório “/srv/web” recursivamente, o SELinux exibe uma mensagem para informar o usuário. Se não for definido, um sucesso semanage operação não mostra nenhuma saída.

Os administradores e usuários do sistema podem habilitar, desabilitar ou tornar o SELinux permissível através do uso do setenforce comando. Da mesma forma, para verificar qual é o status de aplicação no momento, os usuários podem usar o getenforce comando como mostrado na captura de tela abaixo.

Selinux vs Apparmor 3

O que é AppArmor?

AppArmor é suportado em desenvolvimento pela Canonical, a empresa-mãe que desenvolve a distribuição Ubuntu do Linux. O AppArmor pretende ser mais simples e fácil de usar que o SELinux e seus perfis são criados no diretório “/etc/apparmor.d/”. Um perfil do AppArmor para o processo “/usr/bin/man” é mostrado na captura de tela abaixo.

Selinux vs Apparmor 4

Operações e comandos do AppArmor

Para ver o status do Apparmor, o aa-status comando é usado. Um exemplo de saída do comando é mostrado abaixo.

Selinux vs Apparmor 5

Os perfis do AppArmor podem ser listados pelo conteúdo do diretório de “/etc/apparmor.d/”, conforme mostrado abaixo.

Selinux vs Apparmor 6

Da lista de perfis acima, se um usuário quiser desabilitar o perfil usr.bin.man, ele pode usar o seguinte comando:

sudo aa-complain /usr/bin/man

Observe que um perfil desabilitado está localizado no subdiretório desabilitar do diretório principal de perfis do AppArmor. Para reativar um perfil que foi desativado, o seguinte comando é usado:

sudo aa-enforce /usr/bin/man

Facilidade de uso entre SELinux e AppArmor

O AppArmor trabalha com caminhos de arquivo no sistema de arquivos em vez de trabalhar com strings para cada arquivo como o SELinux faz. Uma vantagem do AppArmor é que as operações de leitura, gravação, bloqueio e outras operações de arquivo são mais fáceis de configurar do que no SELinux. Por outro lado, enquanto o SELinux fornece mais recursos para controle de acesso a arquivos, os recursos são implementados em um nível muito mais baixo no sistema.

Portanto, os usuários precisam aprender a usar mknod, soquetes de rede e outras operações do sistema para trabalhar com o SELinux. Para todos que não são administradores de sistema, é muito mais fácil aprender a usar o AppArmor.

O AppArmor também fornece um modo de aprendizado que é usado para registrar violações de controle de acesso. Esse modo não restringe ou impede o acesso em caso de violação, mas coleta dados ao longo do tempo para permitir a criação de um perfil AppArmor separado com base no comportamento dos programas para cada infração de acesso registrada. Não há modo semelhante disponível no SELinux.

perguntas frequentes

Quais distribuições Linux são pré-instaladas com SELinux e AppArmor?

Todas as distribuições Linux sob o guarda-chuva do RedHat vêm pré-instaladas ou oferecem uma configuração do SELinux, incluindo RHEL, CentOS e Fedora. AppArmor é pré-instalado no Debian, Ubuntu, suas distribuições derivadas, SUSE Enterprise Server e distribuições OpenSUSE.

Qual módulo de segurança é o melhor para um novo usuário do Linux?

A maioria das principais distribuições Linux vem com qualquer um dos módulos de segurança instalados por padrão. Portanto, é improvável que um novo usuário do Linux não tenha um módulo de segurança pronto para uso. A comparação de recursos e facilidade de uso entre o SELinux e o AppArmor mostram que, para usuários avançados ou administradores de sistema que desejam um controle mais preciso sobre seu sistema operacional, o SELinux é o melhor, mas para todos os outros, o AppArmor é a melhor escolha.

O SELinux e o AppArmor são alternativas a firewalls, antivírus e outros softwares de segurança de usuários ou dados?

SELinux e AppArmor não são alternativas a antivírus ou firewalls bem configurados para segurança do sistema e integridade de dados. Portanto, é recomendável complementar seu sistema com um programa antivírus para melhor proteção dos dados.

Créditos da imagem: Página Wiki do AppArmor e Página Wiki do SELinux. Todas as capturas de tela por Zeeman Memon.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Você pode gostar...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x