You are on page 1of 36

1 Segurana em Sistemas Informticos

Bruno Loureiro 2009


Mecanismos de Segurana
Sistemas Linux
Bruno Loureiro
bruno.loureiro@fe.up.pt
2 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Sumrio
Conceitos introdutrios
Tcnicas de Controlo de Acesso
Modelo Bell-LaPadula
Mecanismos de segurana Linux
Abordagem DAC Vs MAC
Concluses
Bibliografia
3 Segurana em Sistemas Informticos
Bruno Loureiro 2009
4 Segurana em Sistemas Informticos
Bruno Loureiro 2009
5 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Voc no pode entrar nesta rea,
no est autorizado.
Voc no pode entrar nesta rea,
no est autorizado.
6 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Conceitos Introdutrios
Controle de Acesso:
Mtodo utilizado para conceder ou proibir acesso (leitura, escrita, etc.)
a determinados recursos de um sistema.
Modelos Clssicos de Controle de Acesso:
Bell-LaPadula;
Biba;
Clark-Wilson;
Chinese Wall.
7 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Este modelo baseado na ideia que utilizadores so donos dos
objectos e portanto controlam quem pode aceder a estes. O dono do
objecto pode conceder permisso para outro acederr, podendo revogar
tal permisso posteriormente.
Ex: Permisses ficheiros e directorias Windows e Linux
DAC (Discretionary Access Control Controle de Acesso Discricionrio)
MAC (Mandatory Access Control Controle de Acesso Mandatrio)
O utilizador no tem escolha a que objecto ele pode acessar ou a que
permisso ele possui, o administrador quem d as permisses.
EX: SELinux, AppArmor, GRSecurity, RBAC e Smack etc
Tcnicas de Controlo de Acesso
8 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Modelo Bell-LaPadula
Histrico
Desenvolvido por David Elliott Bell e Len LaPadula;
Projetado entre 1972 e 1975;
Cumpre o modelo Multilevel Security (MLS):
Segurana de Multinveis (trabalha com relao entre recursos,
utilizadores e aplicaes).
Foi uma resposta s necessidades de proteco da Fora Area
Americana em 1973, que naqueles momentos estava preocupada com a
segurana do acesso a sistemas de grande porte
9 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Mecanismos de segurana Linux
DAC
Tipos de Utilizadores (Normal e Root)
Comandos Su e Sudo
Permisses acesso especiais (suid, guid, stickbit)
MAC
SELinux (modelo Bell Lapadula)
10 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Tipos de Utilizadores
Utilizador normal
Tem privilgios limitados, o que limita as hipteses de cometer
erros de sistema.
Super-utilizador, administrador ou root
o Utilizador cujo ID , por norma, 0 (zero)
o Pode executar qualquer operao sobre o sistema
o Tem acesso a todos os ficheiros de todo o sistema
o ele quem cria os outros utilizadores
11 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Tipos de Utilizadores
Root Perigos
Imagine, por exemplo, que voc est trabalhando com o utilizador
como root.
Necessitou de sair da frente do computador e no fez o bloqueio.
Algum mal-intencionado percebe isso e vai at seu computador,
apaga directrios importantes do sistema e "sai de mansinho".
Se estivesse utilizando um utilizador comum, isto , um utilizador
sem permisses para mexer nesses directrios, o invasor no teria
conseguido apag-los.
12 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Tipos de Utilizadores
Root Recomendaes
Deve-se evitar a utilizao sistemtica de um utilizador com
privilgios root.
recomendvel que a senha de root tenha ao menos 8
caracteres e que misture letras, nmeros e smbolos.
Alm disso, recomendvel mudar essa senha a determinados
intervalos de tempo (por exemplo: em cada 3 meses)
13 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Comandos Su e Sudo
Comandos Su e Sudo
Estou a trabalhar com uma conta utilizador normal o que posso
fazer para ter privilgios de root.
Posso usar os comandos Su e Sudo. ( Quais as diferenas)
14 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Mecanismos de Segurana
Comando Su
Comando su (substitute user).
Permite a troca para outro utilizador (root
ou outro)
Uma maneira rpida e segura de fazer troca
utilizador.
Modo funcionamento
Escreve su o sistema pedir a senha root.
Em seguida, voc poder fazer a modificao
necessria.
Ao concluir, basta digitar exit ou fechar o terminal e os
privilgios de root estaro desabilitados novamente.
su utilizador
su (para utilizar como root)
Comando Sudo
um recurso mais poderoso que o su.
O uso do sudo interessante porque o
utilizador no precisa saber a senha do root,
apenas ter que ter permisso para usar
determinados comandos pelo sudo.
possvel definir quem pode utiliz-lo e quais
comandos podem ser executados por esses
utilizadores (/etc/sudoers).
Alm disso, o sudo permite registrar em um
arquivo de log todas as actividades efetuadas,
algo que bem limitado no su.
sudo [-u utilizador] comando
15 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Permisses Especiais
O controle de acesso em ficheiros e directrios a segurana
fundamental para qualquer sistema multi-utilizador.
Os sistemas de ficheiros nativos do Linux implementam
controle de acesso utilizando algumas propriedades dos
ficheiros/directrios.
No Linux h trs modelos de controlo de acesso bsicos: Read,
Write e Execution.
16 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Permisses Especiais
No Linux h trs modelos de controlo de acesso bsicos: Read,
Write e Execution.
Vejamos um exemplo de permisso bsica na figura abaixo:
Tipo de Objecto
d => diretrio
b => bloco
c => arquivo especial de caractere
p => canal
s => socket
- => ficheiro normal
r => significa permisso de leitura (read);
w => significa permisso de gravao (write);
x => significa permisso de execuo (execution);
- => significa permisso desabilitada.
17 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Permisses Especiais
Mas somente as trs permisses bsicas (rwx), no do toda
flexibilidade para controlar acesso aos ficheiros e directrios.
Por isso o Linux tem mais trs modelos especiais para controle
de acesso, chamados suid (set user id), sgid (set group id) e
sticky (Sticky bit).
18 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Permisses Especiais (Suid)
A propriedade SUID somente para ficheiros executveis e no tem
efeito em directrios.
No ficheiro executvel com a propriedade SUID aplicada, o programa
rodar com o ID do dono do ficheiro, no com o ID do utilizador que
executou o programa.
Normalmente o utilizador dono do programa executvel tambm
dono do processo sendo executado.
A permisso de acesso especial SUID aparece no campo Dono.
19 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Permisses Especiais (Suid)
Comandos:
Aplicando a propriedade SUID em um ficheiro executvel utilizando
formato simblico (s):
# chmod u+s programa.sh
# ls -lah programa.sh
-rwsr-xr-x 1 root roberto 0 2006-09-26 22:57 programa.sh
20 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Permisses Especiais (Suid)
- Retirando SUID:
# chmod u-s programa.sh
# ls -lah programa.sh
-rwxr-x--- 1 root roberto 0 2006-09-26 22:57 programa.sh
- Procurando SUID:
Procurando a propriedade SUID em um arquivo executvel utilizando
formato simblico (s):
# find /home/roberto -perm u=s
/home/roberto/programa.sh
21 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Permisses Especiais (SGID)
SGID ( Set Group ID ):
A propriedade SGID funciona com directrios.
Quando SGID aplicado em um directrio, os novos ficheiros que
so criados dentro do directrio assumem o mesmo ID de Grupo
do directrio com a propriedade SGID aplicado.
A permisso de acesso especial SGID aparece no campo Grupo.
22 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Comandos:
- Aplicando SGID:
Aplicando a propriedade SGID em um directrio utilizando formato
simblico (s):
# chmod g+s /home/equipa
# ls -lah /home/equipa
drwxr-sr-x 2 roberto equipa 48 2006-09-26 23:21 .
- Retirando SGID:
# chmod g-s /home/equipa
# ls -lah /home/equipa
drwxr-xr-x 2 roberto equipa 48 2006-09-26 23:21
Permisses Especiais (SGID)
23 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Procurando SGID:
Procurando a propriedade SGID em um directrio utilizando
formato simblico (s):
# find /home -perm /g=s
/home/equipa
Permisses Especiais (SGID)
24 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Permisses Especiais (Sticky bit)
Sticky ( Sticky bit):
Em ficheiros executveis, a propriedade Sticky faz com que o
sistema mantenha uma imagem do programa em memria depois
que o programa finalizar.
Esta capacidade aumenta o desempenho, pois ser feito um
cache do programa para a memria, e da prxima vez que ele for
executado, ser carregado mais rpido.
Evita que os utilizadores eliminem ficheiros dos quais no so
donos, sendo s o dono a poder elimina-lo.
A permisso especial Sticky, pode ser especificada somente no
campo outros utilizadores permisses de acesso.
25 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Permisses Especiais (Sticky bit)
Aplicando a propriedade Sticky em um ficheiro executvel utilizando
formato simblico(t):
# chmod o+t programa_pesado.sh
# ls -lah programa_pesado.sh
-rwxr-x--t 1 root root 2,9M 2006-09-26 23:51 programa_pesado.sh
26 Segurana em Sistemas Informticos
Bruno Loureiro 2009
SELinux
O SELinux ("Security-Enhanced Linux") uma implementao de uma
flexvel e refinada arquitetura MAC("Mandatory Access Control").
O SELinux foi originalmente um projecto de desenvolvimento da NSA
("National Security Agency") e outros.
Ele foi integrado no Kernel do Linux usando o "framework" LSM
("Linux Security Modules").
As funcionalidades desenvolvidas no SELinux podem ser aplicadas em
vrias distribuies, como Debian, Ubuntu, Fedora, etc.
27 Segurana em Sistemas Informticos
Bruno Loureiro 2009
SELinux - Funcionamento
SELinux prov uma poltica de segurana sobre todos os
processos e objectos do sistema baseando suas decises em
etiquetas contendo uma variedade de informaes relevantes
segurana.
A lgica da poltica de tomada de decises encapsulada
dentro de um simples componente conhecido como servidor
de segurana ("security server") com uma interface geral de
segurana.
28 Segurana em Sistemas Informticos
Bruno Loureiro 2009
SELinux
Baseado em trs elementos: sujeitos, objectos e aces/permisses:
Sujeitos: Sujeitos so os intervenientes num sistema computacional
(utilizadores, processos)
Objectos: Objectos so as potenciais coisas que queremos proteger.
Podem ser: ficheiros, directrios, processos, etc. (classes).
Aces/Permisses: As aes que sujeitos SELinux realizam em
objectos variam de acordo com a classe do objecto. Podem ser:
criar, executar, ler, renomear, escrever, etc.
29 Segurana em Sistemas Informticos
Bruno Loureiro 2009
SELinux Contexto de Segurana
O SELinux aplica a poltica que baseada na relao de
atributos de um sujeito para atributos de um objecto.
Essa relao entre os atributos do sujeito e os atributos dos
objectos so referenciados como contextos de segurana.
Contextos de segurana so um conjunto de propriedades que
so associados objectos e sujeitos.
Essas propriedades so: utilizador, papel, tipo e
nvel/categoria de segurana.
A combinao desses campos forma o contexto de segurana.
30 Segurana em Sistemas Informticos
Bruno Loureiro 2009
SELinux Contextos de Segurana
Modelo Bell La-Padula (Reviso)
Nveis de Segurana
31 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Contexto de Segurana - Exemplo
Nesse exemplo, o arquivo /usr/bin/passwd mostra que seu contexto de
segurana do utilizador SELinux system_u, com o papel object_r, do
tipo passwd_exec_t e nvel de segurana s0.
S3-Top Secret
S2- Secret
S1- Confidential
S0 Unclassified
32 Segurana em Sistemas Informticos
Bruno Loureiro 2009
DAC VS MAC
Um utilizador pode expor ficheiros ou directrios brechas de
segurana utilizando incorrectamente o comando chmod.
Com DAC existem apenas dois tipos de utilizadores:
Administradores e No-administradores.
Para alguns servios e programas rodarem com nvel elevado
de privilgio basta fazer um simples comando su.
33 Segurana em Sistemas Informticos
Bruno Loureiro 2009
DAC Vs MAC
O MAC permite que seja definido permisses de como os processos
iro interagir com outras partes do sistema tais como: ficheiros,
dispositivos e outros processos.
Com este modelo os processos podem garantir apenas permisses
necessrias pela funcionalidade pretendida.
34 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Concluso
Conhecimento das diferenas entre o comando su e sudo.
Ficamos a conhecer algumas permisses especiais dos ficheiros
do Linux.
Verificamos a utilidade do SELinux de forma a poder trabalhar
com vrios nveis (modelo de Bell-Lapadula).
Comparao entre a abordagem MAC Vs DAC.
35 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Questes
36 Segurana em Sistemas Informticos
Bruno Loureiro 2009
Bibliografia e Referncias
Bibliografia
Slides de Politicas de Segurana de SSI
- J. Magalhes Cruz;FEUP;
Permisses de acesso especiais SUID, SGID e Sticky
- http://www.skiva.com.br/educ/Artigos/50.pdf
Modelo de Segurana SELinux
- http://jczucco.googlepages.com/node14.html
Redhat Documentation - Multi-Level Security (MLS)
- https://listman.redhat.com/docs/en-
US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/sec-mls-ov.html
- Links
- http://pt.wikipedia.org/wiki/Sudo
- http://pt.wikipedia.org/wiki/Su
- http://pt.wikipedia.org/wiki/SELinux