Uma introdução ao AppArmor

Uma introdução ao AppArmor

O AppArmor, usado por padrão no OpenSUSE é o principal “concorrente” do SELinux, que é usado do Fedora, CentOS e em algumas outras distribuições. Ambos desempenham a mesma função: monitorar os aplicativos em execução, restringindo os privilégios às operações necessárias para cada um executar seu trabalho e bloqueando operações potencialmente perigosas, que possam colocar em risco a segurança do sistema. A idéia é tornar o sistema mais seguro, evitando que um invasor que obtenha acesso, explorando alguma falha em um aplicativo, obtenha controle total sobre o sistema, além de oferecer uma camada de proteção contra brechas de segurança ainda não identificadas, como no caso dos zero-day exploits, que são brechas divulgadas e exploradas antes que uma correção esteja disponível.

Apesar disso, o SELinux e o AppArmor trabalham de forma bastante diferente, seguindo conceitos quase que opostos em termos de usabilidade. O SELinux foi desenvolvido com o intuito de ser usado em servidores, priorizando a segurança e não a facilidade de uso (já que a idéia é que o sistema seja configurado por um administrador experiente). O AppArmor também é bastante seguro, mas foi desenvolvido com o propósito de ser mais intuitivo e simples de usar, o que nos leva os módulos do Yast:

A configuração do AppArmor é baseada no uso de profiles individuais para cada aplicativo protegido. O AppArmor protege por padrão apenas alguns utilitários básicos de rede, como o ping e o traceroute (você pode ver os perfis ativos usando o “Editar Perfil”), mas você pode criar profiles para outros aplicativos usando o “Assistente para Adicionar Perfil” ou o “Adicionar Perfil Manualmente”.

A opção manual exige que você forneça vários detalhes sobre os arquivos usados pelo aplicativo, o que exigiria uma boa dose de pesquisa, mas o wizard é relativamente simples de usar. O primeiro passo é descobrir o caminho para o executável do aplicativo, o que você pode fazer rapidamente usando o comando “which”, como em:

# which firefox

/usr/bin/firefox

A localização do executável é justamente a primeira pergunta que é feita pelo assistente:

A tela seguinte pede que você abra o aplicativo que será protegido e use-o como faria normalmente. É importante que você abra o aplicativo depois de iniciar o assistente (ou seja, que ele esteja fechado ao clicar na opção). Ao criar um profile para um serviço de rede, como o Apache ou o Squid, pare o serviço antes de abrir o assistente (/etc/init.d/serviço stop) e execute-o novamente depois de abrir o assistente:

Este é um modo de treinamento, que permite que o assistente monitore as ações executadas pelo aplicativo, aprendendo sobre seu comportamento, os arquivos e bibliotecas utilizados e assim por diante. No caso do Firefox, por exemplo, você navegaria nos sites que costuma acessar, visualizaria algumas animações em flash, acessaria algum site que usasse o plugin java e assim por diante. Durante o treinamento, as operações consideradas suspeitas são logadas e ficam disponíveis no “Explorar eventos do AppArmor” para que você possa autorizá-las. Ao terminar, clique no “Concluir” para que o profile seja finalmente criado.

No caso do Firefox, o “/usr/bin/firefox” é um link que aponta para o “/usr/lib/firefox/firefox.sh”. No screenshot anterior você pode notar que o assistente levou isso em conta, criando o profile para o executável real, e não para o link.

Outro aliado importante é o “Assistente de Atualização de Perfil”, que vasculha os logs do sistema em busca de eventos relacionados ao AppArmor, exibindo os eventos e pedindo sua confirmação sobre a autorização ou não de ocorrências futuras de cada um. Os profiles são ajustados automaticamente a partir das suas respostas, permitindo que aprenda como tratar o aplicativo.

Ao criar um perfil para um aplicativos complexo, como o Firefox, você receberá um grande volume de perguntas das primeiras vezes que executar o assistente de atualização, mas logo elas diminuem, permitindo que você diferencie o que são operações normais de potenciais abusos.

O Firefox é um bom candidato para ganhar um perfil no AppArmor, poi hoje em dia os navegadores são os aplicativos que possuem mais brechas de segurança e são vítimas do maior número de ataques em qualquer desktop. Diferente de outros aplicativos, que operam dentro da tranqüilidade da rede local, o navegador é quem dá a cara a tapa para ir buscar as páginas e arquivos na grande rede. A partir daí, você pode ir adicionando perfis para mais aplicativos e ir assim blindando progressivamente o sistema.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X