A Matemática Detendo os Hackers na Internet Ana Paula Silva M.Sc. COPPE/UFRJ Bruno Felisberto Ribeiro M.Sc. COPPE/UFRJ
Apresentação Internet : o que é? O Protocolo que move a Internet Os Hackers e seus Ataques Pesquisas A Matemática ajudando a identificar ataques. Conclusão
Internet: o que é? Ponto de vista do usuário: www E-mail
Internet: o que é? A Internet é uma rede de várias redes, com milhares de dispositivos conectados, trocando informações entre si.
Internet: o que é? A dinâmica do www
O Protocolo que Move a Internet A grande maioria das aplicações que são transmitidas na Internet utilizam o protocolo TCP (Transport Control Protocol) Este protocolo é do tipo confiável, onde todas as mensagens trocadas entre os clientes e servidores sempre chegam. Esta característica é essencial para as aplicações do tipo WWW e E-mail. As páginas não podem ser mostradas faltando pedaços de um texto, nem o e-mail faltando uma frase!
O Protocolo que Move a Internet De um modo simplificado, o TCP possui o seguinte funcionamento: Pct 1 Ok Pct 1 Pct 2 Ok Pct 2
O Protocolo que Move a Internet A transmissão de pacotes que utilizam TCP são caracterizados pelo princípio da conservação: Cada pacote de dados gera um pacote de confirmação (Pacote Ok). Esta característica faz com que fluxos (aplicações) que utilizam TCP exibam uma periodicidade
Os Hackers e seus Ataques Invasão. Intrusão. Negação de Serviço (Deny of Service ou DoS).
Invasão Quando um Hacker entra no seu sistema com o intuito de obter informações confidenciais. Ex: Senhas de cartões de créditos (sites de comércio eletrônico).
Intrusão Neste caso, a comunicação entre dois computadores passa a ser interceptada por algum intrometido. Este intrometido pode apagar mensagens, recolher informações. Similar ao grampo de telefone.
Negação de Serviço Este tipo de ataque é uma das mais sérias ameaças aos sites comerciais da Internet. Neste tipo de ataque, os hackers sobrecarregam um sistema, impedindo que este atenda aos usuários reais. Para isso, os hackers invadem computadores de usuários comuns no mundo inteiro, transformam estes computadores em seus escravos e lançam seus ataques através deles.
Uma pequena Analogia Poderíamos comparar o ataque DoS, por exemplo, como uma fila de pessoas em um banco. CAIXA... Existem, na frente de Alice, milhares de Trudies, que somente querem dar bom dia a Bob e não realizar nenhum serviço bancário
Na Internet Alguns ataques que trouxeram muitos prejuízos: No dia 7 de fevereiro de 2000 o site de busca Yahoo! Ficou fora do ar durante algumas horas. Motivo: DoS!!! Uma grande quantidade de tráfego ilícito foi transmitido ao servidor, impossibilitando o atendimento de usuários reais... (1Gb/s) Em 19 de julho de 2001, 354000 computadores sofreram um ataque provocado pelo vírus replicável pela rede chamado CODE RED. Em menos de 14 horas o prejuízo chegou a U$ 2,6 bilhões.
O que devemos fazer? No caso do ataque ao Yahoo!, o tempo de reação dos operadores foi muito grande. Quando perceberam, já era muito tarde... Além do mais, só é possível parar um ataque deste tipo com a cooperação de toda a Internet. Para evitar grandes prejuízos, é necessário identificar o ataque antes que este tome proporções assustadoras. Esta detecção deve ser feita de maneira automática, pela própria rede.
Pesquisas A pesquisa em relação aos ataques pode ser dividida em quatro áreas principais: Detecção do Ataque Identificação da origem do ataque Combate aos ataques Identificação de vulnerabilidades dos sistemas Algumas publicações de alguns grupos de pesquisa: Use of spectral density against DoS attacks - Harvard (GLOBECOM 2002) Low-rate TCP-Targeted Denial of Service Attacks Rice (SIGCOMM2003) A Framework for Classifying Denial of Service Attacks - USC (SIGCOMM2003)
Tráfego nos servidores Consideraremos DoS em Servidores WWW, mas vale também para outros tipos. A idéia principal é analisar se o tráfego destinado a um determinado servidor que tenha um grande volume de usuários, possui algum tráfego hacker ou não. Algum deste tráfegos é ilegítimo?
Tráfego nos servidores É inviável analisar o tráfego de cada usuário... Além disso, como achar um tráfego hacker? Os hackers sabem se camuflar muito bem... Eles só não conseguem se camuflar da Matemática! Vamos agora analisar este tráfego que chega ao servidor.
Formalmente... Primeiramente devemos definir a variável aleatória de interesse: X : Número total de pacotes que chegam a um determinado destino dentro de um intervalo fixo. t
Características deste tráfego Esta variável aleatória, como toda variável aleatória, possui uma distribuição. Sem sequer olhar para o gráfico do tráfego podemos dizer qual a sua distribuição estatística. Que distribuição é esta?
Características deste tráfego Pelo teorema central do limite, a soma de diversas variáveis aleatórias independentes X 1, X, X,..., X 2 3 N com N tendendo ao infinito possui distribuição normal. 1 x0 P[ x< x ] = e t 2 / 2 dt 0 2π
Sem identificar o ataque ainda... Precisamos urgentemente de mais definições matemáticas!!! Podemos tentar identificar o tráfego hacker olhando para o tráfego do TCP ao longo do tempo. Para isto precisamos estudar o comportamento da variável aleatória X no tempo. Processo estocástico X(t): A variável aleatória em cada instante de tempo.
Tentando identificar o ataque... Mais definições para pegar o nosso hacker: Autocorrelação R xx ( τ ) = E[ X ( t) X ( t + τ)] Esta função mostra a correlação entre eventos do processo estocástico, ou seja, o quanto o processo em um instante t influenciará a si mesmo após um intervalo τ Exemplo: Se a cada 1 segundo todos os usuários fazem a mesma coisa juntos, a autocorrelação para τ =1 será mais alta que nos outros períodos.
A Matemática QUASE identificando o ataque Um hacker não pode ficar esperando a informação do servidor voltar para enviar novos pedidos, portanto o seu tráfego não possui a periodicidade de um usuário comum. Para achar o tráfego do hacker é só estudar o processo X(t) e verificar se há algum tráfego sem esta periodicidade de ida e volta do pacote.
A Matemática identificando ataques Como extrair a periodicidade da autocorrelação do gráfico acima? Há muito tempo os físicos analisam sinais de estrelas distantes para determinar as freqüências de energia emitidas por estas estrelas. Podemos usar a mesma abordagem?
A Matemática identificando ataques Se pensarmos no caminho amostral de X(t) como um sinal, podemos aplicar a Transformada de Fourier na sua autocorrelação e descobrir se há alguma periodicidade!! O que a autocorrelação tem a ver com isso tudo? A transformada de Fourier pode ser vista como a caracterização das freqüências da autocorrelação. (lembrando aos mais esquecidos que freqüência é o inverso do período)
Série de Fourier SÉRIE DISCRETA DE FOURIER (R xx (τ) é o nosso sinal [autocorrelação]): R XX ( τ ) N A 0 = + 2 k = 1 1 + A ( ) k A 2 N cos(2πωkτ ) + cos(2πωnτ ). sen(2πωkτ ) Os coeficientes A k e B k nos dão uma medida de quão bem o sinal se ajusta ao k-ésimo termo da senóide (H k é a amplitude e ω é a freqüencia fundamental da série) H = A + k 2 k B 2 k B k
Transformada de Fourier TRANSFORMADA DISCRETA DE FOURIER NA AUTOCORRELAÇÃO: A k 2 N 1 R XX ( 0 ) = + N 2 p B k 2 N 1 = N 1 p = 1 1 R ( τ ) c o s 2 π ω k τ XX p p 2 = 1 R XX ( τ p ) s e n 2π ω k τ + p R + XX 1 ( ω ) Esta transformada captura a amplitude H k da freqüencia kω da função de autocorrelação. O gráfico de H k x kω é o gráfico do espectro da potência.
Alguns Resultados Fonte periódica
Alguns Resultados Fonte periódicas com grandes variações no tempo de ida e volta do pacote.
Alguns Resultados Espectro do TCP:
Alguns Resultados Comparação entre um tráfego normal e um ataque:
Alguns Resultados Com esta mesma abordagem, outro artigo identifica se o ataque vem de múltiplos lugares ou de um ponto só. Esta metodologia pode ser aplicada para que os próprios roteadores da rede reconheçam automaticamente quando um ataque está trafegando por eles, eliminando o problema já na raiz.
Conclusões A Matemática é uma ciência fundamental, e que pode ser aplicada em diversos ramos de pesquisa. Não só como ferramenta mas como tema de pesquisa também. Conforme mostramos, em diversos ramos da Ciência da Computação a presença da Matemática, especialmente a estatística, é extremamente forte. No futuro só os Hackers que saibam muito bem estatística serão bem sucedidos.