Blog

Cómo evitar la enumeración de nombres de usuario | Secure Code Warrior

October 9, 2017
Pieter De Cremer
Pantalla de inicio de sesión con campos de nombre de usuario y contraseña, con la contraseña oculta mediante asteriscos.

Un ataque de canal lateral ocurre cuando un atacante obtiene información de la implementación física de un sistema de software, en lugar de explotar una debilidad teórica en el algoritmo o un error en el código del software.

Un ejemplo que suelo usar para aclarar esto es una forma de realizar la enumeración de nombres de usuario. Si desea saber qué es la enumeración de nombres de usuario o por qué es perjudicial, visite nuestro sitio web para ver una explicación en video o jugar un desafío y ver si puede identificarla en el código.

Para entender cómo se puede realizar la enumeración de nombres de usuario mediante un ataque de canal lateral, primero debe comprender cómo se manejan (o deberían manejarse) las contraseñas en las aplicaciones web modernas. Una buena aplicación web no conoce su contraseña, no la guarda ni la almacena en ninguna parte. Entonces, ¿cómo sabe que lo que escribió es correcto? Bueno, su contraseña se cifra mediante una función hash.

Una función hash es una operación matemática fácil de realizar en un sentido (aunque algo costosa computacionalmente), pero muy difícil de revertir. En los buenos algoritmos de hash, el resultado es único según la entrada. Al registrarse en un sitio web, se almacena ese hash de forma segura, no su contraseña. Esto significa que cada vez que inicia sesión, la aplicación web aplica hash a su entrada y compara el resultado con el hash almacenado. Si desea aprender más sobre almacenamiento seguro de contraseñas, puede hacerlo en nuestra plataforma.

Hacker in hooded sweatshirt accessing a screen showing user data with passwords and credit card numbers.

El procesamiento de hash requiere tiempo y los desarrolladores siempre intentan optimizar su código para ofrecer una experiencia fluida. Una forma de acelerar el programa es omitir el hash cuando no es necesario. Por ejemplo, si el nombre de usuario no existe, pueden responder al usuario de inmediato, evitando el cálculo lento del hash. Si el nombre de usuario es correcto, entonces sí procesan el hash de la contraseña para compararlo con el almacenado.

A estas alturas, habrá adivinado dónde está el problema. Aunque el hash solo toma unos milisegundos, un atacante puede usar esta diferencia de tiempo para saber si el nombre de usuario ingresado es correcto, ya que una respuesta con un nombre de usuario incorrecto será ligeramente más rápida. Este ataque de canal lateral se llama ataque de temporización y demuestra cómo los requisitos no funcionales pueden entrar en conflicto: a veces, el código no puede ser rápido y seguro al mismo tiempo.

Aunque las contraseñas se manejen perfectamente y el mensaje de error sea genérico, el sistema sigue siendo vulnerable. La solución es sencilla: aplique siempre el hash a la contraseña o retrase la respuesta el tiempo que tardaría en realizar dicho cálculo.

La información obtenida puede ser utilizada por un atacante para obtener una lista de usuarios del sistema. Esto puede servir para atacar la aplicación web, por ejemplo, mediante ataques de fuerza bruta o probando nombres de usuario y contraseñas predeterminados.

https://www.owasp.org/index.php/Testing_for_User_Enumeration_and_Guessable_User_Account_(OWASP-AT-002)

Eslogan

Controle el desarrollo impulsado por IA antes de su lanzamiento

Mida el riesgo asistido por IA, aplique políticas de codificación segura en el momento de la confirmación y acelere la entrega segura en todo su ciclo de vida de desarrollo de software (SDLC).

Reservar una demostración
Biblioteca de recursos

Explorar más blogs

Acceda a contenido especializado sobre programación segura, gobernanza de IA y gestión de riesgos de software.

ver todo
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Una cultura de seguridad: cómo Sage creó su programa de defensores

Descubre cómo Sage reforzó su seguridad con un enfoque flexible y centrado en las relaciones, logrando formar a más de 200 expertos en seguridad y alcanzar una reducción de riesgos cuantificable.

Más información
Icono de ventana de navegador con las letras KVK en negrita y dos líneas horizontales azules debajo sobre un fondo azul degradado.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Kamer van Koophandel: Seguridad a escala impulsada por los desarrolladores

La Cámara de Comercio (Kamer van Koophandel) comparte cómo integró la programación segura en el desarrollo diario mediante certificaciones basadas en roles, evaluaciones comparativas de puntuación de confianza y una cultura de responsabilidad compartida en seguridad.

Más información
Logotipo de Insurance Australia Group con texto y un icono en azul y gris dentro del diseño de una ventana de navegador web.
Caso de estudio
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cómo un «Juego de Códigos» guía a IAG Group hacia un futuro de programación más seguro

IAG Group es la entidad detrás de muchas de las principales compañías de seguros en la región de Asia-Pacífico, que suscribe pólizas para millones de clientes por un valor aproximado de 11.400 millones de dólares australianos en primas anuales.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Mes de la Concienciación sobre Ciberseguridad 2026: Comprender la seguridad de la IA es fundamental para la defensa empresarial

Hemos llegado a un punto en el que la mayoría de las principales empresas de IA han pedido públicamente una ralentización global en el desarrollo de la IA para que las medidas de seguridad puedan ponerse al día, pero la verdad es que ya se han materializado graves problemas de seguridad. Esto deja a innumerables líderes de seguridad y equipos ejecutivos en una situación urgente, a medida que los costes monetarios y de riesgo de la implementación de la IA siguen acumulándose.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Habilitador 8: Branding de su programa

Un programa de codificación segura necesita algo más que un buen contenido para tener éxito. El Habilitador 8 muestra cómo el branding transforma la participación en una experiencia codiciada basada en el estatus.

Más información
Blog
Etiqueta de filtro
Este es un texto dentro de un bloque div.

Cada empleado está ahora en la primera línea de la ciberseguridad de la IA

El panorama tecnológico empresarial está cambiando a una velocidad que pocos previeron hasta que fue demasiado tarde. Hemos cruzado oficialmente el umbral del código escrito por humanos y la asistencia básica de copilotos hacia la era del Ciclo de Vida de Desarrollo Agéntico (ADLC). Si bien los agentes de IA autónomos prometen una eficiencia sin precedentes en múltiples funciones, también traen consigo una clase completamente nueva de riesgos regulatorios y de seguridad.

Más información

Proteja el desarrollo basado en IA antes de su lanzamiento

Identifique riesgos de desarrollo, aplique políticas y prevenga vulnerabilidades en todo el ciclo de vida de su software.

Reservar una demostración
No se encontraron elementos.