Guia do hacker/Negação de serviço (DOS)
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á!