O Ataque de negação de serviço (DoS) é uma forma de ataque cibernético que tem como objetivo principal tornar um serviço online indisponível para seus usuários legítimos.
A ideia é sobrecarregar um servidor, site ou serviço com uma quantidade tão grande de tráfego, ou com requisições maliciosas, que ele simplesmente para de funcionar ou fica extremamente lento.
A principal diferença entre os dois está na origem do ataque:
Ataque DoS (Denial of Service): O ataque é feito a partir de uma única fonte, ou seja, um único computador.
Ataque DDoS (Distributed Denial of Service): O ataque é realizado a partir de múltiplas fontes ao mesmo tempo. O atacante usa um botnet, que é uma rede de milhares de computadores infectados, para lançar o ataque. Por vir de muitos lugares, um DDoS é muito mais difícil de bloquear e mais eficaz.
Os ataques de negação de serviço podem ser realizados de duas formas principais:
Inundação de Tráfego (Flood Attack):
O atacante envia uma quantidade massiva de requisições ou dados para o alvo. O servidor tem uma capacidade limitada de processar requisições e a largura de banda da sua conexão é limitada. Ao atingir esses limites, o servidor fica sobrecarregado, seus recursos se esgotam e ele não consegue mais responder às solicitações dos usuários legítimos.
Exploração de Vulnerabilidades:
Em vez de simplesmente inundar o servidor, o atacante envia um tipo de pacote ou requisição que explora uma falha de segurança específica no software do servidor. Um exemplo clássico é o ataque SYN Flood.
Um pacote SYN é o primeiro tipo de pacote de dados enviado por um cliente para um servidor para iniciar uma conexão. O nome SYN vem de "Synchronize" (Sincronizar).
Pense no pacote SYN como o "alô" inicial em uma ligação telefônica. Ele é o primeiro passo de um processo de três etapas conhecido como handshake de três vias do TCP (Three-Way Handshake).
Para entender o papel do pacote SYN, imagine o seguinte diálogo:
Pacote SYN (cliente -> servidor): O cliente "liga" para o servidor e diz: "Alô, você está aí? Gostaria de iniciar uma conexão."
Pacote SYN-ACK (servidor -> cliente): O servidor responde: "Sim, estou aqui e pronto para receber sua ligação. Estou te enviando um sinal de volta." (ACK significa Acknowledgment, ou confirmação).
Pacote ACK (cliente -> servidor): O cliente confirma: "Ótimo, recebi seu sinal. Podemos começar a conversar."
Somente após esta última confirmação (o ACK do cliente), a conexão é estabelecida, e os dados podem ser trocados.
O pacote SYN é um elemento-chave em um tipo de ataque de negação de serviço (DoS) chamado SYN Flood.
Nesse ataque, um criminoso envia um grande volume de pacotes SYN para um servidor, mas nunca responde com o pacote ACK final. O servidor fica esperando pela confirmação de cada conexão, e seus recursos se esgotam, fazendo com que ele pare de responder a novas solicitações legítimas.
A defesa contra um ataque de SYN Flood se concentra em duas estratégias principais:
Validar o cliente antes de alocar recursos.
Limitar a taxa de pacotes SYN de uma única origem.
A chave é evitar que o servidor seja sobrecarregado com as chamadas "conexões semiabertas" que o atacante cria.
SYN Cookies (A Defesa Mais Eficaz)
Esta é a defesa mais comum e amplamente usada hoje em dia, pois já vem embutida na maioria dos sistemas operacionais modernos. Em vez de alocar memória para cada pacote SYN recebido, o servidor responde com um "cookie SYN", que é um número de sequência especialmente criptografado.
Se o cliente for legítimo, ele responderá com um pacote ACK válido, que inclui esse cookie.
Somente quando o servidor recebe a resposta ACK com o cookie correto, ele estabelece a conexão.
Isso impede que o servidor aloque recursos para conexões falsas, pois a conexão real só é criada depois que a validação é concluída.
Ajustes no Sistema Operacional (Kernel Tuning)
Administradores de sistemas podem ajustar as configurações do kernel para mitigar o ataque. Isso inclui:
Reduzir o tempo limite para conexões semiabertas, fazendo com que elas expirem mais rapidamente.
Aumentar o tamanho da fila de conexões semiabertas, permitindo que o servidor lide com um volume maior antes de ser sobrecarregado.
Essa é uma solução técnica que requer conhecimento aprofundado do sistema operacional.
Uso de Firewalls e Proxies SYN
Um firewall pode ser configurado para limitar a taxa de pacotes SYN que chegam a uma porta específica. Uma solução mais sofisticada é o proxy SYN, onde o firewall atua como um intermediário.
Ele lida com o handshake TCP em nome do servidor.
Só depois que o handshake é concluído com sucesso, o firewall permite que a conexão chegue ao servidor real.
Em resumo, a defesa contra SYN Flood se baseia em uma abordagem em camadas, começando com o SYN Cookies no nível do sistema operacional e se estendendo para firewalls e serviços de proteção na rede.
O spoofing de IP é a técnica de falsificar o endereço IP de origem de um pacote de dados para esconder a identidade real do remetente ou para se passar por outro computador.
Em essência, é como enviar uma carta pelo correio com um endereço de remetente falso no envelope.
Imagine um pacote IP como uma carta. No envelope, há um campo para o endereço do destinatário e outro para o endereço de retorno.
Endereço de Destinatário: O endereço IP do servidor que você quer acessar (o destinatário).
Endereço de Retorno: O seu endereço IP real (o remetente).
O spoofing de IP acontece quando o atacante escreve um endereço de retorno falso no envelope. A carta ainda chega ao destino, mas o destinatário, ao enviar a resposta, a encaminha para o endereço falso, e não para o endereço real do atacante.
O Falsificador: O atacante usa um software para criar pacotes IP. Em vez de preencher o campo do endereço de origem com seu próprio IP, ele insere um endereço IP falso, que pode pertencer a outro computador ou simplesmente ser um endereço aleatório.
O Ataque: O atacante envia esse pacote falsificado para o alvo (o servidor ou a vítima).
A Resposta: Este é o ponto crucial. O servidor, ao receber o pacote, envia a resposta para o endereço IP falso. Como o atacante não é o dono desse endereço, ele não recebe a resposta.
Por causa dessa limitação, o spoofing de IP é mais usado em ataques unidirecionais, onde o atacante não precisa receber a resposta do alvo.
Ataques de Negação de Serviço (DoS e DDoS): O spoofing de IP é uma técnica fundamental em ataques DDoS. O atacante falsifica o endereço de origem de milhares de pacotes, dificultando que a vítima identifique e bloqueie a fonte real do ataque.
Bypass de Autenticação: Em sistemas legados que confiam apenas no endereço IP para autenticar usuários, um atacante pode falsificar o IP de um usuário legítimo para obter acesso indevido.
Em resumo, o spoofing de IP é uma técnica de falsificação de identidade na camada de rede. Embora não seja eficaz para comunicação bidirecional, ele é uma ferramenta poderosa e perigosa em ataques que visam sobrecarregar ou enganar sistemas de rede.
O sniffing de pacotes é o processo de interceptar e inspecionar o tráfego de dados que passa por uma rede de computadores. Ele funciona como uma "escuta" que captura as informações digitais que viajam entre dispositivos.
A ferramenta usada para isso, chamada de analisador de pacotes ou sniffer, pode ser tanto um software (como o Wireshark) quanto um hardware dedicado.
Imagine uma conversa em grupo onde as pessoas estão trocando bilhetes. Por padrão, você só lê os bilhetes que são enviados diretamente para você.
O sniffing é como ter uma pessoa no grupo que secretamente lê todos os bilhetes que são trocados, mesmo aqueles que não são para ela.
O processo de captura de pacotes geralmente segue estes passos:
Modo Promíscuo: Por padrão, a placa de rede do seu computador (a NIC) ignora qualquer pacote que não seja destinado a ela. Para o sniffing funcionar, o sniffer de pacotes coloca a placa em modo promíscuo, instruindo-a a aceitar e processar todos os pacotes que passam pela rede, independentemente de seu endereço de destino.
Captura de Dados: O sniffer captura os dados brutos que chegam à placa de rede. Neste ponto, os dados são apenas uma sequência de bytes.
Análise de Protocolo: O sniffer organiza os dados capturados em um formato legível, decodificando-os de acordo com os protocolos de rede (como IP, TCP, HTTP, DNS, etc.). É como traduzir os bytes para o "idioma" de cada protocolo.
Inspeção: O analista pode então inspecionar o conteúdo dos pacotes, vendo informações como endereços IP de origem e destino, números de porta e, em conexões não criptografadas (como HTTP), até mesmo senhas e dados de formulários em texto simples.
O sniffing de pacotes é uma ferramenta neutra, usada para fins bons e ruins:
Uso Legítimo: Administradores de rede o usam para diagnosticar problemas de rede, monitorar o desempenho, detectar falhas de segurança e garantir a qualidade do serviço.
Uso Malicioso: Cibercriminosos o usam para espionar o tráfego, interceptar credenciais, obter informações confidenciais e coletar dados para outros ataques.
O ataque on-path, antes conhecido como ataque Man-in-the-Middle (MitM), é um tipo de ataque cibernético onde o criminoso se coloca secretamente no meio de uma comunicação entre duas partes. O objetivo é interceptar, ler ou até mesmo modificar os dados que estão sendo trocados, sem que as vítimas percebam.
A essência do ataque é a espionagem e a manipulação do tráfego.
Imagine que você está enviando uma carta para um amigo.
Modo de Operação Normal: Sua carta vai de você diretamente para o correio, e o correio a entrega para o seu amigo. A rota é segura.
Ataque On-Path: Um atacante se posiciona no caminho. Ele faz com que todas as suas cartas (dados) sejam enviadas primeiro para ele. Ele as intercepta, lê o conteúdo, pode até mudar algo (como o número de uma conta bancária) e, depois, as envia para o seu amigo.
Para o seu amigo, a carta parece ter vindo diretamente de você. Nem você nem ele sabem que o conteúdo foi lido ou alterado.
Interceptação: O atacante precisa se inserir no caminho da comunicação. Isso pode ser feito de várias maneiras, como:
ARP Spoofing: O atacante engana os dispositivos em uma rede local para que enviem o tráfego para a sua máquina, em vez de para o roteador.
Wi-Fi Falso: Um atacante cria um ponto de acesso Wi-Fi malicioso e atrai vítimas para se conectarem, capturando todo o tráfego.
Envenenamento de DNS: O atacante redireciona o tráfego de um site legítimo para um site falso.
Decodificação: Se a comunicação for criptografada (como em um site HTTPS), o atacante precisa de uma maneira de decifrar os dados. Em ataques mais avançados, ele pode usar certificados de segurança falsos para enganar o navegador e permitir que a comunicação seja interceptada.
Leitura e/ou Modificação: Uma vez que o atacante está no caminho e pode ler o tráfego, ele pode roubar informações confidenciais (como senhas e dados de cartão de crédito) ou modificar os dados em tempo real, sem que as partes saibam.
A mudança de "Man-in-the-Middle" para "on-path" reflete a realidade de que a comunicação pode ser automatizada. Não é necessariamente uma pessoa (man) no meio, mas sim um software ou sistema malicioso no caminho da comunicação.
O ICMP flooding é um tipo de ataque de negação de serviço (DoS) onde o invasor sobrecarrega um alvo (como um servidor ou uma rede) com uma enorme quantidade de pacotes do protocolo ICMP (Internet Control Message Protocol).
A ideia é consumir os recursos do alvo (como a largura de banda e o poder de processamento do seu CPU), tornando-o incapaz de responder a requisições de usuários legítimos.
O ataque explora a natureza do protocolo ICMP, que é usado principalmente para diagnósticos de rede e mensagens de erro. A ferramenta mais conhecida que usa o ICMP é o comando ping.
O Ping: Quando você usa o ping para testar a conectividade com um servidor, seu computador envia um pacote de "solicitação de eco" (echo request) para o servidor.
A Resposta: O servidor, ao receber esse pacote, é programado para responder com um pacote de "resposta de eco" (echo reply).
O Ataque: Em um ICMP flooding, o atacante envia milhares de solicitações de eco para o alvo. Cada uma dessas solicitações exige que o servidor use seus recursos para gerar e enviar uma resposta.
Imagine que o servidor é uma pessoa que precisa responder a cada "oi" que recebe. Em um ataque de flooding, o servidor é bombardeado com tantos "ois" que ele passa todo o tempo respondendo, e não consegue mais conversar com outras pessoas que tentam se comunicar com ele de verdade.
Ping Flood: A forma mais simples do ataque, onde o atacante envia diretamente um volume massivo de pacotes ICMP para o alvo.
Ataque Smurf: Uma variação mais sofisticada, onde o atacante falsifica o endereço IP de origem do alvo e envia pacotes para uma rede de broadcast. Todos os dispositivos na rede respondem para o endereço IP falsificado (o alvo), amplificando o ataque de forma massificada.
Em resumo, o ICMP flooding transforma uma ferramenta de diagnóstico (o ping) em uma arma para derrubar um serviço, simplesmente por forçar o alvo a responder a um volume insustentável de solicitações.
A defesa contra um ataque de ICMP flooding envolve principalmente o uso de firewalls e outras ferramentas de segurança de rede para filtrar e limitar a quantidade de tráfego ICMP que chega ao seu sistema.
A melhor abordagem é não bloquear completamente o ICMP, pois ele é usado por ferramentas de diagnóstico essenciais, como o ping. A defesa ideal é a limitação de taxa.
Limitação de Taxa (Rate Limiting) no Firewall:
Esta é a forma mais eficaz e inteligente de se defender. Em vez de bloquear todo o tráfego ICMP, seu firewall é configurado para aceitar apenas um número limitado de pacotes ICMP por segundo de um mesmo endereço de IP. Qualquer pacote que exceda esse limite é descartado. Isso permite que você ainda use ferramentas como o ping para diagnósticos, mas impede que um atacante sobrecarregue seu sistema.
Filtro de Firewall para Descartar ICMP:
Em uma defesa mais radical, você pode simplesmente configurar seu firewall para descartar todos os pacotes de "solicitação de eco" (echo requests) do ICMP. Essa medida pode impedir o ataque imediatamente, mas tem a desvantagem de desabilitar o uso do comando ping no seu servidor.
Uso de Serviços de Proteção contra DDoS:
Para ataques em grande escala (DDoS), a melhor defesa é usar um serviço de mitigação de DDoS, como Cloudflare, AWS Shield ou Akamai. Esses serviços atuam como um "esfregão" de tráfego, absorvendo e filtrando o tráfego malicioso em seus próprios data centers antes que ele chegue à sua rede.
Configuração de Roteadores:
Muitos roteadores modernos permitem configurar regras de segurança para descartar pacotes ICMP vindos de fontes externas. Essa é uma camada de proteção adicional antes mesmo que o tráfego chegue ao seu firewall.
Em resumo, a defesa contra o ICMP flooding se baseia em um princípio simples: não deixe que o tráfego do ataque chegue ao seu servidor. A limitação de taxa é a técnica mais recomendada, pois ela equilibra a necessidade de segurança com a funcionalidade da rede.