|
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 ocorrecom 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.
Os personagens
Quando tratamos de um ataque, o primeiro passo
para entender seu funcionamento é identificar os "personagens".
Pois bem, parece não haver 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 enorme de 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:
É 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.
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.
É 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:
Uma conta de usuário qualquer é utilizada como repositório
para as versões compiladas de todas as ferramentas
de ataque DDoS.
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.
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.
A partir da comunicação automatizada entre os masters
e agentes organizam-se os ataques.
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.
Fase 3: Disparando o ataque
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
Ao contrário do que se pensa, os ataques DDoS
não são novos. A primeira ferramenta 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.
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 disponibilidade
enviando 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.
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ão conhecidos,
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:
Da mesma forma que ocorre no TFN, as vítimas podem
ser atingidas por ataques do tipo UDP flood, TCP flood,
ICMP flood ou Smurf/fraggle. O daemon podeser instruído
para alternar aleatoriamente entre estes quatro tipos
de ataque.
O controle remoto do master é realizado através de
comandos via pacotes TCP, UDP, ICMP ou os três de
modo aleatório. Estes pacotes são criptografados usando
o algoritmo CAST.Deste modo, a filtragem de pacotes
ou qualquer outro mecanismo passivo, torna-se impraticável
e ineficiente.
Diferentemente do TFN, esta ferramenta é completamente
"silenciosa", isto é, não existe confirmação
(ACK) da recepção dos comandos, a comunicação de controle
éunidirecional. Ao invés disso, o cliente envia 20
vezes cada comando confiando em que, ao menos uma
vez, o comando chegue com sucesso.
O master pode utilizar um endereço IP forjado.
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:
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:
Incrementar a segurança do host
Sendo que a característica principal deste
ataque é a formação de uma rede de máquinas comprometidas
atuando como masters e agentes, recomenda-se fortemente
aumentar o nível de segurança de suas máquinas, isto
dificulta a formação da rede do ataque.
Instalar patches
Sistemas usados por intrusos para executar
ataques DDoS são comumente comprometidos via vulnerabilidades
conhecidas. Assim, recomenda-se manter seus sistemas
atualizados aplicando os patches quando necessário.
Aplicar filtros "anti-spoofing"
Durante os ataques DDoS, os intrusos tentam
esconder seus endereços IP verdadeiros usando o mecanismo
de spoofing, que basicamente consite em forjar o endereço
origem, o que dificulta a identificação da origem
do ataque. Assim, se faz necessário que:
Os provedores de acesso implementem filtros anti-spoofing
na entrada dos roteadores, de modo que ele garanta
que as redes dos seus clientes não coloquem pacotes
forjados na Internet.
As redes conectadas à Internet, de modo geral, implementem
filtros anti-spoofing na saída dos roteadores de borda
garantindo assim que eles próprios não enviem pacotes
forjados na Internet.
Limitar banda por tipo de tráfego
Alguns roteadores permitem limitar a banda
consumida por tipo de tráfego na rede. Nos roteadores
Cisco, por exemplo, isto é possível usando CAR (Commited
Access Rate). No caso específico de um ataque DDoS
que lança um flood de pacotes ICMP ou TCP SYN, por
exemplo, você pode configurar o sistema para limitar
a banda que poderá ser consumida por esse tipo de
pacotes.
Prevenir que sua rede seja usada
como "amplificadora"
Sendo que algumas das ferramentas DDoS podem
lançar ataques smurf (ou fraggle), que utilizam o
mecanismo de envio de pacotes a endereços de broadcasting,
recomenda-se que sejam implementadas em todas as interfaces
dos roteadores diretivas que previnam o recebimento
de pacotes endereçados a tais endereços. Isto evitará
que sua rede seja usada como "amplificadora".
Estabelecer um plano de contingência
Partindo da premisa que não existe sistema
conectado à Internet totalmente seguro, urge que sejam
considerados os efeitos da eventual indisponibilidade
de algum dos sistemas e se tenha um plano de contingência
apropriado, se necessário for.
Planejamento prévio dos procedimentos
de resposta
Um prévio planejamento e coordenação são críticos
para garantir uma resposta adequada no momento que
o ataque está acontecendo: tempo é crucial! Este planejamento
deverá incluir necessariamente procedimentos de reação
conjunta com o seu provedor de backbone.
Como detectar ?
As ferramentas DDoS são muito furtivas no
quesito detecção. Dentre as diversas propriedades
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 ?
Se ferramentas DDoS forem instaladas nos seus sistemas
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.
Se seus sistemas forem vítimas
de ataque DDoS
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 combate-lo.
|