Upload
paulo-sergio-rangel-garcia
View
84
Download
4
Embed Size (px)
Citation preview
Análise e Desenvolvimento de Sistemas
4º semestre
Aula nº 11
Prof. Paulo Rangel
Segurança e Auditoria de Sistemas
Segurança de Dados
Conteúdo Previsto:
Tipos de Ataques
Questões sobre o conteúdo da aula a serem entregues na
próxima aula
Introdução
Duas grandes mudanças nas últimas décadas:
1. Antes da proliferação dos computadores a
Segurança era suprida por armários trancados,
fechaduras e cadeados, que após a sua
introdução em larga escala criou a necessidade
da Segurança de Computador, ainda sem a
abordagem do compartilhamento em redes.
2. A segunda mudança introduziu os sistemas
distribuídos e o uso de redes de computadores.
Surgindo o termo Segurança de Rede, mas que
atualmente deve ser abordado como Segurança de
inter-rede, pelo alto grau de conexão de diversas
rede (empresa, governo, clientes, fornecedores,
bancos, etc.)
Introdução
O foco de nosso estudo será sobre a Segurança de inter-rede, que consiste
em medidas para desencorajar, impedir, detectar e corrigir violações de
segurança que envolvam a transmissão de informações.
Introdução
Ameaça:
Potencial para violação da segurança quando há uma circunstância, capacidade, ação
ou evento que pode quebrar a segurança e causar danos. Ou seja, uma ameaça é um
possível perigo que pode explorar uma vulnerabilidade.
Ataque:
Um ataque à segurança do sistema, derivado de uma ameaça inteligente, ou seja, um
ato inteligente que é uma tentativa deliberada (especialmente no sentido de um método
ou técnica) de burlar os serviços de segurança e violar a política de segurança de um
sistema.
RFC2828 – Internet Security Glossary
Introdução
Atacantes e seus objetivos
Hackers –A colaboração constrói coisas surpreendentes. Esta no DNA da Internet!
Comunidade de Software Livre! Não é um atacante! Whitehat
Introdução
Atacantes e seus objetivos Cracker, vândalo, defacer–Hacker com fins destrutivos (blackhat)
Espião, Corporate raider–Ataca sistemas dos concorrentes pelo roubo da informação
para ganho financeiro ou competitivo
Terroristas –Atacam para causar medo ou por motivação política
Criminoso, Carder–Atacam sistema para obter ganho financeiro pessoal
Introdução
Atacantes e seus objetivos
Voyeur –Atacam para ter acesso à informação
Script Kiddy–Novato que se acha hacker, mas apenas segue "receitas de
bolo" disponíveis na Internet (não sabem exatamente porque aquilo
funciona)
Lamer, Luser–que se diz hacker (hacker não se diz hacker) "If you're a good
hacker everybody knows you. If you're a great hacker, no one does."
Phreaker–Um hacker com maior atuação em telecomunicações
White Hat–Um hacker, possivelmente aposentado, que trabalha como
consultor de segurança. Odiado pelos "Black Hats“
Grupos hackers –Ex: Cult of the Dead Cow
Ataques à Segurança
O IETF através da RFC 2828 classifica ataques em dois grupos:
Ataque Passivo: Tenta descobrir ou utilizar informações do sistema, mas
não afeta seus recursos.
Ataque Ativo: Tenta alterar os recursos do sistema ou afetar sua operação.
Internet Engineering Task Force
Ataque Passivo
Buscam espionar ou monitorar transmissões, a fim de obter informações que estão sendo
transmitidas. Pode ser classificados em 2 categorias:
Liberação do conteúdo da mensagem – Busca conhecer o conteúdo das mensagens
trocadas sem que o emissor e o receptor tenham conhecimento disso. Em ligações
telefônicas poderíamos chama-lo de “grampo” ;
Análise de Tráfego – Mais sutil, envolve a analise do trafego, tamanho, frequência,
emissor e receptor envolvidos. Utilizada quando existe criptografia que impede a simples
interceptação do seu conteúdo.
O Foco no tratamento de Ataques Passivos deve estar na prevenção e não na detecção.
Ataque Ativo
Envolvem modificação no fluxo de dados ou
a criação de um fluxo falso. Divididos em 4
categorias:
Disfarce – Busca parecer uma entidade
idônea para, por exemplo, capturar senhas
de acesso;
Repetição – Envolve a captura de uma
unidade de dados e sua retransmissão não
autorizada;
Modificação da Mensagem – Quando
parte da mensagem é modificada,
alterando o seu sentido e/ou conteúdo;
Negação de serviço – Impede ou inibe o
uso ou gerenciamento normal das
instalações de comunicações. Desativando
a rede ou a sobrecarregando.
Tipos de Ataque
Ataque por Dicionário É um método de ataque onde, de posse do arquivo de senhas, o cracker utiliza um arquivo que
contém diversas palavras que serão tentadas como senha. Este trabalho é feito automaticamente por
ferramentas dedicadas a este tipo de tarefa e pode levar dias dependendo da lista de senhas do
cracker e quantidades de usuários existentes no arquivo de senha.
Tipos de Ataque
Força Bruta É um método de ataque onde, de posse do arquivo de senhas, o cracker utiliza uma ferramenta que
tenta diversas combinações de letras sequencialmente na tentativa de descobrir uma senha. Este
ataque geralmente é usado como último recurso após um ataque por dicionário, e leva muito tempo
para descobrir uma senha.
Dependendo se uma senha conter caracteres aleatórios, combinação de letras maiúsculas ou
minúsculas, números, a senha será praticamente impossível de ser descoberta.
Tipos de Ataque
Monitoramento de Toques do Teclado Este é um ataque comum nos diversos Sistemas Operacionais, onde um programa é instalado sem o
conhecimento do usuário e grava todos os toques do teclado em um arquivo escondido pelo
cracker. Após certo tempo o cracker obtém acesso ao arquivo e aos dados que ele contém. Este tipo
de ataque é muito perigoso e pode capturar senhas não só do sistema como números de cartão de
crédito digitados, conta bancária e senha e tudo mais que for digitado pelo teclado.
Tipos de Ataque
Trojan Horse
Termo inglês que significa Cavalo de Tróia. É um programa que, uma vez instalado em um
computador, proporciona uma maneira furtiva de realizar ações ou coletar informações, sem ser
percebido pelo usuário. Através dele, é possível efetuar transações como realizar atividades nocivas
como ler arquivos e roubar senhas. Fraudes bancárias ou clonagem de cartões podem ser efetuados
através de Trojan Horse, estes são acionados quando sites de bancos são acessados e gravam tudo o
que for escrito e clicado.
Tipos de Ataque
Login Falso É uma técnica onde uma tela de login idêntica a original do sistema, ao digitar nome de
usuário e senha, os dados são gravados em um arquivo que é utilizado pelo cracker para obter
acesso ao sistema, e ao usuário, uma mensagem de erro é exibida. Então na segunda tentativa
do usuário, o acesso será feito ao sistema verdadeiro.
Uma alternativa de prevenção é digitar nome de usuário e senha incorretos na primeira
tentativa, lançando os corretos apenas na segunda.
Tipos de Ataque
Backdoor Termo inglês que significa Porta dos fundos, se trata de um trecho de código mal-
intencionado por onde o invasor cria uma ou mais falhas de segurança, e assim
poder dar acesso a pessoas não autorizadas a este sistema.
Tipos de Ataque
Programas Maliciosos São programas criados para burlar a segurança de sistemas, envolvendo desde espionagem, coleta
furtiva de senhas e destruição de informações até o controle total das maquinas afetadas. Alguns
tipos de programas maliciosos são descritos nos próximos slides.
Tipos de Ataque
Programas Maliciosos Vírus: Capaz de infectar outros programas e arquivos de um computador, embutindo neles uma
copia de si mesmo. Os programas e arquivos, ao serem executados, acabam executando o vírus,
dando continuidade ao processo de infecção. Vírus comuns são utilizados para destruir ou alterar
informações e enviar mensagens eletrônicas infectadas em massa.
Worm: Não contaminam outros programas, mas podem se replicar, enviando cópias deles mesmos
para outros sistemas e computadores. Para isto, o worm usa uma rede, o envia a si mesmo
automaticamente como um anexo em e-mail. Quando o usuário executa um anexo sem verificá-lo
com um programa antivírus, ele pode estar contaminando o sistema.
Tipos de Ataque
Ataques de dentro do Sistema Bombas lógicas: Perpetrado por programador da organização que insere um código em sistema
critico em produção, e caso não insira uma senha de controle em determinado período de tempo, a
bomba “explode”. O que pode significar apagar ou alterar informações do sistema critico e/ou tira-
lo de operação. Tanenbaum, cita o caso de um programador que teria que colocar uma senha no
sistema de folha de pagamento a cada ciclo de pagamento e se isso não ocorre-se em dois ciclos
consecutivos a bomba explodiria
Tipos de Ataque
Ataques de dentro do Sistema
Alçapões (trap door): Perpetrado por programador da organização que
insere um código no sistema desviando o processamento de uma rotina de
verificação caso determinada senha de acesso seja inserida, validando-a
independente da senha que constar no banco de dados.
Tipos de Ataque
Explorando erros de código: Transbordamento de buffer (Buffer overflow):
É uma condição anômala onde um processo tenta armazenar dados além dos limites de um buffer
com tamanho limitado. O resultado é que os dados adicionais sobrepõem locais adjacentes na
memória. Os dados sobrepostos podem incluir outros buffers, variáveis e fluxo de dados de
programas, e podem causar danos a um processo ou produzir resultados incorretos. Eles podem
ser desencadeados por entradas especificamente designadas para a execução de código malicioso,
ou para fazer o programa funcionar de maneira involuntária. Assim sendo, os buffer overflows
causam muitas vulnerabilidades e formam a base de muitos exploits.
Tipos de Ataque
Explorando erros de código: Ataque por transbordamento de números inteiros:
Na programação de computadores, um estouro de inteiro ocorre quando uma operação
aritmética tenta criar um valor numérico que é muito grande para ser representado dentro do
espaço de armazenamento disponível. Por exemplo, a adição de um para o maior valor que pode
ser representado, constitui um transbordamento de inteiros. Este erro irá criar condições para
um ataque análogo ao de transbordamento de buffer
Explorando erros de código:
Ataques por injeção de código: Injeção de código é um ataque no qual um código mal-intencionado é inserido em cadeias de
caracteres que são passadas posteriormente para uma instância do Server para análise e
execução. Qualquer procedimento que construa instruções deve ser verificado quanto a
vulnerabilidades de injeção. Mesmo dados com parâmetros podem ser manipulados por um
invasor qualificado e determinado.
Tipos de Ataque
A forma principal de injeção consiste em inserção
direta de código em variáveis de entrada de
usuário, concatenadas com comandos e
executadas. Um ataque menos direto injeta código
mal-intencionado em cadeias de caracteres
destinadas a armazenamento em uma tabela ou
como metadados. Quando as cadeias de caracteres
armazenadas são concatenadas subsequentemente
em um comando, o código mal-intencionado é
executado. Exemplo: SQL Injection
Tipos de Ataque
Ataques para obtenção de informações Dumpster diving ou trashing–verificar o lixo em busca de informações.
Engenharia social –técnica que explora as fraquezas humanas e sociais (Não envolve recursos
tecnológicos).
Farejamento de pacotes (Packet sniffing) - Farejam” o que passa pela rede. Consiste na
captura de informações pelo fluxo de pacotes de um mesmo segmento de rede.
Scanner de portas (Port scanning) - Ferramentas utilizadas para obtenção de informações
referentes aos serviços que são acessíveis e definidas por meio do mapeamento das portas TCP e
UDP.
Tipos de Ataque
Ataques para obtenção de informações Scanning e vulnerabilidades - Após o mapeamento dos sistemas e serviços que
podem ser atacados, as vulnerabilidades específicas serão procuradas por meio do scanning
de vulnerabilidades. O port scanning define os alvos.
Firewalking – Técnica implementada para obter informações sobre uma rede remota
protegida por um firewall.
IP spoofing – Endereço real do atacante é mascarado, de forma a evitar que ele seja
encontrado.
Tipos de Ataque
Ataques de Negação de Serviço (DoS)
Também conhecido como DoS - Denial of Service, é um ação que impede ou prejudica o uso
autorizado de redes, sistemas ou aplicações, através do esgotamento de recursos como CPU,
memória, largura de banda e espaço de disco.
Tipos de Ataque
Ataques de Negação de Serviço (DoS)
Alguns exemplos:
Usar toda a banda disponível da rede pela geração de um volume de tráfego descomunal;
Enviar pacotes mal formados para um servidor para que o sistema operacional pare;
Enviar pedidos ilegais para uma aplicação para fazê-la parar;
Fazer vários pedidos que consomem CPU para que a máquina não tenha condições de
atender outros pedidos;
Criar várias conexões simultâneas para que o servidor não possa aceitar outras conexões;
Criar vários arquivos imensos em disco para ocupar todo o espaço disponível.
Anatomia de um ataque
Anatomia de um ataque
Anatomia de um ataque
Footprinting(reconhecimento)
Informações básicas podem indicara postura e a política de
segurança da empresa
Coleta de informações essenciais para o ataque
Nomes e máquinas, nomes de login, faixas de IP, nomes de domínios,
protocolos, sistemas de detecção de intrusão
São usadas ferramentas comuns da rede
Engenharia Social
Qual o e-mail de fulano?
Aqui é Cicrano. Poderia mudar minha senha?
Qual o número IP do servidor SSH? e o DNS?
Anatomia de um ataque
Anatomia de um ataque
Scanning (varredura ou mapeamento)
De posse das informações coletadas, determinar
Quais sistemas estão ativos e alcançáveis
Portas de entrada ativas em cada sistema
Ferramentas
Unix: nmap
Windows: net scan tools pro ($), super scan(free)
system banners, informações via SNMP
Descoberta da Topologia
Automated discovery tools: cheops, ntop, …
Comandos usuais: ping, traceroute, nslookup
Anatomia de um ataque
Scanning (varredura ou mapeamento)
Detecção de Sistema Operacional
Técnicas de fingerprint (nmap)
Busca de senhas contidas em pacotes (sniffing)
Muitas das ferramentas são as mesmas usadas para
gerenciamento e administração da rede
Anatomia de um ataque
Anatomia de um ataque
Anatomia de um ataque
Enumeration (enumeração)
Coleta de dados intrusiva
Consultas diretas ao sistema
Está conectado ao sistema e pode ser notado
Identificação de logins válidos
Banners identificam versões de HTTP, FTP servers
Exemplo:
Comando: telnet www.host.com 80
Resposta: HTTP/1.0 Bad Request server Netscape
Commerce/1.12
Anatomia de um ataque
Enumeration (enumeração)
Identificação de recursos da rede
Compartilhamentos (windows) –Comandos net view, nbstat
Exported file systems(unix) –Comando showmount
Identificação de Vulnerabilidades comuns
–Nessus, SAINT, SATAN, SARA, TARA, ...
Identificação de permissões
–find/home/joao-perm0004(arquivos de joao que podem
ser lidos por qualquer um...)
Anatomia de um ataque
Anatomia de um ataque
Ganhando acesso (invasão)
Informações coletadas norteiam uma estratégia de ataque
Invasores mantêm um “Banco de dados” de vulnerabilidades
Bugs de cada SO, kernel, serviço, aplicativo–por versão
Tentam encontrar sistemas com falhas conhecidas
Busca privilégio de usuário comum (pelo menos)
Técnicas
Password sniffing, password crackers, password guessing
Session hijacking (sequestro de sessão)
Ferramentas para bugs conhecidos(buffer overflow)
Hackers também constroem as suas próprias ferramentas,
personalizadas
Anatomia de um ataque
Anatomia de um ataque
Escalada de privilégios
Uma vez com acesso comum, busca acesso completo ao sistema
(administrator, root)
Ferramentas específicas para bugs conhecidos
"Exploits"
Técnicas
Password sniffing, password crackers, password guessing
Session hijacking (sequestro de sessão)
Replay attacks
Buffer overflow
Trojans
Anatomia de um ataque
Anatomia de um ataque
Anatomia de um ataque
Ocultação de rastros
Invasor tenta evitar detecção da presença
Usa ferramentas do sistema para desabilitar auditoria
Windows: c:\auditpol/disable(atividadedo invasor)c:\auditpol/enable
Toma cuidados para não deixar “buracos” nos logs
Excessivo tempo de inatividade vai denunciar um ataque
Existem ferramentas para remoção seletiva do Event Log
Esconde arquivos “plantados” (back doors)
Exemplo1: attrib +h file
Exemplo2: cp backdoor.exe arquivo.ext:stream(esconde)
cp arquivo.ext:streambackdoor.exe (recupera)
(conceito de file stream foi introduzido peloWindows2000)
Anatomia de um ataque
Anatomia de um ataque
Instalação de Backdoors (porta dos fundos)
Objetivo é a manutenção do acesso
Rootkits – Ferramentas ativas, mas escondidas
Trojan horses – Programas falsificados
Backdoors –acesso/controle remoto sem autenticação
Próxima invasão será mais fácil
Trojans podem mandar informação para invasor
Captura teclado (ex: no login)
Manda um e-mail com a senha
Anatomia de um ataque
Instalação de Backdoors (porta dos fundos)
Rootkits se confundem com o sistema
Comandos modificados para não revelar o invasor
Exemplo: (unix) ps, who, mount e até partes do kernel!
Backdoors
Sistemas cliente/servidor
Cliente na máquina invasora controlando Servidor na máquina remota
–Não aparecem na "Task List" do Windows NT/2k
Anatomia de um ataque
Anatomia de um ataque
Denial of Service (negação de serviço)
Ataques com objetivo de bloquear serviços, através de:
Consumo de banda de rede
Esgotamento de recursos
Exploração de falhas de programação (ex: ping da morte)
Sabotagem de Roteamento
RIP, BGP tem fraca autenticação
Pacotes não conseguem sair da rede
Sabotagem no DNS
DNS responde errado causando desvio de acesso
banco.com =>hacker.com
Anatomia de um ataque
Denial of Service (negação de serviço)
Se a Amazon parar30 minutos, qual o prejuízo?
E se não parar mas ficar20% mais lento ?
•DDoS =>Distributed Denial of Service
Ataques coordenados de múltiplas fontes
Ações Preventivas
Os mais conhecidos.....
Segurança de Dados
Referências:
STALLINGS, William, Criptografia e Segurança de Redes. 4ª Edição. São
Paulo: Pearson Prentice Hall, 2008
TANENBAUM, Andrew S., Sistemas Operacionais Modernos. 3ª Edição.
São Paulo: Pearson Prentice Hall, 2010.
IETF - Internet Engineering Task Force, RFC 2828 Internet Security
Glossary. http://www.ietf.org/rfc/rfc2828.txt , acessado em 17/09/12.
CERT.BR, Estatísticas Mantidas pelo Cert.Br. http://www.cert.br/stats/
acessado em 17/09/12
KLEINSCHMIDT, J. H. Segurança de Dados. Santo André, UFABC, 2010.
http://professor.ufabc.edu.br/~joao.kleinschmidt/aulas/seg2010/aula_06_se
g.pdf acessado em 17/09/12
Glossário
dos (DoS - Denial of Service): notificações de ataques de negação de
serviço, onde o atacante utiliza um computador ou um conjunto de
computadores para tirar de operação um serviço, computador ou rede.
invasão: um ataque bem sucedido que resulte no acesso não autorizado
a um computador ou rede.
web: um caso particular de ataque visando especificamente o
comprometimento de servidores Web ou desfigurações de páginas na
Internet.
scan: notificações de varreduras em redes de computadores, com o
intuito de identificar quais computadores estão ativos e quais serviços
estão sendo disponibilizados por eles. É amplamente utilizado por
atacantes para identificar potenciais alvos, pois permite associar possíveis
vulnerabilidades aos serviços habilitados em um computador.
Glossário
Fraude: segundo Houaiss, é "qualquer ato ardiloso, enganoso, de má-
fé, com intuito de lesar ou ludibriar outrem, ou de não cumprir
determinado dever; logro". Esta categoria engloba as notificações de
tentativas de fraudes, ou seja, de incidentes em que ocorre uma tentativa
de obter vantagem.
Scam. Scams (com "m") são quaisquer esquemas para enganar um
usuário, geralmente, com finalidade de obter vantagens financeiras.
Ataques deste tipo são enquadrados na categoria fraude.
Exploit, É um programa, uma porção de dados ou uma sequência de
comandos que se aproveita das vulnerabilidades de um sistema. São
geralmente elaborados por hackers como programas de demonstração das
vulnerabilidades, a fim de que as falhas sejam corrigidas, ou por crackers a
fim de ganhar acesso não autorizado a sistemas. Por isso muitos crackers
não publicam seus exploits, conhecidos como 0days, e o seu uso
massificado deve-se aos script kiddies.
Glossário
IETF (sigla em inglês de Internet Engineering Task Force) é uma
comunidade internacional ampla e aberta (técnicos, agências,
fabricantes, fornecedores, pesquisadores) preocupada com a
evolução da arquitetura da Internet e seu perfeito funcionamento.
O IETF tem como missão identificar e propor soluções a
questões/problemas relacionados à utilização da Internet, além de
propor padronização das tecnologias e protocolos envolvidos. As
recomendações da IETF são usualmente publicadas em
documentos denominados RFCs (Request for Comments), sendo que
o próprio IETF é descrito pela RFC 3160
Segurança de Dados
DÚVIDAS