>

Defective code II. Pérdida de autenticación

Antonio Froufe Gutierrez     Colaboraciones    06/04/2018

En esta entrada vamos a abordar las líneas de código que favorecen que se pueda producir la segunda vulnerabilidad de la lista de OWASP 2017, pérdida de autenticación. Esta vulnerabilidad ha pasado de estar en el el séptimo puesto en 2007 a el segundo puesto en 10 años, dado que se produce con muchísima más frecuencia en estos últimos años en las aplicaciones y páginas WEB.

¿Qué es pérdida de autenticación?

Englobaría a todo lo referido en el tratamiento y técnicas de protección de credenciales y cómo las implementan las aplicaciones. Con lo cual, tendría que ver con fallos de implementación como serían:

-La utilización de canales no cifrados para transmitir credenciales.

-No proteger debidamente las credenciales de usuarios.

-Mala gestión en la recuperación de credenciales.

-Exposición de los ID de sesión (Cookies de sesión).

Estos fallos nos podrían llevar a que usuarios malintencionados o algún atacante se hiciera con las credenciales de un usuario o un incluso un administrador del sistema con lo que ello conllevaría.

¿Cómo se podría explotar esta vulnerabilidad?

Serían muchas las formas de conseguir explotar este tipo de vulnerabilidades puesto que son muchos los fallos los que podrían llevar a que un atacante se pudiera hacer con las credencial ilícitamente, dichos fallos podrían ser:

-No utilización de HTTPS.

-El envío de contraseñas en texto claro.

-URL con ID de sesión implícitas.

-Credenciales almacenadas sin cifrar.



Ataque de fuerza bruta a una WEB realizada con a suit Burp

¿Cómo protegerse de este tipo de vulnerabilidades?

En este caso es difícil indicar con un tipo de código defectuoso de ejemplo de este tipo de fallos pero sí que podemos abordar cómo mitigarlos en nuestro código. El primer paso sería llevar una meticulosa planificación de la autenticación además de las siguientes consideraciones:

  • No usar manejadores de sesión secundarios (como por ejemplo los ofrecidos por cuentas externas com gmail etc…), tan solo mecanismos controlados.

  • Eliminar cookies de autenticación personalizadas tales como la funcionalidad “recuérdame”.

  • Usar un único mecanismo de autenticación con la cantidad de factores apropiados, mecanismos de autenticación complejos generan fallos.

  • No iniciar los mecanismos sin que la conexión sea cifradas, se debe de iniciar el proceso de acceso en una conexión ya cifrada y con un mecanismos de autenticación secundario o token de seguridad.

  • Asegurarse de que cada página o ventana de nuestra aplicación tiene una forma de cerrar la sesión y destruir la cookies del lado del cliente.

  • Utilizar periodos de tiempo de cierre de sesion automatica.

  • No exponer ningún identificador de sesión en URL.

  • Utilizar números aleatorios y limitados en el tiempo para restaurar credenciales.




Conclusión.

Estos fallos en las aplicaciones son más comunes de lo que nos podemos imaginar y se debería tener especial cuidado desde planificación en cómo será la gestión de credenciales en nuestras WEB`s y aplicaciones ya que ni qué decir tiene la importancia de la seguridad de nuestras credenciales a la hora de utilizar un servicio u otro.

Espero que este post sea de tu interés.

Referencia.

https://www.owasp.org/index.php/Spain


Sobre el autor

Antonio Froufe Gutierrez   

Experto en seguridad informatica, hacking etico.