Es común que la gestión de credenciales en un entorno corporativo de pequeño a mediano tamaño se encuentre totalmente descentralizada y sea caótica. Para acceder a una credencial es necesario saber quién la tiene y luego esa persona debe buscarla y compartirla por canales diversos.
En estos casos urge implementar un mecanismo de gestión de credenciales seguro y centralizado para resguardar y simplificar el acceso a las credenciales de la compañía, organizadas por área y responsabilidad.
El mecanismo implementado debe cumplir los siguientes requisitos:
- Debe ser seguro y confiable.
- Debe permitir el acceso desde diferentes dispositivos.
- Debe ser fácil de usar y permitir el acceso para múltiples usuarios.
- Tiene que tener la capacidad de organizar credenciales por área y perfil.
- En caso de una solución on-premises, el acceso debe ser preferentemente a través de una VPN para soportar home-office.
AWS Secrets Manager
No es un gestor de credenciales en sí sino un servicio pensado para automation. La idea es que los servicios y aplicaciones obtengan las credenciales que necesitan para su funcionamiento desde este servicio de Amazon en lugar de tener clavadas en texto plano en archivos de configuración.
Interesante solución, pero no es de utilidad para esta problemática.
- AWS Secrets Manager: Store, Distribute, and Rotate Credentials Securely
- Securing passwords in AWS Quick Starts using AWS Secrets Manager
Bitwarden
Bitwarden es un servicio de gestión de contraseñas open-source. Dispone de clientes para todos los sistemas operativos más utilizados y ofrece una interfaz web, extensiones para navegadores, y un CLI. Además del servicio en la nube es posible instalarlo en nuestra organización.
Algunas de las ventajas importantes de Bitwarden son que su código es abierto (está disponible en Github); que es auditado; es más económico en su versión SaaS; y es posible instalarlo on-premises.
- Open Source - Bitwarden
- Bitwarden - Github
- Installing and deploying - Bitwarden Help & Support
- How to Install Bitwarden Password Manager with Docker on Ubuntu 20.04
El costo para la versión Business/Teams es de 3 dólares por usuario/mes. Por otro lado (y gracias a ser open-source) es posible instalarlo on-premises.
Un dato interesante es que hay un proyecto para implementarlo en modo serverless en AWS. Aunque el autor menciona que en 2020 dejó de usar el proyecto.
LastPass
Otra alternativa SaaS es LastPass (desarrollado por LogMeIn). Ofrece planes Business/Teams de 4 dólares por usuario/mes.
Tiene clientes para Windows, Mac, Linux, Android, iOS y extensiones para navegadores varios.
1Password
Desarrollado por AgileBits Inc. es una de las alternativas SaaS más populares. Emplea PBKDF2 como mecanismo de encriptación de los vaults, lo cual reduce la vulnerabilidad a ataques de fuerza bruta. Ofrece clientes para todos los sistemas operativos desktop y mobile, además de extensiones para todos los navegadores. Entre los clientes figuran IBM, Slack, Dropbox, GitLab y más.
El costo para Team/Business es de 4 dólares por usuario/mes.
Dashlane
Otra alternativa para almacenar y compartir contraseñas en la nube multiplataforma. Es más cara que las demás 5 dólares por usuario/mes:
Conclusiones
En todos los casos SaaS, el billing es anual.
En los casos SaaS se podría evaluar crear sólo un usuario por área, pero esto serviría únicamente para almacenar credenciales no-personales (servicios, sistemas, usuarios de aplicaciones, etc.) No se podría, por ejemplo, guardar la clave personal de acceso al Webmail (por citar un ejemplo).
Implementar una solución on-premises implica el tradeoff: tiempo vs. dinero. Invertir una cantidad de tiempo de desarrollo al comienzo y ahorrar un billing anual/mensual. Tendría la ventaja de que la seguridad pasa a ser nuestra responsabilidad a cambio de mantener la plataforma actualizada.
Para el caso de ir por una solución SaaS, la estrategia de una cuenta por área puede abaratar costos.
Opciones on-premises
Hay básicamente 2 opciones para almacenar y compartir credenciales en nuestra VPC:
- Montar un servidor Bitwarden sobre Docker.
- Una solución ad-hoc: utilizar KeePassXC con la base de datos de credenciales cifrada compartida en la nube (e.g. Drive) o a través de Samba si se dispone de un servidor de archivos en la VPN.
La primera opción implica tal vez mucha infraestructura para este servicio. La segunda puede ser rápida y fácil de implementar, solo quedaría definir bien de qué forma compartir la base de datos (vault), separando una por área.
Para la segunda se puede configurar una opción mucho más segura al cloud, y sería un pequeño servidor Samba (funcionaría en Windows y Linux) en la VPN. Obviamente hace que el uso de una VPN sea un requisito para los clientes y además no es mobile-friendly.
Referencias
- Best password manager to use for 2020: 1Password, LastPass and more compared - CNET
- The Best Password Managers for 2020
- The Best Password Managers to Secure Your Digital Life
- List of password managers - Wikipedia