¿Cómo puedo defenderme contra solicitudes GET maliciosas?

5

Mi servidor está siendo golpeado con una variedad de solicitudes como las siguientes:

Started GET "/key/values"
ActionController::RoutingError (No route matches [GET] "/key/values")

Started GET "/loaded"
ActionController::RoutingError (No route matches [GET] "/loaded")

Started GET "/top/left"
ActionController::RoutingError (No route matches [GET] "/top/left")

¿Cómo debo defenderme contra tales ataques? ¿Estas solicitudes ralentizarán mi sitio incluso si no obtienen una respuesta?

    
pregunta MicFin 28.07.2015 - 07:24
fuente

3 respuestas

10
  

¿Cómo puedo defenderme contra solicitudes GET maliciosas?

Estas solicitudes no parecen realmente maliciosas. Al menos, según su descripción, no causan ningún daño, es decir, no ejecutan código no deseado, inyección SQL o ataques similares. Sólo necesitan algunos recursos para procesar. Lo que ve es lo que todos los operadores de un servidor web pueden ver en los archivos de registro: muchas solicitudes que no coinciden con nada existente en el servidor porque alguien está explorando Internet y buscando sistemas vulnerables. Además, estas solicitudes también pueden ser causadas por cambios en su sitio donde las URL antes válidas ahora no son válidas, pero los robots aún recuerdan las URL antiguas y las revisan para ver si hay actualizaciones.

Si estas solicitudes le molestan, puede cambiar su aplicación para ignorar dichas solicitudes (y no registrarlas como errores) o filtrar estas solicitudes por un servidor / proxy inverso frente a su aplicación.

Si bien el firewall de aplicación web sugerido (WAF) puede filtrar este tipo de solicitudes, consideraría excesivo instalar uno solo para filtrar estas solicitudes inofensivas. Pero si se usa correctamente (es decir, se adapta a la aplicación en lugar de simplemente instalarse y olvidarse, como suele ocurrir), puede ser una capa útil de protección. Y mientras que el fail2ban sugerido puede ayudar, también es útil si estas solicitudes se originan solo en unas pocas direcciones IP únicas, lo que a menudo no es el caso. Además, la confianza en fail2ban puede bloquear usuarios válidos, ya que los enlaces no válidos a su sitio pueden incluirse en correos electrónicos u otros sitios web y, por lo tanto, la dirección IP de origen de la solicitud no es el atacante, sino un usuario inocente que fue engañado al visitar este enlace. Pero fail2ban solo ve la IP de origen y el mensaje de error y luego bloquea al usuario inocente.

Lo que debe hacer es asegurarse de que su aplicación no sea vulnerable y OWASP es un buen recurso para obtener información sobre cómo proteger aplicaciones web. Si su aplicación es segura, entonces no tiene ningún problema al tratar con este tipo de solicitudes. Pero para limitar el uso de recursos de solicitudes no válidas, debe asegurarse de que estas solicitudes se detecten y rechacen lo antes posible en su aplicación, es decir, sería malo si las solicitudes no válidas también desencadenaran consultas costosas en una base de datos.

    
respondido por el Steffen Ullrich 28.07.2015 - 09:34
fuente
5

Junto con lo que sugirió @SakamakiIzayoi:

  

Fail2ban analiza los archivos de registro (por ejemplo, / var / log / apache / error_log) y prohíbe las IP   que muestran los signos maliciosos - demasiadas fallas de contraseña, buscando   para exploits, etc. Generalmente Fail2Ban se usa para actualizar el firewall   reglas para rechazar las direcciones IP por un período de tiempo específico,   aunque cualquier otra acción arbitraria (por ejemplo, enviar un correo electrónico) también podría   estar configurado Fuera de la caja Fail2Ban viene con filtros para varios   servicios (apache, courier, ssh, etc).

Fuente .

    
respondido por el user45139 28.07.2015 - 08:39
fuente
3

La solución de defensa más fácil sería instalar un Firewall de aplicaciones web.

Puede encontrar descripciones detalladas sobre ellos en OWASP y Wikipedia .

Dudo que las solicitudes retrasen tu sitio. Lo más probable es que los atacantes soliciten elementos existentes, ya que sería mucho más eficaz para desperdiciar los recursos de su servidor web.

    
respondido por el Sakamaki Izayoi 28.07.2015 - 08:05
fuente

Lea otras preguntas en las etiquetas