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.

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.

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

Compartí este artículo