¿Sabes qué es la enumeración de usuarios y por qué practica este protocolo en ciberseguridad?
Las auditorías de seguridad de aplicaciones web consisten en implementar técnicas de hacking con el fin de encontrar vulnerabilidades en dichos sitios.
Estos ejercicios, también conocidos como tests de penetración, son indispensables y altamente demandados actualmente, ya que millones de compañías necesitan tener aplicaciones web para funcionar. Entonces, es fundamental mantener estos servicios seguros para no exponer a las empresas y sus clientes.
Enumeración de usuarios: Contexto
Las aplicaciones web pueden tener diferentes tipos de vulnerabilidades. Para encontrarlas, como ya lo hemos dicho, es necesario realizar tests de penetración. Algunas de las vulnerabilidades web más comunes se pueden encontrar en la página de inicio de sesión de usuarios, ya que por medio de esta es posible acceder a una cuenta (si se tienen las credenciales correctas o un token de sesión).
Uno de los ciberataques web más comunes, que está dirigido a las páginas de inicio de sesión de las aplicaciones, es la adivinación de usuarios y contraseñas por medio del uso de fuerza bruta.
La fuerza bruta en ciberseguridad es una técnica que consiste en automatizar pruebas de ensayo y error hasta descubrir las credenciales correctas de un usuario. Es decir, sirve para encontrar usuarios existentes y sus respectivas contraseñas.
En este post, hablaremos específicamente sobre el descubrimiento de nombres de usuarios registrados en una aplicación web y por qué es un protocolo requerido para ejercicios de pentesting. A continuación, te explicaremos qué es la enumeración de usuarios y por qué se utiliza en ciberseguridad.
Enumeración de usuarios
La enumeración de usuarios de una aplicación web es un proceso que consiste en identificar nombres de usuarios válidos, es decir, que se encuentren registrados en el sitio. Este procedimiento se puede hacer de diferentes formas y con varios propósitos. Uno de ellos es facilitar ataques de fuerza bruta, ya que, conociendo un nombre de usuario, solo resta adivinar la contraseña.
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaAhora bien, una pregunta que surge usualmente es: ¿cómo de fácil es adivinar contraseñas por medio de ataques de fuerza bruta? En realidad, esto depende totalmente del nivel de dificultad de la contraseña, que se traduce a su longitud y aleatoriedad. Es decir, para que una contraseña resista un ataque de este tipo, es necesario que sea robusta. De lo contrario, si es muy fácil, podría ser hallada muy rápidamente por un atacante.
Métodos de enumeración de usuarios
A continuación, veremos algunos de los principales métodos de enumeración de usuarios, lo cual nos permitirá saber:
- Si hay algún nombre de usuario que se vea fácil de vulnerar. Por ejemplo: “test“, “admin“, “1234“, entre otros.
- Cuáles y cuántos usuarios están registrados en la aplicación.
Por mensaje
Una vulnerabilidad frecuente que permite hacer una enumeración de usuarios es que las aplicaciones web arrojen un mensaje indicando si el nombre de usuario existe o no. Gracias este tipo de mensajes, es posible realizar ataques de fuerza bruta e identificar los usuarios válidos para la aplicación.
Para evitar este fallo de seguridad, es importante que las páginas de inicio de sesión no den información como esta. Es decir, en vez de enviar un mensaje como “Usuario no registrado“, es mejor utilizar otros como “Usuario o contraseña incorrecta”. De este modo, no se le revela al atacante qué credenciales están registradas en la aplicación y cuáles no.
Por tiempo
El anterior método para evitar la enumeración de usuarios es de gran importancia, pero no infalible para la aplicación. Otra forma de averiguar si un nombre de usuario existe en una aplicación es calculando el tiempo de cada petición para validar las credenciales. En muchas ocasiones, una página de inicio de sesión puede tardar más en dar una respuesta cuando el usuario existe. De lo contrario, la respuesta del servidor podría ser mucho más rápida. Así, un atacante puede enumerar usuarios por medio de la deducción.
Por inyección SQL
Finalmente, otro método muy común de enumeración de usuarios son las inyecciones SQL. Este tipo de ciberataques consisten en ejecutar comandos en lenguaje SQL, que se utiliza para interactuar con las bases de datos de una aplicación. Por medio de estos ataques, suele ser posible leer, modificar, añadir o eliminar información de una base de datos. De esta forma, se puede obtener una lista con todos los nombres de usuarios e, incluso, los códigos hash de sus contraseñas.
Si quieres aprender más sobre cómo hacer una enumeración de usuarios y más técnicas de hacking web, en KeepCoding tenemos el curso intensivo ideal para ti. Entra a nuestro Bootcamp Ciberseguridad y conviértete en un especialista en solo 7 meses. ¡No sigas esperando! ¡Inscríbete ya!