Guia do hacker/Negação de serviço (DOS)

Origem: Wikilivros, livros abertos por um mundo aberto.
< Guia do hacker
Saltar para a navegação Saltar para a pesquisa

Guia do hacker

Esse capítulo será muito interessante, porque é um tema bem polêmico e interessante, e certamente você vai querer saber como esse ataque funciona.,

Bom, vamos entender primeiro o que é um ataque de negação de serviço.
Imagine que você acorda 7h da manhã para trabalhar. Pega o autocarro e vai para a estação esperar o comboio chegar. Tem muita gente com você, mas um grupo bem grande fura a ‘fila’, e passa na frente dos outros e o comboio já passa cheio. Quando ele para, todo mundo quer entrar ao mesmo tempo, até que o comboio fique sem lugar para você, e você não consiga entrar. Então ele fecha a porta e você não consegue sair dali, pois o metrô negou prestar serviço à você, já que estava congestionado.

Na informática é mais ou menos isso que acontece, quando você vê no jornal dizendo que “hackers” derrubaram o site da receita da fazenda, eles fizeram esse ataque. Enviaram diversas solicitações falsas, como se fossem reais, para que o site prestasse serviço a elas, até que o servidor fique sobrecarregado e não consiga dar conta de tudo. Então ele para de atender novos pedidos para priorizar os que ele já recebeu. Quando ele esvazia a memória e atende a todos os pedidos, ele volta a prestar serviços, e o site volta ao ar.

Os ataques de negação de serviço pode ser classificado em dois grupos principais:

DoS (Denial of Service) – É o ataque simples, onde apenas uma pessoa ataca o alvo. Não é tão comum hoje em dia por conta da sua baixa potência e eficiência.

DDoS (Distributed Denial of Service)– É o mais usado, onde muitos usuários (cientes ou não) atacam um alvo apenas.

Como assim ‘cientes ou não’, Phoenix?

Bom, existe um malware chamado Botnet, onde o cracker infecta várias vítimas, e usa o computador dessas vítimas pra atacar o alvo que ele quer. E isso é feito sem a vítima saber. Falaremos mais especificamente sobre esse malware no próximo capítulo.

Tipos de ataques [D]DoS:

Syn Flood – O syn flood é um método de ataque de negação de serviço, onde o pacote usado para atacar é o TCP. Como nós falamos, o TCP tem um sistema chamado Three-way Handshake, ou seja, ele tem três etapas até concluir a sua conexão.

Revisando o conceito desse sistema, o cliente envia uma requisição com a flag SYN para o servidor, pedindo para sincronizar os dados. O servidor envia um pacote com a flag SYN/ACK, dizendo que já sincronizou e está aguardando a conexão, e então o cliente envia um outro pacote com a flag ACK, estabelecendo a conexão.

Então, se no meio do Three-way Handshake algum dos 3 pacotes não for enviado/recebido, ou se estiver corrompido, o servidor vai ficar esperando pelo envio de um novo pacote (já que o TCP faz isso automaticamente). Como o TCP é “bonzinho”, ele vai ficar esperando um novo pacote, mas, como nunca será enviado, vai ficar esperando por um tempo até fechar a conexão por time-out.

Agora imagine milhares de requisições incompletas ou não respondidas. São várias threads que estão se dedicando às requisições.

E é assim que o Syn Flood funciona, o cliente malicioso envia o pacote com a flag SYN pedindo sincronização, o servidor responde com SYN/ACK, mas o cliente não responde de volta, e então abre outra conexão diferente, fazendo a mesma coisa.

Então o servidor para de responder as novas requisições e continua processando as antigas, até que todas sejam processadas e o a memória esvazie. Só aí que ele volta a receber novas requisições.

UDP Flood– O UDP Flood é diferente do SYN Flood, já que o protocolo UDP não faz o procedimento de verificação dos pacotes (Three-way Handshake). Esse ataque é baseado na técnica de spoof, consiste em enviar requisições com o campo do IP alterado. Você vai enviar um pacote para o servidor se passando por outro computador. Nesse ataque, o cracker faz um pedido de conexão para a vítima, usando um IP falso.

Então, já que o protocolo UDP não oferece nenhum meio de garantia de entrega do pacote, o cracker simplesmente envia pacotes de UDP aleatoriamente para todas portas do servidor da vítima.Quando o servidor da vítima recebe os pacotes de UDP enviado pelo attacker, ele tenta determinar qual aplicação esta aguardando pelo pacote naquela determinada porta em que foi recebido o pacote. Porém, quando o servidor verifica que não existe nenhuma aplicação aguardando tal pacote recebido, ele emite um pacote ICMP Echo Request para o destinatário (que no caso forjou o endereço de IP da fonte) dizendo que o pacote não encontrou seu destino. Se uma grande quantidade de pacotes de UDP for enviadopara as portas do servidor da vítima, o sistema poderá ser comprometido fazendo com que aconteça a negação de serviço.

Smurf Attack –O Smurf Attack é um ataque simples, porém eficiente, que se baseia na técnica de spoof.

No Smurf Attack, o cracker envia um ICMP Echo Request (Ping, como foi explicado na secção de redes) para todos os computadores de uma determinada rede, porém, esse pacote ICMP está spoofado, ou seja, o IP está forjado. E, como já vimos antes, quando você envia um ICMP Echo Request para uma máquina, se ela estiver online, responderá com um ICMP Echo Reply. Mas, como o IP do remetente foi alterado, o Echo Reply vai para o IP que está registrado no pacote, que é o IP da vítima.

Se você não entendeu, vou fazer uma analogia bem simples e garanto que vai entender:
Veja, você quer deixar o seu colega X ocupado, então você envia uma carta se passando para todas as pessoas de uma família que tem 6 pessoas, pedindo para que elas respondam a carta. Como você enviou a carta se passando pelo seu colega X, todas as cartas, quando forem respondidas, serão encaminhadas a ele, e não a você. E ele vai ficar lotado de cartas, vai ter que ler todas, e vai ficar muito ocupado.

Mas não pense que os ataques de negação de serviço acontecem apenas pela internet. Um computador pode dar crash também, se for submetido a um exploit que faça isso. Por exemplo, no Windows XP existe uma falha chamada Buffer Overflow, que permite que você consiga inserir trechos de código no próprio Windows.

Se você inserir um código de loop infinito, que faça com que ele retorne sempre para a mesma operação, o computador vai ficar sem memória e vai acabar exibindo a BSOD (Blue Screen Of Death, a famosa tela azul da morte).

Ataques [D]DoS também podem ser feitos no mundo real. Por exemplo, você – por algum motivo pessoal – pretende fazer com que uma determinada empresa não consiga atender seus clientes pelo serviço de suporte.

Então, você e várias outras pessoas fazem ligações para a central de atendimento, uma ligação após a outra, fazendo com que sempre que alguém de fora tente ligar, a ligação retorne ocupado. Isso aconteceu na Rússia, onde uma quadrilha de assaltantes ocupou o serviço de atendimento da polícia local enquanto assaltavam uma joalheria. Ninguém conseguiu chamar a polícia, e quando conseguiram, já era tarde demais.
Ps: Não façam isso!

Mas, para atacar um determinado site com vários computadores, você precisaria ter vários amigos que colaborassem com você no ataque, certo? ERRADO! Lembra quando eu disse que os atacantes poderiam ser cientes ou não do ataque? Pois é, aí que entra a botnet.
Basicamente é um malware que se infiltra no computador das vítimas e realiza ataques de negação de serviço. Falaremos sobre ele e sobre os outros tipos de malware no próximo capítulo. Te vejo lá!