Escolar Documentos
Profissional Documentos
Cultura Documentos
ATAQUES E
VULNERABILIDADES
Tcnico em Redes de Computadores
3 Mdulo
Jacson Tiola
Apresentao
Sesso
Transporte
Transporte
Rede
Inter-Rede
Enlace
Enlace & Fsico
Fsico
OSI
TCP/IP
2
Famlia TCP/IP
DNS
SNMP
NFS
OSPF
FTP
HTTP
SSH
SMTP
Aplicao
Transporte
UDP
Inter-Rede
ARP
ETHERNET
SCTP
IGMP
RTP
IP
TCP
ICMP
ATM
RARP
802.11
...
Aplicao
Transporte
Inter-Rede
Vandalismo
Acesso cabos lgicos e de fora, disjuntores
Acesso a equipamentos, racks distribudos no
prdio
Manuteno na rede eltrica interfere na rede
Picos de energia afetam servios
Redes sem fio
Frequncia do IEEE 802.11 2.4GHz (ISM)
Muitos dispositivos podem interferir (ex: fornos
microondas, Bluetooth) e causar DoS (denial of
service)
Captura do sinal, captura de pacotes
Criptografia de nvel fsico deve estar habilitada
ARP cache poisoning (envenenamento tabela ARP)
Modelo TCP/IP
4
Aplicao
Algumas Ameaas
Transporte
Inter-Rede
Vulnerabilidades em roteadores
Administradores usam senha de
administrao default do fabricante
Bugs no software permitem buffer
overflow
Firewalls mal configurados
IP Internet Protocol
IPv4 no oferece confidencialidade
Pacotes podem ser lidos na rede pblica
ou no ISP
Ataques spoofed (source IP falso)
DoS (ex: ping da morte)
Vulnerabilidades no BGP, OSPF
5
Aplicao
Transporte
Inter-Rede
Aplicao
Algumas Ameaas
Transporte
Inter-Rede
Modelo TCP/IP
7
Terminologia
Ataque
Vulnerabilidade
uma falha que pode permitir a conduo de um ataque
Incidente
A ocorrncia de um ataque; explorao de vulnerabilidades
Ameaa
Qualquer evento que pode causar dano a um sistema ou rede
Por definio, a existncia de uma vulnerabilidade implica em uma
ameaa
Exploit code
Um cdigo preparado para explorar uma vulnerabilidade conhecida
Uma ferramenta para ataques
Fonte: www.cert.dfn.de/eng/pre99papers/certterm.html
(entre outras)
8
Incidentes
Incidente
Ataque
Evento
Atacante
Ferramenta
Vulnerabilidade
Ao
Alvo
Resultado
Objetivo
Hacker
Ataque fsico
Projeto
Sondar
Conta
Mais acesso
Desafio
Espio
Informao
Implementao
Mapear
Processo
Abertura info
Poltico
Terrorista
Comando
Configurao
Inundar
Informao
Corrupo info
Financeiro
Cracker
Script
Autenticar
Componente
Negao Serv
Destruir
Script Kiddy
Agente
Contornar
Computador
Roubo recurso
Criminoso
Toolkit
Spoof
Rede
Ferr. Distrib
Escuta
Ler
Inter-rede
Copiar
Roubar
Modificar
Apagar
10
11
Hackers Atacam sistemas pelo desafio tcnico, por status ou pela "adrenalina" da
invaso. Constroem suas prprias ferramentas
Cracker, vndalo, defacer Hacker com fins destrutivos (blck hat)
Espio, Corporate raider Ataca sistemas dos concorrentes pelo roubo da informao
para ganho financeiro ou competitivo
Terroristas Atacam para causar medo ou por motivao poltica
Criminoso, Carder Atacam sistema para obter ganho financeiro pessoal
Voyeur Atacam para ter acesso informao
Script Kiddy Novato que se acha hacker, mas apenas segue "receitas de bolo"
disponveis na Internet (no sabem exatamente porque aquilo funciona)
Lamer, Luser que se diz hacker (hacker no se diz hacker) "If you're a good hacker
everybody knows you. If you're a great hacker, no one does."
Hall da Fama
Fonte: http://tlc.discovery.com/convergence/hackers/bio/bio.html
13
Tipos de Ataques
Packet sniffing
Chamada tambm de passive eavesdropping
Farejam o que passa pela rede
Consiste na captura de informaes pelo fluxo de
pacotes de um mesmo segmento de rede
Switches podem ser usados para dividir a rede em
mais segmentos
Softwares: snoop (Solaris), tcpdump (Linux), wireshark
Port scanning
Ferramentas utilizadas para obteno de informaes
referentes aos servios que so acessveis e definidas
por meio do mapeamento das portas TCP e UDP
Ex: nmap
Detecta portas abertas do sistema, sistema
operacional, nmero de sequncia de pacotes TCP,
usurio que est executando cada servio. Alguns
mtodos:
TCP connect, TCP SYN, UDP, ICMP, FIN, RPC scan, FTP proxy.
porta fechada
porta aberta
Scanning de vulnerabilidades
Aps o mapeamento dos sistemas e servios que podem ser
atacados, as vulnerabilidades especficas sero procuradas por
meio do scanning de vulnerabilidades. O port scanning define os
alvos, evitando, por exemplo, que vulnerabilidades especficas
do Windows sejam testadas em Unix. Alguns riscos que podem
ser mapeados:
Compartilhamento de arquivos
Configurao incorreta
Software desatualizado
Configuraes de roteadores perigosas
Checagem de cavalos de tria
Configurao de servios
Possibilidade de negao de servio (DoS)
Checagem de senhas fceis de serem adivinhadas
Scanning de vulnerabilidades
Esta tcnica pode ser utilizada para demonstrar problemas de
segurana que existem nas organizaes. Ex: Nessus
IP spoofing
Endereo real do atacante mascarado, de forma a
evitar que ele seja encontrado.
DoS
Ataques de refletor
Em um ataque de refletor, uma mquina envia muitos pedidos
com um endereo de origem falsificado (spoofing) para uma
mquina intermediria
Esse endereo falsificado o endereo da mquina que se quer
atacar
As mquinas intermedirias enviam respostas dos pedidos
mquina atacada, sem inteno de fazer isso
Exemplos
DNS, SNMP, ICMP echo, etc
DoS
Ataques de amplificador
semelhante ao ataque de refletor, mas usa uma rede inteira
como intermediria para gerar pedidos para a mquina atacada
Isso realizado enviando pacotes ICMP ou UDP para endereos
de broadcast
A esperana que cada mquina que receba o pacote,
responda para a mquina atacada
Dessa forma, um nico pacote pode ser multiplicado vrias
vezes, inundando a mquina atacada
Uma rede consegue evitar ser usada como amplificador,
proibindo pacotes de broadcast direcionados nos roteadores
(depende da poltica de roteadores)
SYN Flood
Fragmentao de pacotes de IP
Smurf e fraggle
Hacker
define
alguns
sistemas (masters) que se
comunicam com os zombies
ou daemons.
Todos so vtimas do hacker.
Redirecionamento de conexes TCP para uma determinada mquina (man-in-themiddle). Todo byte enviado por um host identificado por um nmero de
sequncia que reconhecido (acknowledgement) pelo receptor.
O ataque tem como base a dessincronizao nois dois lados TCP. O atacante cria os
nmeros de sequncia vlidos, colocando-se entre os dois hosts e enviando
pacotes vlidos para ambos. Ataque mais sofisticado, deve-se interromper a
conexo em um estgio inicial e criar nova conexo.
Ataque de Mitnick
Ataque clssico contra o especialista em segurana Tsutomu Shimomura
no natal de 2004.
Tcnicas utilizadas: IP spoofing, sequestro de conexo TCP, negao de
servio, prognstico de nmero de sequncia.
Falhas de programao
Ataques na Web
Problemas com o SNMP
Vrus, worms e cavalos de tria
Cada vez mais sofisticados. Ex: Stuxnet (2010)
Buffer overflow
Buffer Overflow
Buffer Overflow
Estado da stack no momento antes da chamada de
strcpy(). A cpia dos dados feita escrevendo o
primeiro byte de src (s) na primeira posio de dst
(buf), sucessivamente at o que strcpy encontre um
caractere null em src.
Quando a funo foobar() for chamada, inserido
na pilha o endereo de retorno (retaddr). Ao trmino
da funo restaurado o valor do retaddr para o
registrador.
Se podemos sobrescrever o valor do retaddr
possvel conseguir o controle do fluxo das
instrues. Basta ento apont-lo para um buffer que
contenha as instrues que desejamos executar .
Exemplo C/C++
Validao de Entradas
A aplicao que alimentada pelo usurio deve lidar com entradas
inusitadas e maliciosas. Deve-se acreditar que toda entrada de dados
maliciosa! No se deve confiar em absolutamente nenhuma informao
fornecida pelo usurio.
Como no h uma frmula para solucionar este problema, devemos adotar
uma metodologia. Uma abordagem muito aceita entre os programadores
envolvidos com segurana codificar o software de forma que ele aceite um
conjunto restrito e precisamente mapeado de possibilidades; rejeitando todas
as demais.
Injeo SQL
SQL Injection um dos tipos de vulnerabilidades decorrentes do mal
processamento de entradas. Imagine um sistema onde o login e a senha de um
usurio so passados atravs de um formulrio web. As informaes fornecidas
so validadas em um banco de dados, e o acesso garantido se a consulta
acusar o sucesso da autenticao.
Ao submeter a informao o usurio faz com que o servidor execute uma rotina
de autenticao.
Quando as informaes fornecidas combinam com alguma das linhas do banco
de dados, o sistema imprime a mensagem Acesso permitido! :-), caso contrrio,
imprime Acesso negado. :-(.
Injeo SQL
Para Maria se autenticar no sistema: abre seu navegador, carrega o formulrio, e entra
com o nome e senha corretos. As variveis $login e $passwd sero preenchidas com os
valores passados pelo comando POST. A autenticao feita atravs do comando SQL,
que busca uma entrada da tabela users que contenha ao mesmo tempo o login e a senha
fornecidos pelo usurio. No caso da Maria, o comando SQL processado ser select *
from users where login='maria' and password='maria123'.
Injeo SQL
Uma falha susceptvel a SQL injection quando possvel escolher um input tal que a
query resultante contenha um comando arbitrrio.
Vejamos novamente a codificao da query SQL:
$qry= "select * from users where login='$login' and password='$passwd'"
O que acontece quando a varivel $login contm um dos caracteres de controle da
linguagem SQL? Por exemplo, se o token de comentrio (- -) fosse atribudo varivel
$login, o que aconteceria?
Ocorre que a varivel $login concatenada com as outras partes do comando sem haver
nenhum tratamento prvio. As informaes fornecidas pelo usurio so substitudas na
cadeia de caracteres $qry sem que seja assegurada a consistncia do comando
resultante.
Portanto, os campos Nome e Senha do formulrio so extenses do comando SQL! Os
valores no so devidamente resguardados como um dos parmetros da clusula
WHERE. Se o campo Nome tem valor -- (como no exemplo acima) e Senha
deixado em branco, temos o seguinte resultado:
Injeo SQL
Note o token de comentrio - - (terminado por um caractere branco). Toda a linha
direita dele ignorado, resultando em:
$qry= "select * from users where login= "
Esta modificao ainda no o suficiente para burlar a autenticao do programa, j
que no h entradas com o campo login nulo na tabela users.
Partindo do princpio que no conhecemos nenhum usurio que nos permitiria entrar
algo como: maria- - podemos concatenar uma condio OU com uma sentena
verdadeira, para obter como resposta todas as linhas da tabela users. A query
resultante da entrada da cadeia or 1 = 1 - - seria:
$qry= "select * from users where login= or 1=1"
Este comando far com que todas as linhas da tabela sejam retornadas, j que 1 = 1
sempre verdadeiro.
Assim, o mecanismo de autenticao foi burlado. O atacante foi capaz de violar o
controle de acesso sem nem mesmo precisar de um usurio forjado.
Injeo SQL
A maneira correta de implementar a construo da query validando a entrada antes
de ser concatenada ao comando, assegurando que no h comandos injetados dentro do
valor recebido.
Uma das maneiras de se proteger do ataque processar a entrada do usurio com a
funo mysql_real_escape_string(), que adiciona escapes todos os caracteres
reconhecidos como ameaas para um comando na linguagem SQL que so, na verdade,
os prprios caracteres especiais ou tokens da linguagem. Poderamos usar a funo para
adicionar escapes no contedo da varivel $login, desta forma:
Note que o segundo acento precedido de um escape, e isto faz com que todo o
argumento, incluindo a seqncia de comentrio - - , seja considerado parte do
campo login na busca. O resultado um sistema mais seguro, j que este novo
mecanismo capaz de evitar a injeo do comando.
Condies de Corrida
As condies de corrida ocorrem em ambientes que suportam
multiprogramao.
Este problema acontece quando dois ou mais processos
acessam os mesmos recursos "simultaneamente".
Um recurso pode ser modificado, intencionalmente ou no,
por um processo, e ser requisitado por um segundo, fazendo
que este se comporte de maneira no esperada.
Condies de Corrida
Semforos e locks so mecanismos que previnem acesso
concorrente em um objeto por diferentes processos.
Anatomia de um ataque
Varredura
Reconhecimento
Enumerao
Invaso
Escalando
privilgios
Acesso
informao
Instalao de
back doors
Ocultao
de rastros
Denial of
service
66
Anatomia de um ataque
Varredura
Reconhecimento
Enumerao
Invaso
Escalando
privilgios
Acesso
informao
Instalao de
back doors
Ocultao
de rastros
Denial of
service
67
1. Footprinting (reconhecimento)
Informaes bsicas podem indicar a postura e a poltica de
segurana da empresa
Coleta de informaes essenciais para o ataque
Nomes de mquinas, nomes de login, faixas de IP, nomes de
domnios, protocolos, sistemas de deteco de intruso
68
Anatomia de um ataque
Varredura
Reconhecimento
Enumerao
Invaso
Escalando
privilgios
Acesso
informao
Instalao de
back doors
Ocultao
de rastros
Denial of
service
69
Ferramentas
Unix: nmap
Windows: netscantools pro ($), superscan (free)
system banners, informaes via SNMP
Descoberta da Topologia
Automated discovery tools: cheops, ntop,
Comandos usuais: ping, traceroute, nslookup
Mapeamento de rede
Tela do Cheops
(http://cheops-ng.sourceforge.net)
71
Anatomia de um ataque
Varredura
Reconhecimento
Enumerao
Invaso
Escalando
privilgios
Acesso
informao
Instalao de
back doors
Ocultao
de rastros
Denial of
service
72
3. Enumeration (enumerao)
telnet www.host.com 80
HTTP/1.0 Bad Request
server Netscape Commerce/1.12
Identificao de permisses
find /home/joao -perm 0004
(arquivos de joao que podem ser lidos por qualquer um...)
73
Anatomia de um ataque
Varredura
Reconhecimento
Enumerao
Invaso
Escalando
privilgios
Acesso
informao
Instalao de
back doors
Ocultao
de rastros
Denial of
service
74
75
Anatomia de um ataque
Varredura
Reconhecimento
Enumerao
Invaso
Escalando
privilgios
Acesso
informao
Instalao de
back doors
Ocultao
de rastros
Denial of
service
76
5. Escalada de privilgios
Uma vez com acesso comum, busca acesso completo ao sistema
(administrator, root)
Ferramentas especficas para bugs conhecidos
"Exploits"
Tcnicas
77
Anatomia de um ataque
Varredura
Reconhecimento
Enumerao
Invaso
Escalando
privilgios
Acesso
informao
Instalao de
back doors
Ocultao
de rastros
Denial of
service
78
Anatomia de um ataque
Varredura
Reconhecimento
Enumerao
Invaso
Escalando
privilgios
Acesso
informao
Instalao de
back doors
Ocultao
de rastros
Denial of
service
80
7. Ocultao de rastros
Anatomia de um ataque
Varredura
Reconhecimento
Enumerao
Invaso
Escalando
privilgios
Acesso
informao
Instalao de
back doors
Ocultao
de rastros
Denial of
service
82
Anatomia de um ataque
Varredura
Reconhecimento
Enumerao
Invaso
Escalando
privilgios
Acesso
informao
Instalao de
back doors
Ocultao
de rastros
Denial of
service
84
Prevenindo Ataques
Fase
Ao preventiva
Reconhecimento
Mapeamento
Enumerao
Invaso
Escalada de privilgios
Ocultao de rastros
Instalao de Backdoors