Una persona sostiene una llave

Detección de secretos con IA: una guía para desarrolladores

Definición de la detección de secretos

La detección de secretos es el proceso de encontrar y marcar datos confidenciales conocidos como “secretos” en bases de código u otras ubicaciones dentro de entornos de desarrollo de software. Esta capa de defensa automatizada ayuda a garantizar que ninguna información confidencial se codifique o se introduzca en el código fuente en una forma fácilmente legible o sin cifrar.

La detección de secretos sirve como parte de un enfoque de estrategia de integración de pruebas, seguridad y calidad desde las etapas más tempranas del ciclo de vida que impulsa la seguridad más temprano en el proceso de desarrollo. Los secretos pueden extenderse más allá del código, lo que aumenta el riesgo de exposición a incidentes de seguridad. La protección automatizada mediante la detección de secretos puede ayudar a proteger los flujos de trabajo de los desarrolladores a escala.

¿Qué son los secretos?

En el ámbito de la seguridad de las aplicaciones (AppSec), los secretos son datos digitales que otorgan acceso a usuarios humanos o a identidades no humanas, como aplicaciones, dispositivos o cargas de trabajo, y les permiten comunicarse o realizar acciones. Debido a su naturaleza delicada, los secretos deben mantenerse confidenciales.

Estos son algunos tipos comunes de secretos:

  • Los datos biométricos incluyen rasgos físicos y de comportamiento inherentes a una persona (como sus rasgos faciales, huellas dactilares, voz o incluso su forma de caminar) que pueden verificar su identidad.

  • Los certificados digitales y sus claves privadas asociadas se utilizan para autenticar los endpoints y establecer canales de comunicación seguros.

  • Las credenciales de los proveedores de servicios en la nube se pueden utilizar para acceder a plataformas de computación en la nube como AWS, Azure, Google Cloud e IBM Cloud.

  • Las cadenas de conexión son cadenas de texto que contienen instrucciones para conectarse a una fuente de datos.

  • Las credenciales de bases de datos son combinaciones de nombre de usuario y contraseña que permiten acceder a las bases de datos.

  • Las credenciales de la cuenta de servicio permiten que las aplicaciones y los flujos de trabajo automatizados accedan e interactúen con los sistemas operativos.

  • Las claves SSH (Secure Shell) se utilizan para autenticar entidades que acceden a servidores y otras infraestructuras.

  • Las combinaciones de nombre de usuario y contraseña consisten en cadenas de caracteres que autentican el acceso de un usuario a un sistema.

Por qué es importante la detección de secretos

Los secretos son objetivos principales para los actores de amenazas. Pueden emplear bots para recolectar un token expuesto, una credencial filtrada o una configuración incorrecta en un entorno nativo de la nube. Los atacantes explotan estos secretos para obtener acceso no autorizado a aplicaciones y sistemas. Dado que el acceso se obtiene a través de credenciales legítimas, puede ser más difícil de detectar y puede pasar desapercibido durante largos periodos.

Esto convierte la detección de secretos en un componente crucial de la estrategia de ciberseguridad de una empresa. La detección de secretos ayuda a las organizaciones a:

  • Evitar el secuestro de cuentas y la escalada de privilegios: los hackers pueden usar credenciales filtradas para escalar sus privilegios. Al contar con privilegios elevados, pueden modificar la configuración del sistema, interrumpir el funcionamiento de los servidores y la infraestructura, ejecutar comandos, instalar malware o tomar el control de los activos.

  • Prevenir filtraciones de datos: los actores maliciosos pueden explotar los secretos expuestos para robar información personal confidencial o datos corporativos confidenciales. Estas filtraciones de datos pueden ser costosas y provocar pérdidas financieras, una disminución de la confianza del cliente y daños a la reputación.

  • Reducir las vulnerabilidades: los secretos expuestos son puertas abiertas. Ubicarlos permite a las empresas eliminar proactivamente estas vulnerabilidades, cerrando la puerta a ciberataques exitosos.

Cómo funciona la detección de secretos

El proceso comienza con el escaneo de secretos, en el que las herramientas de detección de secretos rastrean repositorios de código y recursos relacionados en busca de secretos expuestos. Luego, estas herramientas generan alertas o informes para cualquier secreto identificado, incluido el tipo de secreto y dónde se encuentra. Los equipos de desarrollo y los equipos de seguridad pueden aprovechar estas alertas o informes para informar los pasos de corrección, como mover secretos a una solución de gestión de secretos. Estas soluciones ayudan a automatizar, centralizar y agilizar la creación, el uso, la rotación y la protección de secretos.


La detección de secretos requiere una combinación de métodos para identificar con precisión los secretos en todos los repositorios:

  • Coincidencia de patrones

  • Escaneo de diccionarios

  • Análisis de entropía

Coincidencia de patrones

Los algoritmos de coincidencia de patrones buscan cadenas que coincidan con los formatos estándar de secretos. También emplean expresiones regulares, que son patrones de búsqueda compuestos por secuencias de caracteres.

Este método suele ser eficaz para secretos que siguen una forma predefinida, como tokens de acceso para servicios en la nube o claves API. Sin embargo, el escaneo de secretos mediante expresiones regulares (también conocidas como regex) puede ser lento, y los secretos que tienen una composición aleatoria pueden pasar desapercibidos.

Escaneo de diccionarios

En la detección de secretos, los diccionarios son fuentes de datos que contienen secretos conocidos. Estos diccionarios se pueden utilizar como referencia al buscar secretos.

El escaneo de diccionarios ayuda a determinar si un secreto está vigente o en desuso. Pero es posible que no pueda detectar ningún secreto que no esté dentro del diccionario.

Análisis de entropía

La entropía mide la aleatoriedad o imprevisibilidad de los datos. Cuanto mayor sea la entropía, más aleatorios serán los datos y más difícil será predecirlos. Por lo tanto, el análisis de entropía evalúa las secuencias de caracteres en busca de atributos de aleatoriedad.

Este método ayuda a descubrir posibles secretos que no se adhieren a patrones conocidos, como las claves de cifrado. También puede revelar nuevos secretos o secretos de alta entropía.

Herramientas para la detección de secretos

Hay muchas opciones para sistemas de detección de secretos. Al seleccionar la opción adecuada, las empresas deben considerar qué tan precisa es una solución, la profundidad y amplitud de sus capacidades de detección, su escalabilidad en grandes bases de código y el ciclo de vida del desarrollo de software (SDLC), y si es compatible y se integra perfectamente con su pila tecnológica y flujos de trabajo de desarrollo de software.

Estas son algunas herramientas populares para detectar secretos:

Detección de secretos de GitLab

GitLab emplea un analizador para la detección de secretos específico para los entornos de GitLab. Ofrece estas funcionalidades:

  • La protección contra la publicación de secretos revisa los cambios antes de que se publiquen en GitLab y bloquea la publicación si se detectan secretos.

  • La detección de secretos de pipelines se ejecuta como un componente de los pipelines de CI/CD, inspeccionando las solicitudes de fusión y las confirmaciones en la rama predeterminada de un repositorio.

  • La detección de secretos del lado del cliente analiza los comentarios y las descripciones de los tickets y las solicitudes de fusión.

GitLab puede responder automáticamente a tipos particulares de secretos filtrados revocándolos. Para ciertos niveles de cuenta, la característica de detección de falsos positivos de GitLab Duo evalúa los secretos identificados para determinar posibles falsos positivos.

Gitleaks

Gitleaks es una herramienta de código abierto para detectar secretos en repositorios, directorios, archivos y otras entradas estándar de Git. Su motor de detección se basa en una combinación de coincidencia de patrones mediante análisis de regex y entropía.

Las organizaciones pueden crear conjuntos de reglas personalizados para sus propios secretos. También pueden ejecutar Gitleaks como hook de confirmación previa para detectar secretos en el código fuente antes de que entren en el repositorio.

HashiCorp Vault Radar

Vault Radar es el producto de detección de secretos de HashiCorp. Realiza escaneos continuos en tiempo real para obtener secretos e incluso información de identificación personal (PII), categorizándolos y clasificándolos en un panel para ayudar en los esfuerzos de corrección.

También se realizan escaneos para las confirmaciones de código, solicitudes de extracción y al agregar fuentes de datos. Las fuentes de datos compatibles incluyen repositorios y plataformas como Azure DevOps, Bitbucket, GitHub y GitLab, y plataformas de colaboración como Confluence, Jira y Slack.

Vault Radar proporciona orientación de corrección integrada para determinadas cuentas empresariales. Los secretos expuestos también pueden copiarse en Vault, la plataforma de gestión de secretos de HashiCorp, como parte del proceso de corrección.

 
IA para la detección de secretos

La inteligencia artificial puede mejorar la precisión y la eficiencia de las herramientas de detección de secretos, la mayoría de las cuales arrojan altas tasas de falsos positivos. Los modelos de IA pueden entrenarse para reconocer características que se correspondan con una gama más amplia de tipos de secretos, lo que los hace más dinámicos que las soluciones basadas en reglas.

Beneficios de detectar secretos con IA

Los equipos de desarrollo que implementan la IA para la detección de secretos pueden obtener estos beneficios:

  • Concientización del contexto: los modelos de IA pueden aprender el contexto que rodea a los secretos, incluyendo los comentarios del código, la estructura del código fuente y los nombres de las variables. Este análisis semántico y contextual permite que los modelos distingan mejor entre verdaderos secretos y datos de muestra o valores de prueba. Como tal, la concientización del contexto puede ayudar a aumentar las tasas de verdaderos positivos y reducir las tasas de falsos positivos.

  • Detección en tiempo real: algunas herramientas de detección de secretos impulsadas por IA se integran perfectamente con los IDE, marcando los secretos codificados a medida que los desarrolladores escriben código y detectando los secretos expuestos antes de que se confirmen o envíen a los repositorios.

  • Priorización y corrección automatizadas: la detección de secretos impulsada por IA puede automatizar cómo se priorizan los secretos señalados asignando una puntuación de riesgo basada en factores como la explotabilidad, el impacto, la ubicación y la gravedad. También puede sugerir arreglos, como reemplazar secretos expuestos con llamadas a una plataforma de gestión de secretos.

Técnicas basadas en IA para detectar secretos

La aplicación de la IA para la detección de secretos implica una serie de técnicas:

  • Aprendizaje ensamblado: el aprendizaje ensamblado combina varios clasificadores para aumentar la precisión de las predicciones.

Herramientas de detección de secretos impulsadas por IA

Una combinación de estrategias convencionales y basadas en la IA puede reforzar el proceso de detección de secretos. La comparación de patrones y el análisis de entropía pueden utilizarse para detectar secretos, mientras que las metodologías impulsadas por IA validan los secretos detectados para eliminar los falsos positivos.

Estos son algunos ejemplos de soluciones de detección de secretos que utilizan IA:

GitGuardian

La plataforma de seguridad de código GitGuardian escanea repositorios Git, pipelines de CI/CD, imágenes Docker y sistemas de colaboración como Confluence, Jira y Slack. Los desarrolladores pueden configurar hooks de confirmación previa e integrar el escaneo en IDE o usar la aplicación de línea de comandos de GitGuardian.

El motor de detección de secretos de GitGuardian consta de dos tipos de detectores de coincidencia de patrones: detectores específicos dedicados a encontrar tipos de secretos particulares, lo que lleva a una alta recuperación y precisión, y detectores genéricos para detectar lo que detectores específicos podrían pasar por alto. Varios modelos de machine learning también agregan funcionalidades valiosas, como filtrar secretos que probablemente sean falsos positivos y evaluar el contexto en torno a un secreto genérico para asignarle una categoría y un proveedor adecuados.

Otras características impulsadas por machine learning incluyen la agrupación de incidentes similares en secretos que comparten similitudes contextuales y la puntuación de riesgos que utiliza XGBoost (eXtreme Gradient Boosting), un conjunto de árbol de decisión que aprenden de los errores de los demás, para clasificar los secretos en función de múltiples señales de riesgo.

GitHub Secret Protection

GitHub Secret Protection es el propio sistema de escaneo de secretos de GitHub. Examina historiales completos de Git en todas las ramas de un repositorio y descripciones y comentarios en propuestas y solicitudes de extracción.

La función de protección de envíos del sistema analiza cada envío en tiempo real, bloqueando las confirmaciones que contienen información confidencial. Puede realizar comprobaciones automáticas de validez para verificar si un secreto detectado está activo y expuesto públicamente.

GitHub Secret Protection también utiliza GitHub Copilot para detectar secretos no estructurados comprometidos en repositorios.

IBM Bob

Bob es el asistente de programación de IA de IBM diseñado para apoyar la escritura de código fuente, depuración, refactorización, revisiones de código y documentación . Puede identificar vulnerabilidades de seguridad dentro del código y, junto con su capacidad integrada de detección de secretos, Bob facilita y fomenta la programación segura.

Bob puede programarse para adoptar un modo agéntico personalizado que busca secretos codificados, explica los riesgos de seguridad y recomienda acciones para proteger los secretos. Puede reemplazar los secretos con referencias a una plataforma de gestión de secretos como Vault de HashiCorp y enviar secretos codificados a Vault utilizando el Model Context Protocol (MCP).

AI Academy

El auge de la IA generativa para las empresas

Aprenda sobre el auge histórico de la IA generativa y lo que significa para las empresas.

Mejores prácticas en la detección de secretos

La detección de secretos puede mejorar la postura de seguridad de una empresa. Puede ser más eficaz cuando se incorpora a las fases de desarrollo, despliegue y mantenimiento del SDLC.

Estas son algunas de las mejores prácticas que los equipos de desarrollo pueden tener en cuenta al implementar la detección de secretos:

  • Definir los secretos más importantes

  • Ir más allá de las fuentes relacionadas con el código

  • Integrar la detección de secretos en los pipelines de CI/CD

  • Clasificar y rectificar

  • Educar a los equipos de desarrollo y DevOps

Definir los secretos más importantes

Las empresas pueden comenzar por definir qué constituye un secreto para ellas y clasificar estos secretos por importancia para informar el proceso de corrección. También deben auditar toda su cadena de suministro de software para determinar el alcance de la exposición de secretos.

Ir más allá de las fuentes relacionadas con el código

Los secretos pueden propagarse más allá de las fuentes relacionadas con el código. Esto significa que la detección también debe considerar otras posibles fuentes de exposición de secretos, como:

  • Archivos de configuración

  • Databases

  • Documentación

  • Registros

Integrar la detección de secretos en los pipelines de CI/CD

Los equipos de DevOps pueden implementar hooks de confirmación previa que hacen que el escaneo secreto sea un paso obligatorio antes de que los desarrolladores confirmen el código o inicien solicitudes de extracción y bloqueen cambios que contengan secretos codificados de forma fija. También deben verificar que las herramientas tengan la capacidad de escanear continuamente artefactos, crear registros y variables de entorno en busca de secretos expuestos antes de que lleguen a los entornos de tiempo de ejecución y producción.

Clasificar y rectificar

Las empresas deben establecer políticas sobre cómo se priorizan y corrigen los secretos expuestos. Las políticas de clasificación pueden incluir evaluaciones de los riesgos de seguridad que plantean los diferentes tipos de secretos y qué equipos son responsables de la clasificación.

Las políticas de corrección deben describir claramente las acciones a tomar, ya sea revocar o rotar secretos o reemplazarlos con llamadas a una plataforma de gestión de secretos. La automatización de estos arreglos puede ahorrar tiempo y dar como resultado respuestas rápidas, pero los arreglos deben probarse para verificar que ya no se pueda detectar un secreto.

 
Educar a los equipos de desarrollo y DevOps

Las organizaciones deben incluir la detección de secretos como parte de la capacitación de un equipo de desarrollo o DevOps en programación segura. Los equipos deben comprender los peligros de los secretos codificados o expuestos, qué pueden hacer para limitar esos peligros y cómo utilizar las herramientas necesarias para la detección de secretos.

Autores

Rina Diane Caballar

Staff Writer

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

Soluciones relacionadas
IBM Bob

Acelere la entrega de software con Bob, su socio de IA para un desarrollo seguro y consciente de la intención.

Explore IBM Bob
Soluciones de programación de IA

Optimice el desarrollo de software con herramientas confiables impulsadas por IA que minimizan el tiempo dedicado a escribir código, depurar, refactorizar código o completar código, y deje más espacio para la innovación.

Explore soluciones de programación de IA
Consultoría y servicios de IA

Reinvente los flujos de trabajo y las operaciones críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de consultoría de IA
Dé el siguiente paso

Aproveche la IA generativa y la automatización avanzada para crear código empresarial listo de forma más rápida. Bob crea modelos para aumentar el conjunto de habilidades de los desarrolladores, simplificando y automatizando sus esfuerzos de desarrollo y modernización.

  1. Descubra IBM Bob
  2. Explore soluciones de programación de IA