Asegure lo que importa a su empresa.

Hay mucho en lo que pensar cuando se trabaja con contenedores, Kubernetes, la nube y los secretos. Tiene que emplear y relacionar las mejores prácticas en torno a la gestión de identidades y accesos y elegir y llevar a cabo diversas herramientas.

Tanto si es un desarrollador como un profesional de la administración de sistemas, tiene que tener claro que cuenta con la elección correcta de herramientas para mantener sus entornos seguros. Las aplicaciones necesitan acceder a los datos de configuración para funcionar correctamente. Y aunque la mayoría de los datos de configuración no son sensibles, algunos deben permanecer confidenciales. Estas cadenas se conocen como secretos.

Debido a la falta de demasiadas soluciones listas para usar, muchas empresas han tratado de construir sus propias herramientas de gestión de secretos. He aquí algunas que puede aprovechar para sus necesidades.

Vault

HashiCorp Vault es una herramienta para almacenar y acceder de forma segura a los secretos.

Proporciona una interfaz unificada para los secretos al tiempo que mantiene un estricto control de acceso y registra un exhaustivo registro de auditoría. Es una herramienta que asegura las aplicaciones y bases de los usuarios para limitar el espacio de superficie y el tiempo de ataque en una brecha.

Además, proporciona una API que permite acceder a los secretos basándose en políticas. Cualquier usuario de la API debe verificar y ver únicamente los secretos que está autorizado a ver.

Vault cifra los datos utilizando AES de 256 bits con GCM.

Puede acumular datos en varios backends como Amazon DynamoDB, Consul y muchos más. Vault admite el registro en un archivo local para servicios de auditoría, en un servidor Syslog o directamente en un socket. Vault registra información sobre el cliente que actuó, la dirección IP del cliente, la acción y a qué hora se realizó.

El inicio/reinicio siempre implica uno o varios operadores para desprecintar la Bóveda. Funciona principalmente con tokens. Cada token se asigna a una política que puede restringir las acciones y las rutas. Las características clave de la Bóveda son:

  • Cifra y descifra datos sin almacenarlos.
  • Vault puede generar secretos a la carta para algunas operaciones, como AWS o las bases de datos SQL.
  • Permite la replicación en varios centros de datos.
  • Vault tiene protección integrada para la revocación de secretos.
  • Sirve como repositorio de secretos con detalles de control de acceso.

AWS Secrets Manager

Usted esperaba a AWS en esta lista. ¿A que sí?

AWS tiene una solución para cada problema.

AWS Secrets Manager le permite rotar, administrar y recuperar rápidamente credenciales de bases de datos, claves API y otras contraseñas. Con Secrets Manager, puede asegurar, analizar y administrar los secretos necesarios para acceder a las capacidades de la nube de AWS, en servicios de terceros y on-premises.

Secrets Manager le permite administrar el acceso a los secretos utilizando permisos de grano fino. Las características clave de AWS Secrets Manager son:

  • Cifra los secretos en reposo utilizando claves de cifrado.
  • Además, descifra el secreto y lo transmite de forma segura a través de TLS.
  • Proporciona ejemplos de código que ayudan a llamar a las API de Secrets Manager
  • Dispone de bibliotecas de almacenamiento en caché del lado del cliente para mejorar la disponibilidad y reducir la latencia del uso de sus secretos.
  • Configura puntos finales de Amazon VPC (Virtual Private Cloud) para mantener el tráfico dentro de la red de AWS.

Akeyless Vault

Akeyless Vault es una plataforma unificada de gestión de secretos de extremo a extremo basada en SaaS, que protege todo tipo de credenciales, tanto estáticas como dinámicas, incluyendo la automatización de certificados y claves de cifrado. Además, proporciona una solución única para asegurar el acceso remoto (confianza cero) a todos los recursos a través de entornos heredados, multi-nube e híbridos.

Akeyless protege los secretos y las claves mediante una tecnología integrada patentada y certificada FIPS 140-2; tiene conocimiento cero de los secretos y las claves de sus clientes.

Akeyless vault secrets management

Las características clave incluyen:

  • Plataforma basada en SaaS disponible en todo el mundo que ofrece una alta disponibilidad (HA) y recuperación ante desastres (DR) integradas aprovechando la arquitectura nativa de la nube sobre un servicio multirregión y multicloud.
  • La gestión avanzada de secretos proporciona una bóveda segura para secretos estáticos y dinámicos como contraseñas, credenciales, claves API, tokens, etc.
  • Akeyless Vault permite el aprovisionamiento y la inyección de todo tipo de secretos a todos sus servidores, aplicaciones y cargas de trabajo, proporcionando una amplia variedad de plugins que le permiten conectarse a todas sus plataformas de DevOps y TI como CI/CD, gestión de la configuración y herramientas de orquestación como Kubernetes y Docker.

Tiempo de producción más rápido porque:

  • SaaS – no es necesario despliegue, instalación ni mantenimiento
  • Incorporación instantánea con migración automática de secretos desde repositorios de secretos existentes conocidos

La plataforma soporta dos pilares más:

  • Acceso a aplicaciones de confianza cero (también conocido como acceso remoto) al proporcionar autenticación unificada y credenciales de acceso justo a tiempo, lo que le permite asegurar las aplicaciones y la infraestructura sin perímetro.
  • Cifrado como servicio, permite a los clientes proteger los datos personales y empresariales confidenciales aplicando un cifrado avanzado a nivel de aplicación con certificación FIPS 140-2.

Keywhiz

Square Keywhiz ayuda con los secretos de infraestructura, los llaveros GPG y las credenciales de bases de datos, incluyendo certificados y claves TLS, claves simétricas, tokens API y claves SSH para servicios externos. Keywhiz es una herramienta para manejar y compartir secretos.

La automatización en Keywhiz nos permite distribuir y configurar sin problemas los secretos esenciales para nuestros servicios, lo que requiere un entorno coherente y seguro. Las características clave de Keywhiz son:

  • Keywhiz Server proporciona API JSON para recopilar y gestionar secretos.
  • Almacena todos los secretos sólo en memoria y nunca recurre al disco.
  • La interfaz de usuario está hecha con AngularJS para que los usuarios puedan validarla y utilizarla.

Confidant

Confidant es una herramienta de gestión de secretos de código abierto que mantiene el almacenamiento y el acceso a los secretos de forma segura para el usuario. Confidant almacena los secretos de forma anexa en DynamoDB, y genera una clave de datos KMS única para cada modificación de todos los secretos, utilizando criptografía autenticada simétrica Fernet.

Proporciona una interfaz web AngularJS que permite a los usuarios finales gestionar eficazmente los secretos, las formas de los secretos a los servicios y el registro de los cambios. Algunas de las características incluyen:

  • Autenticación KMS
  • Cifrado en reposo de secretos versionados
  • Una interfaz web fácil de usar para gestionar secretos
  • Generación de tokens que pueden aplicarse para la autenticación de servicio a servicio o para pasar mensajes cifrados entre servicios.

SOPS

Permítame presentarle SOPS, una herramienta increíble que he descubierto recientemente. Es un editor de archivos encriptados que soporta formatos como YAML, JSON, ENV, INI y BINARY. ¿Y lo mejor? Puede cifrar sus archivos utilizando AWS KMS, GCP KMS, Azure Key Vault, age y PGP.

Ahora, aquí es donde se pone interesante. Imagine que está trabajando en una máquina que no tiene acceso directo a las claves de cifrado como las claves PGP. No se preocupe SOPS le tiene cubierto con su función de servicio de claves. Puede conceder a SOPS acceso a las claves de cifrado almacenadas en una máquina remota reenviando un socket. ¡Es como tener su propio agente GPG portátil!

SOPS-Secrets-OPerationS

SOPS funciona según un modelo cliente-servidor para cifrar y descifrar la clave de datos. Por defecto, ejecuta un servicio de clave local dentro del proceso. El cliente envía peticiones de cifrado o descifrado al servicio de claves utilizando gRPC y búferes de protocolo. No se preocupe; estas peticiones no contienen ninguna clave criptográfica, ni pública ni privada.

Debo subrayar que la conexión del servicio de claves carece actualmente de autenticación o cifrado. Autenticar y cifrar la conexión por otros medios, como un túnel SSH, es muy recomendable para garantizar la seguridad.

Pero espere, ¡hay más! SOPS puede generar registros de auditoría para rastrear el acceso a archivos en su entorno controlado. Cuando está activado, registra la actividad de descifrado en una base de datos PostgreSQL, incluyendo la marca de tiempo, el nombre de usuario y el archivo descifrado. Bastante ingenioso, ¿verdad?

Además, SOPS ofrece dos prácticos comandos para pasar los secretos descifrados a un nuevo proceso: exec-env y exec-file. El primero inyecta la salida en el entorno de un proceso hijo, mientras que el segundo la almacena en un archivo temporal.

Recuerde que la extensión del archivo determina el método de cifrado utilizado por SOPS. Si cifra un archivo en un formato específico, asegúrese de conservar la extensión original del archivo para el descifrado. Es la forma más sencilla de garantizar la compatibilidad.

SOPS se inspira en herramientas como hiera-eyaml, credstash, sneaker y password store. Es una solución fantástica que elimina la molestia de gestionar manualmente los archivos cifrados con PGP.

Azure Key Vault

¿Aloja sus aplicaciones en Azure? En caso afirmativo, ésta sería una buena elección.

Azure Key Vault permite a los usuarios gestionar todos los secretos (claves, certificados, cadenas de conexión, contraseñas, etc.) de su aplicación en la nube en un lugar concreto. Se integra fuera de la caja con orígenes y destinos de secretos en Azure. Las aplicaciones fuera de Azure pueden seguir utilizándolo.

También puede mejorar el rendimiento reduciendo la latencia de sus aplicaciones en la nube almacenando las claves criptográficas en la nube en lugar de en las instalaciones.

Azure puede ayudar a lograr la protección de datos y el cumplimiento de los requisitos.

Docker Secrets

Los secretos Docker le permiten añadir fácilmente el secreto al clúster, y sólo se comparte a través de conexiones TLS autenticadas mutuamente. A continuación, los datos llegan al nodo gestor en secretos Docker, y se guardan automáticamente en el almacén interno Raft, lo que garantiza que los datos deben estar cifrados.

Los secretos Docker pueden aplicarse fácilmente para gestionar los datos y transferirlos así a los contenedores con acceso a ellos. Evita que los secretos se filtren cuando la aplicación los utiliza.

Knox

Knox, fue desarrollado por la plataforma de medios sociales Pinterest para resolver su problema con la gestión manual de claves y el mantenimiento de un registro de auditoría. Knox está escrito en Go, y los clientes se comunican con el servidor Knox mediante una API REST.

Knox utiliza una base de datos temporal volátil para almacenar las claves. Cifra los datos almacenados en la base de datos utilizando AES-GCM con una clave de cifrado maestra. Knox también está disponible como imagen Docker.

Doppler

Desde startups hasta empresas, miles de organizaciones utilizan Doppler para mantener sincronizados sus secretos y la configuración de sus aplicaciones en distintos entornos, miembros del equipo y dispositivos.

No hay necesidad de compartir secretos por correo electrónico, archivos zip, git y Slack; permita que sus equipos colaboren para que lo tengan al instante tras la adición del secreto. Doppler le proporciona una sensación de relajación al automatizar el proceso y ahorrar tiempo.

Puede crear referencias a los secretos de uso frecuente para que una sola actualización en algunos intervalos haga todo su trabajo. Utilice los secretos en Serverless, Docker o donde sea, Doppler trabaja con usted. Cuando su pila evoluciona, permanece tal cual, permitiéndole entrar en funcionamiento en cuestión de minutos.

Doppler CLI lo sabe todo sobre la obtención de sus secretos basándose en el directorio de su proyecto. No se preocupe si algo cambia, puede revertir fácilmente las modificaciones rotas en un solo clic o a través de CLI y API.

Con Doppler, trabaje de forma más inteligente y no más dura y consiga GRATIS su software de gestión de secretos. Si busca más funciones y ventajas, opte por un paquete de inicio a 6 $/mes/plaza.

A continuación, hablaremos de dónde puede almacenar secretos.

¿Dónde guarda los secretos?

No me diga que todavía tiene secretos en GitHub. 😯

Bien, si está construyendo una aplicación fiable, lo más probable es que sus funciones requieran que acceda a secretos o a cualquier otro tipo de información sensible que esté guardando.

Estos secretos pueden incluir:

  • Claves API
  • Credenciales de base de datos
  • Claves de cifrado
  • Ajustes de configuración sensibles (dirección de correo electrónico, nombres de usuario, indicadores de depuración, etc.)
  • Contraseñas

Sin embargo, ocuparse de estos secretos de forma segura puede resultar más adelante una tarea difícil. Por ello, a continuación le ofrecemos algunos consejos para desarrolladores y administradores de sistemas:

Parchear dependencias de funciones

Recuerde siempre hacer un seguimiento de las bibliotecas utilizadas en las funciones y señale las vulnerabilidades monitorizándolas continuamente.

Emplee pasarelas API como amortiguador de seguridad

No exponga las funciones precisamente a la interacción del usuario. Aproveche las capacidades de las pasarelas API de sus proveedores en la nube para incluir otra capa de seguridad sobre la función.

Asegure y verifique los datos en tránsito

Asegúrese de aprovechar HTTPS para un canal de comunicación seguro y verifique los certificados SSL para proteger la identidad remota.

Siga las reglas de codificación segura para el código de la aplicación.

Sin servidores que piratear, los atacantes se centrarán en la capa de la aplicación, así que ponga especial cuidado en proteger su código.

Gestione los secretos en un almacenamiento seguro

La información confidencial puede filtrarse fácilmente, y las credenciales obsoletas son aptas para los ataques de mesa arco iris si no adopta las soluciones de gestión de secretos adecuadas. Recuerde que no debe almacenar secretos en el sistema de aplicaciones, las variables de entorno o el sistema de gestión del código fuente.

Conclusión

La gestión de claves en el mundo corporativo es muy penosa debido, entre otras razones, a la falta de conocimientos y recursos. En su lugar, algunas empresas incrustan las claves de cifrado y otros secretos de software directamente en el código fuente de la aplicación que los utiliza, introduciendo el riesgo de exponer los secretos.

Espero que lo anterior le dé una idea sobre algunos de los mejores software para gestionar las credenciales de las aplicaciones.