Post on 06-Jun-2015
description
Capítulo 9
SegurançaSegurança
Adriana Oliveira
Diego Pizzol
1. O ambiente de segurança
2. Criptografia básica
3. Autenticação de usuário
4. Ataques de dentro do sistema
5. Ataques de fora do sistema
6. Mecanismos de proteção
7. Sistemas confiáveis
Segurança
1. O ambiente de segurança
O Ambiente de Segurança (1)
E a privacidade?
Objetivo geral dos sistemas computacionais
O Ambiente de Segurança (2) Invasores
Categorias comuns:1. Curiosidades casuais de usuários
leigos
2. Espionagem por pessoas internas
3. Tentativas determinadas para ganhar dinheiro
4. Espionagem militar ou comercial
O Ambiente de Segurança (3) Perda Acidental de Dados
Causas comuns:
1. Atos de Deus- incêndios, enchentes, guerras
2. Erros de hardware ou software- defeitos na CPU, discos ruins, erros de
programas
3. Erros humanos- entrada incorreta de dados, montagem errada
da fita
2. Criptografia básica
Criptografia Básica (1)
• Substituição monoalfabética– cada letra é substituída por letra diferente
• Dada a chave criptográfica,– fácil achar a chave de decriptação
• Criptografia de chave secreta ou criptografia de chave simétrica
Criptografia Básica (2)Criptografia por Chave Secreta
Criptografia Básica (3) Criptografia por Chave Pública
Criptografia Básica (4) Assinaturas Digitais
3. Autenticação de usuário
Autenticação de Usuário (1)
A maioria dos métodos de autenticação baseia-se em:
1. Alguma coisa que o usuário sabe2. Alguma coisa que o usuário tem3. Alguma coisa que o usuário é
Hacker: nome honroso dado aos grandes programadores.
Cracker: pessoa que tenta se infiltrar sem autorização em sistemas de computadores.
Autenticação de Usuário (2)Autenticação Usando Senhas (1)
• Como um cracker invadiu o computador do LBL– um lab de pesquisa do Dep. de Energia dos EUA
Autenticação de Usuário (3)Autenticação Usando Senhas (2)
O uso do sal para atrapalhar a pré-computação de senhas criptografadas
Autenticação de Usuário (4)Segurança por senhas do Unix
Autenticação de Usuário (5)Autenticação Usando
um Objeto Físico
• Cartões de plástico– cartões de faixa magnética (140 bytes);– cartões com chip: cartões com valores
armazenados (1Kb), cartões inteligentes (CPU).
Autenticação de Usuário (6) Autenticação Usando Biométrica
Um dispositivo para medir o comprimento do dedo
Autenticação de Usuário (7)Medidas de Defesa
• Limitação do horário de acesso ao sistema• Chamada automática de volta para um número
pré-especificado• Número limitado de tentativa de acessos• Uma base de dados de todos os acessos ao
sistema• Nome e senha simples como isca
– pessoal de segurança é notificado quando o intruso “morde a isca”
4. Ataques de dentro do sistema
Ataques de dentro do Sistema (1)Segurança de Sistemas Operacionais
Cavalos de Tróia
• Programa livre disponibilizado para usuários inocentes– contém na verdade código destrutivo
• Coloca versão adulterada de um programa utilitário no computador da vítima– leva o usuário a executar aquele programa
Ataques de dentro do Sistema (2) Conexão Impostora (Spoofing)
(a) Tela de conexão verdadeira(b) Tela de conexão impostora
Ataques de dentro do Sistema (3) Bombas Lógicas
• Programador da empresa escreve programa– com potencial para causar danos (bomba lógica)– OK desde que ele/ela alimente o programa diariamente
com uma senha– se programador é despedido, programa não é
alimentado com senha, bomba explode
Ataques de dentro do Sistema (4) Alçapões
(a) Código normal
(b) Código com alçapão inserido
Código inserido no sistema para desviar algumaverificação corriqueira.
Ataques de dentro do Sistema (5) Ataques Genéricos à Segurança
Ataques típicos
• Iniciar o acesso ao sistema e pressionar as teclas DEL ou BREAK
• Tentar chamadas ilegais ao sistema• Tentar todos os NÃO FAÇA especificados nos
manuais• Convencer um programador a introduzir um alçapão • Implorar para a secretária do administrador do
sistema para ajudar um pobre usuário que esqueceu a senha
Ataques de dentro do Sistema (6) Falhas Famosas de Segurança
Unix
• Lpr – utilitário de impressora de linha
• Mkdir foo– Cria i-node– ... (tempo para trocar o i-node e fazer uma
ligação para o arquivo de senhas sob o nome foo)
– Altera de UID root para UID user
Ataques de dentro do Sistema (7) Princípios de Projeto de Segurança
1. O projeto do sistema deve ser público2. Default deve ser “acesso negado”3. Checar autoridade atual4. Dar a cada processo o menor privilégio
possível5. Mecanismo de proteção deve ser
- simples- uniforme- nas camadas mais inferiores do sistema
6. Esquema deve ser psicologicamente aceitável
e … mantenha o projeto simples
5. Ataques de forado sistema
Ataques de Fora do Sistema
• Comunicação entre Computadores (Redes)– Redes Locais, Privadas e a Internet
• Vantagens– Facilidade, agilidade, comodidade, dinamicidade, ...
• Desvantagens– Possibilidade de descoberta de vulnerabilidades em
computadores conectados a rede
Malware
• Vírus de computador– Programa capaz de se reproduzir utilizando outro programa como
hospedeiro, causando danos.• Trojan horses (Cavalos de Tróia)
– Programa que ao entrar no computador, tentar liberar uma porta para um possível invasor.
• Spyware– Programa que recolhe informações sobre o usuário e transmite-
as à uma entidade externa, sem o conhecimento e consentimento do usuario.
Programa designado a infiltrar ou danificar um sistema de computador sem o consentimento do proprietário. É a junção das palavras "malicious"
e "software".
Funcionamento de um Vírus
• Criação do código do vírus (Linguagem de Montagem)
• Inserição num prog. hospedeiro
• Distribuição do prog. Hospedeiro (Site de downloads)
• Vítimas baixam e instalam o prog. Hospedeiro
• Virus fica latente, esperando hospedeiro ser executado
• Infecta demais programas
Objetivo de um Vírus
• Espalhar-se rapidamente
• Dificultar a sua detectacção
• Dificultar a sua remoção
• Possivelmente, causar grandes danos
Tipos de Vírus
• Companheiro– Não infecta um programa, mas executa antes do programa ser
executado
• Programas Executaveis– Sobreescreve arquivos executaveis– Facil de detectar, pois não executa o programa esperado
• Parasita– Infecta um programa realizando o resultado esperado após sua
execução
• Cavidade– Se infiltra nos espaços restantes dos segmentos– No Windows segmentos são x512 bytes, sendo o restante dos
segmentos preenchido com 0’s pelo linker.
Tipos de Vírus
a) Um programa executávelb) Com um vírus à frentec) Com um vírus no finald) Com vírus espalhado pelos espaços livres dentro do programa
Tipos de Vírus• Residentes em Memória
– Após ser executado, permanece na memoria
– Pode modificar o endereço de Mapa de Bits para ficar oculto
• Setor de Boot– Copia-se para RAM ao iniciar o sistema, no topo ou entre os vetores de
interrupção – Ao formatar pelo fdisk do WIN a 1ª trilha do disco é ignorada
• Dispositivos– Infecta um driver do dispostivo
• Macros– Arquivos do Office, possuem macros que podem conter
programas inteiros escritos em VB
• Codigo-fonte– Infecta um código fonte: #include <virus.h> e run_virus( );
(a) Vírus captura os vetores de interrupção e de desvio de controle
da CPU
(b) S.O. retoma o vetor de interrupção da impressora
(c) Vírus percebe a perda do vetor de interrupção da impressora e
recupera-o
Vírus Setor de Boot
• Vírus colocados onde há chance de serem
copiados
– Sites de Downloads• Programas copiados de fontes não-confiáveis
– Infectam programas no disco rígido, disquetes, pendrivers– Podem se disseminar na rede local
• Anexam-se à mensagens eletrônicas aparentemente inocentes– quando executados, usam listas de contatospara replicar
Como os Vírus se Disseminam
Briga constante e evolutiva de um
contra o outro.
Antivírus X Antiantivírus
Antivírus X Antiantivírus
• Verificadores de Vírus– Coletam amostras do vírus para estudo e assim conseguir entende-lo– Armazenam dados sobre os vírus num banco de dados– Caso seja um vírus polimórfico, tentam achar o motor de mutação
• Verificação de Integridade– Calcula a Soma de verificação (checksum) para cada arquivo– Quando executado, recalculará e detectará os arquivos infectados
• Verificação de Comportamento– Antivírus, residente em memoria capturando as chamadas ao sistema e
monitorando as atividades.
• Prevenção– Opte por sistemas com alto grau de segurança, use apenas
software originais, use um antivirus potente e faça backup• Recuperação
– Quando infectado, reinicie o sistema por uma midia protegida contra escrita (CD-ROM), execute um antivírus, salve os arquivos não infectados e formate o HD
Exemplos de um possível vírus polimórfico
Antivírus X Antiantivírus
Convenções de Denominação: Vírus
• As convenções de denominação de vírus do Norton AntiVirus (Symantec) é Prefixo.Nome.Sufixo:– O prefixo denota a plataforma em que o vírus é duplicado ou o
tipo do vírus. Em geral, os vírus de DOS não contêm um prefixo.
– O nome é o nome da família do vírus.
– O sufixo pode não existir sempre. Os sufixos diferenciam variantes da mesma família e, em geral, são um número que denota o tamanho do vírus ou uma letra.
• Por exemplo, WM.Cap.A seria uma variante da família Cap. O WM significa que o vírus é um vírus de macro para Word.
Ainda tem Mais …
• Worms ou vermes– Programas que se auto-replicam com o intuito de se
disseminar sem causar graves danos aos sistemas.
• Hijackers– Programas ou scripts que "sequestram" navegadores
de Internet, alterando a página inicial do browser, impedindo o usuário de mudá-la e exibindo propagandas em pop-ups ou janelas novas.
• Keylogger– Programas que ficam escondidos no sistema
operacional, sem que a vitima saiba que está sendo monitorada, sendo utilizados para obter senhas pessoais.
Código Móvel - Applet
• SandBoxing ou Caixa de Areia– Confina cada applet a um intervalo limitado de
endereços virtuais.– Utilização de um monitor de referência para checar JMP
e CALL
• Interpretação– Executar o applet de forma interpretativa sem deixar eles
tomarem controle real do hardware.
• Assinatura de código– Aceitar apenas applets de fontes confiáveis e que
assinaram digitalmente seus applets.
Código Móvel - Applet
Applets podem ser interpretadas por um navegador Web
Código Móvel - Applet
• JDK 1.0– Applets confiáveis (local) e não confiáveis
(remoto)
• JDK 1.1– Empregado a assinatura de código
• JDK 1.2– Empregado política de segurança com
granularidade fina e configurável.
6. Mecanismos de Proteção
Mecanismos de Proteção
• Domínios de Proteção– Conjunto de pares (objetos, diretos)
Objetos: arquivo, impressora, ...Diretos: leitura, escrita, execução, ...
Mecanismos de Proteção
• No Unix– O domínio de um processo é definido pela
combinação do UID e GID
• Alternância de Domínios– Cada processo tem duas partes:
» Parte do Usuário» Parte do Núcleo (Chamadas ao Sistema)
– SetUID e SetGIDSetUID: Processo em execução terá mesmos direitos que o dono do
arquivo.
SetGID: Processo em execução terá mesmos direitos que o grupo do dono do arquivo.
Matriz de Proteção
• Modelo Conceitual
Matriz de Proteção
Matriz de Proteção com Domínios como Objetos
Exemplo de execução de processo com SetUID ativado.
Representação da Matriz de Proteção
• Matriz contém muitos espaços vazios– Seu armazenamento seria muito custoso.
• Método prático de representar a Matriz– Por Colunas:
• Lista de Controle de Acesso (ACL)
– Por Linhas:
• Capacidades (Capabilities)
Lista de Controle de Acesso (ACL)
• Associação Objeto – Lista (Dom, Dir)– Associa a cada objeto uma lista contendo domínios e
seus respectivos direitos.
Lista de Controle de Acesso (ACL)
• Em sistemas que utilizam grupos:– UID1, GID1 : direitos1; UID2, GID2 : direitos; ...
• Utilização de Caracteres-chave
– Generalização
• Exemplo: Ana, * : RW
– Especificação
• Exemplo: Teresa, * : (none); *, * : RW
Capacidades (Capabilities)
• Associação Processo – Lista (Objeto, Dir)– Associa a cada processo uma lista contendo objetos e seus
respectivos direitos.
ACL X Capabilities
• Ambas são equivalentes
• Revogação
– ACL : Facil, mas não imediata.
– Capabilities: Mais complicada.
• Checagem
– ACL: Lenta, para muitos grupos.
– Capabilities: Mais rápida.
7. Sistemas Confiáveis
Sistemas Confiáveis
• TCB (Trusted Computing Base)– Monitor de Referência: Parte do sistema operacional que
é responsável pela imposição da política de segurança
Políticas de Controle de Acesso
• Controle de acesso discricionário– Usuário individual pode configurar um
mecanismo de controle de acesso para permitir ou proibir o acesso a um objeto.
• Controle de acesso compulsório– Quando um mecanismo do sistema controla o
acesso a um objeto e um usuário individual não pode alterar este acesso.
Modelos de Segurança
• Modelo Bell-LaPadula (Bell & LaPadula, 1975)
• Modelo Biba (Biba, 1977)
• Modelo Clark-Wilson (Clark & Wilson, 1987)
• Modelo Chinese Wall (Brewer & Nash, 1989)
• Controle de Acesso Baseado em Papéis (Ferraiolo et al., 2001)
Modelo Bell-LaPadula
• Política de confidencialidade
– Lida com o fluxo da informação
– Prevenir a liberação não autorizada da informação
• Modelo de segurança multinível
– Classificação no estilo militar
• Influência para muitos outros modelos
Modelo Bell-LaPadula
• Propriedade simples– Ler apenas no seu nível ou no nível inferior
• Propriedade *– Escrever apenas no seu nível ou no nível superior
Modelo Biba
• Alteração do Modelo Bell-LaPadula
– Objetiva a integridade invés da confidencialidade
• Modelo de segurança multinível
– Classificação no estilo empresarial
• Propriedade simples:
– Escrever apenas no seu nível ou no nível inferior
• Propriedade *:
– Ler apenas no seu nível ou no vível superior
Controle de Acesso Baseado em Papéis (RBAC)
Modelo de referencia da NIST
• Separação de Responsabilidades– Estática– Dinâmica
• Hierarquias de Papéis– Genérica (Grafo)– Limitada (Árvore)
Canais Subliminares
Apesar de todos esse sistemas teóricos serem seguros,
na prática Lampson (1973) definiu o problema do
confinamento:
Um canal subliminar usando impedimento de arquivo
Canais Subliminares
• Técnicas de Esteganografia– Imagem à direita contém os textos de 5 peças de
Shakespeare– 1024 x 768 x 3 bits = 294 912 bytes
Zebras Hamlet, Macbeth, Julius CaesarMercador de Veneza, Rei Lear
Canais Subliminares