¿Qué es la gestión de secretos?

Persona sosteniendo un móvil junto a una pantalla grande

Definición de 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 clave del negocio. 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 ello 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, permitiendo a las organizaciones crear, controlar y proteger los secretos que las entidades no humanas utilizan para acceder a los recursos de TI. Con herramientas de gestión de secretos, los equipos de TI pueden proteger credenciales a lo largo de su ciclo de vida, optimizando los flujos de trabajo automatizados mientras previenen vulneraciones de datos, manipulaciones, robos 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 reforzar su posición de seguridad al garantizar que solo los usuarios autorizados tengan acceso a datos y sistemas confidenciales.

Los ejemplos de secretos incluyen, pero no se limitan a:

  • Credenciales de cuentas 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 las 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 utilizados en el protocolo OAuth, son elementos de información que permiten verificar la identidad de un usuario y determinar los recursos específicos a los que puede acceder.

  • Claves SSH (Secure Shell): los servidores SSH utilizan 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 los endpoints y establecen certificados y conexiones SSL/TLS cifrados, incluida la autenticación TLS mutua (mTLS).
  • Secretos arbitrarios: datos sensibles, que incluyen cualquier tipo de datos estructurados o no estructurados que puedan utilizarse para acceder a una aplicación o recurso.
  • Cadenas de conexión: cadena de texto que contiene las instrucciones que necesita un programa informático para conectarse con una fuente de datos, incluidas 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 la 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 renovar de forma segura las 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 identidades y accesos (IAM) que se centra en proteger cuentas y usuarios privilegiados.

Las otras tres capacidades de PAM incluyen:

  • Gestión privilegiada de cuentas y sesiones (PASM), que se encarga de la gestión del ciclo de vida de las cuentas privilegiadas, la gestión de contraseñas y la monitorizació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 nube (CIEM), que supervisa los permisos y derechos en los entornos de cloud computing.

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 a menudo utilizan múltiples herramientas de gestión de configuración u orquestación para gestionar ecosistemas digitales completos, flujos de trabajo y endpoints. Estas herramientas suelen utilizar procesos automatizados y scripts que requieren acceso a secretos para ejecutarse. Sin un servicio de gestión de secretos de nivel empresarial, el uso aleatorio de 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 sensibles 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 suele basarse en herramientas de gestión de secretos. Estas herramientas, que pueden implementarse en entornos 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 centralizada y estandarizada de secretos
  • Creación dinámica de secretos y rotación automatizada de secretos
  • Controles de acceso
  • Monitorización y auditoría de actividades

Gestión centralizada y estandarizada de secretos

Con un servicio de gestión de secretos de nivel empresarial, las organizaciones pueden gestionar varios 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 secretas".

Cuando un usuario autorizado necesita acceder a un sistema sensible, puede obtener el secreto correspondiente de la bóveda. 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 proliferación de secretos. 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 de un secreto dinámico sería proteger un recurso confidencial, como una base de datos o un entorno en la 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 malintencionados no puedan robar y reutilizar las claves de 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 zero trust, que “nunca confían, siempre verifican”, a menudo gobiernan 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.

Monitorización y auditoría de actividades

Muchos gestores 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 gestionen adecuadamente a lo largo de sus ciclos de vida. Esto permite a la organización realizar una monitorización casi en tiempo real de los eventos de acceso a secretos, incluidas las autenticaciones y autorizaciones al gestor de secretos.

Los gestores de secretos pueden denegar rápidamente los intentos no autorizados de ver o utilizar secretos y revocar el acceso cuando sea necesario. Esto puede contribuir a acelerar la corrección de los problemas antes de que los hackers, las amenazas internas y otros actores malintencionados puedan causar daños.

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

La monitorización 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 validar el uso aprobado de secretos o a detectar y rastrear amenazas potenciales.

Prácticas comunes de gestión de secretos

Además 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 acceden dentro de su entorno apropiado (por ejemplo, entornos de desarrollo, prueba y producción separados). Algunas organizaciones utilizan diferentes herramientas de gestión de secretos para cada entorno. Otras utilizan una solución central y aíslan los secretos de cada entorno en un segmento dedicado. Los secretos nunca salen de su entorno y están protegidos mediante 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 vulneraciones de datos.

  • Los secretos se rotan regularmente 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 monitoriza 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 ha actualizado. Las anomalías deben investigarse de inmediato. 

Desafíos de la gestión de secretos

A medida que los ecosistemas informáticos se vuelven más complejos, la gestión de secretos resulta cada vez más difícil de controlar con eficacia. Los desafíos comunes de la gestión de secretos pueden incluir:

Gestión descentralizada de secretos

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 monitoricen 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, incluidas las cadenas de herramientas de CI/CD, los repositorios de código, los dispositivos de Internet de las cosas (IoT), las plataformas de orquestación de contenedores como Kubernetes, los servidores de aplicaciones, los escáneres de vulnerabilidades y las plataformas de automatización robótica de procesos (RPA).

Rotación poco frecuente 

La rotación periódica de secretos puede ayudar a evitar robos y abusos, pero la rotación puede ser incoherente o ineficaz sin un sistema de gestión de secretos. Si un secreto permanece inalterado durante demasiado tiempo, un pirata informático podría desbloquearlo mediante conjeturas de ensayo 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 que se produzca una filtración.

Expansión secreta

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 servicios en la nube.

Las organizaciones pueden tener miles, incluso millones, de secretos en todas sus aplicaciones nativas en 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, como 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