¿Qué es la gestión de secretos?

Una persona sosteniendo un teléfono inteligente junto a una pantalla grande

Definición de la gestión de secretos

La administración de secretos es la protección de credenciales, incluidos certificados, claves, contraseñas y tokens, para usuarios no humanos, como aplicaciones, servidores y cargas de trabajo.

Las organizaciones utilizan cada vez más identidades no humanas para automatizar procesos y flujos de trabajo empresariales clave. Estas identidades pueden incluir cuentas de servicio, pipelines de integración continua y entrega continua (CI/CD), contenedores, microservicios y herramientas de orquestación. También pueden incluir automatización robótica de procesos (RPA) (bots de software que imitan acciones humanas) y, más recientemente, agentes de IA.

Al igual que los usuarios humanos, las entidades no humanas necesitan credenciales, o “secretos”, para autenticarse en sistemas y servicios y acceder a los recursos de la organización, a menudo con privilegios elevados. Por ejemplo, un proceso de copia de seguridad automatizado podría leer archivos confidenciales y modificar la configuración del sistema.

Para los hackers, estas cuentas privilegiadas no humanas son objetivos de alto valor. Permiten a los actores de amenazas abusar de los derechos de acceso para robar datos y dañar sistemas críticos, todo mientras evaden la detección. Según el IBM® X-Force Threat Intelligence Index, el secuestro de cuentas válidas es el segundo vector de ciberataque más común, representando el 32 % de todos los incidentes a los que X-Force respondió el año pasado.

Los sistemas de gestión de secretos ayudan a combatir estas ciberamenazas, lo que permite a las organizaciones crear, controlar y proteger los secretos que utilizan entidades no humanas para acceder a los recursos de TI. Con las herramientas de gestión de secretos, los equipos de TI pueden proteger las credenciales no humanas a lo largo de su ciclo de vida, optimizando los flujos de trabajo automatizados y evitando filtraciones de datos, manipulación, robo y otros accesos no autorizados.

¿Qué es un secreto?

Un secreto es una credencial digital contenida dentro de una aplicación o servicio que permite a los usuarios no humanos comunicarse y realizar acciones en un servicio, base de datos, aplicación u otro recurso de TI. Los secretos ayudan a las organizaciones a fortalecer su postura de seguridad al garantizar que solo los usuarios autorizados tengan acceso a datos y sistemas confidenciales.

Algunos ejemplos de secretos incluyen, entre otros:

  • Credenciales de cuenta de servicio: las cuentas de servicio permiten que las aplicaciones y los flujos de trabajo automatizados interactúen con los sistemas operativos. Las credenciales de la cuenta de servicio pueden incluir contraseñas, tokens de seguridad, tickets Kerberos y otros secretos.

  • Claves de API: las claves de API permiten a los usuarios, aplicaciones y servicios verificarse en la interfaz de programación de aplicaciones (API).

  • Claves de cifrado: las claves de cifrado permiten a los usuarios cifrar y descifrar datos.

  • Tokens de autenticación y autorización: los tokens, como los que se usan en el protocolo OAuth, son piezas de información que pueden verificar la identidad de un usuario y determinar los recursos específicos a los que puede acceder.

  • Claves SSH (Secure Shell): los servidores SSH emplean las claves SSH para identificar a un usuario o dispositivo mediante criptografía de clave pública.
  • Certificados PKI y claves privadas (SSL/TLS/mTLS): los certificados emitidos por una autoridad de certificación y sus claves privadas asociadas autentican endpoints y establecen certificados y conexiones SSL/TLS cifrados, incluida la autenticación TLS mutua (mTLS).
  • Cadenas de conexión: cadena de texto que contiene las instrucciones que necesita un programa informático para conectarse a una fuente de datos, como bases de datos, archivos u hojas de cálculo.
  • Otras claves criptográficas: pueden incluir claves de código de autenticación de mensajes basado en hash (HMAC), claves de firma de código y otras claves privadas utilizadas para la firma o verificación.

Por qué es importante la gestión de secretos

La gestión de secretos es una solución de seguridad crítica que ayuda a las organizaciones a almacenar, controlar y rotar de forma segura credenciales confidenciales y otros secretos, como contraseñas, claves de API y tokens. 

Es una de las cuatro capacidades principales de la gestión de accesos privilegiados (PAM), un subconjunto de la gestión de identidad y acceso (IAM) que se centra en proteger cuentas y usuarios privilegiados.

Las otras tres capacidades de la PAM incluyen:

  • Gestión de cuentas y sesiones privilegiadas (PASM), que se encarga de la gestión del ciclo de vida de las cuentas privilegiadas, la gestión de contraseñas y la supervisión de sesiones. 

  • Gestión de elevación y delegación de privilegios (PEDM), que implica evaluar, aprobar y denegar automáticamente las solicitudes de acceso con privilegios. 

  • Gestión de derechos de infraestructura en la nube (CIEM), que supervisa los permisos y derechos en entornos de computación en la nube.

La gestión de secretos es importante para la metodología DevOps, que enfatiza el desarrollo y la entrega de software automatizados y continuos.

Los equipos de DevOps suelen utilizar múltiples herramientas de gestión de configuración u orquestación para gestionar ecosistemas digitales completos, flujos de trabajo y endpoints. Las herramientas a menudo utilizan la automatización y scripts que requieren acceso a secretos para iniciarse. Sin un servicio de gestión de secretos de nivel empresarial, el uso desordenado de los secretos podría aumentar la vulnerabilidad del sistema.

Muchas organizaciones integran funciones de gestión de secretos en el pipeline de CI/CD. Esto ayuda a garantizar que todas las partes móviles (desarrolladores, herramientas y procesos automatizados) tengan acceso seguro a los sistemas confidenciales que necesitan cuando lo necesitan.

La gestión de secretos se considera un componente central de DevSecOps, una evolución de la metodología DevOps que integra y automatiza continuamente la seguridad a lo largo del ciclo de vida de DevOps.

Cómo funciona la gestión de secretos

El proceso de gestión de secretos generalmente depende de herramientas de gestión de secretos. Estas herramientas, que pueden desplegarse on premises o como servicios en la nube, pueden ayudar a centralizar, automatizar y agilizar la creación, el uso, la rotación y la protección de secretos.

Existen soluciones de gestión de secretos tanto comerciales como de código abierto. Las opciones de código abierto incluyen Infisical, mientras que las opciones comerciales incluyen CyberArk Conjur (que también tiene una edición de código abierto) y HashiCorp Vault (de HashiCorp, una empresa de IBM).

Algunas capacidades comunes de las herramientas de gestión de secretos incluyen:

  • Gestión de secretos centralizada y estandarizada
  • Creación dinámica de secretos y rotación automatizada de secretos
  • Controles de acceso
  • Monitoreo y auditoría de actividades

Gestión de secretos centralizada y estandarizada

Con un servicio de gestión de secretos de nivel empresarial, las organizaciones pueden administrar múltiples tipos de secretos en un único panel.

En lugar de dejar que los usuarios individuales gestionen los secretos en pequeños silos, las soluciones de gestión de secretos pueden almacenar los secretos en una ubicación central y segura denominada "bóveda secreta".

Cuando un usuario autorizado necesita acceder a un sistema confidencial, puede obtener el secreto correspondiente del almacén. La herramienta de gestión de secretos puede verificar y autorizar automáticamente la solicitud y liberar el secreto necesario para autenticar el flujo de trabajo.

La estandarización puede ayudar a prevenir la expansión secreta. La dispersión de secretos se produce cuando los secretos se almacenan en varios lugares de una organización, a menudo codificados en aplicaciones o como texto sin formato en un documento compartido. La proliferación de secretos dificulta proteger los secretos de actores maliciosos y rastrear cómo se utilizan los secretos.  

Creación dinámica de secretos y rotación automatizada de secretos

Los secretos creados en un gestor de secretos pueden ser estáticos o dinámicos. Un secreto estático es un secreto que permanece válido durante mucho tiempo, generalmente hasta que se modifica manualmente o alcanza una fecha de vencimiento predeterminada.

En cambio, un secreto dinámico es creado por el gestor de secretos a petición, en el momento en que se necesita. Los secretos dinámicos caducan con bastante rapidez. Incluso pueden ser de un solo uso.

Un caso de uso para un secreto dinámico sería proteger un recurso confidencial, como una base de datos o un entorno de nube como AWS o Microsoft Azure, generando dinámicamente claves API cada vez que se lee o se accede a ese recurso. Esto ayuda a garantizar que los actores maliciosos no puedan robar y reutilizar las claves API.

Muchos gestores de secretos también pueden automatizar la rotación de secretos, es decir, el acto de cambiar los secretos con regularidad. La rotación de secretos se puede automatizar según lo programado o bajo demanda sin necesidad de volver a implementar o interrumpir las aplicaciones. El tiempo de vida (TTL) o la duración de la concesión se pueden definir para un secreto en su creación para acortar la cantidad de tiempo que existe el secreto.

Controles de acceso

Los secretos solo se pueden conceder a entidades o grupos específicos para organizar y restringir el acceso. El acceso a los secretos suele concederse mediante el principio de privilegio mínimo, es decir, a cada proceso se le concede únicamente el conjunto de privilegios más restrictivo necesario para realizar una tarea. Los usuarios solo pueden acceder a los secretos necesarios para realizar sus tareas autorizadas.

Las arquitecturas de confianza cero (que se rigen por el principio de “nunca confiar, siempre verificar”) suelen regular el acceso a los sistemas de gestión de secretos. Esto ayuda a garantizar que cada solicitud de un secreto se autentique y autorice, incluso si se origina desde dentro de la red.

Monitoreo y auditoría de actividades

Muchos administradores de secretos pueden rastrear cómo los usuarios y las aplicaciones interactúan con los secretos y los utilizan para verificar que los secretos se manejen adecuadamente a lo largo de sus ciclos de vida. Esto permite a la organización realizar un monitoreo casi en tiempo real de los eventos de acceso secreto, incluidas las autenticaciones y autorizaciones al administrador de secretos.

El administrador de secretos puede denegar rápidamente los intentos no autorizados de ver o usar secretos y revocar el acceso cuando sea necesario. Esto puede ayudar a habilitar una corrección más rápida antes de que los hackers, las amenazas de usuarios internos y otros actores maliciosos puedan causar daños.

Una potente herramienta de automatización de secretos conservará registros de auditoría detallados que registran los eventos de autenticación de usuarios y de acceso a secretos.

El monitoreo de secretos suele ser mucho más fácil de lograr una vez que una organización comienza a utilizar herramientas dinámicas de automatización de secretos. Estos registros de auditoría detallados ayudan a verificar el uso autorizado de los datos confidenciales o a detectar y localizar posibles amenazas.

Prácticas comunes de gestión de secretos

Más allá de utilizar soluciones de gestión de secretos, muchas organizaciones siguen prácticas básicas comunes en sus procesos de gestión de secretos. Estas prácticas incluyen:

  • Los secretos se generan, almacenan y consultan dentro de su entorno correspondiente (por ejemplo, entornos independientes de desarrollo, pruebas y producción). Algunas organizaciones emplean diferentes herramientas de gestión de secretos para cada entorno. Otras emplean una solución central y aíslan los secretos de cada entorno en un segmento dedicado. Los secretos nunca salen de sus entornos y se protegen mediante el uso de estrictas medidas de control de acceso.

  • El acceso de los usuarios a los secretos se concede al nivel mínimo necesario para que cualquier usuario pueda cumplir con sus responsabilidades. El exceso de derechos, ya sea intencionado o no, puede provocar filtraciones de datos.

  • Los secretos se rotan periódicamente de acuerdo con los requisitos del sistema.

  • Los usuarios no almacenan secretos en el código fuente, los archivos de configuración o la documentación.

  • Las políticas de seguridad se pueden mejorar exigiendo el cifrado de todos los datos confidenciales. Las claves de cifrado se pueden proteger con un servicio de gestión de claves (KMS).

  • La organización monitorea continuamente los secretos, con registros de auditoría que rastrean cada solicitud: quién solicitó el secreto, para qué sistema, si la solicitud fue exitosa, cuándo se emitió o recuperó, cuándo expiró y cuándo y si el secreto se actualizó. Las anomalías deben investigarse sin demora. 

Desafíos de la gestión de secretos

A medida que los ecosistemas de TI se vuelven más complejos, la gestión de secretos se vuelve cada vez más difícil de controlar de manera efectiva. Los desafíos comunes de la gestión de secretos pueden incluir:

Gestión de secretos descentralizada

Los ecosistemas descentralizados en los que administradores, desarrolladores y usuarios gestionan sus secretos por separado pueden introducir riesgos, ya que es posible que las brechas de seguridad y el uso de secretos no se monitoreen o auditen adecuadamente.

Las soluciones centralizadas de gestión de secretos pueden ofrecer a las organizaciones más visibilidad y control sobre los secretos.

Credenciales codificadas

Cuando las contraseñas u otros secretos se incrustan como texto sin formato en el código fuente o scripts, los atacantes pueden descubrirlos fácilmente y utilizarlos para acceder a información confidencial.

Los secretos codificados pueden aparecer en muchos lugares, incluyendo cadenas de herramientas de CI/CD, repositorios de código, dispositivos del Internet de las cosas (IoT), plataformas de orquestación de contenedores como Kubernetes, servidores de aplicaciones, escáneres de vulnerabilidades y plataformas de automatización de procesos robóticos (RPA).

Rotación poco frecuente 

La rotación regular de secretos puede ayudar a prevenir el robo y el abuso, pero la rotación puede ser inconsistente o ineficaz sin un sistema de gestión de secretos. Si un secreto permanece sin cambios durante demasiado tiempo, un hacker podría desbloquearlo mediante conjeturas de prueba y error o un ataque de fuerza bruta.

Cuanto más tiempo se utilice una contraseña, más usuarios tendrán acceso y mayores serán las posibilidades de una filtración.

Proliferación de secretos

El crecimiento de los sistemas de TI puede provocar una proliferación de secretos, con secretos repartidos por muchas partes aisladas del sistema. La proliferación de secretos puede ser especialmente preocupante en los ecosistemas multinube híbridos, donde las organizaciones mezclan entornos de nube pública y nube privada entregados por múltiples proveedores de la nube.

Las organizaciones pueden tener miles, incluso millones, de secretos en todas sus aplicaciones nativas de la nube, contenedores, microservicios y otros recursos. Esta proliferación crea una enorme carga de seguridad y amplía la posible superficie de ataque.

En todos los servicios, la visibilidad puede ser limitada y la gestión de secretos puede volverse difícil de manejar rápidamente si se realiza un seguimiento manual o mediante sistemas dispares. La falta de un servicio centralizado de gestión de secretos podría dificultar o imposibilitar la aplicación de una higiene adecuada de los secretos.

Intercambio manual de secretos

Cuando una organización carece de un sistema de gestión de secretos, los secretos pueden compartirse manualmente, por ejemplo, a través de correos electrónicos o mensajes de texto, donde los actores de amenazas pueden interceptarlos. 

Autores

Jim Holdsworth

Staff Writer

IBM Think

Matthew Kosinski

Staff Editor

IBM Think

Annie Badman

Staff Writer

IBM Think