Artículo

Cómo implementar prácticas recomendadas de gestión de secretos con GitLab

Las prácticas inseguras de gestión de secretos representan un riesgo para las empresas encargadas de almacenar y proteger los datos de los clientes. Aprenda a reducir este riesgo y aumentar la confianza.

12 de marzo de 2024Lectura de 5 min

Las prácticas de gestión de secretos (SMP) inseguras representan un riesgo significativo para cualquier empresa, especialmente para las encargadas de almacenar y proteger los datos de sus clientes. Es un problema común y suele estar en el centro del registro de riesgos de una empresa. Los secretos filtrados pueden causar una pérdida de confidencialidad y potencialmente una filtración de datos. Este tipo de incidentes puede provocar pérdidas financieras significativas y una pérdida de confianza entre la base de clientes de una entidad.

Para muchas empresas, las SMP inseguras pueden deberse a la falta de experiencia o al desconocimiento de las herramientas y estrategias que existen para resolver este problema. Las SMP adecuadas pueden ayudar a reducir el riesgo potencial compromiso y aumentar la confianza en la estrategia de gestión de secretos de una organización. En este artículo, analizaremos las prácticas recomendadas de gestión de secretos, la capacidad de GitLab para respaldarlas y nuestra estrategia para mejorar las capacidades nativas de gestión de secretos de la plataforma de DevSecOps.

Desarrollo de una estrategia criptográfica

Todas las empresas necesitan una estrategia criptográfica como base para garantizar que los desarrolladores operen de manera estandarizada y que todas las aplicaciones y sus componentes se desarrollen de acuerdo con los requisitos criptográficos de la empresa.

Comprender los datos que procesa su empresa y el panorama de amenazas y tolerancia al riesgo de su empresa le ayudará a desarrollar una estrategia criptográfica sólida.

Generación de secretos

Los secretos, incluidos los tokens de acceso y las claves SSH, deben generarse utilizando dispositivos criptográficos, como los módulos de seguridad de hardware (HSM). Estos dispositivos ayudan a generar secretos criptográficamente seguros y los almacenan de una manera resistente a la manipulación y la intrusión.

Si bien confiar en los dispositivos físicos puede ser costoso e inaccesible desde el punto de vista operativo para las empresas, los principales proveedores de servicios en la nube ofrecen servicios de HSM en la nube, por ejemplo, AWS CloudHSM y GCP Cloud HSM.

Almacenamiento de secretos

Almacenar secretos es tan importante como generarlos. Los secretos generados deben almacenarse de una manera con la que se pueda tener un almacenamiento seguro a largo plazo y que permita a los usuarios recuperarlos y usarlos de forma segura cuando sea necesario.

Los principales proveedores de servicios en la nube, así como empresas de seguridad como HashiCorp, ofrecen servicios basados en la nube para almacenar y recuperar secretos de forma segura. Estos servicios permiten a los usuarios utilizar sin problemas los secretos dentro de sus procesos y código, eliminando así la necesidad de la codificación fija de secretos.

¿Cómo admite GitLab el almacenamiento de secretos?

GitLab proporciona soporte nativo para los siguientes proveedores de gestión de secretos:

  • Vault de HashiCorp
  • Secret Manager de Google Cloud
  • Azure Key Vault

Al configurar GitLab para conectarse con un proveedor de gestión de secretos, los secretos se solicitan explícitamente solo cuando lo necesita un job de CI. Cuando los jobs de CI no necesitan secretos, permanecen almacenados de forma segura en el entorno del servicio de gestión de secretos, lo que reduce la posibilidad de verse comprometidos. Además de la asistencia nativa para los proveedores de gestión de secretos anteriores, GitLab también ofrece autenticación OIDC para autenticarse frente a otros proveedores (por ejemplo, AWS Secret Manager). Este es un método mucho más seguro y preferido para almacenar secretos en comparación con el almacenamiento y el enmascaramiento de secretos como variables de CI/CD.

Uso secreto

Los secretos deben usarse para un solo propósito. La reutilización de secretos en diferentes aplicaciones o servicios aumenta el potencial de exposición y el impacto si los secretos se ven comprometidos.

Para reducir el potencial de exposición o actividad maliciosa, el acceso a los secretos debe controlarse teniendo en cuenta el principio de privilegio mínimo. El acceso solo debe otorgarse a las personas o servicios que requieran dicho acceso para respaldar su trabajo y actividades operativas.

¿Cómo admite GitLab el uso secreto?

GitLab proporciona a los administradores un sólido modelo de control de acceso basado en roles y también ofrece la posibilidad de crear roles personalizados, lo que permite a los administradores alinear los perfiles de acceso con sus estándares organizativos y tolerancia al riesgo.

GitLab también permite a los usuarios realizar detección de secretos para comprobar si hay secretos y credenciales comprometidos involuntariamente. Los usuarios de GitLab Ultimate pueden aplicar respuestas automáticas a secretos filtrados, como revocar el secreto, para mitigar el impacto de las credenciales filtradas.

Auditabilidad

El acceso y uso de secretos debe ser auditable y atribuible. En un escenario ideal, las personas no deberían poder ver secretos en texto sin formato, pero el estado de las operaciones de una empresa no siempre es ideal.

La gestión de secretos auditable y atribuible permite a los equipos de seguridad supervisar la actividad anómala o maliciosa y responder rápidamente a dicha actividad mediante una intervención automatizada y manual.

¿Cómo admite GitLab la auditabilidad?

Los eventos de auditoría de GitLab captan actividades relacionadas con tokens y claves que se crean dentro de GitLab. Algunos ejemplos son:

  • eventos de token de acceso personal
  • eventos de token de implementación
  • eventos de token de agente de clúster

Estas actividades se guardan en la base de datos y también están disponibles para la transmisión de eventos de auditoría para los clientes de GitLab Ultimate.

Próximamente: Secret Manager de GitLab

GitLab planea lanzar una experiencia nativa de gestión de secretos a finales de 2024. Secret Manager de GitLab es una solución multiinquilino basada en la nube y será accesible tanto para GitLab.com como para los clientes Self-Managed a través de nuestro servicio Cloud Connector. Este nuevo servicio ofrece una interfaz fácil de usar, consistente con la interfaz actual de variables de CI/CD, lo que hace que la adopción sea más fácil que la de un producto de terceros con una curva de aprendizaje mínima. Secret Manager de GitLab garantizará la seguridad y protección de la información confidencial en sus pipelines de CI.

Para obtener más información o preguntas sobre Secret Manager de GitLab, visite nuestra épica MVC y deje un comentario.

Próximos pasos

Seguridad de las aplicaciones en la era digital

Lea los resultados de la encuesta de más de 5000 profesionales de DevSecOps en todo el mundo para obtener información sobre cómo las organizaciones están lidiando con el aumento de las superficies de ataque y cambiando el comportamiento hacia la seguridad y la IA.

Leer el informe
Frequently asked questions
Conclusiones clave
  • La gestión insegura de secretos conlleva riesgos de filtraciones de datos; la integración nativa de GitLab mejora la seguridad.
  • La gestión de secretos auditable y atribuible permite a los equipos de seguridad supervisar actividades anómalas o maliciosas y responder rápidamente.
  • GitLab admite el almacenamiento y el uso de secretos con controles de acceso y herramientas de detección sólidos.

Boletín The Source

Manténgase al día con información sobre el futuro del desarrollo de software.