NewsGeneration: um serviço oferecido pela RNP desde 1997


ISSN 1518-5974
Boletim bimestral sobre tecnologia de redes
produzido e publicado pela  RNP – Rede Nacional de Ensino e Pesquisa
17 de março de 2000 | volume 4, número 2

volta à página inicial de NewsGeneration

Nesta edição:

NewsGeneration:



Tudo que você precisa saber sobre os ataques DDoS

Liliana Esther Velásquez Alegre Solha <>
Renata Cicilini Teixeira <>
Jacomo Dimmit Boca Piccolini <>

Centro de Atendimento a Incidentes de Segurança (CAIS)
Rede Nacional de Ensino e Pesquisa (RNP)

Introdução
Desmistificando o ataque
Ferramentas de DDoS
Como se prevenir?
Como detectar?
Como reagir?
Considerações finais
Referências on-line
Sites relacionados

Através do presente artigo, os autores pretendem desmistificar os recentemente famosos ataques DDoS (Distributed Denial of Service), explicando não somente a anatomia do ataque e a forma como ele é orquestrado, mas principalmente dando a conhecer algumas estratégias de como mitigá-lo. São abordados também alguns mecanismos de detecção do ataque e, caso você se torne uma vítima, são apresentadas algumas diretivas de como reagir.

O artigo descreve também, de maneira sucinta, o funcionamento das ferramentas DDoS comumente usadas nos ataques.

^

Introdução

No último mês, o assunto segurança de redes passou a fazer parte da ordem do dia na imprensa falada e escrita. Na pauta das conversas nos cafés e esquinas das cidades tornou-se comum falar sobre os hackers, os mais recentes ataques que deixaram inacessíveis alguns dos mais famosos web sites, e até mesmo se ouvia falar em ataques de "negação de serviço" (Denial of Service, DoS).

Mas, afinal, o que é um ataque de "negação de serviço"? Os ataques DoS são bastante conhecidos no âmbito da comunidade de segurança de redes. Estes ataques, através do envio indiscriminado de requisições a um computador alvo, visam causar a indisponibilidade dos serviços oferecidos por ele. Fazendo uma analogia simples, é o que ocorre com as companhias de telefone nas noites de natal e ano novo, quando milhares de pessoas decidem, simultaneamente, cumprimentar à meia-noite parentes e amigos no Brasil e no exterior. Nos cinco minutos posteriores à virada do ano, muito provavelmente, você simplesmente não conseguirá completar a sua ligação, pois as linhas telefônicas estarão saturadas.

Ao longo do último ano, uma categoria de ataques de rede tem-se tornado bastante conhecida: a intrusão distribuída. Neste novo enfoque, os ataques não são baseados no uso de um único computador para iniciar um ataque, no lugar são utilizados centenas ou até milhares de computadores desprotegidos e ligados na Internet para lançar coordenadamente o ataque. A tecnologia distribuída não é completamente nova, no entanto, vem amadurecendo e se sofisticando de tal forma que até mesmo vândalos curiosos e sem muito conhecimento técnico podem causar danos sérios. A este respeito, o CAIS tem sido testemunha do crescente desenvolvimento e uso de ferramentas de ataque distribuídas, em várias categorias: sniffers, scanners, DoS.

Seguindo na mesma linha de raciocínio, os ataques Distributed Denial of Service, nada mais são do que o resultado de se conjugar os dois conceitos: negação de serviço e intrusão distribuída. Os ataques DDoS podem ser definidos como ataques DoS diferentes partindo de várias origens, disparados simultânea e coordenadamente sobre um ou mais alvos. De uma maneira simples, ataques DoS em larga escala!.

Os primeiros ataques DDoS documentados surgiram em agosto de 1999, no entanto, esta categoria se firmou como a mais nova ameaça na Internet na semana de 7 a 11 de Fevereiro de 2000, quando vândalos cibernéticos deixaram inoperantes por algumas horas sites como o Yahoo, EBay, Amazon e CNN. Uma semana depois, teve-se notícia de ataques DDoS contra sites brasileiros, tais como: UOL, Globo On e IG, causando com isto uma certa apreensão generalizada.

Diante destes fatos, a finalidade deste artigo é desmistificar o ataque, de modo que administradores e gerentes de sistemas, conhecendo melhor o inimigo, se preparem para combatê-lo.

^

Desmistificando o ataque

OS PERSONAGENS


Figura 1: Ataque DDoS

Quando tratamos de um ataque, o primeiro passo para entender seu funcionamento é identificar os "personagens". Pois bem, parece nãohaver um consenso a respeito da terminologia usada para descrever este tipo de ataque. Assim, esclarece-se que ao longo deste artigo será utilizada a seguinte nomenclatura:

Atacante: Quem efetivamente coordena o ataque.

Master: Máquina que recebe os parâmetros para o ataque e comanda os agentes (veja a seguir).

Agente: Máquina que efetivamente concretiza o ataque DoS contra uma ou mais vítimas, conforme for especificado pelo atacante.

Vítima: Alvo do ataque. Máquina que é "inundada" por um volume enormede pacotes, ocasionando um extremo congestionamento da rede e resultando na paralização dos serviços oferecidos por ela.

Vale ressaltar que, além destes personagens principais, existem outros dois atuando nos bastidores:

Cliente: Aplicação que reside no master e que efetivamente controla os ataques enviando comandos aos daemons.

Daemon: Processo que roda no agente, responsável por receber e executar os comandos enviados pelo cliente.

O ATAQUE

O ataque DDoS é dado, basicamente, em três fases: uma fase de "intrusão em massa",na qual ferramentas automáticas são usadas para comprometer máquinas e obteracesso privilegiado (acesso de root). Outra, onde o atacante instala software DDoS nas máquinas invadidas com o intuito de montar a rede deataque. E, por último, a fase onde é lançado algum tipo de flood de pacotes contra uma ou mais vítimas, consolidando efetivamente o ataque.

Fase 1: Intrusão em massa

Esta primeira fase consiste basicamente nos seguintes passos:

  1. É realizado um megascan de portas e vulnerabilidades em redes consideradas "interessantes", como por exemplo, redes com conexões de banda-larga ou com baixo grau de monitoramento.
  2. O seguinte passo é explorar as vulnerabilidades reportadas, com o objetivode obter acesso privilegiado nessas máquinas.

    Entre as vítimas preferenciais estão máquinas Solaris e Linux, devido à existência de sniffers e rootkits para esses sistemas. Entre as vulnerabilidades comumente exploradas podemos citar: wu-ftpd, serviços RPC como "cmsd", "statd", "ttdbserverd", "amd", etc.

  3. É criada uma lista com os IPs das máquinas que foram invadidas e que serão utilizadas para a montagem da rede de ataque.

Fase 2: Instalação de software DDoS

Esta fase compreende os seguintes passos:

  1. Uma conta de usuário qualquer é utilizada como repositório para as versões compiladas de todas as ferramentas de ataque DDoS.
  2. Uma vez que a máquina é invadida, os binários das ferramentas de DDoS sãoinstalados nestas máquinas para permitir que elas sejam controladasremotamente. São estas máquinas comprometidas que desempenharão os papeis de masters ouagentes.

    A escolha de qual máquina será usada como master e qual comoagente dependerá do critério do atacante. A princípio, o perfil dos master é o de máquinas que não são manuseadas constantemente pelos administradores e muito menos são frequentemente monitoradas. Já o perfil dos agentes é o de máquinas conectadas à Internet por links relativamente rápidos, muito utilizados em universidades e provedores de acesso.

  3. Uma vez instalado e executado o daemon DDoS que roda nos agentes, elesanunciam sua presença aos masters e ficam à espera de comandos (status "ativo").O programa DDoS cliente, que roda nos masters, registra em uma listao IP das máquinas agentes ativas. Esta lista pode ser acessada pelo atacante.
  4. A partir da comunicação automatizada entre os masters e agentes organizam-se os ataques.
  5. Opcionalmente, visando ocultar o comprometimento da máquina e a presençados programas de ataque, são instalados rootkits.

Vale a pena salientar que as fases 1 e 2 são realizadas quase que umaimediatamente após a outra e de maneira altamente automatizada. Assim, são relevantes as informações que apontam que os atacantes podem comprometer uma máquina e instalar nela as ferramentas de ataque DDoS em poucos segundos.

Voilá, tudo pronto para o ataque!!

Fase 3: Disparando o ataque

Como mostrado na figura 1, o atacante controla uma ou mais máquinas master, as quais, por sua vez, podem controlar um grande número de máquinas agentes. É a partir destes agentes que é disparado o flood de pacotes que consolida o ataque. Os agentes ficam aguardando instruções dos masters para atacar um ou mais endereços IP (vítimas), por um período específico de tempo.

Assim que o atacante ordena o ataque, uma ou mais máquinas vítimas são bombardeadas por um enorme volume de pacotes, resultando não apenas na saturação do link de rede, mas principalmente na paralização dos seus serviços.

^

Ferramentas de DDoS

Ao contrário do que se pensa, os ataques DDoS não são novos. A primeiraferramenta conhecida com esse propósito surgiu em 1998. Desde então, foram diversas as ferramentas de DDoS desenvolvidas, cada vez mais sofisticadas e com interfáceis mais amigáveis. O que é no mínimo preocupante, pois nos dá uma idéia de quão rápido se movimenta o mundo hacker. A seguir, elas são listadas na ordem em que surgiram:

1. Fapi (1998) 4. TFN (ago/99) 7. TFN2K(dez/99)
2. Blitznet 5. Stacheldraht(set/99) 8. Trank
3. Trin00 (jun/99) 6. Shaft 9. Trin00 win version

Não é propósito deste artigo abordar todas as ferramentas de DDoS disponíveis,mas apenas conhecer o funcionamento básico das principais, que são: Trin00, TFN, Stacheldraht e TFN2K.

TRIN00

O Trin00 é uma ferramenta distribuída usada para lançar ataques DoScoordenados, especificamente, ataques do tipo UDP flood.Para maiores informações a respeito de ataques deste tipo, veja em: http://www.cert.org/advisories/CA-96.01.UDP_service_denial.html

Uma rede Trinoo é composta por um número pequeno de masters e um grande número de agentes.

O controle remoto do master Trin00 é feito através de uma conexão TCPvia porta 27665/tcp. Após conectar, o atacante deve fornecer uma senha(tipicamente, "betaalmostdone").

A comunicação entre o master Trin00e os agentes é feita via pacotes UDP na porta 27444/udpou via pacotes TCP na porta 1524/tcp. A senha padrão para usar os comandosé "l44adsl" e só comandos que contêm a substring "l44" serão processados.

A comunicação entre os agentes e o master Trin00 tambémé através de pacotes UDP, mas na porta 31335/udp.Quando um daemon é inicializado, ele anuncia a sua disponibilidadeenviando uma mensagem ("*HELLO*") ao master,o qual mantém uma lista dos IPs das máquinas agentes ativas, que ele controla.

Tipicamente, a aplicação cliente que roda no master tem sido encontrado sob o nome de master.c, enquanto que os daemons do Trin00 instalados emmáquinas comprometidas têm sido encontrados com uma variedade de nomes, dentre eles: ns, http, rpc.trinoo, rpc.listen, trinix, etc. Tanto o programa cliente (que roda no master) quanto o daemon (que roda no agente) podem ser inicializados sem privilégios de usuário root.

TFN – TRIBE FLOOD NETWORK

O TFN é uma ferramenta distribuída usada para lançar ataques DoS coordenados a uma ou mais máquinas vítimas, a partir de várias máquinas comprometidas. Além de serem capazesde gerar ataques do tipo UDP flood como o Trin00, uma rede TFN pode gerar ataques do tipoSYN flood, ICMP flood e Smurf/Fraggle. Maiores informações a respeito destetipo de ataques podem ser encontradas em:

http://www.cert.org/advisories/CA-96.21.tcp_syn_flooding.html
http://www.cert.org/advisories/CA-98.01.smurf.html

Neste tipo de ataque é possível forjar o endereço origem dos pacotes lançados às vítimas, o que dificulta qualquer processo de identificação do atacante.

No caso específico de se fazer uso do ataque Smurf/Fraggle para atingir a(s) vítima(s), o flood de pacotes é enviado às chamadas "redes intermediárias" que consolidarão o ataque, não diretamente às vítimas.

O controle remoto de uma master TFN é realizado através de comandosde linha executados pelo programa cliente. A conexão entre o atacantee o cliente pode ser realizada usando qualquer um dos métodos de conexãoconhecidos, tais como: rsh, telnet, etc. Não é necessária nenhuma senhapara executar o cliente, no entanto, é indispensável a lista dos IPs das máquinasque têm os daemons instalados. Sabe-se que algumas versões da aplicação clienteusam criptografia (Blowfish) para ocultar o conteúdo desta lista.

A comunicação entre o cliente TFN e os daemons é feita via pacotes ICMP_ECHOREPLY.Não existe comunicação TCP ou UDP entre eles.

Tanto a aplicação cliente (comumente encontrada sob o nome de tribe) como os processos daemons instalados nas máquinas agentes (comumenteencontrados sob o nome de td), devem ser executados com privilégios de usuário root.

STACHELDRAHT

Baseado no código do TFN, o Stacheldraht é outra das ferramenta distribuídas usadas para lançar ataques DoS coordenados a uma ou mais máquinas vítimas, a partir de várias máquinas comprometidas. Como sua predecessora TFN, ela também é capaz de gerar ataques DoS do tipo UDP flood, TCP flood, ICMP flood e Smurf/fraggle.

Funcionalmente, o Stacheldraht combina basicamente características das ferramentas Trin00 e TFN, mas adiciona alguns aspectos, tais como: criptografia da comunicação entre o atacante e o master;e atualização automática dos agentes.

A idéia de criptografia da comunicação entre o atacante e o master surgiuexatamente porque uma das deficiências encontradas na ferramenta TFN era que a conexão entre atacante e master era completamente desprotegida, obviamente sujeita a ataques TCP conhecidos (hijacking, por exemplo). O Stacheldraht lida com este problema incluindo um utilitário "telnet criptografado" na distribuição do código.

A atualização dos binários dos daemons instaladosnos agentes pode ser realizada instruindo o daemon a apagar a sua própria imagem e substituí-la poruma nova cópia (solaris ou linux). Essa atualização é realizada via serviço rpc (514/tcp).

Uma rede Stacheldraht é composta por um pequeno número de mastersonde rodam os programas clientes (comumente encontrados sob o nome de mserv, e um grande número de agentes, onde rodam os processos daemons (comumente encontrados sob o nome de leaf ou td). Todos eles devem ser executados com privilégios de root.

Como foi mencionado anteriormente, o controle remoto de um master Stacheldraht é feito através de um utilitário "telnet criptografado" que usa criptografia simétrica para proteger as informaçõesque trafegam até o master. Este utilitário se conecta em uma porta TCP,comumente na porta 16660/tcp.

Diferencialmente do que ocorre com o Trinoo, que utiliza pacotes UDPna comunicação entre os masters e os agentes, e do TFN, que utilizaapenas pacotes ICMP, o Stacheldraht utiliza pacotes TCP (porta padrão 65000/tcp) eICMP (ICMP_ECHOREPLY).


TFN2K - TRIBLE FLOOD NETWORK 2000

A ferramenta Tribe Flood Network 2000, mais conhecida como TFN2K, é mais umaferramenta de ataque DoS distribuída. O TFN2K é considerado umaversão sofisticada do seu predecessor TFN. Ambas ferramentas foram escritaspelo mesmo autor, Mixter.

A seguir são mencionadas algumas características da ferramenta:

A título de ilustração se resume, através da seguinte tabelacomparativa, como é realizada a comunicação entre os"personagens" encontrados em um típico ataque DDoS, para cada uma das ferramentas:

Comunicação Trin00 TFN Stacheldraht TFN2K
Atacante->Master 1524/27665/tcp icmp_echoreply 16660/tcp icmp/udp/tcp
Master->Agente 27444/udp icmp_echoreply 65000/tcp,
icmp_echoreply
icmp/udp/tcp
Agente->Master 31335/udp icmp_echoreply 65000/tcp,
icmp_echoreply
icmp/udp/tcp

De um modo geral, os binários das ferramentas DDoS têm sido comumente encontrados em máquinas com sistema operacional Solaris ou Linux. No entanto, o fonte dos programas pode ser facilmente portado para outras plataformas.

Ainda em relação às ferramentas, vale lembrar que a modificação do código fonte pode causar a mudança de certas propriedades da ferramenta, tais como: portas de operação, senhas de acesso e controle, nome dos comandos, etc. Isto é, a personalização da ferramenta é possível.

^

Como se prevenir?

Até o momento não existe uma "solução mágica" para evitar os ataques DDoS, o que sim é possível é aplicar certas estratégias para mitigar o ataque, este é o objetivo desta seção.

Dentre as estratêgias recomendadas pode-se considerar as seguintes:

^

Como detectar?

As ferramentas DDoS são muito furtivas no quesito detecção. Dentre as diversaspropriedades que dificultam a sua detecção pode-se citar como mais significativa a presença de criptografia. Por outro lado, é possível modificar o código fonte de forma que as portas, senhas e valores padrões sejam alterados.

Contudo, não é impossível detectá-las. Assim, esta seção tem por objetivo apresentar alguns mecanismos que auxiliem na detecção de um eventual comprometimento da sua máquina (ou rede) que indique ela estar sendo usada em ataques DDoS. Estes mecanismos vão desde os mais convencionais até os mais modernos.

AUDITORIA

Comandos/Utilitários: Alguns comandos podem ser bastante úteis durante o processo de auditoria. Considerando os nomes padrões dos binários das ferramentas DDoS, é possível fazer uma auditoria por nome de arquivo binário usando o comando find. Caso as ferramentas não tenham sido instaladas com seus nomes padrões, é possível fazer uso do comando strings que permitiria, por exemplo, fazer uma busca no conteúdo de binários "suspeitos". Esta busca visaria achar cadeias de caracteres, senhas e valores comumente presentes nos binários das ferramentas DDoS.

O utilitário lsof pode ser usado para realizar uma auditoria na lista de processos em busca do processo daemon inicializado pelas ferramentas DDoS. Por último, se a sua máquina estiver sendo usada como master, o IP do atacante eventualmente poderia aparecer na tabela de conexões da sua máquina (netstat). Se tiver sido instalado previamente um rootkit, este IP não se revelará.

Ferramentas de auditoria de host: Ferramentas como o Tripwire podem ajudar a verificar a presença de rootkits.

Ferramentas de auditoria de rede: O uso de um scanner de portas pode revelar um eventual comprometimento da sua máquina. Lembre-se que as ferramentas DDoS utilizam portas padrões.

Assim também, analisadores de pacotes podem ser vitais na detecção de trafego de ataque. Para uma melhor análise dos pacotes é importante conhecer as assinaturas das ferramentas DDoS mais comuns. No caso específico da ferramenta TFN2K, que utiliza pacotes randômicos e criptografados, o que prejudica em muito a detecção da ferramenta por meio de análise dos pacotes, é possível alternativamente procurar nos pacotes uma característica peculiar gerada pelo processo de criptografia.

FERRAMENTAS DE DETECÇÃO ESPECÍFICAS

Uma variedade de ferramentas foram desenvolvidas para detectar ferramentas de ataque DDoS que, eventualmente, possam ter sido instaladas no seu sistema, dentre elas:

O NIPC (National Infraestructure Protection Center) disponibilizou uma ferramenta de auditoria local chamada "find_ddos" que procura no filesystem os binários do cliente e daemon das ferramentas de Trin00, TFN, Stacheldraht e TFN2K. Atualmente estão disponíveis os binários do find_ddos para Linux e Solaris em: http://www.fbi.gov/nipc/trinoo.htm

Dave Dittrich, Marcus Ranum e outros desenvolveram um script de auditoria remota, chamado "gag" que pode ser usado para detectar agentes Stacheldraht rodando na sua rede local. Este script pode ser encontrado em: http://staff.wahington.edu/dittrich/misc/sickenscan.tar

Dave Dittrich, Marcus Ranum, George weaver e outros desenvolveram a ferramenta de auditoria remota chamada "dds" que detecta a presença de agentes Trin00, TFN e Stacheldraht. Ela se encontra disponível em: http://staff.washington.edu/dittrich/misc/ddos_scan.tar

SISTEMAS DE DETECÇÃO DE INTRUSÃO

Sistemas de detecção de intrusão mais modernos incluem assinaturas que permitem detectar ataques DDoS e comunicação entre o atacante, o master DDoS e o agente DDoS.

^

Como reagir?

Isto pode significar que você está sendo usado como master ou agente. É importante determinar o papel das ferramentas encontradas. A peça encontrada pode prover informações úteis que permitam localizar outros componentes da rede de ataque. Priorize a identificação dos masters. Dependendo da situação, a melhor estratégia pode ser desabilitar imediatamente os masters ou ficar monitorando para coletar informações adicionais.

O uso do mecanismo de spoofing nos ataques DDoS dificulta em muito a identificação do atacante. Assim, se há um momento em que pode-se fazer um backtracing e chegar ao verdadeiro responsável é no exato momento em que está ocorrendo o ataque. Isto significa que é imprescindível a comunicação rápida com os operadores de rede do seu provedor de acesso/backbone.

Considere que, devido à magnitude do ataque, não é recomendável confiar na conectividade Internet para comunicação durante um ataque. Portanto, certifíque-se que sua política de segurança inclua meios alternativos de comunicação (telefone celular, pager, sinais de fumaça, etc). Mas, por favor, aja rápido, tempo é crucial!

^

Considerações finais

Não existe "solução mágica" para evitar os ataques DDoS, não com a tecnologia atual.

No lugar, existem certas estratégias que podem ser aplicadas pelos administradores e gerentes de rede para mitigá-lo. Sem dúvida, sem se conhecer o que acontece nos bastidores será uma tarefa difícil. Assim, o motivo deste artigo foi justamente desmistificar o ataque de modo que estes profissionais, conhecendo melhor o inimigo, se preparem melhor para combatê-lo.

^

Referências on-line

ALR-01/2000: Recentes ataques de DoS
por CAIS - Centro de Atendimento de Incidentes de Segurança
http://www.rnp.br/arquivos/ALR-012000.txt

Distributed Denial of Service Attacks
by Bennet Tood
https://fridge.oven.com/~bet/DDoS

DDoS Attack Mitigation
by Elias Levy
Mensagem enviada na lista Bugtraq em 10/02/2000 http://www.securityfocus.com

Denial of Service FAQ
by Kurt Seifried
http://securityportal.com/direct.cgi?/research/ddosfaq.html

Consensus Roadmap for Defeating Distributed Denial of Service Attacks
by Rich Pethia, Allan Paller & Gene Spafford
Special Note from SANS Global Incident Analysis Center
http://www.sans.org/ddos_roadmap.htm

Resisting the Effects of Distributed Denial of Service Attacks
Special Note from SANS Global Incident Analysis Center
http://www.sans.org/y2k/resist.htm

Distributed Denial of Service Defense Tactics
by Simple Nomad (RAZOR Team)
http://razor.bindview.com/publish/papers/DDSA_Defense.html

Distributed Denial of Service Tools
by CERT - Carnegie Mellon Emergency Response Team
http://www.cert.org/incident_notes/IN-99-07.html

Denial of Service Tools
by CERT - Carnegie Mellon Emergency Response Team
http://www.cert.org/advisories/CA-99-17-denial-of-service-tools.html

Denial of Service Developments
by CERT - Carnegie Mellon Emergency Response Team
http://www.cert.org/advisories/CA-2000-01.html

Technical Tips - Denial of Service
by CERT - Carnegie Mellon Emergency Response Team
http://www.cert.org/tech_tips/denial_of_service.html

CERT Distributed Intruder Tools Workshop
by David Dittrich
http://staff.washington.edu/dittrich/talks/cert/

The DoS Project's 'trinoo' distributed denial of service attack tool
by David Dittrich
http://staff.washington.edu/dittrich/misc/trinoo.analysis

The "Tribe Flood Network" distributed denial of service attack tool
by David Dittrich
http://staff.washington.edu/dittrich/misc/tfn.analysis

The "stacheldraht" distributed denial of service attack tool
by David Dittrich
http://staff.washington.edu/dittrich/misc/stacheldraht.analysis

TFN2K - An Analysis
by Jason Barlow and Woody Thrower (Axent Security Team)
http://www2.axent.com/swat/News/TFN2k_Analysis.htm

Tribe Flood Network 3000
by Mixter
http://packetstorm.securify.com/distributed/tfn3k.txt

^

Sites relacionados

CERT Coordinator Center

Security Focus

SANS Institute

^

NewsGeneration, um serviço oferecido pela RNP – Rede Nacional de Ensino e Pesquisa
Copyright © RNP, 1997 – 2004