¿Qué es un mecanismo / configuración de defensa típico contra las inundaciones de llamadas de back-end sql?

1

Estoy interesado en averiguar cuál es un escenario típico de prevención del siguiente escenario de ataque:

El back-end tiene como servidor SQL. Parte frontal de un simple HTML "Hello World" que pasa una entrada (digamos nombre de usuario) para ser almacenado en SQL (saneado). ¿Cómo se puede evitar que un atacante escriba un bucle for y golpee el SQL con millones de solicitudes de almacenamiento hasta que se agoten los recursos? ¿Te gusta poner un límite a las solicitudes / segundo por IP?

P.S. Separe mi ignorancia: un desarrollador de software de escritorio que intenta expandir mis fronteras :) Gracias!

    
pregunta Nicko Po 24.08.2015 - 19:01
fuente

3 respuestas

2

La parte de la base de datos de esto es en gran medida irrelevante, ya que una parte no insignificante de su carga estará en su servidor web en lugar de la base de datos.

Hay cuatro formas comunes de implementar la limitación de velocidad:

  1. Realice verificaciones de frecuencia en el contexto del usuario, la IP del cliente y otra información dentro de la aplicación. Esto permitirá un control más detallado de los tipos de solicitudes que desea limitar y de quién, pero tiene el inconveniente de que la solicitud ya debe haber llegado al servidor web y a la aplicación para que se realicen las comprobaciones.
  2. Realice la limitación de velocidad en un servidor de seguridad basado en host, como iptables . Esto le permite reducir la carga en su demonio del servidor de aplicaciones web y cualquier recurso de back-end, pero no (trivialmente) le permite establecer reglas sobre las cuales las solicitudes deben limitarse de diferentes maneras, ya que opera en la capa de transporte (TCP / IP) en lugar de en la capa de aplicación (HTTP).
  3. Instale un dispositivo frente al servidor web que realiza una inspección profunda de paquetes (DPI), o actúa como un servidor de seguridad de aplicaciones web (WAF). Estos a menudo se denominan cortafuegos de capa 7 o cortafuegos de "pila completa", ya que están diseñados para funcionar con el contenido de la capa de aplicación (por ejemplo, HTTP / HTTPS), así como con capas inferiores. Se podría argumentar que caen dentro del término general de los Sistemas de prevención de intrusiones (IPS), al menos en términos de configuración en línea. Estos pueden ser muy útiles para terminar el contenido no deseado incluso antes de que llegue al servidor de destino, y pueden ser muy potentes, pero tienen la desventaja de que generalmente tiene que poner mucho trabajo de configuración o comprar un dispositivo.
  4. Use un producto de "seguridad como servicio" (SaaS) frente a su servidor, que está diseñado para mitigar ataques como inundaciones y DDoS. Un ejemplo de esto es CloudFlare . Por lo general, estos no están diseñados directamente para evitar los tipos exactos de ataques que mencionó, pero son muy buenos para bloquear el tráfico malicioso automatizado y los ataques DoS.

Estos métodos no son mutuamente excluyentes; de hecho, un enfoque combinado suele ser el más efectivo.

    
respondido por el Polynomial 24.08.2015 - 19:19
fuente
2

Puede usar rate limiting , que es un módulo para eso en Apache , Nginx , y IIS .

La limitación de velocidad puede dañar a las personas que están detrás de un proxy (como yo), por lo que no debe negar el acceso según el límite, sino emplear otra defensa tan pronto como se alcance el límite. Una defensa basada en captcha es útil, y algunos sistemas de captcha (como ReCaptcha ) se pueden procesar sin agotar sus recursos. .

    
respondido por el ThoriumBR 24.08.2015 - 19:20
fuente
0

Como ha dicho, normalmente, la limitación de velocidad basada en el usuario / ip se utiliza para evitar solicitudes excesivas. Si su aplicación detecta que un usuario / ip envía solicitudes más allá de un umbral, su aplicación debe dejar de almacenar las solicitudes en la base de datos para evitar que ocurra una denegación de servicio.

    
respondido por el Justin Moore 24.08.2015 - 19:07
fuente

Lea otras preguntas en las etiquetas