18 de diciembre de 2010

Tipos de ataques de DoS basados en fallas de la aplicación.

Cuando hablamos de DoS y DDoS podemos referirnos a muchos tipos diferentes de ataque que en definitiva lo que buscan es obligar al servidor a dejar de ofrecer el servicio. Sin embargo desde el punto de vista de la seguridad de aplicaciones web hay ciertos tipos de DoS (los más comunes) en los que no entraremos en explicaciones ya que no atacan directamente a la aplicación sino a los diferentes servicios necesarios para que esta pueda seguir en línea. Este tipo de ataques se denominan "Network based DoS Attacks" o Ataques de Dos basados en Redes y tratan primordialmente de explotar vulnerabilidades o limitaciones de los protocolos de red de las diferentes capas del protocolo TCP/IP.

Hablaremos hoy de un tipo de ataque de DoS que como programadores nos conciernen directamente y que se apoyan en fallas o vulnerabilidades de la aplicación. Aunque menos populares dichos ataques, son mucho más eficientes, ya que basados en vulnerabilidades en código de aplicación o de base de datos, suelen en muchos menos intentos consumir los recursos del servidor de forma muy eficaz.

Podemos dividirlos según OWASP en los siguientes:
NOTA: todos los enlaces llevan a la página correspondiente de OWASP en la que se trata acerca de cómo verificar y corregir el tipo de fallo que pudiera ocasionar estos tipos de ataque.

  1. SQL Wildcard Attacks.
    Son aquellos que se basan en desarrollar consultas que consumen gran cantidad de recursos del servidor SQL y aunque atacan a varios tipos de servidor SQL suelen preferir el MS-SQL por la cantidad de "wilcards" disponibles en las sentencias LIKE.
  2. DoS Locking Customer Accounts.
    Uno de los sistemas de defensa de las aplicaciones con validación de usuarios es la utilización de bloqueo de estos luego de una cantidad de intentos fallidos. Este mecanismo de defensa se convierte en un arma de negación de servicio bajo este tipo de ataque.
  3. DoS Buffer Overflows.
    La intención es hacer que una vulnerabilidad de Buffer Overflow en el control de la capacidad de los datos recibidos, se convierta en un arma que no permita que las rutinas completen y por ende liberen los recursos solicitados.
  4. DoS User Specified Object Allocation.
    Suele suceder cuando un usuario tiene la capacidad de solicitar multiples copias de un objeto a ser creado en el entorno del servidor sin un límite superior, lo que podría generar que dicho entorno quedara sin memoria disponible.
  5. User Input as a Loop Counter.
    Se produce al forzar a la aplicación a entrar de forma repetitiva en un bucle de código que consume gran cantidad de recursos.
  6. Writing User Provided Data to Disk.
    El objeto de este tipo de ataque es obligar al servidor a quedar sin suficiente espacio en disco, bien escribiendo datos provistos por el usuario, o llenado los archivos de logs de forma que crezcan lo suficiente como para acaparar el espacio en disco.
  7. DoS Failure to Release Resources.Este ataque se debe a la falla del programador o del entorno de desarrollo en liberar eficientemente los recursos utilizados por la aplicación. Suele suceder con mucha frecuencia especialmente al no liberar conexiones y sets de registros de bases de datos que consumen recursos por encima del promedio de otro tipo de objetos.
  8. Storing too Much Data in Session.
    Sucede cuando como el nombre lo indica, se guardan demasiados datos en la sesión del usuario, específicamente si el usuario no es un usuario autentificado, por lo cual el atacante no necesita de mucho esfuerzo para dejar a la aplicación sin recursos en el pool de memoria.

Hasta la próxima...

No hay comentarios.:

Entradas populares