Gestores de contraseñas: La recomendación por defecto tiene bastantes (defectos)

Un grupo de investigadores analizó la seguridad de los administradores o gestores de contraseñas más utilizados y concluyó que sus medidas de seguridad son bastante deficientes. Te contamos los detalles de sus hallazgos en el siguiente artículo!

El manejo de contraseñas se ha vuelto un verdadero problema en la industria de la seguridad informática. Las recomendaciones son siempre las mismas y las repetimos como mantra sagrado: crear contraseñas complejas, nunca reutilizar contraseñas, utilizar un gestor de contraseñas para ayudarnos en esta tarea.

Los administradores de contraseñas permiten el almacenamiento y la recuperación de información confidencial de una base de datos cifrada. Los usuarios confían en ellos para proporcionar mejores garantías de seguridad frente a la exfiltración trivial que las formas alternativas de almacenamiento de contraseñas, como un archivo de texto plano sin garantía.

Además de ser una herramienta administrativa para permitir que los usuarios categoricen y administren mejor sus credenciales, los administradores de contraseñas guían a los usuarios para evitar las malas prácticas de contraseña, como el uso de contraseñas débiles, contraseñas comunes, contraseñas genéricas y la reutilización de contraseñas.

Sin embargo, y en vista de la creciente popularidad en su uso, investigadores analizaron los 4 gestores de contraseñas más populares, descubriendo varias fallas de seguridad, que exponen, bajo ciertas condiciones, a quienes los usan: más de 60 millones de usuarios, en, al menos, 80 mil entidades de negocios. Se proyecta para 2020 que cada usuario de gestor de contraseña almacenará en ellos 207 contraseñas!

La lista de gestores analizados y sus cantidades de usuarios a continuación:

La investigación realizada analizó, en primera instancia, a los administradores de contraseñas mientras no se ejecutaban, y todos cumplían con el aseguramiento de las contraseñas maestras e individuales en este estado. El resultado fue diferente mientras se estaban ejecutando…

1Password4 (versión 4.6.2.626)

  • Lo bueno
    Durante la ejecución se encontraron protecciones razonables contra la exposición de contraseñas individuales mientras el computador está desbloqueado;
    Cuando un usuario accede a diferentes entradas en 1Password4, el software borra la contraseña sin cifrar anterior de la memoria antes de cargar otra. Por ende, sólo una contraseña sin cifrar permanece en la memoria.
  • Lo malo
    La contraseña maestra permanece en la memoria cuando el computador está desbloqueado (aunque en una forma confusa) y el software no puede borrar la región de la memoria de la contraseña ofuscada suficientemente cuando se realiza la transición del estado desbloqueado al estado bloqueado.
    Se halló además un error donde, bajo ciertas acciones del usuario, la contraseña maestra se puede dejar en la memoria en texto claro, incluso cuando la computadora está bloqueada.

Entrada de contraseña en memoria durante una interacción activa en 1Password

1Password7 (Versión 7.2.576)

Sorprendentemente, la versión actual es menos segura en el estado de ejecución en comparación con 1Password4. 1Password7 desencriptó todas las contraseñas individuales en la base de datos de prueba tan pronto como se desbloquea y guarda todas en la memoria.
1Password7 no borra las contraseñas individuales, la contraseña maestra ni la clave secreta de la memoria al pasar de desbloqueo a bloqueado. Esto hace que el botón de «bloqueo» sea ineficaz; Desde el punto de vista de la seguridad, después de desbloquear y usar 1Password7, el usuario debe salir del software por completo para borrar la información confidencial de la memoria como debe hacerlo el bloqueo.

Extrayendo la contraseña maestra desde 1Password7

Extrayendo la clave secreta necesaria (junto a la contraseña maestra) para desencriptar la base de datos

Extrayendo entradas de contraseñas desde 1Password7 bloqueado

La higiene de memoria de 1Password7 es tan deficiente, que es posible que pierda contraseñas de la memoria sin un ataque intencional en absoluto. Durante la evaluación se encontró un error de detención del sistema (excepción del kernel mode, en Windows 10), debido a un problema de hardware no relacionado, que creó un volcado de depuración de memoria completa en el disco. Al examinar este archivo de volcado de memoria, se descubrió las contraseñas se mantenían en texto plano en la memoria, en un estado bloqueado cuando ocurrió el error de detención.

Dump file de Windows 10 conteniendo secretos de 1Password7 en memoria

Dashlane (Versión 6.1843)

Lo bueno
Dashlane demostró flujos de trabajo que indican que el enfoque se colocó en ocultar los secretos en la memoria para reducir su probabilidad de extracción. Además, exclusivo de Dashlane, fue el uso de de frameworks de administración de memoria /cadena y GUI que impidieron que se traspasaran secretos a varias API de SO que podrían exponerlos a espionaje por malware trivial.

Al igual que en 1Password4, Dashlane solo expone la entrada activa con la que interactúa un usuario.

Lo malo
Una vez que un usuario actualiza cualquier información en una entrada, Dashlane expone todo el texto sin formato de la base de datos en la memoria y permanece allí incluso después de que Dashlane cierre la sesión o se bloquee.

Extrayendo secretos desde Dashlane bloqueado

KeePass (Versión 2.40)

A diferencia de los demás softwares analizados, KeePass es un proyecto de código abierto.

Al igual que en 1Password4, KeePass descifra las entradas a medida que interactúan, pero todas permanecen en la memoria ya que no se borran individualmente después de cada interacción. La contraseña maestra se borra de la memoria y no se puede recuperar. Sin embargo, mientras KeePass intenta mantener los secretos seguros al limpiarlos de la memoria, obviamente hay errores en estos flujos de trabajo. Incluso en un estado bloqueado, se pudieron extraer entradas con las que se había interactuado.

Lista de entradas desde KeePass bloqueado

LastPass (Versión 4.1.59)

Al igual que en 1Password4, LastPass ofusca la contraseña maestra cuando se escribe en el campo de desbloqueo. Una vez que la clave de descifrado se deriva de la contraseña maestra, la contraseña maestra se sobrescribe con la frase «lastpass rocks».

Contraseña maestra en texto plano después de «lastpass rocks»

Una vez que LastPass ingresa en un estado desbloqueado, las entradas de la base de datos se descifran en la memoria solo luego de la interacción del usuario. Sin embargo, estas entradas persisten en la memoria incluso después de que LastPass se haya vuelto a colocar en un estado bloqueado.

Durante un flujo de trabajo para derivar la clave de descifrado, la contraseña maestra se filtra en un búfer de cadena en la memoria y nunca se borra, incluso cuando LastPass se coloca en un estado bloqueado.

Además, debemos incluir el riesgo de los keyloggers y el Clipboard Sniffing, a los cuales el usuario también está expuesto.

Y entonces?

El reporte deja algunas indicaciones para los creadores de administradores de contraseñas:

– Detectar o emplear métodos para, de manera predeterminada, frustrar los keyloggers basados en software
– Prevenir la exposición de contraseñas en estado desbloqueado
– Emplear funciones basadas en hardware (como SGX) para dificultar la extracción de secretos
– Emplear mecanismos triviales de detección de modificación de procesos en tiempo de ejecución y malware
– Emplear aleatorización binaria por instalación durante la fase de instalación para hacer que cada instancia tenga un diseño binario único para frustrar el malware trivial y avanzado
– Limitar el paso de los secretos a las API proporcionadas por el SO mediante la implementación de elementos personalizados de la GUI y la administración de la memoria para limitar la exposición de los secretos a las API conocidas que pueden ser identificadas por los autores de malware

Por su parte, los usuarios tienen que emplear las mejores prácticas de seguridad e higiene para limitar la actividad de adversarios. Para lidiar con los problemas de los administradores de contraseñas, los usuarios deberían:

– Mantener actualizado el sistema operativo
– Habilitar o utilizar soluciones de antivirus conocidas y probadas
– Utilizar de las funciones proporcionadas por algunos administradores de contraseñas, como «Escritorio seguro»
– Uso de hardware wallets para datos sensibles que se pueden explotar de inmediato, como las claves privadas de la moneda criptográfica
– Utilizar la función de bloqueo automático de su sistema operativo para evitar la actividad malintencionada orientada a espiar sus equipos
– Seleccionar una contraseña segura y compleja como la contraseña maestra para frustrar las posibilidades de fuerza bruta en un archivo de base de datos cifrado comprometido
– Uso del cifrado completo del disco para evitar la posibilidad de extracción de secretos en el caso de registros de bloqueo y volcados de memoria asociados, que pueden incluir datos descifrados del administrador de contraseñas
– Cerrar un administrador de contraseñas por completo cuando no está en uso, incluso en un estado bloqueado

Los gestores de contraseñas son una buena cosa y agregan valor a la postura de seguridad. Y como dice Troy Hunt, creador de Have I Been Pwned, “Los administradores de contraseñas no tienen que ser perfectos, solo deben ser mejores que no tener uno”.

A medida que crece la confianza en los gestores de contraseñas, de igual modo deberían aumentar sus medidas de protección y la investigación de Independent Security Evaluators se ofrece como una invitación a mejorar. Es una especie de pentest gratuita!