Upload
daniel-mota
View
365
Download
1
Embed Size (px)
Citation preview
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
SELinux
Trabalho solicitado pelo Prof. Tarsio Cavalcante para a disciplina Segurança em Sistemas de Informação.
Por Daniel Mota e Maurício Cayres.
Tópicos abordados
● Introdução– O que é Controle de Acesso?– Tipos de Controle de Acesso– DAC vs. MAC
● O que é o SELinux ?● Breve Histórico● Como funciona?● Por que utilizá-lo?● Como instala?● Modos de operação● Como configura?● Ferramentas nativas
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Controle de Acesso
O Controle de Acesso tem a habilidade de permitir ou negar a utilização de um objeto por um sujeito. O controle de acesso é composto dos processos:
● Autenticação, identifica quem acessa o sistema;● Autorização, determina o que um usuário autenticado pode
fazer;● Auditoria, diz o que o usuário fez.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Tipos de Controle de Acesso
Discretionary Access Control (DAC) é uma política de controle de acesso determinada pelo proprietário (owner) do recurso, onde o proprietário decide quem tem permissão e qual privilégio ele tem.
O DAC tem dois conceitos importantes:
● Todo objeto em um sistema deve ter um proprietário;● Direitos de acesso são estabelecidos pelo proprietário do
recurso.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Tipos de Controle de Acesso
Mandatory Access Control (MAC) a política de acesso é determinada pelo sistema. Ele é composto de:
● Rótulos de sensibilidade, define o seu nível de confiança, e todos os sujeitos e objetos devem ter rótulos associados.
● Importação e exportação de dados, é uma função crítica que busca garantir que os rótulos de sensibilidade sejam mantidos e implementados de maneira apropriada.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
DAC vs. MAC
O que é o SELinux?
O Security-Enhanced Linux (SELinux) é uma implementação de uma flexível e refinada arquitetura Mandatory Access Control (MAC).
O SELinux provê uma política de segurança sobre todos os processos e objetos do sistema baseando suas decisões em etiquetas contendo uma variedade de informações relevantes à segurança.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Breve Histórico
O SELinux foi originalmente desenvolvido pela National Security Agency (NSA).
Inicialmente a implementação do SELinux utilizava os identificadores armazenado nos inodes do sistema de arquivos ext2.
Essa representação numérica era mapeada pelo SELinux como uma etiqueta do contexto de segurança.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Breve Histórico
A próxima etapa da evolução do SELinux foi um módulo carregável no Kernel 2.4 que armazenava os PSIDs em um arquivo normal fazendo com que suportasse mais sistemas de arquivos.
Posteriormente o código do SELinux finalmente foi integrado ao kernel 2.6 com total suporte por LSM e contendo atributos (xattrs) no sistema de arquivos ext3.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Como funciona?
SELinux utiliza conceitos gramaticais para classificar os elementos em um sistema de segurança, sendo utilizados termos gramaticais comuns:
● Os Sujeitos, são os processos de um sistema que executam ações sobre os objetos.
● Os objetos, são compostos por quaisquer elementos que se queira proteger, como por exemplo arquivos, diretórios, sistemas de arquivos, etc.
● As ações, são quaisquer operações que um sujeito queira executar sobre um objeto, e estas são relativas ao tipo ou classe que representa o objeto em questão.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Como funciona?
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Por que utilizá-lo?
A ideia do SELinux é restringir as permissões, de forma que cada serviço ou aplicativo tenha permissão para realizar apenas as tarefas a que é destinado.
Isso impede que serviços vulneráveis sejam usados para obter privilégios adicionais, como é comum em ataques.
Sem o SELINUX Com o SELinux
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Como instala?
O SELinux já vem instalado por padrão no Fedora Linux e no RedHat Enterprise Linux.
O Ubuntu Linux usa por padrão o AppArmor, uma outra implementação de Controle de Acesso baseado em MAC. Mas é possível instalar o SELinux e substituir o AppArmor. Para tal existe as formas:
– Via Terminal
– Via Central de Programas do Ubuntu
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Como instala?
Via Terminal, basta abrir um terminal e digitar: sudo apt-get install selinux . O processo é bem simples e autoexplicativo.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Como instala?
Via Central de Programas do Ubuntu, pesquise por selinux. Em seguida clique em Instalar.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Modos de operação
SELinux tem três modos principais de operação:
● Enforcing - impõe que deve cumprir a política carregada.● Permissive - carrega a política, mas não obriga cumpri-la. Isso
geralmente é usado para testes e verificar o log de auditoria.● Disabled - A infra-estrutura SELinux não é carregada no kernel.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Como configura?
Para realizar a configuração básica e ativar o modo Enforcing deve-se editar o arquivo de configuração do SELinux, que encontra-se na pasta /etc/selinux/ e possui o nome config.
Em seu conteúdo há as variáveis:
● SELINUX=permissive # Controla o estado do SELinux no sistema
● SELINUXTYPE=ubuntu # Políticas que devem ser carregadas
● SETLOCALDEFS=0 # Verifica alterações locais
Obs: Para validar a configuração, é preciso reiniciar o sistema.
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Como configura?
Para realizar a configuração em tempo de execução do sistema operacional basta digitar o comando, como root:
● setenforcing 0 | 1 # Onde: 0 = permissive e 1 = enforcing
Para visualizar o status da configuração em tempo de execução do sistema operacional basta digitar o comando, como root:
● getenforcing
● sestatus
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Ferramentas nativas
Existem ferramentas do SELinux que auxiliam e permitem a alteração e criação de políticas. Como exemplos podem ser citadas:
● audit2allow: gera regras de permissão na política à partir de logs de operações negadas.
● audit2why: traduz mensagens de logs de operações negadas● semodule: gerencia módulos da política● semanage: configura elementos da política● chcon: altera o contexto de segurança de um objeto
www.danielmota.com.brwww.danielmota.com.br
www.mauriciocayres.com.brwww.mauriciocayres.com.br
Referências
PIRANI, Deivis F. Linux com Segurança Aprimorada – SELinux. Disponível em: <http://www.deivis.eti.br/blog/?p=46>. Acesso em 13 de julho de 2012.
MORIMOTO, Carlos E. Guia do Fedora - Firewall e SELinux. Disponível em: <http://www.hardware.com.br/guias/fedora/firewall-selinux.html>. Acesso dia 07 de julho de 2012.
MCALLISTER, Murray; RADVAN, Scott; WALSH, Daniel; GRIFT, Dominick; PARIS, Eric; MORRIS, James. Fedora 13 - Security-Enhanced Linux User Guide. Edition 1.5. Disponível em: <http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux/>. Acesso dia 07 de julho de 2012
_______, SELinux - Main Page. Disponível em: <http://selinuxproject.org/page/Main_Page>. Acesso em 10 de julho de 2012.
SOUZA, Maria Angélica L. De; ROSA, Rafael Pereira. Controle de Acesso e SELinux. Disponível em: <http://www.lsd.ic.unicamp.br/mo806/index.php/SELinux>. Acesso em 13 de julho de 2012.
VIEIRA, Luiz. SELinux – Security Enchanced Linux. Disponível em: <http://www.vivaolinux.com.br/artigo/SELinux-Security-Enhanced-Linux>. Acesso dia 07 de julho de 2012.
WALSH, Dan. What’s new in SELinux for Red Hat Enterprise Linux 5? Disponível em: <http://magazine.redhat.com/2007/05/04/whats-new-in-selinux-for-red-hat-enterprise-linux-5/>. Acesso dia 07 de julho de 2012.