wake-up-neo.net

O que é apparmor?

Eu ouço muita conversa sobre apparmor, eu quero saber o seguinte:

  • O que é apparmor?
  • Como funciona o apparmor?
93
Alvar

O que é isso

Apparmor é um sistema de controle de acesso obrigatório (ou MAC). Ele usa aprimoramentos de kernel do LSM para restringir programas a determinados recursos. O AppArmor faz isso com perfis carregados no kernel quando o sistema é iniciado. Apparmor tem dois tipos de modos de perfil, fiscalização e reclamação. Perfis no modo de execução reforçam as regras do perfil e relatam tentativas de violação em syslog ou auditd. Os perfis no modo de reclamação não impõem nenhuma regra de perfil, apenas tentativas de violação de log.

No Ubuntu, o Apparmor é instalado por padrão. Ele confina aplicativos a perfis para determinar quais arquivos e permissões que um programa precisa acessar. Alguns aplicativos virão com suas próprias propriedades e mais podem ser encontrados no pacote apparmor-profiles.

Você pode instalar apparmor-profiles executando Sudo apt-get install apparmor-profiles.

Eu encontrei um bom exemplo do Apparmor nos fóruns do Ubuntu que reescrevi para este post.

O Apparmor é uma estrutura de segurança que impede que aplicativos se tornem malignos. Por exemplo: Se eu rodar o Firefox e visitar um site ruim que tenta instalar um malware que excluirá a minha pasta home, o Apparmor tem limites no Firefox que o impedem de fazer qualquer coisa que eu não queira (como acessar minha música, documentos, etc) . Dessa forma, mesmo que seu aplicativo seja comprometido, nenhum dano pode ser causado.

Como funciona

O pacote apparmor-utils contém ferramentas de linha de comando para configurar o Apparmor. Usando-o você pode mudar o modo de execução do Apparmor, encontrar o status de um perfil, criar novos perfis, etc.

Estes são os comandos mais comuns:

Nota: Os perfis são armazenados em /etc/apparmor.d/

  • Você pode verificar o status do Apparmor com Sudo apparmor_status. Você obterá uma lista de todos os perfis * carregados, todos os perfis no modo de imposição, todos os perfis no modo de reclamação, quais processos são definidos na aplicação/reclamação, etc.
  • Para colocar um perfil no modo reclamar você usa Sudo aa-complain /path/to/bin, onde /path/to/bin é a pasta bin dos programas. Por exemplo, executando: Sudo aa-complain /usr/bin/firefox colocará o Firefox no modo de reclamação.
  • Você usa Sudo aa-enforce /path/to/bin para impor um perfil de programas.
  • Você pode carregar todos os perfis em modos de reclamação/imposição com Sudo aa-complain /etc/apparmor.d/* e Sudo aa-enforce.d/* respectivamente.

Para carregar um perfil no kernel, você usaria apparmor_parser. Você pode recarregar perfis usando o parâmetro -r.

  • Para carregar um perfil use: cat /etc/apparmor.d/profile.name | Sudo apparmor_parser -a, que efetivamente imprime o conteúdo de profile.name no parser do Apparmor.
  • Para recarregar um perfil, use o parâmetro -r, assim: cat /etc/apparmor.d/profile.name | Sudo apparmor_parser -r
  • Para recarregar todos os perfis do Apparmor use: Sudo service apparmor reload

Para desabilitar um perfil você liga a /etc/apparmor.d/disable/ usando ln assim: Sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ então executa: Sudo apparmor_parser -R /etc/apparmor.d/profile.name.

Nota: Não confunda apparmor_parser -r com apparmor_parser -R NÃO SÃO A MESMA COISA!

  • Para reativar um perfil, remova o link simbólico para ele em /etc/apparmor.d/disable/ e carregue-o usando o parâmetro -a. Sudo rm /etc/apparmor.d/disable/profile.namecat /etc/apparmor.d/profile.name | Sudo apparmor_parser -a
  • Você pode desativar o Apparmor com Sudo service apparmor stop e remover o módulo do kernel usando Sudo update-rc.d -f apparmor defaults
  • Inicie o Apparmor com Sudo service apparmor start e carregue módulos do kernel com Sudo update-rc.d apparmor defaults

Perfis

Os perfis são armazenados em /etc/apparmor.d/ e são nomeados após o caminho completo para o executável que eles criam, substituindo '/' por '.'. Por exemplo, /etc/apparmor.d/bin.ping é o perfil de ping em /bin.

Existem dois tipos principais de entradas usadas nos perfis:

  1. Entradas de caminho determinam quais arquivos um aplicativo pode acessar.

  2. As entradas de capacidade determinam quais privilégios um processo pode usar.

Vamos ver o perfil de ping, localizado em etc/apparmor.d/bin.ping, como exemplo.

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>

  capability net_raw,
  capability setuid,
  network inet raw,

  /bin/ping mixr,
  /etc/modules.conf r,
}  

#include <tunables/global> Inclui o arquivo global no diretório tunables, isso permite que instruções pertencentes a múltiplos aplicativos sejam colocadas em um arquivo comum.

/bin/ping flags=(complain)sets o caminho para o programa de perfil e define o modo para reclamar.

capability net_raw permite que o aplicativo acesse o recurso CAP_NET_RAW Posix.1e.

/bin/ping mixr permite que o aplicativo leia e execute o acesso ao arquivo.

/etc/modules.conf r, O r dá ao aplicativo read privilégios para /etc/modules.conf

Nota: Depois de criar/editar um perfil, você precisa recarregar o perfil para que as alterações entrem em vigor .

Aqui está uma lista de permissões que você pode usar:

  • r - ler
  • w - write
  • ux - execução irrestrita
  • Ux - Unconstrained Execute - esfrega o ambiente
  • px - Execução de perfil discreto
  • Px - Perfil discreto execute - esfregue o ambiente
  • ix - Herdar executar
  • m - permite PROT_EXEC com mmap(2) chamadas
  • l - link

Fontes

90
Seth

O AppArmor é um sistema de Controle de Acesso Obrigatório (MAC) que é um aprimoramento do kernel (LSM) para confinar programas a um conjunto limitado de recursos. O modelo de segurança do AppArmor é vincular os atributos de controle de acesso aos programas em vez de aos usuários. O confinamento do AppArmor é fornecido através de perfis carregados no kernel, geralmente na inicialização. Os perfis do AppArmor podem estar em um dos dois modos: imposição e reclamação. Os perfis carregados no modo de imposição resultarão na imposição da política definida no perfil, bem como no relato de tentativas de violações da política (via syslog ou auditd). Os perfis no modo de reclamação não aplicarão a política, mas, em vez disso, denunciarão tentativas de violação de política.

O AppArmor é diferente de alguns outros sistemas MAC no Linux, pois é baseado em caminho, permite a mistura de perfis de modo de execução e reclamação, usa arquivos para facilitar o desenvolvimento e tem uma barreira muito menor à entrada do que outros sistemas MAC populares.

O AppArmor é uma tecnologia estabelecida vista pela primeira vez no Immunix e posteriormente integrada ao Ubuntu, Novell/SUSE e Mandriva. A funcionalidade principal do AppArmor está no kernel Linux da linha principal a partir de 2.6.36; está em andamento o trabalho do AppArmor, Ubuntu e outros desenvolvedores para mesclar funcionalidades adicionais do AppArmor no kernel da linha principal.

Eu tenho alguns Links mais úteis para você: Wiki.Ubuntu.combuntuforums.org

Guias do Apparmor para buntu 12.04 & buntu 12.1

Espero que isso ajude você.

6
rɑːdʒɑ

Aqui está uma citação do Apparmor wiki :

O AppArmor é um sistema de segurança de aplicativos Linux eficaz e fácil de usar. O AppArmor protege proativamente o sistema operacional e os aplicativos contra ameaças externas ou internas, até mesmo ataques de dia zero, reforçando o bom comportamento e evitando que até mesmo falhas de aplicativos desconhecidos sejam exploradas. As políticas de segurança do AppArmor definem completamente quais recursos do sistema os aplicativos individuais podem acessar e com quais privilégios. Várias políticas padrão estão incluídas no AppArmor e, usando uma combinação de análise estática avançada e ferramentas baseadas em aprendizado, as políticas do AppArmor para aplicativos até mesmo complexos podem ser implantadas com êxito em questão de horas.

3
Adeline Dale