Como Usar o AppArmor no Ubuntu

Ubuntu Apparmor Featured

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_status

A imagem abaixo mostra o que você verá.

Ubuntu Apparmor Sudo Status

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.

Ubuntu Apparmor Disable Folder Usr Sbin Rsyslogd

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-utils

Isso 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.rsyslogd

Para 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.rsyslogd

Como é 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.

Ubuntu Apparmor Rsyslogd Profile Text View

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”.

Ubuntu Apparmor Aa Genprof Snap Bin Krita

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.

Ubuntu Apparmor Aa Genprof Shift S

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 stop

Você pode confirmar que foi parado verificando o status com este comando:

systemctl status apparmor

Ubuntu Apparmor Disabled

E para iniciar o AppArmor novamente:

sudo service apparmor restart

Se você verificar o status novamente, verá uma luz verde indicando que o AppArmor está em execução.

Ubuntu Apparmor Enabled

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.