Bloqueando um ataque de spam distribuído e consistente? Poderia ser algo mais sério?

1

Eu farei o meu melhor para tentar explicar isso, pois é estranho e confuso para mim. Eu postei há pouco sobre um pico sustentado em consultas mysql em um VPS que eu tinha configurado recentemente. Acabou sendo um único post em um site que eu estava desenvolvendo. A postagem teve mais de 30.000 comentários sobre spam! Como o site era um que eu estava construindo lentamente, ainda não havia configurado o software de comentários anti-spam.

Eu já excluí a postagem específica que deu uma pausa no servidor, mas a URL da postagem continua sendo afetada. O mais frustrante é que cada hit é de um IP diferente. Como posso começar a bloquear / impedir isso? Isso é algo que eu preciso me preocupar?

Aqui estão alguns detalhes mais específicos sobre minha configuração, apenas para fornecer um contexto:

  • Servidor Ubuntu 8.10 com configuração do ufw
  • O site que estou criando está no Drupal, que agora tem a configuração do Mollom para controle de spam. Não foi configurado antes.
  • As solicitações acontecem de maneira inconsistente. Às vezes é a cada dois segundos e outras vezes é um ou dois entre os hits. No entanto, vem acontecendo quase constantemente assim há mais de uma semana.

Aqui está uma amostra do meu log de acesso do Apache dos últimos 15 minutos apenas para a página em questão:

dev.domain-name.com:80 97.87.97.169 - - [28/Mar/2010:06:47:40 +0000] "POST http://dev.domain-name.com/comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 202.149.24.193 - - [28/Mar/2010:06:50:37 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 193.106.92.77 - - [28/Mar/2010:06:50:39 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 194.85.136.187 - - [28/Mar/2010:06:52:03 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 220.255.7.13 - - [28/Mar/2010:06:52:14 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 195.70.55.151 - - [28/Mar/2010:06:53:41 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 71.91.4.31 - - [28/Mar/2010:06:56:07 +0000] "POST http://dev.domain-name.com/comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 98.209.203.170 - - [28/Mar/2010:06:56:10 +0000] "POST http://dev.domain-name.com/comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 24.255.137.159 - - [28/Mar/2010:06:56:19 +0000] "POST http://dev.domain-name.com/comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 77.242.20.18 - - [28/Mar/2010:07:00:15 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 94.75.215.42 - - [28/Mar/2010:07:01:34 +0000] "POST /comment/reply/3 HTTP/1.0" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 89.115.2.128 - - [28/Mar/2010:07:03:20 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 75.65.230.252 - - [28/Mar/2010:07:05:05 +0000] "POST http://dev.domain-name.com/comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 206.251.255.61 - - [28/Mar/2010:07:06:46 +0000] "POST /comment/reply/3 HTTP/1.0" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
dev.domain-name.com:80 213.194.120.14 - - [28/Mar/2010:07:07:22 +0000] "POST /comment/reply/3 HTTP/1.1" 404 5895 "http://dev.domain-name.com/blog/2009/11/23/another" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"

Eu entendo que esta é uma pergunta aberta, mas qualquer ajuda ou insight que você possa dar seria muito apreciado.

    
por mattmcmanus 28.03.2010 / 21:52

3 respostas

1

Isso é complicado. Na maioria dos casos, minha primeira prioridade é manter a produção disponível. Dependendo de quantos IPs de origem diferentes estão envolvidos, você pode ter que usar isso ou usar uma combinação de scripts e soluções manuais.

Meu primeiro passo seria parar o máximo que puder para ganhar algum tempo para lidar com a situação.

Grok os endereços IP ..

grep 'blog/2009/11/23/another' log | awk '{print $2}' > iplist

Gere as regras do iptables.

sed 's/^/iptables -A INPUT -s /g' iplist | sed 's/$/ -j DROP/g' > drop.sh

E largue-os, usando o que acabou de fazer ..

sh drop.sh

    
por 28.03.2010 / 23:56
2

A integração de algo como reCAPTCHA em seu formulário de comentários impedirá que seu banco de dados seja atingido, pois os bots falharão no captcha.

Usar o javascript para exibir o botão "Enviar" também impedirá que alguns bots enviem o formulário de comentários.

    
por 28.03.2010 / 22:22
1

Isso parece ser uma tentativa de postar spam. As solicitações parecem vir de um botnet, pois os endereços não são resolvidos como em um servidor. Tente o comando do host com vários endereços IP. O primeiro endereço parece ser um endereço dhcp do charter.com. Agora que o endereço está lá fora, pode demorar muito para que isso desapareça.

Se este for um servidor de desenvolvimento, bloqueie o acesso à porta 80 para aqueles blocos de endereços que precisam de acesso à porta 80. Uso o Shorewall em vez do ufw, pois ele fornece interfaces fáceis para bloquear meus servidores, mas permite acessar conforme desejado.

Você pode bloquear o acesso no servidor da Web do Apache com o comando allow. Você pode permitir qualquer combinação de blocos de endereços, endereços ou acesso protegido por senha que desejar.

Eu usaria ambos eu mesmo. Como você descobriu, permitir postagens abertas é um convite para os spammers. Este é um problema com o qual você precisa se preocupar. Você parece ter resolvido o problema. No entanto, o status da postagem não é mostrado. Sugiro que você altere seu formato de registro para incluir o status da postagem. O formato de log combinado fornecerá melhores informações para análise de log.

    
por 28.03.2010 / 22:41