Las claves de API filtradas ya no son inusuales, ni tampoco lo son las infracciones que se producen a continuación. Entonces, ¿por qué los tokens sensibles siguen siendo expuestos con tanta facilidad?

Para averiguarlo, De un intruso Un equipo de investigación analizó lo que realmente cubren los escáneres de vulnerabilidad tradicionales y creó un nuevo método de detección de secretos para abordar las brechas en los enfoques existentes.

Al aplicar esto a gran escala escaneando 5 millones de aplicaciones, se descubrió que había más de 42 000 tokens expuestos en 334 tipos de secretos, lo que puso al descubierto una clase importante de secretos filtrados que las herramientas existentes no están gestionando bien, especialmente en las aplicaciones de una sola página (SPA).

En este artículo, analizamos los métodos de detección de secretos existentes y revelamos lo que encontramos cuando escaneamos millones de aplicaciones en busca de secretos ocultos en paquetes de JavaScript.

Métodos de detección de secretos establecidos (y sus limitaciones)

Detección de secretos tradicional

El enfoque tradicional y totalmente automatizado para detectar los secretos de las aplicaciones consiste en buscar en un conjunto de rutas conocidas y aplicar expresiones regulares para que coincidan con los formatos secretos conocidos.

Si bien este método es útil y puede detectar algunas exposiciones, tiene limitaciones claras y no detectará todos los tipos de fugas, especialmente aquellas que requieren que el escáner detecte la aplicación o la autentique.

Un buen ejemplo de esto es Plantilla de token de acceso personal GitLab de Nuclei . El escáner recibe una URL base, por ejemplo, https://portal.intruder.io/, lo que hace que la plantilla:

  1. Realice una solicitud HTTP GET a https://portal.intruder.io/
  2. Inspeccione la respuesta directa a esa única solicitud, ignorar otras páginas y recursos, como los archivos JavaScript
  3. Intento de identificar el patrón de un token de acceso personal de GitLab
  4. Si lo encuentras, haz una solicitud de seguimiento a la API pública de GitLab para comprobar si el token está activo
  5. Si está activo, plantea un problema

Este es claramente un ejemplo sencillo, pero este enfoque es eficaz. Especialmente cuando las plantillas definen muchas rutas en las que los secretos suelen quedar expuestos.

Este formato es típico de los escáneres de infraestructura, que no suelen ejecutar un navegador sin interfaz. Cuando se proporciona al escáner la URL base para escanear (por ejemplo, https://portal.intruder.io), las solicitudes posteriores que realizaría un navegador (como los archivos JavaScript necesarios para renderizar la página, por ejemplo, https://portal.intruder.io/assets/index-DzChsIZu.js) no se realizarán con este enfoque tradicional.

Pruebas dinámicas de seguridad de aplicaciones (DAST)

Las herramientas de pruebas dinámicas de seguridad de aplicaciones (DAST) suelen ser una forma más sólida de analizar las aplicaciones y suelen tener una funcionalidad más compleja, lo que permite el rastreo completo de las aplicaciones, la compatibilidad con la autenticación y una capacidad más amplia para detectar las debilidades de la capa de aplicación. De hecho, los escáneres DAST pueden parecer la opción natural para la detección de secretos en las interfaces de las aplicaciones. No debería haber nada que impida que un escáner DAST descubra los archivos JavaScript disponibles o busque los secretos que contienen.

Sin embargo, este tipo de escaneo es más caro, requiere una configuración profunda y, en realidad, suele reservarse para un número reducido de aplicaciones de alto valor. Por ejemplo, es poco probable que configure un escáner DAST para cada aplicación que tenga en el mercado digital. Además, muchas herramientas de DAST no implementan una gama suficientemente amplia de expresiones regulares en comparación con las conocidas herramientas de línea de comandos.

Esto deja una brecha clara que deberías está cubierto por el escáner de infraestructura tradicional, pero no lo está y, con toda probabilidad, tampoco lo están los escáneres DAST debido a limitaciones de implementación, presupuesto y mantenimiento.

Pruebas de seguridad de aplicaciones estáticas (SAST)

Las herramientas de pruebas de seguridad de aplicaciones estáticas (SAST) analizan el código fuente para identificar las vulnerabilidades y son una forma principal de detectar secretos antes de que el código llegue a la producción. Son eficaces a la hora de detectar credenciales codificadas de forma rígida y prevenir algunos tipos de exposición.

Sin embargo, descubrimos que los métodos SAST tampoco cubren el panorama completo y, una vez más, algunos secretos de los paquetes de JavaScript pasaron desapercibidos de una manera que el análisis estático pasaría por alto.

Creación de una comprobación de detección de secretos para paquetes de JavaScript

Cuando comenzamos esta investigación, no estaba claro qué tan común sería este problema. ¿Se incluyen realmente secretos en las interfaces de JavaScript? ¿Están lo suficientemente generalizados como para justificar un enfoque automatizado?

Para averiguarlo, construimos un control automático y escaneó aproximadamente 5 millones de solicitudes. El resultado fue un gran número de exposiciones, significativamente más de lo que esperábamos. Solo el archivo de salida tenía más de 100 MB de texto plano y contenía más de 42 000 fichas de 334 tipos de secretos diferentes.

No evaluamos completamente todos los resultados, pero entre las muestras que revisamos, identificamos una serie de exposiciones de alto impacto.

Lo que hemos encontrado

Tokens de repositorio de código

Las exposiciones más impactantes que identificamos fueron los tokens para plataformas de repositorios de código como GitHub y GitLab. En total, encontramos 688 tokens, muchos de los cuales seguían activos y permitían el acceso total a los repositorios.

En un caso, que se muestra a continuación, se incrustó un token de acceso personal de GitLab directamente en un archivo JavaScript. El objetivo del token era permitir el acceso a todos los repositorios privados de la organización, incluidos los secretos de canalización de CI/CD para servicios posteriores, como AWS y SSH.

Claves de API de administración de proyectos

Otra exposición importante tuvo que ver con una clave de API para Linear, una aplicación de gestión de proyectos, integrada directamente en el código de interfaz:

El token expuso toda la instancia de Linear de la organización, incluidos los tickets internos, los proyectos y los enlaces a los servicios posteriores y los proyectos de SaaS.

Y más

Identificamos los secretos expuestos en una amplia gama de otros servicios, entre los que se incluyen:

API de software CAD — acceso a los datos de los usuarios, los metadatos del proyecto y los diseños de edificios, incluido un hospital

Acortadores de enlaces — capacidad para crear y enumerar enlaces

Plataformas de correo electrónico — acceso a listas de correo, campañas y datos de suscriptores

Webhooks para plataformas de chat y automatización — 213 Slack, 2 Microsoft Teams, 1 Discord y 98 Zapier, todos ellos activos

Convertidores de PDF — acceso a herramientas de generación de documentos de terceros

Plataformas de análisis e inteligencia de ventas — acceso a datos extraídos de la empresa y de contacto

No envíes tus secretos

Los controles de la tecla Mayús a la izquierda son importantes. El SAST, el escaneo de repositorios y las barreras de protección del IDE detectan problemas reales y evitan toda clase de exposición. Sin embargo, como muestra esta investigación, no cubren todos los caminos que un secreto puede llevar a la producción.

Los secretos introducidos durante la creación y la implementación pueden eludir esas medidas de seguridad y terminar en el código de la interfaz, mucho después del punto en el que ya se han ejecutado los controles de la tecla Mayús a la izquierda. Y este problema no hará más que crecer a medida que la automatización y el código generado por IA se hagan más comunes.

Por eso es necesario crear arañas de aplicaciones de una sola página para detectar los secretos antes de que lleguen a la fase de producción. Hemos incorporado la detección automática de secretos de SPA en Intruder para que los equipos puedan detectarlos. Obtenga más información.

¿Te ha parecido interesante este artículo? Este artículo es una contribución de uno de nuestros valiosos socios. Síguenos en Noticias de Google , Twitter y LinkedIn para leer más contenido exclusivo que publicamos.