Respostas:
O Apparmor é um sistema de controle de acesso obrigatório (ou MAC). Ele usa aprimoramentos do kernel LSM para restringir os programas a determinados recursos. O AppArmor faz isso com perfis carregados no kernel quando o sistema é iniciado. O Apparmor tem dois tipos de modos de perfil: imposição e reclamação. Os perfis no modo de imposição aplicam as regras desse 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 restringe 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 apparmor-profiles
pacote.
Você pode instalar apparmor-profiles
executando sudo apt-get install apparmor-profiles
.
Encontrei um bom exemplo de Apparmor nos fóruns do Ubuntu que reescrevi para este post.
Apparmor é uma estrutura de segurança que impede que os aplicativos se tornem mal. Por exemplo: Se eu executo o Firefox e visito um site ruim que tenta instalar malware que exclui minha
home
pasta, o Apparmor tem limites no Firefox, impedindo-o de fazer o que eu não quero (como acessar minhas músicas, documentos, etc.). Dessa forma, mesmo se seu aplicativo estiver comprometido, nenhum dano poderá ser causado.
O apparmor-utils
pacote contém ferramentas de linha de comando para configurar o Apparmor. Com ele, 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/
sudo apparmor_status
. Você receberá 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 imposição / reclamação, etc. sudo aa-complain /path/to/bin
, onde /path/to/bin
é a programas bin
pasta. Por exemplo, executando: sudo aa-complain /usr/bin/firefox
colocará o Firefox no modo de reclamação.sudo aa-enforce /path/to/bin
para impor um perfil de programas. 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 -r
parâmetro
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
que efetivamente imprime o conteúdo profile.name
no analisador do Apparmor.-r
parâmetro da seguinte maneira:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
sudo service apparmor reload
Para desativar um perfil que você ligar -lo para /etc/apparmor.d/disable/
usar ln
assim: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/
depois executar: sudo apparmor_parser -R /etc/apparmor.d/profile.name
.
Nota: Não confundaapparmor_parser -r
comapparmor_parser -R
ELES NÃO SÃO A MESMA COISA!
/etc/apparmor.d/disable/
e carregue-o usando o -a
parâmetrosudo rm /etc/apparmor.d/disable/profile.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
sudo service apparmor stop
e remover o módulo do kernel usandosudo update-rc.d -f apparmor defaults
sudo service apparmor start
e carregue os módulos do kernel comsudo update-rc.d apparmor defaults
Os perfis são armazenados /etc/apparmor.d/
e recebem o nome do caminho completo para o executável que eles perfilam, substituindo '/' por '.'. Por exemplo, /etc/apparmor.d/bin.ping
é o perfil para ping
in /bin
.
Existem dois tipos principais de entradas usadas nos perfis:
As entradas de caminho determinam quais arquivos um aplicativo pode acessar.
As entradas de capacidade determinam quais privilégios um processo pode usar.
Vamos olhar para o perfil ping
, localizado em etc/apparmor.d/bin.ping
, como um 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 referentes a vários aplicativos sejam colocadas em um arquivo comum.
/bin/ping flags=(complain)
define o caminho para o programa com perfil e define o modo para reclamar.
capability net_raw
permite que o aplicativo acesse o CAP_NET_RAW Posix.1e
recurso.
/bin/ping mixr
permite que o aplicativo leia e execute o acesso ao arquivo.
/etc/modules.conf r,
Isso r
fornece ao aplicativo privilégios de leitura para/etc/modules.conf
Nota: Após criar / editar um perfil, é necessário 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
- Escreva ux
- Execução sem restrições Ux
- Execução sem restrições - limpe o ambiente px
- Execução de perfil discreto Px
- Perfil discreto executado - limpe o ambiente ix
- Herdar execução m
- permitir PROT_EXEC
com mmap(2)
chamadas l
- ligaçãoO AppArmor é um sistema de controle de acesso obrigatório (MAC) que é um aprimoramento do kernel (LSM) para limitar os programas a um conjunto limitado de recursos. O modelo de segurança do AppArmor é vincular atributos de controle de acesso a programas e não a usuários. O confinamento do AppArmor é fornecido por meio de perfis carregados no kernel, normalmente na inicialização. Os perfis do AppArmor podem estar em um de 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ção da política (via syslog ou auditd). Os perfis no modo de reclamação não aplicam a política, mas relatam tentativas de violação da política.
O AppArmor é diferente de alguns outros sistemas MAC no Linux, pois é baseado em caminho, permite misturar perfis de aplicação e modo de reclamação, usa arquivos de inclusão para facilitar o desenvolvimento e possui uma barreira à entrada muito menor 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 principal a partir da 2.6.36; o trabalho está em andamento pelo 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.com Ubuntuforums.org
Guias Apparmor para Ubuntu 12.04 e Ubuntu 12.10
Espero que ajude você.
Aqui está uma citação do 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 de ameaças externas ou internas, mesmo ataques de dia zero, reforçando o bom comportamento e impedindo a exploração de falhas desconhecidas de aplicativos. 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 muito complexos podem ser implantadas com êxito em questão de horas.