3 SELinux

Propaganda
UNIVERSIDADE ESTÁCIO DE SÁ
PROGRAMA DE PÓS-GRADUAÇÃO EM SEGURANÇA DA INFORMAÇÃO
RODRIGO CÉSAR COELHO DE OLIVEIRA ASSIS
SELINUX: do conceito à prática
JOÃO PESSOA - PB
2015
RODRIGO CÉSAR COELHO DE OLIVEIRA ASSIS
SELINUX: do conceito à prática
Estudo dirigido apresentado ao Curso de PósGraduação em Segurança da Informação da
Universidade Estácio de SÁ, como trabalho
para a obtenção de nota da cadeira de
Segurança em Linux.
JOÃO PESSOA – PB
2015
RESUMO
Com o aumento da “facilidade” de possíveis ataques potenciais nos sistemas, foi necessário
para manter a segurança da informação, o conhecimento mais profundo e específico em
relação a todo o processo em que estes sistemas estão submetidos, não se limitando apenas ao
emprego das ferramentas de segurança voltadas para os ativos de rede. Baseado no aumento
da segurança do sistema contra ameaças externas, tem-se uma medida de segurança que se
constitui basicamente de controles e políticas, que é o caso do SELinux, visando a proteção
das informações e obtendo controle do fluxo de dados de qualquer alteração desta informação
por pessoas não autorizadas.
Palavras - Chave: segurança, redes, servidores, software livre
ABSTRACT
With increasing complexity in the network environment, followed by the "ease" of possible
potential attacks on systems, it was necessary to maintain the security of information, deeper
insight and specific in relation to the process in which these systems are submitted, not
limited only to the use of security tools focused on network assets. Based on increased system
security against external threats, there is a safety measure that's basically constitutes controls
and policies, which is the case of SELinux, aimed at protecting information and getting data
flow control any changes in this information by unauthorized persons.
Keywords—security, networks, servers, software open source
SUMÁRIO
1 INTRODUÇÃO
2 OBJETIVOS
3 SELINUX
3.1 MODOS DO SELINUX
3.2 POLÍTICAS DO SELINUX
4 AMBIENTE DE ESTUDO
4.1 CONFIGURAÇÃO DO AMBIENTE
7 CONCLUSÃO
REFERÊNCIAS
1 INTRODUÇÃO
Este estudo dirigido foi desenvolvido para fins de conclusão da cadeira de Segurança
em Linux, relatando seus conceitos, objetivos, características, benefícios, sua arquitetura e seu
funcionamento, seguido de uma abordagem prática em um servidor virtual para realizar testes
comparando o Centos 6.5 com o SELinux habilitado e desabilitado referente à utilização da
ferramenta GLPI.
2 OBJETIVOS
O objetivo principal deste trabalho é realizar um estudo de caso feito em um ambiente
virtual, relacionado à segurança do sistema operacional tendo como base o framework
SELinux, apresentando através de print’s screen’s a implementação da ferramenta de
gerenciamento de chamados, chamada GLPI, juntamente com o comparativo dos modos do
SELinux, exibindo o comportamento quando o SELinux estiver ativo e inativo.
3 SELinux
O SELinux é um sistema de controle de acesso obrigatório construído sobre a interface
LSM (Linux Security Modules) do Linux, no qual o kernel consulta esse framework antes de
cada chamada do sistema para saber se o processo está autorizado a fazer a operação dada,
que é verificado através de um conjunto de regras, conhecidas como “política”.
Esse framework vem instalado por padrão em algumas distribuições, como RedHat,
CentOS, e por vir habilitado muitos administradores de sistemas, até mesmo sem conhecer
direito seu funcionamento, acabam desabilitando-o, pois encontram alguns problemas
relacionados à configuração de muitos serviços que deixavam de funcionar ou apresentavam
comportamentos inesperados por não conseguirem acessar determinados arquivos ou recursos
do sistema, devido à ação do SELinux.
Será visto a seguir, os modos do SELinux juntamente com os tipos de políticas
existentes, apresentando um breve conceito.
3.1 MODOS DO SELinux
Existem três modos de operação do SELinux, como pode ser visto abaixo:
- Disabled: é o modo em que o SELinux fica em estado inativo, ou seja, as
regras e os logs estão totalmente desativados;
- Enforcing: é o modo ativo do SELinux, no qual bloqueia tudo por padrão e
registra nos logs as ocorrências de bloqueio;
- Permissive: é o modo meio termo, ou seja, nesse modo o SELinux está ativo,
porém, só acontece o registro dos bloqueios em logs, não efetuando os
bloqueios.
Em um breve resumo, o SELinux vem com o modo “Enforcing” (reforçado) ativado
por padrão que faz com que as regras realmente sejam aplicadas. Alterando a configuração
para "Permissivo" o framework passa apenas a gerar um log das operações que seriam
bloqueadas, mas sem realmente bloquear tais operações. A diferença entre o Permissive e o
Disabled é que no segundo ele realmente deixa de verificar as operações, ou seja, não gera log
e muito menos executa os bloqueios.
3.2 POLÍTICAS DO SELinux
As políticas do SELinux consistem nos tipos de controles para seu funcionamento. Abaixo
segue a descrição de suas políticas:
- Targeted: é a política padrão atual e é a forma mais simples de executar o SELinux,
no qual aplica suas regras específicas para serviços e processos do sistema
operacional.
- Strict: é a política mais segura, porém a mais complexa pois exige que para cada
tipo de acesso de cada processo para cada arquivo tenha ao menos uma regra
definida nessa política, senão o acesso será negado.
- MLS: segurança muti level, ou seja, proteção de segurança multi nível.
Para solucionar o problema, muitos administradores de sistema utilizam a política “targeted”
(modo direcionado) do SELinux, pois elaboram configurações específicas, que aplicam as políticas a
apenas alguns serviços e aplicativos específicos do seu sistema.
4 AMBIENTE DE ESTUDO
Neste capítulo, será feito uma breve descrição do ambiente de estudo utilizado
juntamente com os print’s screen’s das configurações do SELinux.
4.1 CONFIGURAÇÃO DO AMBIENTE
O ambiente de estudo utilizado foi realizado em uma máquina virtual na ferramenta
VMware. A seguir, é exibido uma tabela com as configurações do ambiente. Em seguida, serão
apresentados os print’s de configuração do servidor virtual.
SISTEMA OPERACIONAL
CentOS 6.5
MÉMÓRIA
1GB
HD
50GB
SERVIÇOS INSTALADOS
APACHE, PHP, MYSQL, GLPI
SERVIDOR WEB
APACHE 2.2.15
BANCO DE DADOS
MYSQL 5.1.73
LINGUAGEM DE
PROGRAMAÇÃO
SOFTWARE P/ ANÁLISE
PHP 5.6
GLPI v0.9.0
- Visualizando o status do SELinux antes da instalação dos serviços:
Na saída do comando “sestatus” pode ser visto o status do SELinux e também algumas
informações importantes como o modo de operação e a política que está sendo utilizada. Além desse
comando, pode ser acessado através de um editor de texto (ex: vi) o caminho: /etc/selinux/config,
para visualizar tais informações, como pode ser verificado na figura a seguir.
A seguir pode ser visto alguns comparativos dos modos do SELinux com a instalação
do GLPI:
- Modo “enforcing”:
- Modo “permissive”:
- Modo “disabled”:
5 CONCLUSÃO
Conclui-se que, além do SELinux ser um software livre e já implantado no kernel do
Linux, é também uma poderosa ferramenta capaz de auxiliar a segurança do sistema
operacional, através de suas políticas definidas no seu contexto de segurança, sendo assim
viável para uso em servidores com aplicações comuns, contando com uma segurança próativa. No entanto, seu uso em redes corporativas ou em computadores domésticos não é tão
simples, pois uma boa política de segurança, desde sua criação, refinamento e manutenção,
requer muito tempo e esforço, no qual o dever do administrador é selecionar cuidadosamente
os módulos de políticas de segurança corretos.
REFERÊNCIAS
NSA, “Security-Enhanced Linux”, Disponível em: https://www.nsa.gov/research/selinux/.
Acesso em: 06 de nov. 2015.
R. Benites Gil, “Definição e entendimento básico do SELinux”. Disponível em:
http://segurancadeti.com.br/selinux-introducao/ . Acesso em: 07 de nov. 2015.
R. Cavalieri, “Servidor CentOS 7 – Como desativar o SELinux”. Disponível em:
http://www.tecdicas.com/servidor-centos-7-desativar-selinux/ . Acesso em: 07 de nov.
2015.
A. Leite , and N. Cardoso, “SELinux – Segurança em Sistemas Informáticos”. Disponível
em: http://web.fe.up.pt/~jmcruz/ssi/ssi.1011/trabs-als/final/G05.T10-selinux-rel.final.pdf.
Acesso em: 07 de nov. 2015.
Debian Handbook, “O Manual do Administrador Debia - Introdução ao SELinux”.
Disponível
em:
https://debian-handbook.info/browse/pt-BR/stable/sect.selinux.html.
Acesso em: 08 de nov. 2015.
Wikipédia, “SELinux” , Disponível em: https://pt.wikipedia.org/wiki/SELinux. Acesso
em: 08 de nov. 2015.
J. Zucco, “Entendendo o SELinux – Security Enhanced Linux”, Disponível em:
http://jczucco.googlepages.com/selinux.html. Acesso em: 08 de nov. 2015.
B. R. da Silva , “SELinux – Segurança em Servidores GNU/Linux”, Disponível em:
http://www.vivaolinux.com.br/artigo/SELinux-Seguranca-em-Servidores-GNU-Linux.
Acesso em: 10 de nov. 2015.
C.
Eduardo
Morimoto,
“Linux,
Guia
Prático”.
Disponível
em:
http://www.hardware.com.br/livros/linux/firewall-selinux.html . Acesso em: 07 de nov.
2015.
E. Ivashko, “Linux Seguro: Parte 1. SELinux – história de seu desenvolvimento,
arquitetura
e
princípios
operacionais.”,
Disponível
em:
http://www.ibm.com/developerworks/br/library/l-secure-linux-ru/. Acesso em: 12 de nov.
2015.
A. S. de O. Toledo, and F. A. Ferreira, “SELINUX: Como tornar um servidor mais
seguro”. Disponível em: http://blog.newtonpaiva.br/pos/wp-content/uploads/2013/02/E3SI-21.pdf . Acesso em: 13 de nov. 2015.
T.
Scherf,
“Controle
de
acesso
obrigatório
com
SELinux”,
Disponível
em:http://www.linuxnewmedia.com.br/images/uploads/pdf_aberto/LM45_pag66-73.pdf .
Acessos em: 14 de nov. 2015.
A.
Emanuel,
“SELinux
na
prática”,
Disponível
em:
http://www.vivaolinux.com.br/artigo/SELinux-na-pratica?pagina=1. Acesso em: 14 de
nov. 2015.
H. A. M. Cardozo, “Reforçando a segurança do Linux com SELinux”, Disponível em:
http://www.ppgia.pucpr.br/~jamhour/RSS/TCCRSS09A/Heitor%20Augusto%20Murari%
20Cardozo%20-%20Artigo.pdf . Acesso em: 15 de nov. 2015.
Download