Los investigadores de seguridad Nahuel Sánchez y Martín Doyenhard presentaron el día jueves su charla titulada “I Forgot Your Password: Breaking Modern Password Recovery Systems” en ekoparty 2018. En ella hablaron de las dificultades para el diseño de funcionalidades de recuperación de contraseña seguras y pusieron ejemplos de distintos problemas que han sido reportados por investigadores en la implementación de esta funcionalidad para servicios, como Facebook o Microsoft, además de presentar los fallos que descubrieron al analizar el sistema de recuperación de contraseñas para las bases de datos HANA de SAP.
Los especialistas en seguridad remarcaron la existencia de varios bugs en los sistemas de recuperación de contraseñas desarrollados para distintos servicios y mencionaron, entre otros fallos, un bug común en distintos servicios, como es que al solicitar la recuperación de la contraseña nos llegue al correo una nueva clave de acceso en texto plano.
Estos fallos, que en algunos casos inclusive se repiten entre distintas plataformas, se deben principalmente a la falta de rigurosidad a la hora de analizar un aspecto clave como es la seguridad. Por otra parte, otro gran problema que mencionaron los investigadores y que explica la existencia de distintos tipos de bugs en este tipo de funcionalidad es la falta de estandarización a la hora de desarrollar este tipo de sistemas. “Esto provoca que cada desarrollador realice el suyo propio para cada aplicación y las decisiones quedan en manos de desarrolladores que muchas veces no consideran lo suficiente el aspecto de la seguridad de estos sistemas, lo que lleva a la existencia de problemas de distinta índole; que van desde problemas específicos como son las inyecciones SQL, hasta problemas de lógica en los que el sistema no contempla posibles acciones que podría realizar un usuario”, explicaron.
Un ejemplo de estos problemas de lógica fueron los que se mostraron en la charla con la presentación del caso de HANA, donde el sistema no consideraba la posibilidad de que un usuario valide su cuenta múltiples veces, salteando la pregunta y la respuesta de seguridad. Esto es un fallo en la lógica. “La forma correcta de hacerlo hubiese sido que luego de validar tu cuenta no puedas hacerlo por segunda vez”, comentaron Sánchez y Doyenhard. En este sentido, la falta de una guía para el desarrollo seguro de este tipo de funcionalidad contribuye a que existan estos fallos.
Análisis del sistema de recuperación de contraseñas para la base de datos HANA
En el caso puntual de HANA, Nahuel Sánchez y Martín Doyenhard mostraron cómo, a través de distintos tipos de errores en la implementación de sistemas de recuperación de contraseñas, un atacante podía ganar control total de todas las cuentas en ese sistema o al sistema en sí, si es que el atacante es capaz de acceder a usuarios privilegiados.
HANA es una base de datos en memoria del desarrollador de software SAP; una de las empresas más grandes del mundo a nivel de desarrollo de software. En este sentido, HANA como consecuencia de una necesidad por parte de la compañía SAP de desarrollar su propia base de datos para competir con otras bases de datos que existen en el mercado, como Oracle, lo que hizo que cualquier sistema SAP nuevo que se instale en una empresa incluya una base de datos HANA.
Entre otras cosas, HANA tiene todo un sistema que permite a los desarrolladores crear aplicaciones web que corren en la misma base de datos, y muchas veces estas aplicaciones requieren que los usuarios que las utilizan puedan gestionar cuentas de usuarios de manera sencilla y que habiliten una utilidad en HANA llamada user self service, que permite crear usuarios y ofrece un servicio de recuperación de contraseña.
Al analizar versiones anteriores de HANA, los investigadores detectaron fallos que estuvieron presentes desde 2014 a 2017, como la posibilidad de enumerar usuarios, predicción de recuperación de tokens, almacenamiento inseguro de contraseñas o generadores de contraseñas aleatorias débiles.
“Las causas que llevan a este tipo de fallos, además de la falta consideración de aspectos de seguridad, puede deberse muchas veces al apuro de algunas empresas por tener funcionando una aplicación o la falta de auditoría de código”, comentó a WeLiveSecurity Nahuel Sánchez.
A partir de la investigación de Sánches y Doyenhard el fallo ya fue reparado por SAP, quien lanzó un parche luego de que haya sido reportado.
Entre las recomendaciones que dejaron los especialistas destacaron la realización de auditorías y trabajos de pentesting, ya sea que se trata de soluciones propias o de terceros.