Informática Numaboa - Tutoriais e Programação
A praga dos spammeiros
Sex 27 Fev 2009 16:01 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:42
- Autor: vovó Vicki
- Acessos: 8689
Como se não bastasse a praga dos registros forçados, desde o final de janeiro de 2009 notei uma atividade anormalmente alta nos meus sites. Os arquivos de log estavam ficando inchados demais e os números das estatísticas de visitas e páginas vistas subiam vertiginosamente. Motivo de alegria, mas... quando o milagre é muito grande até o santo desconfia!
Resolvi dar uma analisada nos logs e acabei me deparando com um problemão: A praga dos spammeiros.
Primeiras constatações
Quando dei uma olhada no log do meu servidor web (Apache, naturalmente ), fiquei estarrecida com o número de registros enormes do tipo
193.86.238.33 - - [08/Feb/2009:02:42:54 -0200] "GET /destaque?texto=%3Ca+href%3D %22http%3A%2F%2Fmgty.com%2Fmember.php%3Fu%3D832%22%3Evintage+animal+porn%3C %2Fa%3E+%5Burl%3Dhttp%3A%2F%2Fmgty.com%2Fmember.php%3Fu%3D832%5Dvintage+animal+porn %5B%2Furl%5D+%3Ca+href%3Dhttp%3A%2F%2Fmgty.com%2Fmember.php%3Fu%3D832%3E vintage+animal+porn3C%2Fa%3E+%5Burl%3Dhttp%3A%2F%2Fmgty.com%2Fmemb er.php%3Fu%3D832+%5D+vintage+animal+porn+%5B%2Furl%5D&codigo=%3Ca+href%3D %22http%3A%2F%2Fmgty.com%2Fmember.php%3Fu%3D832%22%3Evintage+animal+porn...
ou de registros curtinhos do tipo
202.156.12.238 - - [15/Feb/2009:14:15:35 -0300] "GET /index.php?option =http://bikelove.hostinginfive.com/bike.htm? HTTP/1.1" 301 1415
Com certeza, puro lixo! Mas o que isto significava? Resolvi dar uma pesquisada nos IPs logados e acabei voltando para o Projeto Honey Pot por que estava na cara que estava lidando com tentativas de spam. Lá pude verificar que a maioria destes IPs eram classificados como Harvester (caçador de endereços) e Comment Spammer (spammer de comentários), ou seja, endereços de um pessoal que adora plantar tranqueira no mundo todo fazendo propaganda duvidosa de pornografia, medicamentos como viagra e cialis e outras baboseiras mais.
O que fazer? Se você também está neste fogo cruzado, acompanhe o que fiz para melhorar esta situação.
Primeiras providências
Infelizmente para muitos de vocês, para poder fazer frente a estes ataques inócuos, mas que consomem largura de banda e são muito perturbadores, é preciso ter acesso total ao servidor que esteja hospedando o site visado. Se você tiver acesso de root ao seu servidor, então a solução apresentada a seguir pode ajudar. Se não, só dá para optar por uma solução mais simples.
Como tenho acesso ao nosso servidor, a primeira providência que tomei foi começar a colocar os IPs maliciosos no iptables - no manual a mão mesmo. Um trabalhão danado, mas que já deu algum resultado. Logada como root (iptables, por princípio, é uma exclusividade do usuário root), fiz entradas como
# iptables -A INPUT -s 87.251.146.18 -j DROP # iptables -A INPUT -s 99.152.147.181 -j DROP
Podem crer, estes dois IPs são bichados mesmo e já estão listados no meu firewall.
Depois de ter colecionado cerca de 200 endereços em menos de 48 horas, percebi que esta não seria uma tática muito eficiente e resolvi partir para uma abordagem mais prática - mesmo porque, se continuasse a caçar spammeiros desta maneira não teria tempo para mais nada, nem para atualizar os sites.
Botando a cabeça para funcionar, pensei o seguinte: meus sites são movidos a Joomla então, por que não tirar proveito deste CMS para capturar informações que serviriam para bloquear visitantes indesejados, fichados no Projeto Honey Pot?
A idéia do plugin
No Joomla 1.5.x, os assim chamados plugins servem para executar rotinas quando são chamados por páginas que estão sendo carregadas ou quando o sistema é acionado. Como o objetivo era que nenhuma página fosse acionada sem que o IP chamador passasse por uma checagem, ficou claro para mim que eu precisava de um plugin do tipo system.
Este plugin precisava identificar o IP chamador, acionar o banco de dados do Honey Pot e, se o IP fosse "do mal", bloquear seu acesso redirecionando-o para um endereço com uma página mostrando "Vá lamber sabão" ou, melhor ainda, redirecionando-o para uma armadilha honey pot.
Acessando a base de dados httpBL do Honey Pot
O Projeto Honey Pot é uma rede de colaboração global cujo objetivo é caçar e fichar IPs com atividades suspeitas. Ao longo dos anos o projeto conseguiu criar um enorme banco de dados que pode ser usado gratuitamente. Para acessar esta base de dados é preciso se cadastrar e depois solicitar uma chave de acesso.
A forma como o Honey Pot disponibiliza as informações do seu banco de dados é, no mínimo, interessante. Nunca havia visto algo semelhante. Colocaram tudo num servidor DNS que pode ser acessado e que responde com um "endereço codificado" do tipo 127.x.x.x. Para exemplificar, digamos que a resposta de uma solicitação a este DNS tenha sido 127.3.5.1. Separando os octetos temos:
- 127: Não tem um significado especial. Diz apenas que a sua solicitação foi recebida. Caso não seja 127, a solicitação não estava formatada corretamente ou ocorreu algum outro erro.
- 3: Representa o número de dias desde a última atividade do IP pesquisado. Este valor varia de 0 a 255, dá uma idéia do nível de atividade do IP e serve para orientar nossa decisão - coisa do tipo, um IP parado há mais de 30, 60 ou 90 dias pode ser desconsiderado.
- 5: É o nível de periculosidade, quanto mais alto, pior!
- 1: Tipo de atividade:
- 0: Rastreamento normal (tipo Google ou Yahoo indexando suas páginas)
- 1: Suspeito
- 2: Harvester (caçador)
- 3: Suspeito + Caçador
- 4: Spammer de comentário
- 5: Suspeito + Spammer de comentário
- 6: Caçador + Spammer de comentário
- 7: Suspeito + Caçador + Spammer de comentário
- >7: reservado para uso futuro
Mais uma coisinha, a solicitação para o servidor DNS precisa ter o seguinte formato:
xxxxxxxxxxxx.IPinvertido.dnsbl.httpbl.org
onde xxxxxxxxxxxx é a chave composta por 12 letras minúsculas que você obteve no Honey Pot e IPinvertido é o IP que você quer pesquisar com os octetos "virados ao contrário". Por exemplo, para pesquisar o IP 201.48.123.184 (mais um dos bichados) a chamada fica assim:
xxxxxxxxxxxx.184.123.48.201.dnsbl.httpbl.org
Antes de criar um plugin partindo do zero, resolvi dar uma procurada no site das extensões do Joomla e acabei encontrando o http:BL Plugin do Michiel Bijland. Dei uma olhada no código do plugin e gostei do que vi.
- Anterior
- Próximo >>