¡Cuidado! Los códigos de estado HTTP: Ventanas a la seguridad de tu aplicación

¡Cuidado! Los códigos de estado HTTP: Ventanas a la seguridad de tu aplicación

El mundo digital se rige por un lenguaje propio. En el caso de la comunicación entre servidores y clientes (como tu navegador web), los códigos de estado HTTP juegan un papel fundamental. Estos códigos, divididos en cinco categorías, indican el resultado de una solicitud del cliente al servidor.

Las cinco categorías de códigos de estado HTTP:

  • 2xx - Éxito: La solicitud se recibió, entendió y aceptó correctamente.
  • 3xx - Redirecciones: El cliente debe realizar una acción adicional para completar la solicitud (ej.: ser redirigido a otra página).
  • 4xx - Error del cliente: Indica un error en la solicitud del cliente (ej.: URL mal escrita).
  • 5xx - Error del servidor: Indica un problema en el servidor que impide procesar la solicitud.

 Centrémonos en dos códigos específicos:

  • 401 No autorizado: Significa que el cliente no está autenticado y, por lo tanto, no tiene permiso para acceder al recurso.
  • 403 prohibido: Significa que el cliente está autenticado, pero no tiene permiso para acceder al recurso solicitado.

 

Un ejemplo práctico con una aplicación de gimnasio:

Imagina una aplicación web que permite a los miembros de un gimnasio gestionar su acceso a las instalaciones y reservar clases. Un usuario curioso podría interceptar las solicitudes de la aplicación para ver qué información se transmite.

Al analizar una solicitud que muestra la información de un usuario específico, el usuario curioso podría intentar cambiar la dirección de correo electrónico en la solicitud para acceder a la información de otros usuarios.

 

¿Qué revelan los códigos de estado HTTP en este caso?

  • 200 OK: El usuario tiene acceso a su propia información.
  • 404 No encontrado: La dirección de correo electrónico introducida no corresponde a ningún usuario registrado.
  • 403 Prohibido: La dirección de correo electrónico introducida es válida, pero el usuario curioso no tiene permiso para acceder a esa información.

 

¿Cómo aprovechan los hackers esta información?

Un hacker podría utilizar esta técnica, conocida como enumeración de usuarios, para identificar cuentas válidas dentro de la aplicación. Con esta información, el siguiente paso podría ser:

  • Utilizar herramientas OSINT (Open-Source Intelligence): Estas herramientas permiten recopilar información pública a partir de diversas fuentes, como listas de correo electrónico asociadas al dominio del gimnasio.
  • Lanzar un ataque de fuerza bruta: El hacker automatiza la sustitución de las direcciones de correo electrónico en la solicitud API con las obtenidas de la herramienta OSINT. Esto permite identificar qué direcciones son válidas.
  • Crear campañas de phishing: Con las direcciones de correo electrónico válidas, el hacker puede diseñar correos electrónicos de phishing personalizados para engañar a los usuarios y robar sus credenciales de acceso.

 

¿Cómo fortalecer la seguridad de la API?

  • Devolver un "404 No encontrado" en lugar de "401 No autorizado" o "403 Prohibido": Esta técnica, utilizada por GitHub, oculta la existencia del recurso y dificulta el trabajo del hacker.
  • Utilizar identificadores aleatorios en lugar de direcciones de correo electrónico: Reemplazar las direcciones de correo electrónico con identificadores únicos e irreconocibles para cada usuario mejora la seguridad.
  • Educar a los usuarios sobre phishing y vishing: Concienciar a los usuarios sobre estas técnicas de engaño es fundamental para evitar que revelen información sensible.

 

Caso real: la brecha de datos de Duolingo

En 2023, la aplicación de aprendizaje de idiomas Duolingo sufrió una filtración de datos que afectó a 2,6 millones de usuarios. Un hacker aprovechó una vulnerabilidad en la API para acceder a información personal como nombres, nombres de usuario, direcciones de correo electrónico y otros datos internos. Esta brecha se debió, en parte, a que la API devolvía información genérica de la cuenta incluso para correos electrónicos no válidos.

 

Conclusión…

Los códigos de estado HTTP son una herramienta valiosa para los desarrolladores, pero también pueden serlo para los hackers. Al comprender los riesgos potenciales y aplicar las medidas de seguridad adecuadas, los desarrolladores pueden crear aplicaciones seguras que protejan la información de sus usuarios.

Inicia sesión para ver o añadir un comentario.

Más artículos de Pedro M. Avila Torres

Otros usuarios han visto

Ver temas