O que é apparmor?

89

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

  • O que é apparmor?
  • Como funciona o apparmor?
por Alvar 05.01.2013 / 03:09
fonte

3 respostas

86

O que é

O 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. Os perfis no modo de imposição impõem 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 os aplicativos aos 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 .

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

  

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á 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. Ao usá-lo, você pode alterar 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 , use sudo aa-complain /path/to/bin , em que /path/to/bin é a pasta bin dos programas. Por exemplo, em execução: 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 os 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 analisador 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 desativar um perfil, vincule-o a /etc/apparmor.d/disable/ usando ln da seguinte forma: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ , em seguida, execute: 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.name cat /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 os 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 para 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
  3. Capability 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 , o que permite que instruções pertencentes a vários aplicativos sejam colocadas em um arquivo comum.

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

capability net_raw permite que o aplicativo acesse a capacidade 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 fornece os privilégios de leitura do aplicativo 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 - leia

  • w - escreva

  • ux - Execução sem restrições

  • Ux - Executar sem restrições - esfregue o ambiente

  • px - Perfil discreto executado

  • Px - Perfil discreto execute - esfregue o ambiente

  • ix - herda a execução

  • m - permite PROT_EXEC com mmap(2) chamadas

  • l - link

FONTES:

link

link

link

link

    
por Seth 05.01.2013 / 04:17
fonte
6
  

O AppArmor é um sistema de Controle de Acesso Obrigatório (MAC) que é um 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   programas ao invés de usuários. O confinamento AppArmor é fornecido via   perfis carregados no kernel, normalmente na inicialização. Perfis de pessoas chamadas AppArmor   pode estar em um dos dois modos: execução e reclamação. Perfis carregados   no modo de execução resultará na aplicação da política definida   no perfil, bem como relatar tentativas de violação de políticas   via syslog ou auditd). Os perfis no modo de reclamação não serão aplicados   política, mas sim denunciar tentativas de violação de políticas.

     

O AppArmor é diferente de alguns outros sistemas MAC no Linux em que   é baseado em caminho, permite a mistura do modo de aplicação e reclamação   perfis, usos incluem arquivos para facilitar o desenvolvimento e tem um   barreira à entrada do que outros sistemas MAC populares.

     

O AppArmor é uma tecnologia estabelecida vista pela primeira vez na Immunix e, mais tarde   integrado ao Ubuntu, Novell / SUSE e Mandriva. Core AppArmor   a funcionalidade está no kernel Linux da linha principal a partir de 2.6.36;   trabalho está em andamento pelo AppArmor, Ubuntu e outros desenvolvedores para mesclar   funcionalidade adicional do AppArmor no kernel da linha principal.

Eu tenho alguns Links Mais úteis para você: Wiki.Ubuntu.com Ubuntuforums.org

Guias do Apparmor para Ubuntu 12.04 & amp; Ubuntu 12.10

Espero que isso ajude você.

    
por Ten-Coin 05.01.2013 / 04:13
fonte
3

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

  

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

    
por Adeline Dale 09.01.2013 / 08:09
fonte