Seqüestro de Sessão
Leonardo de Oliveira Muller
Rodrigo Benincá Machado
Shirlei Aparecida de Chaves
INE 5630 Segurança da
Informação
Introducão


Preocupação de hoje: invasão e
ataques.
Habilidades para atacar não
qualificam alguém para montar
mecanismos de defesa.
INE 5630 Segurança da
Informação
Estrutura da Apresentação


O que é seqüestro de sessão
Formas existentes para combater e
prevenir esse tipo de invasão

Conclusões

Referências bibliográficas
INE 5630 Segurança da
Informação
O que é seqüestro de sessão


Como o seu computador sabe que está
falando com o computador que ele acha
que está falando?
Quando a comunicação é estabelecida
entre dois computadores, pelo uso de
credenciais, ela é feita na fase de
configuração da sessão, mas depois não
mais.
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Classificado em três categorias:



Ataque do Homem do meio
Roubo cego de sessão
Seqüestro de sessão
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Ataque do Homem do Meio



Comunicação entre os dois hosts é
interceptada
Comunicação passa a fluir pelo
atacante
Alvos: protocolo que usam chave
pública para proteger a comunicação.
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Roubo Cego



Atacante pode adicionar comandos
maliciosos na mensagem interceptada
Atacante não recebe confirmação de
que o comando adicionado à
mensagem foi efetivamente executado
Ataque geralmente muito efetivo
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão

O termo seqüestro de sessão se refere à
capacidade de um atacante assumir o controle
de parte de uma sessão (normalmente uma
conversação de rede) e agir como um dos
participantes. O seqüestro de sessão explora a
fragilidade inerente na maioria dos tipos de
rede e de protocolos não criptografados,
principalmente
os
que
transmitem
as
informações livremente. (RUSSEL, 2002).
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão TCP

Estabelecimento de sessão TCP
 Cliente envia um pacote de sincronização
(SYN) x para o servidor como um número de
seqüência inicial
 Servidor responde com um pacote SYN/ACK
que contêm o próprio número de seqüência p
do servidor e o número ACK para o pacote
SYN
 O cliente informa ao servidor que tomou
conhecimento desse pacote através do envio
do pacote ACK com o próximo número de
seqüência que é esperado pelo servidor, nesse
caso p+1.
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão TCP

Estabelecimento de sessão TCP
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão TCP

Envio de dados
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão TCP

Envio de dados
Cliente envia para o servidor o caracter A
num pacote com o número de seqüência
x+1
 O servidor avisa que recebeu este pacote
através do ACK x+2 como sendo o
próximo número de seqüência esperado
pelo servidor

INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão TCP

Neste ponto o atacante deve:
Imitar o ip do cliente
 Determinar o número de seqüência
correto que é esperado pelo servidor do
cliente
 Adicionar dados na sessão antes que o
cliente envie o próximo pacote

INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão TCP

Envio de dados às cegas
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão TCP

Envio de dados às cegas
Se o servidor receber o pacote enviado
pelo atacante, vai responder ao cliente
com o ACK x+3
 Pacote confunde o cliente, ou porque ele
não enviou dados ou porque a próxima
seqüência esperada está incorreta

INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão TCP
 Envio de dados às cegas



Pode causar um problema conhecido como
TCP ACK storm
O cliente vai tentar re-sincronizar esta sessão
através do envio para o servidor de um pacote
ACK da seqüência que ele está esperando
Este pacote ACK vai conter uma seqüência
que o servidor não está esperando, então ele
vai reenviar ao cliente o último pacote ACK
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão TCP

Envio de dados às cegas
Pode ser facilmente percebida por
dispositivos como os sensores IDS
(Intrusion Detection System)
O
intruso
pode
então
utilizar
a
manipulação da tabela ARP (Address
Resolution Protocol)

INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão UDP

Protocolo DNS
 Responsável pela resolução dos endereços de
domínios para endereços IP’s
 Um hacker pode fingir ser o servidor WEB e
quando o cliente faz uma solicitação DNS ela
ser resolvida para a máquina do hacker e não
para a máquina servidor legítima
 Muito usada para para roubar números de
contas bancárias.
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão UDP

Passos seguidos pelo hacker





O hacker finge ser o servidor Web, digamos,
securityfocus.com;
O hacker programa sua máquina atacante
para esperar uma requisição por esse nome e
armazenar uma cópia do pacote;
O hacker extrai o ID de requisição e o utiliza
para aprontar um pacote de resposta,
preparado antecipadamente, que aponte para
seu endereço IP;
O cliente, então, contata a máquina do hacker
em vez de securityfocus.com;
O cliente vê uma mensagem equivalente a
securityfocus encontrado.
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão Nível Aplicação

Protocolo http


Não possui informações de estado
Servidores HTTP não mantêm qualquer
informação a respeito dos navegadores que
estão conectados a eles de uma solicitação
para a outra
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão Nível Aplicação

Protocolo http


Na próxima vez que ele receber uma
solicitação, a mesma será tratada como se
fosse a primeira daquela máquina
Gerenciamento de sessão fica por conta
da aplicação
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão Nível Aplicação

Protocolo http Vulnerabilidade
Implicações
Transmitir
identificadores de
sessão por canais
sem criptografia
Os invasores
podem capturar
os
identificadores
de sessão para
falsificar a
identificação.
Tempo prolongado
de sessão.
Isso aumenta o
risco de
seqüestro da
sessão e de
ataques de
repetição.
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Seqüestro de Sessão Nível Aplicação

Protocolo http Vulnerabilidade
Implicações
Armazenamentos
inseguros de estado da
sessão
Os invasores
podem acessar os
dados de uma
sessão particular
de um usuário.
Identificadores de
sessão em seqüências
de caracteres de
consulta
Os identificadores
de sessão podem
ser modificados
facilmente no
cliente para se
falsificar a
identificação e
acessar o
aplicativo como
outro usuário.
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Ferramentas
 Juggernaut



Criada por Route, editor da revista
Phrack. Pioneira como ferramenta de
seqüestro de sessão e sniffing
Escrita na linguagem C
Informações:
http://staff.washington.edu/dittrich/talks
/qsm-sec/P50-06.txt
INE 5630 Segurança da
Informação
O que é seqüestro de sessão

Ferramentas
 Hunt
Criada por Pavel Krautz, encontra-se na
versão 1.5

Possui modos de sniffing e seqüestro de
sessão

Inclui ferramentas para realizar spoofing de
ARP a fim de fazer os hosts vítimas
buscarem uma máquina atacante, para
eliminar os problemas de tempestade ACK
normalmente associados a um seqüestro de
sessão TCP

Informações :
http://lin.fsid.cvut.cz/~kra/index.html#HUNT

INE 5630 Segurança da
Informação
Combatendo e Prevenindo

Ações


A tentativa de seqüestro de sessão
contra suas próprias aplicações ou
rede (pouco recomendável)
Ideal: utilizar um paradigma de
segurança. Por exemplo, usar
protocolos de transporte que utilizem
criptografia como Secure Shell (SSH),
Secure Socket Layers (SSL), e
Internet Protocol Security (IPSec)
INE 5630 Segurança da
Informação
Combatendo e Prevenindo

Ações


Evitar se comunicar com sistemas de
alta criticidade sem ser sobre um
algoritmo de alta criptografia
Telnet e FTP são escolhas
extremamente pobres e susceptíveis a
seqüestros de sessão quando não
protegidos por canais seguros
INE 5630 Segurança da
Informação
Combatendo e Prevenindo

Ações

Na questão de sistema operacional
utilizado, Russel (RUSSEL, 2002), cita
que se acaba tendo que optar por
alguma solução UNIX
“(...)a única razão para isso é que algumas
ferramentas de segurança estão disponíveis
apenas para sistemas UNIX ou os que funcionam
como ele.”
INE 5630 Segurança da
Informação
Combatendo e Prevenindo

Recomendações quanto ao
seqüestro no nível de aplicação

Troca de identificadores de sessão

No caso do estado da sessão com
identificadores de sessão (por exemplo,
símbolos contidos nos cookies),
examinar se o identificador ou cookie é
ou não transmitido apenas por um canal
criptografado, como SSL
INE 5630 Segurança da
Informação
Combatendo e Prevenindo

Recomendações quanto ao seqüestro no
nível de aplicação
 Troca de identificadores de sessão

No caso de usar autenticação de formulários,
certificar-se de que o aplicativo criptografa
os cookies de autenticação usando o atributo
protection="All" do elemento <forms>.
Essa prática é recomendada além do SSL
para reduzir o risco de um ataque XXS
(cross site scripting) que tenta roubar o
cookie de autenticação de um usuário
INE 5630 Segurança da
Informação
Combatendo e Prevenindo

Recomendações quanto ao seqüestro no
nível de aplicação
 Troca de identificadores de sessão

Certificar-se de que o aplicativo não
transmite identificadores de sessão em
seqüências de caracteres de consulta. Essas
seqüências de caracteres podem ser
facilmente modificadas no cliente,
permitindo que um usuário acesse o
aplicativo como outro usuário, bem como
acesse os dados particulares de outros
usuários e possivelmente eleve privilégios
INE 5630 Segurança da
Informação
Combatendo e Prevenindo

Recomendações quanto ao
seqüestro no nível de aplicação
 A duração da sessão é restrita

Examinar por quanto tempo o aplicativo
considera válido um identificador de
sessão. O aplicativo deve limitar esse
tempo para reduzir a ameaça de
seqüestro de sessão e ataques de
repetição
INE 5630 Segurança da
Informação
Combatendo e Prevenindo

Recomendações quanto ao
seqüestro no nível de aplicação

Protegendo o armazenamento de
estado da sessão

Examinar como o aplicativo armazena o
estado da sessão. Ele pode ser
armazenado no processo do aplicativo
da Web, no serviço de estado de sessão
ASP.NET ou no armazenamento de
estados do SQL Server
INE 5630 Segurança da
Informação
Combatendo e Prevenindo

Recomendações quanto ao
seqüestro no nível de aplicação

Protegendo o armazenamento de
estado da sessão

Se usar um armazenamento de estado
remoto, certificar-se de que o link entre
o servidor Web e o armazenamento
remoto seja criptografado com IPSec ou
SSL para proteger os dados durante a
transmissão
INE 5630 Segurança da
Informação
Combatendo e Prevenindo

Prevenção


Criptografia é hoje a principal forma
de proteção, embora em alguns casos
possa não ser 100% garantidas
Detecção

Utilizar ferramentas que observem
alguns dos sinais desse tipo de
ataque: conexões sendo
reinicializadas ou “penduradas”
(tempestades de ACK ou lixo estranho
aparecendo na tela), por exemplo
INE 5630 Segurança da
Informação
Conclusão

Não há como ter um sistema 100%
imune a seqüestro de sessão, mas
medidas preventivas e um bom
conhecimento do assunto pelos
responsáveis pela segurança podem, se
não impedir essa situação, minimizar os
efeitos negativos que podem ter sobre o
sistema como um todo, incluindo a
imagem da empresa atacada, pois o alvo
geralmente são informações
confidenciais de clientes.
INE 5630 Segurança da
Informação
Referências Bibliográficas





Seqüestro de Sessão. Disponível em:
http://www.geocities.com/siliconvalley/network/1493/securi
ty/fa/fa00002.htm. Acessado em: 05/11/2004.
LAM, Kevin & LeBLANC, David & SMITH Ben. Theft on the
Web : Prevent Session Hijacking. Disponível em:
http://www.microsoft.com/technet/technetmag/issues/200
5/01/SessionHijacking/default.aspx. Acessado em:
07/11/2004.
MURILO, Nelson. "Para saber defender é preciso saber
atacar". Disponível em:
http://www.infoguerra.com.br/infonews/viewnews.cgi?news
id1079578716,19492, . Acessado em: 05/11/2004.
PITELLA, Felipe. Gerenciamento de Sessão. Disponível em:
http://www.javafree.com.br/forum/viewtopic.php?t=1408 .
Acessado em: 11/11/2004.
RUSSEL, Ryan at al. Rede Segura. Pág. 348 – 375. Alta
Books, 2002.
INE 5630 Segurança da
Informação
Download

Cap11-Sequestro-de