A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

A praga dos spammeiros

Sex

27

Fev

2009


16:01

(5 votos, média 5.00 de 5) 


Joomla

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 smile ), 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

info 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.

Informações adicionais