O documento apresenta uma introdução ao Security Enhanced Linux (SELinux), discutindo sua motivação, arquitetura e modelos de políticas. É apresentada uma agenda com os tópicos a serem abordados, incluindo definição de SELinux, modelos de controle de acesso, histórico, políticas de segurança, criação e manutenção de políticas e demonstração prática.
Entendendo o SELinux: Security Enhanced Linux - Jeronimo Zucco
1. Entendendo o SELinux
Security Enhanced Linux
Jeronimo Zucco
jczucco@gmail.com
Tchelinux
2. Agenda
● Introdução e Motivação
● Definição
● Modelos de Controles de Acesso – DAC e MAC
● SELinux
– Histórico
– Arquitetura
– Políticas de Segurança Strict, Targeted, MLS e
MCS
Tchelinux
3. Agenda
● SELinux
– Criação e Manutenção de Políticas
– Administração
● Demonstração Prática
● Conclusões
● Referências
Tchelinux
4. Introdução e Motivação
● Incidentes de Segurança:
– Complexidade das aplicações;
– Elevação de privilégios;
– Código móvel;
– Zero-days;
– Políticas de atualizações;
– Inevitabilidade de falha: “The
Inevitability of Failure: The Flawed
Assumption of Security in Modern Computing
Environments”
http://www.nsa.gov/selinux/papers/inevitability
Tchelinux
5. DAC – Controle de Acesso Discricionário
● Modelo mais popular.
● Administradores e não-administradores;
● Delegações;
● Usuários = Programas (processos)
Tchelinux
6. Problemas no DAC
● Usuários: admin ou não-admin;
● Princípio do menor privilégio difícil de aplicar;
● Serviços que só rodam como super usuário;
● Herança de poderes de acesso;
● Definições de acessos por usuário e não por
programa;
● Assume que todos os programas são
confiáveis e sem falhas.
Tchelinux
8. MAC – Controle de Acesso Mandatório
● Sistema define a política de acesso;
● Sujeitos (usuários) não pode conceder direitos;
● Sujeitos (programas) não podem conceder
direitos (vírus, trojans, por exemplo);
● P(S,O,A) -> {accept,deny}
Tchelinux
9. DAC vs MAC
DAC MAC
● Dono do objeto possui poder ● Dono do objeto PODE ter
total sobre ele; algum poder sobre ele;
● Confiança completa nos ● Somente confia no
usuários; administrador da política;
● Decisões de acesso são ● Objetos e processos podem
baseadas somente no user- possuir IDs;
id e permissões do objeto; ● Possibilita controle do fluxo
● Impossível de controlar o de dados;
fluxo de dados;
Tchelinux
11. Security-Enhanced Linux
● Desenvolvido pela National Security Agency
(NSA) e Secure Computing Corporation para
uso das tecnologias MAC (Flask);
● Classes B1 e superiores da TC-SEC
Tchelinux
12. SELinux - Objetivos
● Isolamento das aplicações;
● Controle do fluxo de informações;
● Confidencialidade;
● Integridade;
● Auto-proteção;
● Menor privilégio;
● Separação de papéis;
Tchelinux
22. SELinux – Política Strict
● Para cada tipo de acesso de cada processo
para cada arquivo deverá existir ao menos uma
regra na política, senão o acesso será negado;
● Complexidade alta;
● Programas não suportados;
● Problemas no início do uso do
SELinux
Tchelinux
23. SELinux – Política Targeted
● Domínio unconfined_t;
● Política padrão atual;
● Várias aplicações suportadas
Tchelinux
24. SELinux – Política MLS
● Política Strict + Níveis (modelo BLP);
● Mais dois campos no contexto de segurança:
– sensibilidade: confidencial, secreto, etc (hierarquia)
– categoria: classificação não hierarquica
● Órgãos do governo e militares
Tchelinux
25. SELinux – Política MCS
● Subconjunto do MLS
● Nível de sensibilidade não utilizado
Tchelinux
26. SELinux – Customização da Política
● Política de referência;
● Variáveis booleanas;
● Políticas Modulares;
● Utilitários para geração de políticas
Tchelinux
30. Conclusões
● Viável para uso em servidores com aplicações
comuns;
● Possibilidades de uso futuras;
● Não precisa de intervenção para uso comum;
● Segurança Pró-ativa;
● Software Livre !
Tchelinux