Segurança & Auditoria
de Sistemas
AULA 06
Eduardo Silvestri
www.eduardosilvestri.com.br
Ataques
Tipos de Ataques
Sniffing
Computadores em rede compartilham canais de
comunicação. Isso é, obviamente, muito mais
barato que passar um cabo para cada par de
computadores e usar um switch (hub) pra
comutar as conexões. Neste canais
compartilhados, computadores podem receber
informações enviadas a outros computadores. A
ação de capturar informações destinadas a uma
outra máquina é chamada sniffing.
Sniffing
O padrão Ethernet envia um pacote para todas as
máquinas em um mesmo segmento. O
cabeçalho do pacote contém o endereço da
máquina destino. Supõe-se que somente a
máquina que tenha o endereço contido no
pacote receba-o. Diz-se que um computador
está em modo promíscuo quando o mesmo
captura todos os pacotes, independentemente de
serem ou não destinados a ele.
Sniffing
Em um ambiente de rede normal, os nomes e as
senhas dos usuários são passadas através da
rede em claro, ou seja, texto não criptografado.
Não é difícil, portanto, um intruso utilizando
uma máquina com interface de rede em modo
promíscuo, obter qualquer senha, inclusive a do
root, usando um sniffer.
Scanners de Porta
Os scanners são programas que buscam portas
TCP abertas por onde pode ser feita uma
invasão. Para que a varredura não seja
percebida pela vítima, alguns scanners testam as
portas de um computador durante muitos dias
em horários aleatórios.
Spoofing
O IP Spoofing ficou famoso após ter sido a
atração principal do ataque à rede de Tsutomu
Shimomura, um dos maiores especialistas de
segurança dos Estados Unidos, quando através
dele, na noite de Natal de 1994, o mais famoso
e procurado hacker americano, Kevin Mitnick,
invadiu a sua rede particular e roubou alguns
dos seus programas, dentre eles, um software de
programação dos celulares Oki, que lhe
permitiria ter um controle total sobre suas
ligações clandestinas e escutas de celulares.
Spoofing
Esta história, é claro, foi desmentida por Kevin,
que apesar do sabido interesse no referido
telefone, não demonstrava aptidão suficiente
para realizar um ataque desta grandeza. Apesar
deste tipo de ataque ter sido teorizado há muitos
anos, somente na metade desta década ele ficou
mundialmente conhecido e, em 1997 já era o 4°
método de invasão mais utilizado. Hoje
encontram-se ferramentas que automatizam esta
fatigante tarefa, e tem-se conhecimento de
ataques de spoofing concretizados em menos de
meio minuto!
Spoofing
Disfarce. É isto que este ataque faz. Muitas
comunicações entre computadores na Internet
se baseiam em "parceiros" confiáveis. Um
computador X pode manter uma comunicação
com um computador Y de forma que não seja
necessária a constante verificação de
autenticidade entre eles. O hacker, então, se
disfarça, dizendo para o computador X que
"ele" é o computador Y. Desta forma o
computador X vai aceitar seus comandos
tranqüilamente, enquanto ele deita e rola pelo
sistema.
Spoofing
Um pouco mais de detalhes: os pacotes IP
possuem um endereço destino e um endereço
origem. Normalmente o endereço origem reflete
a realidade, mas nada impede que um hacker
altere este pacote para que ele pareça ter vindo
de outro lugar. Só que não é tão simples assim...
Spoofing
Além de enganar o destino, neste caso o
computador X, é necessário que se
sobrecarregue o computador Y, para que ele não
responda às mensagens de X, o que faria com
que Y dissesse: "Mas eu não te perguntei nada!",
e X cancelaria a conexão. Faz-se necessária,
ainda, uma "previsão" do número de seqüência
mandado por X. Este número é enviado por X
ao originador da conexão (supostamente o Y).
Spoofing
Mas Y não irá responder, devido à sobrecarga
explicada anteriormente. Então o hacker deve
prever o número de seqüência mandado por X
para que seja enviado um novo pacote com
estes números de seqüência, fingindo
novamente ter sido enviado por Y, e forjando a
autenticação.
Spoofing
A previsão deste número de seqüência é um
processo demorado e criativo. Durante a
negociação da conexão, os computadores
trocam informações para efetuarem o
"handshake" ou "aperto de mão". Dentre as
informações trocadas estão os números de
seqüência, que devem ser repetidos para o
destino, para que este se certifique da
autenticidade da conexão.
Spoofing
O que o hacker pode fazer é o seguinte: enviar,
através de um pacote legítimo, com o endereço
de origem verdadeiro, vários pedidos de
conexão à X. Este responde com um número de
seqüência para que o hacker o repita e efetue a
conexão, mas a máquina de origem (o hacker)
não tem privilégios e não lhe interessa fechar
esta conexão. Então ele não responde a estes
pacotes de X, apenas os guarda e verifica seu
número de seqüência.
Spoofing
Após vários pedidos de conexão com X, o hacker
pode "aprender" como X gera seus números e
então mandar um pedido de conexão, desta vez
com o endereço de origem sendo Y (o
computador confiável). Obviamente, o hacker
não vai receber os pacotes de X com os
números de seqüência, pois estes irão para o
endereço de origem (computador Y, que, a esta
altura, precisa estar sobrecarregado para não
respondê-los), mas, com base nos cálculos
anteriores, o hacker prevê e manda o número de
seqüência correto para o computador X,
Spoofing
Esta conexão é unidirecional, pois todas as
respostas de X serão destinadas ao computador
Y, e não ao computador do hacker. Então o
hacker age "às cegas", pois não recebe nenhum
tipo de retorno de X, pelo menos enquanto
configura X para aceitar conexões do seu
próprio computador. Ao terminar, o hacker tira
o disfarce: desfaz a conexão falsa com X, e faz
uma legítima, agora que X pode aceitar
conexões confiáveis através do computador do
hacker, com todos os privilégios possíveis e
imagináveis.
Spoofing
Há dois inconvenientes neste ataque: o trabalho de
achar um padrão nos números de seqüência e a
falta de retorno do computador invadido.
Entretanto, existe ainda uma outra categoria de
spoofing, que, apesar das condições pouco
comuns, é muito mais eficiente.
Spoofing
Neste tipo de ataque, um computador de pouca
importância em uma rede é invadido por um
método simples qualquer (infelizmente, os
computadores que não guardam informações
importantes geralmente são esquecidos no
projeto de segurança) e, estando localizado no
mesmo meio físico onde ocorre uma
comunicação entre duas máquinas importantes,
ele poderá "captar" todo o tráfego deste meio
físico.
Spoofing
Com isso ele saberá os números de seqüência de
ambos os lados, podendo interceptar este
diálogo, pondo-se no lugar de um dos
computadores da conexão confiável, tendo total
acesso aos dados mais sigilosos. Este tipo de
ataque só pode ser eficazmente prevenido
através de um controle apurado de TODOS os
computadores da rede local, que compartilham
o mesmo meio físico, ou através de uma
comunicação confiável baseada em aplicativos
de criptografia.
Sniffing
Em um ambiente de rede normal, os nomes e as
senhas dos usuários são passadas através da
rede em claro, ou seja, texto não criptografado.
Não é difícil, portanto, um intruso utilizando
uma máquina com interface de rede em modo
promíscuo, obter qualquer senha, inclusive a do
root, usando um sniffer.
Scanners de Porta
Os scanners são programas que buscam portas
TCP abertas por onde pode ser feita uma
invasão. Para que a varredura não seja
percebida pela vítima, alguns scanners testam as
portas de um computador durante muitos dias
em horários aleatórios.
Técnicas para Negação de Serviços
Esta categoria engloba um conjunto de técnicas
freqüentemente citadas sob a denominação
genérica de DoS (Denial of Services). Seu
propósito comum é o de tornar hosts e serviços de
rede inoperantes ou, pelo menos, degradar seu
funcionamento a um ponto em que sua utilização
torne-se não compensadora.
Técnicas para Negação de Serviços
A maioria destas técnicas busca esgotar os
recursos do sistema alvo, forçando uma interrupção
total ou parcial dos serviços. Capacidade de
processamento, largura de banda e capacidade de
armazenamento de dados são alguns dos recursos
visados pelas técnicas de negação de serviços.
Falhas de implementação, Bugs e outras
peculiaridades dos S.O. e dos aplicativos, são
consideradas no desenvolvimento desta técnica.
Técnicas para Negação de Serviços
É interessante notar que as técnicas de negação de
serviço são frequentemente aplicadas como uma
etapa intermediaria de métodos de ataque mais
complexos, servindo, por exemplo, para deixar um
host fora do ar a fim de que outro host assuma sua
identidade ou interrompendo o funcionamento de
um sistema que execute funções de segurança e
controle de rede.
Técnicas para Negação de Serviços
Algumas técnicas de Negação de Serviço:
•
•
•
•
•
•
Smurf
SYN Flood.
LAND
Ataques baseados em ICMP.
Ping o’Death.
DDoS Distributed Denial of Services.
SMURF
O smurf é um tipo de ataque de negação de
serviço. O agressor envia solicitações Ping (um
teste para verificar se um serviço da Internet
esta acessível) para um endereço de broadcast.
Usando spoofing, o cracker faz com que o
servidor de broadcast encaminhe as respostas
não para seu endereço, mas para o da vítima.
Assim o computador-alvo é inundado pelo Ping.
SYN Flood
Esta técnica consiste no envio de uma grande
sequencia de pacotes TCP SYN para o host alvo.
Esses pacotes são interpretados como solicitações
de estabelecimento de conexão e, como tais, são
armazenados em uma fila de conexões em
andamento. Os pacotes TCP SYN/ACK enviados
pelo alvo em resposta aos falsos pedidos não são
respondidos, geralmente porque são gerados com
endereços IP falso ou invalido.
SYN Flood
Assim a fila de conexões em andamento atinge
rapidamente seu limite configurado e passa a
descartar novas solicitações de conexão, o que
na pratica torna indisponíveis os serviços na
residentes no host alvo.
LAND
LAND baseia-se no efeito que o recebimento de um
datagrama IP no qual os endereços de origem e
destinos são os mesmos pode ter sobre
determinados sistemas. Em certos casos, o
processamento deste datagrama no alvo irá
produzir um loop que pode esgotar os recursos da
maquina, causando sensível queda de
desempenho ou até o travamento do sistema.
LAND
Variações desta técnica preveem alterações em
outros campos do cabeçalho IP do datagrama
inválido, como as portas ou bits de controle.
Essas alterações podem produzir efeitos aos hosts
alvos semelhantes aos do LAND original
comentado anteriormente.
ICMP
Esta técnica aproveita das funcionalidades do ICMP
– Internet Control Message Protocol, para criar
eventos capazes de afetar o funcionamento de
alvos específicos. O ICMP é empregado em tarefas
de controle e verificação das comunicações entre
Hosts e roteadores. Ele utiliza mensagens
padronizadas que são enviadas com o propósito de
checar possibilidade de comunicar-se com o Host
de destino.
ICMP
Por exemplo, o utilitário PING, bastante conhecido,
permite o envio de uma mensagem ICMP a um host
específico com o propósito de verificar se este host
é alcançável.
ICMP
Uma das modalidades mais conhecidas de ataques
ICMP é o PingFlood. Nesta modalidade uma
sequencia initerrupta de mensagens ICMP são
enviadas a um Host alvo, que ocupa-se em
responder a todas elas, consumindo
desnecessariamente seus recursos.
ICMP
Uma das modalidades mais conhecidas de ataques
ICMP é o PingFlood. Nesta modalidade uma
sequencia initerrupta de mensagens ICMP são
enviadas a um Host alvo, que ocupa-se em
responder a todas elas, consumindo
desnecessariamente seus recursos.
Ping O’Death
Apesar do nome este não um ataque baseado em
ICMP, embora suas primeiras versões utilizassem
uma modificação do utilitário Ping.
Esta técnica consiste basicamente no envio de um
ao host alvo de um datagrama com tamanho além
do limite de 65535 bytes, como um datagrama com
essa caracteristica não pode ser roteado, ele é
fragmentado na origem e chega ao alvo sob a
forma de vários datagramas, contendo os
fragmentos do datagrama original.
Ping O’Death
Quando o alvo procede a remontagem do
datagrama a partir destes fragmentos, ele
experimenta efeitos que podem variar, conforme o
S.O. em uso, podendo exibir mensagens de erro ou
até a completa paralisação do sistema.
DDos
Esta técnica ganhou grande prestigio a partir da
série de ataques bem sucedidos empreendidos
contra sites famosos no início do ano 2000. Ela
potencializa os danos causados por outras técnicas
de negação de serviços, como SYN Flood por
exemplo, fazendo com que um grande número de
hosts lancem o ataque, de forma automatizada e
simultânea, contra um alvo escolhido.
DDos
O ataque deve ser previamente organizado e para
isso são empregados softwares específicos como o
TFN, Trinoo. Essas ferramentas são instaladas em
alguns hosts, deixando os em condições de atuar
como servidores masters. Paralelamente, um
grande número de outros hosts, recebe tambem
componentes de software, passando por sua vez a
representar de clientes. Tanto a instalação de
servidores quanto a distribuição de módulos
clientes são feitas de forma não autorizada.
DDos
O comando do ataque, os servidores se
comunicam com os clientes determinando o início
do ataque. Em resposta os host que executam o
módulo cliente lançam, a um só tempo, uma série
de ataques contra o alvo ou os alvos especificados
no comando inicial. A efetividade dos ataques é
aumentada pela participação simultânea de um
elevado número de hosts.
DDos
O ataque tem como vantagem adicional
representada pela dificuldade em determinar a
origem do ataque, que em sua etapa final é
desencadeado a partir de diversos pontos,
normalmente sem a intervenção dos responsáveis
pelos hosts que o executam.
DDos
As ferramentas utilizadas em DDoS apresentam um
alto nível de sofisticação, integrando recursos
avançados que vão desde mecanismos de
distribuição automatizada dos módulos clientes até
comunicação criptografada entre os servidores e
clientes.
Dúvidas
Perguntas
1- Cite alguns tipos de Ataque DoS existentes ?
2- Explique cada um deles.
Entrega Imediata
-
Publicações
-Mapa Conceitual.
Dúvidas
www.eduardosilvestri.com.br
Eduardo Silvestri
[email protected]
Download

POLSEG-Aula06 - Professor Eduardo Silvestri