Bloquear Versiones de HTTP en WordPress

En esta publicación encontrarás la manera de identificar y detener tráfico de bots por medio de crear reglas de cortafuegos basadas en la versiones de HTTP.

Mientras me encontraba analizando una regla de firewall en CloudFlare que detiene cientos de ataques por dia, me percate que muchos de esos ataques automatizados son realizados usando HTTP/1.1

Por lo que me pregunte, si era posible implementar una regla a todo el tráfico que usa las versiones HTTP/1.0 y HTTP/1.1 y estos son los aprendizajes que esto me ha dejado.

Ataques Automatizados con HTTP/1.1

La mayoría de los ataques dirigidos a las páginas de acceso son hechos usan el HTTP/1.1

Este es un reporte tomado desde CloudFlare donde puedes una IP especifica de manera persistente verificando varias direcciones

Algunas de las direcciones que se intentaban acceder eran las siguientes

/x.php/stindex.php
/cms.php/old-index.php

Debido a eso, se ganaron un bloqueo por medio de CloudFlare ya que no visitante real de un sitio de WordPress requiere acceder a los archivos PHP.

Los Navegadores y la Versión de HTTP

La mayoría de los navegadores ya han adoptado HTTP/2 por lo que podemos estar seguros que las solicitudes HTTP/1.0 y HTTP/1.1 son bots.

  • Google Chrome adoptó el protocolo HTTP/2 desde la Chrome 40
  • Mozilla Firefox adoptó el protocolo HTTP/2 desde Firefox 34

A pesar de su gran aceptación, muchas aplicaciones web y de negocios siguen usando HTTP/1.0 y HTTP/1.1.

Bloquear Versiones de HTTP con CloudFlare

Debido a que la regla anterior solo bloquea el acceso a potenciales focos de problema yo conozco, tomé las decisión de crear una regla de cortafuego adicional para detener bots buscando focos de problemas que quizás no he contemplado.

La regla que implemente es la siguiente:

(http.request.version in {"HTTP/1.0" "HTTP/1.1"} and not cf.client.bot)

Puedes copiar la expresión y pegarla en el editor de expresiones en CloudFlare

Las únicas consideraciones que tomé fueron:

  • No afectar los bots conocidos, incluyendo a google
  • Implementar un desafío de Javascript que un visitante real si podrá pasar.

CloudFlare es esencial en esto porque no conozco de plugins que puedan dar paso a bots buenos y que puedan retar en vez de bloquear.

Bloquear Versiones de HTTP no es una Regla Perfecta

Restringir o bloquear versiones de HTTP no es el método de protección perfecto por tres razones.

  • Hay ataques que también son realizados desde HTTP/1.2, HTTP/2 y HTTP/3
  • Hay bots buenos que no son parte de la lista de bots verificados de CloudFlare.
  • Hackers pueden usar métodos para vencer los desafíos Javascript.

Estas son las soluciones que he encontrado para los problemas anteriores:

  • Para contrarrestar el primer problema, hay reglas de cortafuegos adicionales más agresivas que esta.
  • Para mitigar el segundo problema, lo que he hecho es revisar los agentes de usuario en busca de bots legítimos, una vez identificados, los agrego a una lista blanca.
  • Desde que he implementado la regla, solamente hay un desafío JavaScript que ha sido superado, 99% de ese tráfico no pasa la prueba.

La regla no es perfecta pero puede complicar las cosas para los ciertos actores que talvez no cuentan con los conocimientos, la tecnología o recursos económicos para burlar la regla

Revisar Agentes de Usuario Manualmente

Algo que debes tomar en cuenta es que los bots pueden:

  • Identificarse sin importar si son buenos o malos bots
  • No Identificarse
  • Disfrazarse.

Si encuentras bots que no conoces, puedes hacer una búsqueda del agente de usuario en Google y ver el propósito de este.

Este es un ejemplo de un bot bueno,

Jetpack Uptime Monitor

Si yo uso JetPack debería agregarlo en la lista blanca (otra regla de CloudFlare)

Habiendo dicho eso si no hay agente de usuario, simplemente no llores por esa pobre alma, ya que los buenos bots se identifican.

Bots Disfrazados

Por último, recuerda que los bots pueden disfrazarse y pretender ser Google, Bing u otro bot importante y necesario

Si deseas estar tranquilo, puedes revisar la IP del Bot o agente de usuario en esta página y verificar si ese bot es quien dice ser:

Este caso me pareció extraño porque parece un intento de SEMRush de hacer una auditoría del sitio bajo el nombre de Google.

Puede ser que ese haya sido un error de reporte de CloudFlare pero no deja de levantar un poco las alarmas.

¿Es Mejor Bloquear Agente de Usuario?

Bloquear agentes de usuario es algo que requiere mucho trabajo, porque hay bots que no se identifican o que pretender ser otros bots.

Hay miles de bots,no podrán detenerlos todos ya que las reglas de CloudFlare no son la bolsa de Santa Claus.

Hay un límite de bots que puedes bloquear

Seguridad de Sitios de WordPress

Espero que esto te pueda ayudar a proteger tus sitios de WordPress

Estas son algunas publicaciones que te pueden ayudar a tener un sitio de WordPress más seguro:

Si tienes preguntas o comentarios, puedes escribirme por medio de mis redes sociales.

JM-

Sobre Jose manuel

Mi nombre es José Manuel y me gusta escribir pensamientos en diferentes blogs. Este blog contiene pensamientos sobre Costa Rica, entretenimiento y mi vida

TicoLibre.com

TicoLibre.com es un sitio donde encontrarás mi coleccion de pensamientos sobre Anime, Cine, Series, Música y muchas otras cosas

Categorias

Anime

Cine

Series

Musica

Contacto

Puedes contactarme por medio de los siguientes canales