|
Técnicas do Hackerismo
Autor: Cesar Boff
Introdução
O
objetivo desta pesquisa é buscar informações sobre algumas das técnicas
de hackerismo mais utilizadas no mundo, por pessoas mal-intencionadas, que
visam prejudicar usuários de computadores interconectados, quer estejam
estes computadores ligados em redes locais ou não.
Definições
de ataque
-
Conjunto de ações que tentem a comprometer a integridade, confiabilidade
ou disponibilidade de um recurso computacional.
-
Violação da política de segurança de um sistema.
-
Exploração de vulnerabilidades visando a obtenção de acesso
privilegiado.
-
Uso malicioso que pode levar à negação dos serviços de um sistema.
Classificação
quanto à severidade

Anatomia
de um Ataque

ATAQUES
DDos
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 (amplificadores) 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.
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, são ataques DoS em larga escala.
Os
Personagens de um Ataque DDos

Atacante : Quem coordena o ataque.
Master : Máquina que recebe os Parâmetros do ataque e comanda os agentes.
Agente : Máquina que concretiza o ataque.
Vítima : Máquina que é atacada.
Ferramentas e métodos de ataque
Smurf
O
ataque smurf é o mais conhecido ataque que se beneficia do sistema de
endereços broadcast de uma rede, e é um ataque baseado em negação de
serviço, ou seja, também é um Denial of Service. O seu
funcionamento é simples, porém, o resultado de um ataque smurf pode ser
bem impressionante.
Esse
tipo de ataque não tem intenção de parar um computador, mas sim uma
rede inteira. É realizado enviando contínuas stream (cadeias) de pacote
ICMP modificadas para a rede alvo. Tudo funciona da seguinte forma:
1.
Um usuário malicioso cria uma lista de endereços broadcast de rede.
2.
Ele envia pacotes "spoofados" com o IP da vítima para cada um
desses endereços.
3.
As máquinas das redes que receberam os pacotes respondem, mandando mais
pacotes para a vítima, e não para o computador do agressor.
Dependendo
da quantidade de endereços utilizados e da quantidade de máquinas dentro
das redes, o ataque pode ser realmente devastador.
Logo
após a liberação do código do smurf, começaram a surgir variações,
tais como o papasmurf, fraggle e o smurf4. O fraggle é um smurf baseado
em UDP.
Em
vez de enviar pacotes de ICMP ECHO_RESPONSE, ele envia pacotes UDP "spoofados"
para os endereços de broadcast. As máquinas da rede, ao receberem o
pacote UDP, respondem à vítima. A vítima, em certas circunstâncias,
envia mais uma resposta, gerando uma grande quantidade de tráfego na
rede. O smurf4 é somente uma revisão do smurf. O papasmurf (também
conhecido como smurf5) foi criado para "celebrar" o 1º aniversário
do smurf. O autor do exploit resolveu então reescrever o código-fonte,
deixando-o mais limpo, e juntando os dois ataques de broadcast (smurf e
fraggle) num só programa.
Esse
tipo de ataque tem sido usado para parar vários Provedores de Acesso à
Internet e todos os seus usuários. Efetivamente, é muito difícil
proteger-se de um ataque de broadcast bem planejado. Se a pessoa que está
atacando conseguiu elaborar uma grande lista de endereços de broadcast
vulneráveis e se a vítima não possui a proteção de um firewall, sua
conexão com certeza ficará congestionada.
Em
muitos casos, firewalls também são ineficientes. Os administradores de
rede podem evitar que suas redes sejam utilizadas como amplificadores.
Podem ser instalados firewalls que evitem a entrada de pacotes ICMP/UDP
que tenham destino o endereço de broadcast. Podem ainda tomar precauções
simples, como desativar serviços que não estão sendo utilizados pelos
computadores de rede.
O
site http://www.netscan.org está
permanentemente procurando por redes que amplificam pacotes UDP/ICMP,
mantendo uma lista de redes que fazem esta amplificação. O site http://www.powertech.no/smurf/
verifica na hora se uma rede pode ser utilizada como amplificadora ou não.
Nos
últimos meses, as redes brasileiras cuja configuração de roteadores
permitem este tipo de ataque têm sido utilizadas, com intensidade cada
vez maior, criando prejuízos tanto para as vítimas quanto para as redes
amplificadoras.
Funcionamento
Os pacotes são modificados de modo que o endereço da máquina que envia os
dados é idêntico ao endereço do alvo (spoofing). Além disso, os
pacotes são enviados para os chamados endereços broadcast, o que resulta
em os pacotes modificados serem enviados para todos os computadores de uma
rede. Os computadores dessa rede irão responder enviando uma mensagem de
ICMP ECHO_RESPONSE para o computador que eles assumem ter enviado a
mensagem (o computador-alvo da rede). Se o atacante tiver uma conexão rápida,
não é preciso ser um grande matemático para saber que a quantidade de
dados gerados pode parar a rede atacada. A rede irá parar até que o
atacante pare de enviar os pacotes ou o tráfego seja bloqueado.
Anexo
código fonte do ataque Anaxo-Smurf
SPOOFING
ou Bind Cache
É
a técnica de se fazer passar por outro computador da rede para conseguir
acesso a um sistema. Esta técnica não é um ataque e sim parte de um,
visando dificultar o rastreamento do agressor.
Para
executá-lo, o invasor usa um programa que altera o cabeçalho dos pacotes
IP de modo que pareçam estar vindo de outra máquina (vítima). Por
exemplo, dizendo ao sistema que ele vai atacar, que ele é confiável.
Isto ocorre porque as comunicações entre computadores em uma rede
(Internet) se baseiam nestes endereços "confiáveis" para
trocarem informações. Uma máquina A pode manter uma comunicação com a
máquina B de forma que não seja necessário verificar a toda hora se a
informação vinda é autêntica entre elas. O hacker, então, põe uma
espécie de disfarce na sua máquina, dizendo para a máquina A que
"ele" é a máquina B. Assim, a máquina A vai aceitar todos os
seus comandos. Então, o intruso pode fazer o que quiser nela. Os tipos
mais comuns de spoofing são: IP-spoofing, DNS-spoofing, Web-spoofing,
mail-spoofing, entre outros.
Em uma conexão entre dois computadores existem três etapas que agem como se
fosse um diálogo. A primeira ocorre quando o cliente diz ao servidor que
quer fazer uma conexão; depois, na segunda etapa, o servidor pergunta
qual é a máquina que quer se conectar; e, na última etapa, o cliente
responde com o seu endereço IP. É neste momento que ocorre o ataque.
Funcionamento
Imagine
uma rede local com três estações, A,B e C. Neste caso, a máquina que
será invadida será a máquina A e o invasor será a máquina C. O ataque
ocorre com base na máquina B, já que o endereço IP dela será roubado
para fazer a invasão. Na prática, o invasor da máquina C simplesmente
tira a máquina B do ar, usando uma técnica de ataque, que pode ser um
DOS, e depois engana a máquina A, dizendo que é a máquina B. Isso é
possível porque, na grande maioria dos serviços, não é necessária uma
senha no momento em que é realizada a conexão.
Prevenção
Uma
forma de detectar o IP spoofing é monitorando pacotes com algum software
de monitoração de redes, tal como o netlog, por exemplo. O objetivo é
verificar um pacote na interface externa da rede que tenha direções IP
de origem e destino pertencentes ao domínio local.
Com
a atual tecnologia de protocolo IP, é impossível eliminar pacotes
IP-spoofed. Sistemas provedores de serviços Internet baseados em TCP
podem ver-se inabilitados de administrar tais serviços quando estão
sobre um ataque e por algum tempo depois de que o mesmo já tenha cessado.
Para evitar um ataque desse tipo, várias medidas podem ser tomadas para
reduzir o número de pacotes IP-spoofed que entram na rede.
A
melhor forma de prevenir o problema de IP spoofing é reduzir a
probabilidade de que um site seja objetivo de algum destes ataques,
instalando um roteador que filtre a entrada da interface externa da rede
(conhecido como um filtro de entrada), não permitindo que um pacote o
atravesse, se o mesmo tem como direção de origem um que não corresponda
ao da rede interna. Isto preveniria que um agressor não pertencente à
sua rede lhe envie pacotes pretendendo ser uma máquina de sua rede. Esta
à uma boa solução, se nós unicamente confiarmos em máquinas locais.
Se cofiarmos em máquinas externas, esta solução topológica falha.
Neste
caso, deve-se bloquear todos os protocolos que usem TCP e autenticações
baseadas em direções. Ainda que este ataque específico esteja dirigido
a sistemas Unix, qualquer sistema que autentica hosts ou usuários
baseados em endereços IP é vulnerável a um ataque de spoofing.
TFN
- Trible Flood Network
O
TFN é uma ferramenta distribuída usada para lançar ataques DoS
coordenados a uma ou mais máquinas-vítima, a partir de várias máquinas
comprometidas. Além de serem capazes de gerar ataques do tipo UDP flood
como o Trin00, uma rede TFN pode gerar ataques do tipo SYN 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 ( Máquina que recebe os parâmetros
para o ataque e comanda os agentes) TFN é realizado através de comandos
de linha executados pelo programa-cliente. A conexão entre o atacante e 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 senha
para executar o cliente; no entanto, é indispensável a lista dos IPs das
máquinas que têm os daemons (Processo que roda no agente, responsável
por receber e executar os comandos enviados pelo cliente.) instalados.
Sabe-se que algumas versões da aplicação-cliente usam 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
(comumente encontrados sob o nome de td) devem ser executados com
privilégios de usuário root.
TFN2K
- Trible Flood Network 2000
A
ferramenta Tribe Flood Network 2000, mais conhecida como TFN2K, é mais
uma ferramenta de ataque DoS distribuída. O TFN2K é considerado uma versão
sofisticada do seu predecessor TFN. Ambas as ferramentas foram escritas
pelo 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 pode ser instruído para alternar aleatoriamente 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. Em vez disso, o cliente envia 20 vezes cada
comando confiando que, ao menos uma vez, o comando chegue com sucesso.
O
master pode utilizar um endereço IP forjado.
ICMP
Flood
O
pacote do tipo ICMP (Internet Control Message Protocol) não é
exatamente igual a um pacote PING, como muita gente diz. Os pacotes TCP/IP
e UDP são gerados por programas do tipo FTP, Telnet e outros. Porém, o
ICMP é gerado diretamente pelo Kernel da máquina para nomear erros e
controlar o fluxo de informações entre duas máquinas diferentes que
estejam se comunicando.
O
ICMP Flood (inundação) é o ato de enviar o número máximo de pacotes
no menor espaço de tempo possível a fim de tornar a conexão de um usuário
lenta (lag), desconectando-o da rede. O ataque ICMP Flood pode ser
dividido em duas categorias: usuários de modem e usuários de rede.
Um
usuário que esteja conectado via modem a 14.400bps de sua casa
dificilmente conseguirá atacar alguém com um ICMP Flood, pois não tem
velocidade para o envio de pacotes suficientes para derrubar alguém, e,
ao mesmo tempo, pode ser um alvo para um outro usuário que esteja
conectado a 28.800bps, por exemplo.
Para
se entender mais facilmente como funciona, basta pensar assim: quanto
maior o link da conexão, mais poderoso será o ataque. Usuários
com conexão mais veloz e maior banda (bandwidth) derrubam os usuários
que têm link menor. Seguindo essa lógica, um usuário em uma Shell
T3 derruba uma Shell T2, que derruba uma T1, que derruba um
Modem de 56Kbps, que derruba um de 28,8Kbps e assim sucessivamente.
Para
proteger-se do ataque ICMP Flood deve-se usar um programa de ICMP Check
que irá lhe dizer de onde estão vindo os pacotes, pois o ICMP não
estabelece conexão e, por esse motivo, programas como o netstat, não
conseguem identificar a origem do ataque. Também um bom firewall para
bloqueio de pacotes ICMP vindos de qualquer lugar é uma possível proteção.
Um bom programa é o Conseal PC Firewall, da Signal9, que também
atua no caso de ataques utilizando outros protocolos, como TCP, UDP e SYN.
Anexos
Abaixo,
código-fonte referente ao ataque Smurf e Spoof
Link
para o Anexo-Smurf.
Conclusão
Através
desta pesquisa, constata-se que invasões e ataques de negação de serviços
vêm se tornando um problema cada vez mais grave, pois novas técnicas de
ataque surgem a cada instante e as existentes ficam cada vez mais
eficientes.
É
um grande desafio para os administradores de redes impedirem tais ataques,
já que muitas máquinas ligadas à grande rede não têm nenhum tipo de
proteção e, ainda pior, atuam como amplificadoras para que esses ataques
se tornem mais poderosos.
Referências
http://sti.br.inter.net/hackacio/frames/
wp_smurf.htm#
Sobreosataques
http://seguranca.brasirc.net/ataques/
a_broadcast.htm
http://www.cg.org.br/acoes/invasoes.htm
http://www.cirp.usp.br/secoes/screde/seg_redes/
seg_inv.html
http://seguranca.brasirc.net/ataques/a_icmp.htm
http://www.darkocult.cjb.net/
www.acme-ids.org/~marcelo
cesarboff@onda.com.br

|