10 Errores Que Debes Evitar En Tus Procesos De Autenticación y Como Solucionarlos – Parte 1

6 minuto(s)

Muchos proyectos son creados con un objetivo determinado y estos suelen tener sistemas de autenticación integrados. La seguridad en el proceso de autenticación es un aspecto esencial que a menudo se para por alto, trayendo consecuencias importantes en el proyecto. En este Post te compartiré algunos Errores Que Debes Evitar En Tus Procesos De Autenticación y como solucionarlos. Ten en cuenta que estos no son solo principales problemas de seguridad OWASP, si no son problemas fáciles de solucionar y que veo con frecuencia, bien vamos con ello.

Partes

Antes de continuar, te invito a leer los siguientes artículos:

Asimismo te invito a escuchar el Podcast: “No Encuentro Empleo Por Mi Edad ¿ Que Puedo Hacer ?“5 Habilidades que Debe Tener un Desarrollador Backend” (Anchor Podcast): 

Spotify: Sound Cloud: Apple Podcasts Anchor Podcasts

Bien ahora continuemos con el Post: 10 Errores Que Debes Evitar En Tus Procesos De Autenticación y Como Solucionarlos – Parte 1.

Para conocer mejor estos Errores Que Debes Evitar En Tus Procesos De Autenticación y Como Solucionarlos, te compartiré su nombre, descripción y una imagen de referencia.

Sanitización de Formulario

El proceso de mantener la entrada de tu formulario limpia, filtrada y desinfectada de un agente malicioso se conoce como desinfección de formularios. La desinfección de una entrada es imprescindible porque evita fallas en la inyección. Un formulario de entrada bien desinfectado puede prevenir ataques de Cross-siste scripting (XSS), el cual es un tipo de vulnerabilidades de seguridad que se encuentra a menudo en las aplicaciones web. Esta vulnerabilidad permite a los atacantes insertar secuencias de comandos del lado del cliente en las páginas web vistas por los usuarios y causar los daños respectivos.

Otro tipo de ataque que puede prevenir la desinfección de formularios es la Inyección SQL, en donde los atacantes pueden interferir con los datos enviados a tu base de datos a través de las entradas de un formulario.

Como Solucionarlo:

  • Es considerablemente más fácil y seguro utilizar una lista de permitidos para entradas bien definidas como números, fechas o códigos postales. En ese sentido, puedes indicar explícitamente qué valores están permitidos y cuales no.
  • Usa la lógica de la lista blanca predefinida en las definiciones de tipo de datos integradas con validación de formulario HTML 5.
  • Usa la herramienta DomPurify o similares, para desinfectar HTML y Strings, asi podrás filtrar cualquier cosa que contenga HTML sucio y prevenir ataques XSS.

Pasemos al siguiente error que debes evitar en tus procesos de autenticación.

No Usar La Autenticación de 2 Factores (2FA)

Otro error común que veo con los mecanismos de autenticación web es que no tienen medidas de seguridad adicionales. Los desarrolladores rara vez utilizan la autenticación de dos factores. La autenticación en 2 factores ayuda a agregar una segunda capa de protección en tu aplicación. La autenticación de 2 factores es fundamental para la seguridad web, ya que elimina inmediatamente los peligros de las credenciales comprometidas.

Cuando una contraseña es descifrada por los atacantes, se adivina o incluso se infecta con malware, ya no es suficiente otorgar acceso a un intruso sin aprobación en el segundo factor de autenticación. La autenticación de 2 factores es una capa adicional de seguridad que se agrega a una página de autenticación. Ejemplos de esta autenticación de 2 factores son SMS, correos electrónicos y OTP.

Como Solucionarlo:

Pues sencillamente debes implementar la autenticación en 2 factores. Hay una variedad de formas de usar el cifrado 2FA. Los tokens RSA, los generadores de códigos como Google Authenticator y Duo, y el envío de códigos de un solo uso por SMS, son opciones para implementar la tecnología 2FA.

Mostrar Mensajes de Error Específicos

Mostrar un mensaje de error específico es peligroso porque podría permitir que un atacante use un métpdp automatizado de prueba y error para determinar el nombre de usuario o la contraseña de un usuario. Puedes ver el siguiente ejemplo que muestra un mensaje de error específico:

Imagen: Open Replay

Al autenticar un formulario en tu aplicación web, debes tener cuidado de no mostrar solo un mensaje de error cuando un usuario ingresa un detalle incorrecto, como “Su contraseña es incorrecta”. Si muestras un mensaje de error específico como ese, el atacante se dará cuenta que el correo electrónico o la id del usuario es real, pero que la constraseña es incorrecta. Esto permitiría al atacante sugerir una constraseña para ese usuario.

Como Solucionarlo:

  • Usa mensajes de error más generales, por ejemplo “Las credenciales no coinciden con nuestros registros”, “Los datos son incorrectos”, “Los datos ingresados no existen en nuestra base de datos”.

Bien, pasemos al siguiente error Que Debes Evitar En Tus Procesos De Autenticación.

Mostrar la ID de Sesión En Una URL

Una id de sesión es un número que el servidor de un sitio web le da a un solo usuario durante la duración de la visita de ese usuario. La posibilidad de que un atacante obtenga y abuse de un token de sesión aumenta si se coloca directamente en la URL. Aunque el riesgo es menor cuando se utiliza HTTPS para conectarse al servidor web, todavía existe un peligro. Aunque las URLs de HTTPS se cifran en tránsito, a menudo se guardan en los registros del servidor.

Puedes ver el siguiente ejemplo en donde se muestra la id de sesión en la URL:

Imagen: Open Replay

Como Solucionarlo:

  • Valida la identificación de la sesión en el lado del servidor y no del lado del cliente.
  • Para crear el id o token de sesión, asegúrate de utilizar un generador aleatorio lo suficientemente seguro.
  • Utiliza un filtro para eliminar el ID de sesión de una URL.

Ok, pasemos al siguiente error Que Debes Evitar En Tus Procesos De Autenticación.

Validación Incorrecta del Formulario

Pueden ocurrir ataques de inyección, fugas de memoria y sistemas comprometidos si los datos proporcionados en una entrada de formulario no se verifican o formatean correctamente. Los usuarios a menudo envían sin completar toda la información necesaria, por lo que es necesario validar tus formularios para asegurarse que se haya cumplido con toda la información requerida antes de enviarlo al servidor.

Como Solucionarlo:

  • Asegurate que el correo electrónico tenga formato de dirección de correo electrónico.
  • Asegurate que el usuario hay cumplido con los criterios del formulario antes de enviarlo.
  • Valida el formulario desde el backend y el frontend utilizando librerías actualizadas. Algunas librerías sugeridas que recomiendo son ValidatorJust-validate y Pristine.

Bien hasta aqui llegamos con estos primeros 5 errores que debes evitar en tus procesos de aunteticación y como solucionarlos.

Ten Paciencia, lo que quiero es que conozcas bien estos errores y como solucionarlos y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje. 

Nota (s)

  • En la siguiente parte y última veremos el ultimo grupo de Errores Que Debes Evitar En Tus Procesos De Autenticación y Como Solucionarlos.
  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo. 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.