¿Qué es el escaneo secreto?

El análisis de secretos es la práctica de ejecutar análisis automatizados en repositorios de código, canalizaciones de ejecución, archivos de configuración, confirmaciones y otras fuentes de datos para evitar posibles amenazas de seguridad planteadas por los secretos expuestos. 

El análisis de secretos forma parte del ámbito más amplio de la gestión de secretos, que abarca los procesos y las herramientas implicados en el almacenamiento y la protección de secretos de entidades no autorizadas. 

¿Qué son los secretos?

Los secretos son credenciales que se utilizan para autenticarse u obtener acceso autorizado para realizar acciones confidenciales en los sistemas de TI de una empresa. 

Los proyectos de software a menudo dependen de componentes de terceros: contenedores y plataformas de orquestación de contenedores, herramientas DevOps y CI/CD, bases de datos, repositorios, etcétera. Para conectarse a estos servicios de terceros y permitir la comunicación entre varios componentes de la aplicación, el entorno de software necesita una forma de autenticar el servicio o el componente de la aplicación; Esto suele ocurrir en forma de "secreto", es decir, una clave, una contraseña, un certificado o un token.

¿En qué se diferencian los secretos de los datos confidenciales? 

A diferencia de los datos confidenciales (por ejemplo, números de la seguridad social e información de tarjetas de crédito), que normalmente pertenecen a los usuarios finales, los secretos pertenecen a las empresas. Algunos ejemplos de secretos son:

  • Contraseñas LDAP

  • Certificados PKI/TLS

  • Claves de cifrado

  • Credenciales de contenedor

  • Claves SSH

  • Tokens de API

Los desarrolladores utilizan secretos para autenticar y establecer la comunicación entre sus sistemas y otros servicios en la nube, o para controlar el acceso humano y de máquinas a sistemas confidenciales.

As digital authentication credentials, secrets—if exposed—can grant adversaries unauthorized access to a company’s code bases, databases, and other sensitive digital infrastructure. 

¿Por qué es importante el escaneo de secretos?

Como credenciales de autenticación digital, los secretos, si se exponen, pueden otorgar a los adversarios acceso no autorizado a las bases de código, bases de datos y otra infraestructura digital confidencial de una empresa. 

Desafortunadamente, proteger los secretos no es una tarea fácil. Si bien los secretos deben estar encriptados y estrictamente controlados, también deben ser accesibles para los equipos de ingeniería, las aplicaciones y en todo un entorno. 

En consecuencia, en un momento u otro durante el ciclo de vida del desarrollo de software (SDLC), los secretos a menudo encuentran su camino en espacios potencialmente expuestos: credenciales codificadas en tuberías de integración continua y entrega continua (CI/CD), repositorios de código, Sistemas de control de versiones (VCS), software de seguridad, entornos de contenedorización o canales de comunicación en el lugar de trabajo (por ejemplo, Slack, Teams). 

Esto sucede porque los desarrolladores se centran en escribir y enviar código de calidad a una velocidad vertiginosa. Por lo tanto, cuando el software aún se encuentra en las etapas de desarrollo y prueba, pueden considerar que es ideal almacenar secretos en máquinas locales para acelerar el desarrollo y facilitar bucles de retroalimentación más rápidos. 

Ingrese al escaneo de secretos. Analicemos las cuatro razones principales por las que los desarrolladores deberían implementarlo. 

Protección de datos confidenciales y secretos 

Para salvaguardar Datos confidenciales, lo encriptamos, en tránsito y en reposo, y lo almacenamos en bases de datos. A continuación, los secretos se utilizan para mantener las bases de datos, limitando el acceso solo a personas y máquinas autorizadas. 

Por ejemplo, para confirmar los pares de nombre de usuario/contraseña introducidos por los usuarios finales, su portal de inicio de sesión debe establecer una conexión automática con su base de datos. Esta conexión se autentica con un secreto, lo que autoriza el acceso del portal a la información confidencial de la base de datos. Si este secreto se filtra en el camino o termina en un espacio no seguro, personas no autorizadas pueden acceder, robar, exponer o cifrar los datos para ataques de ransomware.

El Incidente de exposición de datos de Microsoft 2023 El descubrimiento del equipo de investigación de Wiz es una demostración perfecta de la importancia del escaneo secreto. En un intento de publicar datos de entrenamiento basados en IA en GitHub, un equipo de investigación de Microsoft compartió accidentalmente un enlace que exponía 38 TB de datos privados, incluidas claves privadas, secretos, contraseñas y más de 30.000 mensajes internos de Microsoft Teams, almacenados en una cuenta de almacenamiento de Microsoft Azure. 

Este incidente podría haberse evitado si el equipo hubiera examinado la cuenta en busca de secretos antes de publicar el enlace a GitHub.

Frustrar los ciberataques 

El Equipo de investigación de Wiz también encontró secretos olvidados en múltiples ubicaciones pasadas por alto en las canalizaciones de CI/CD, especialmente las capas base de imágenes de contenedores y los archivos de historial de bash de Linux. Los atacantes pueden aprovechar estos secretos expuestos para llevar a cabo ciberataques en varios escenarios. Los secretos olvidados pueden facilitar el movimiento lateral y Ejecución remota de código En los ataques a la cadena de suministro de software, permite a los hackers modificar los códigos fuente de una empresa, plantar código malicioso en artefactos listos para producción o manipular los procesos de compilación de imágenes. 

Al encontrar secretos olvidados o codificados antes de que salgan a la luz, las herramientas de escaneo de secretos ayudan a cortar de raíz varias formas de ciberatacantes. 

Many companies are subject to regulatory standards designed to protect end users’ sensitive personal, financial, and health-related information.  As secrets guard this data, any accidental release of secrets may result in a data breach that could result in hefty noncompliance fines. 

Mejorar el cumplimiento

Muchas empresas están sujetas a normas regulatorias diseñadas para proteger la información personal, financiera y relacionada con la salud confidencial de los usuarios finales.  Dado que los secretos protegen estos datos, cualquier divulgación accidental de secretos puede dar lugar a una violación de datos que podría dar lugar a fuertes multas por incumplimiento. 

El análisis de secretos puede ayudar a detectar y evitar que los secretos se vean comprometidos.

Protección contra daños a la reputación y pérdidas financieras

Las brechas de seguridad y los ciberataques causan un importante daño a la reputación, lo que repercute negativamente en los ingresos y aumenta los costes, como las multas, los honorarios legales y los acuerdos. 

El escaneo proactivo y la protección de secretos ayudarán a evitar consecuencias tan graves. 

¿Cómo funciona el escaneo de secretos?

El escaneo de secretos implica algunos pasos, realizados con herramientas y métodos especializados. Así es como funciona. 

Paso 1: Escaneo

Una vez que un escáner secreto está instalado y conectado a todas las partes relevantes de su pila de TI, realiza escaneos en tiempo real o en reposo de su pila. 

Los análisis en tiempo real se basan en eventos, activados por solicitudes de incorporación de cambios en el sistema de control de versiones (VCS) o cambios de código en cualquiera de los siguientes componentes de la pila:

  • Código: Repositorios de código, archivos de configuración 

  • Recipientes: Imágenes de contenedor y arquitectura de Kubernetes

  • Pila de tecnología DevOps: Construir sistemas, sistemas de ticketing, canales de comunicación, sistemas de gestión del conocimiento, software de seguimiento de errores, pila de soporte, etcétera.

  • Canalizaciones de observabilidad: Software de observabilidad/registro y almacenes de datos

Los exámenes en reposo realizan análisis históricos de los mismos componentes a intervalos programados. 

Técnicas de escaneo de secretos

Como los secretos a menudo están incrustados en código, registros, etcétera, identificarlos puede ser complicado. En la siguiente tabla se detallan cuatro técnicas de escaneo de secretos.

If the scanner detects a potential secret, it either corresponds with the service provider or extracts metadata within your stack to identify the service that the secret pattern matches; it then detects if it is still valid. 

Paso 2: Identificación y verificación de secretos

Si el escáner detecta un secreto potencial, se corresponde con el proveedor de servicios o extrae metadatos dentro de su pila para identificar el servicio con el que coincide el patrón de secreto; A continuación, detecta si sigue siendo válido. 

Paso 3: Informes y alertas

Si se confirma una coincidencia, el escáner le notifica el secreto expuesto. Dependiendo de qué tan completo sea el utillaje, también puede proporcionar recomendaciones para resolver el problema. Nota: Asegúrese de que solo las partes autorizadas tengan acceso a este informe, ya que contendría datos confidenciales.

Herramientas de escaneo de secretos de código abierto

A continuación, exploramos cinco herramientas comunes de escaneo de secretos de código abierto.

Detección de secretos

Detect-secrets es un proyecto de Microsoft que analiza el historial de Git del proyecto mediante heurística y expresiones regulares.

Gitleaks scans repos, directories, files, and entire Git histories to detect past and present exposed secrets. It can be installed using Docker, Go, or Homebrew.

Gitleaks

Gitleaks escanea repositorios, directorios, archivos e historiales completos de Git para detectar secretos expuestos pasados y presentes. Se puede instalar usando Docker, Go o Homebrew.

Whispers scans static structured text files such as configs, XML, JSON, and Python3 for hard-coded secrets. Unlike the others, it doesn't scan code but instead parses known data formats and extracts key-value pairs to detect secrets. 

Susurros

Whispers analiza archivos de texto estructurados estáticos, como configs, XML, JSON y Python3 en busca de secretos codificados de forma rígida. A diferencia de los demás, no lo hace't escanea el código, sino que analiza los formatos de datos conocidos y extrae los pares clave-valor para detectar secretos. 

Git-secrets is an AWS command-line tool for scanning commits, commit messages, and “–no-ff” merges. 

Git-secrets

Git-secrets es una herramienta de línea de comandos de AWS para analizar confirmaciones, mensajes de confirmación y fusiones "–no-ff". 

Git-all-secrets is an aggregation of multiple secret scanners, including TruffleHog (a regular expression-based scanner) and repo-supervisor (a high entropy-based scanner). 

Git-todos-los-secretos

Git-all-secrets es una agregación de varios escáneres secretos, incluidos TruffleHog (un escáner basado en expresiones regulares) y repo-supervisor (un escáner basado en alta entropía). 

Secret scanning can be approached in a few different ways, including open-source and commercial options. Each brings strengths that can be valuable depending on your environment and use case.

¿Qué pasa con las herramientas propietarias?

El escaneo de secretos también se puede realizar utilizando herramientas patentadas. Las herramientas de código abierto tienen poco o ningún costo financiero, pero también es posible que no ofrezcan tanta cobertura como las herramientas propietarias. Por el contrario, las herramientas propietarias requieren diversos grados de compromiso financiero, pero suelen tener más funciones y ofertas. 

Independientemente de la que elija, asegúrese de buscar la técnica de escaneo que utiliza la herramienta; Por ejemplo, un escáner híbrido ayudará a reducir los falsos positivos y a detectar más tipos de secretos. Además, tenga en cuenta la reputación del proveedor y la capacidad de la herramienta para realizar monitoreo/alertas en tiempo real. Respuesta a incidentesy la priorización de riesgos.

6 mejores prácticas para la gestión de secretos 

Además de analizar los secretos, también es importante implementar las siguientes prácticas recomendadas para administrarlos correctamente.  

1. Almacene y cifre secretos mediante un administrador de secretos

Evite almacenar secretos en imágenes de contenedores, archivos de configuración, código y otros lugares desprotegidos para evitar la proliferación de secretos. En su lugar, utilice herramientas de administración de secretos dedicadas (por ejemplo, HashiCorp Vault o AWS Secrets Manager) que cifran los secretos en reposo y en tránsito. 

2. Adoptar la rotación de secretos (regulares) y los secretos dinámicos

La rotación de secretos implica cambiar periódicamente los secretos a intervalos preconfigurados o desencadenar manualmente un cambio. El uso de secretos dinámicos es una forma de implementar la rotación de secretos; A diferencia de los secretos estáticos, estos son de corta duración, lo que significa que caducan después de un período de tiempo específico o después de que se cumplan ciertas condiciones. 

La rotación regular de secretos limita la ventana de oportunidad de un hacker, lo que reduce la posibilidad de que los secretos comprometidos se utilicen para realizar ciberataques. 

3. Restringir el acceso a los secretos

Cree políticas de acceso secreto que sean coherentes en toda su pila y automatice su aplicación. Esto incluye la aplicación de la Principio de privilegio mínimo (PoLP), listas de control de acceso (ACL) y control de acceso basado en roles (RBAC); Esto limitará el acceso de los usuarios y las aplicaciones a los secretos, los datos y la infraestructura solo para ser necesario. 

Si una credencial se ve comprometida accidentalmente, PoLP, ACL y RBAC pueden ayudar a reducir la superficie de ataque, lo que limita la capacidad de un actor de amenazas para moverse lateralmente en su entorno.

4. Usar marcadores de posición

Evite codificar secretos de forma rígida, ya que es posible que tenga que compartir código en repositorios públicos. El incidente de Microsoft mencionado anteriormente es un ejemplo de esto. En lugar de secretos codificados, use Variables de entorno para hacer referencia a secretos en el código. 

5. Seguimiento del ciclo de vida de los secretos

Realice un seguimiento de los secretos actualmente en uso, revoque los secretos comprometidos y registre los eventos de acceso (quién está accediendo a qué y cuándo) en un registro de auditoría completo.

6. Implementación del análisis de la ruta de las amenazas

Elija una herramienta de escaneo de secretos con Análisis avanzado de la ruta de ataque; Esto detectará secretos, los correlacionará con los sistemas relevantes y le proporcionará un mapa claro de los recursos y sistemas en la ruta de ataque. 

Escaneo de secretos con Wiz

Código Wiz mejora sus esfuerzos de escaneo de secretos al detectar credenciales expuestas, claves de API e información confidencial en su base de código, lo que garantiza que se detecten antes de llegar a los entornos de producción.

Como parte de Wiz's Plataforma integral de seguridad en la nube, Wiz Code escanea todo su flujo de trabajo en busca de amenazas y vulnerabilidades utilizando 35+ marcos de cumplimiento compatibles en Terraform, CloudFormation, Ansible, Google Deployment Manager, ARM, Kubernetes, Helm y Docker. 

Wiz se integra automáticamente con los repositorios de código para: 

  • Analice los volúmenes del sistema y detecte los secretos expuestos, como las claves de acceso a la plataforma en la nube, los certificados de dominio y las claves SSH

  • Busque datos conocidos relacionados con secretos y extraiga metadatos para proporcionar contexto

  • Extraiga información sobre el algoritmo y la longitud de bits para vincular las claves privadas SSH a su configuración de claves autorizadas 

  • Extraiga detalles como asuntos, fechas de vencimiento y atributos importantes para vincular un certificado al recurso para el que se usa

  • Proporcionar gráficos de seguridad para rastrear posibles rutas de ataque 

  • Alertar a las partes interesadas cuando se detectan secretos 

Wiz implementa escáneres nativos de la nube para garantizar la velocidad, la eficiencia y el escaneo completo, una combinación poco común. 

Solicite un demo hoy para ver cómo Wiz puede ayudar a mantener tus secretos a salvo.