Como Usar o AppArmor no Ubuntu

Você provavelmente já ouviu falar do AppArmor enquanto usava o Ubuntu, mas como não é um aplicativo que aparece no Menu de Aplicativos e não aparece de forma gráfica, alguns podem não saber o que ele faz e por que é essencial para o seu sistema. Em resumo, o AppArmor é um módulo de segurança que restringe programas individuais a um conjunto de arquivos listados e capacidades para que não causem danos ao seu sistema.
Aprenda a diferença entre SELinux e AppArmor para proteger seu sistema Linux.
Índice
- O que é AppArmor?
- Como o AppArmor Funciona
- Verificando o Status do Seu AppArmor
- Encontrando Perfis AppArmor Desativados
- Ativando e Desativando Perfis do AppArmor
- Como é um Perfil do AppArmor?
- Criando Seus Próprios Perfis para Restringir Aplicações
- Parando e Reiniciando o AppArmor
- Perguntas Frequentes
O que é AppArmor?
AppArmor é um sistema de Controle de Acesso Mandatório (MAC) que restringe programas a um conjunto limitado de recursos. Ele limita programas a um conjunto de arquivos, atributos e capacidades de modo que não penetrem profundamente no sistema e causem danos (a menos que seja dada permissão). Em vez do modelo de Controle de Conta de Usuário (UAC) do Windows que dá controle aos usuários, o AppArmor vincula os atributos de controle de acesso ao próprio programa.
Como o AppArmor Funciona
O AppArmor funciona no nível do kernel (consulte estas dicas se você estiver compilando seu próprio kernel) e é carregado durante a inicialização. O AppArmor lida com as permissões através de Perfis: um conjunto de regras que determina o que o programa pode e não pode fazer.
Existem dois modos que os Perfis podem executar: Fiscalização e Reclamação. O modo de Fiscalização é uma aplicação rigorosa da política, que é definida no perfil, e relata tentativas de violação da política. O modo de Reclamação apenas relatará as tentativas de violação da política e não aplicará a política. A maioria dos perfis é carregada em modo de Fiscalização, embora possa haver um bom número de perfis de terceiros carregados no modo de Reclamação também.
Verificando o Status do Seu AppArmor
Se você estiver usando o Ubuntu 7.04 ou superior, o AppArmor está instalado por padrão e carrega quando você inicializa seu computador. Para verificar o status do AppArmor, digite o seguinte comando no terminal:
sudo apparmor_statusA imagem abaixo mostra o que você verá.

No meu sistema, você pode ver que há 36 perfis carregados em modo de Fiscalização.
Encontrando Perfis AppArmor Desativados
O AppArmor possui vários perfis pré-carregados, alguns dos quais estão desativados por padrão. Você pode encontrá-los na pasta “/etc/apparmor.d/disable”. Na versão mais recente do AppArmor, você pode ver que o perfil rsyslogd não está ativado.

Esse perfil está desativado por padrão, pois os usuários costumam fazer alterações de configuração no rsyslogd que o tornam incompatível com o AppArmor.
Dica: aprenda como você pode gerenciar sua máquina Ubuntu remotamente com o Webmin.
Ativando e Desativando Perfis do AppArmor
Embora você possa ter múltiplos perfis carregados no seu sistema, cada perfil pode ser ativado ou desativado individualmente. Por exemplo, você pode ativar o perfil rsyslogd mencionado anteriormente. Siga as instruções abaixo para aprender como.
Abra um terminal e digite:
sudo apt install apparmor-utilsIsso instalará as ferramentas necessárias para executar os comandos subsequentes neste tutorial. Para ativar o perfil, digite:
sudo aa-enforce /etc/apparmor.d/usr.sbin.rsyslogdPara desativá-lo novamente:
sudo ln -s /etc/apparmor.d/usr.sbin.rsyslogd /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.rsyslogdComo é um Perfil do AppArmor?
Enquanto os perfis do AppArmor podem parecer software complicado, na verdade são apenas um arquivo de texto simples com os caminhos dos arquivos indicando quais pastas e diretórios a aplicação pode acessar. Você pode facilmente clicar duas vezes em qualquer perfil na pasta “/etc/apparmor.d” para abri-lo em seu editor de texto.
O perfil Rsyslogd terá a aparência da imagem abaixo.

Criando Seus Próprios Perfis para Restringir Aplicações
O Ubuntu já faz um bom trabalho para protegê-lo, mas se você quiser restringir uma aplicação personalizada que não está protegida pelo Ubuntu, você pode criar seu próprio perfil do AppArmor para bloquear a aplicação. Isso é particularmente útil em um servidor onde aplicações podem estar sendo executadas em segundo plano.
Nota: antes de criar seus próprios perfis, é melhor primeiro investigar a biblioteca de perfis existentes do AppArmor para verificar se o perfil da sua aplicação está disponível. Você também pode instalar o apparmor-profiles para obter uma lista extra de perfis.
Execute o seguinte comando para iniciar o perfil:
sudo aa-genprof /caminho/para/aplicacao/caminho/para/aplicacao é o caminho do arquivo da aplicação que você deseja perfilhar. A pasta padrão das aplicações é “/usr/bin”, mas pode ser diferente dependendo da aplicação e do método de instalação, como “/snap/bin”.

Deixe o terminal rodando e inicie a aplicação que você vai perfilar. Para este exemplo, estou usando o Krita. Use a aplicação como normalmente faria.
Para cada ação que você realizar na aplicação, volte ao terminal e pressione Shift + S para que ele escaneie por mudanças.

A partir daqui, você pode ver o caminho que a aplicação está acessando e a gravidade da ação. Escolha “Permitir (A)” ou “Negar (D)” a ação.
Continue fazendo isso para o restante das ações realizadas na aplicação. Para obter o melhor resultado, é melhor que você planeje sua lista de ações antes de começar a perfilar.
Por fim, quando terminar, pressione Shift + F para finalizar a perfilação e Shift + S para salvar o perfil.
Uma vez criado, o perfil será salvo na pasta “/etc/apparmor.d” e será carregado em modo de Fiscalização.
Editar Perfis
Para editar seu perfil recém-criado, use o seguinte comando:
sudo aa-logprof /etc/apparmor.d/Neste caso, deve ser o nome do novo perfil que foi criado quando você usou o comando aa-genprof anteriormente.
O AppArmor escaneará as entradas do log e permitirá que você faça alterações no perfil.
Parando e Reiniciando o AppArmor
Se, por algum motivo, você precisar parar o AppArmor, pode fazê-lo facilmente com:
sudo service apparmor stopVocê pode confirmar que foi parado verificando o status com este comando:
systemctl status apparmor
E para iniciar o AppArmor novamente:
sudo service apparmor restartSe você verificar o status novamente, verá uma luz verde indicando que o AppArmor está em execução.

Se você estiver executando seu próprio servidor, confira estas dicas para proteger seu servidor Linux.
Perguntas Frequentes
Por que o AppArmor desativa o rsyslog por padrão?
O rsyslog é um software configurável que lida com o registro do sistema, incluindo receber, transformar e entregar mensagens de log a diferentes destinos. Seu perfil AppArmor, “usr.sbin.rsyslogd”, está incluído, mas desativado por padrão.
De acordo com o engenheiro da Canonical, Jamie Strandboge, isso acontece porque o rsyslog é tão altamente configurável que o perfil pode não funcionar corretamente.
Qual é a diferença entre as versões 2 e 3 do AppArmor?
O AppArmor 3.x é a versão mais recente do AppArmor e foi lançada em 1º de outubro de 2020, sendo uma grande expansão. O AppArmor 2.x é muito antigo, tendo sido lançado por volta de 2007. Parece que não haverá mais desenvolvimento ativo na série 2.x. A versão mais recente, 2.13.6, foi lançada em dezembro de 2020, e o AppArmor 2.14 é listado como “cancelado” no site de desenvolvimento. O AppArmor 3.0.7 foi lançado em 9 de agosto de 2022.
Se eu tiver AppArmor, ainda preciso de um antivírus?
Sim, você ainda precisa de um programa antivírus mesmo que tenha o AppArmor em execução. Os dois realizam operações completamente diferentes e se complementam. É bom ter um antivírus no Ubuntu, mesmo que os sistemas Linux sejam menos visados pelos criadores de malware.
O que são blobs binários e por que eles representam um risco à segurança? Descubra a resposta e como o Linux-Libre pode oferecer melhor proteção do que o Linux comum.
Todas as capturas de tela por Brandon Li.