daniel mota - selinux

20
www.danielmota.com.br www.danielmota.com.br www.mauriciocayres.com.br www.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.

Upload: daniel-mota

Post on 04-Jul-2015

365 views

Category:

Documents


1 download

TRANSCRIPT

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.