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]