EDR NEWS te informa: Why Secrets in JavaScript Bundles are Still Being Missed

EDR NEWS te informa: Why Secrets in JavaScript Bundles are Still Being Missed

Las claves API filtradas ya no son inusuales, como tampoco lo son las violaciones que siguen. Entonces, ¿por qué los tokens sensibles siguen estando expuestos tan fácilmente?

Para descubrirlo, del intruso El equipo de investigación analizó lo que realmente cubren los escáneres de vulnerabilidades tradicionales y creó un nuevo método de detección de secretos para abordar las lagunas en los enfoques existentes.

La aplicación de esto a escala mediante el escaneo de 5 millones de aplicaciones reveló más de 42 000 tokens expuestos en 334 tipos de secretos, exponiendo una clase importante de secretos filtrados que no están siendo manejados bien por las herramientas existentes, particularmente en aplicaciones de una sola página (SPA).

En este artículo, desglosamos 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 tradicionales

El enfoque tradicional y totalmente automatizado para detectar secretos de aplicaciones es buscar en un conjunto de rutas conocidas y aplicar expresiones regulares para que coincidan con 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, en particular aquellas que requieren que el escáner revise la aplicación o se 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 archivos JavaScript
  3. Intento de identificar el patrón de un token de acceso personal de GitLab
  4. Si lo encuentra, realice una solicitud de seguimiento a la API pública de GitLab para verificar si el token está activo.
  5. Si está activo, plantee un problema

Este es claramente un ejemplo simple, pero este enfoque es efectivo. Especialmente cuando las plantillas definen muchos caminos donde los secretos comúnmente se exponen.

Este formato es típico de los escáneres de infraestructura, que normalmente no ejecutan un navegador sin cabeza. Cuando se le 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 representar la página, por ejemplo, https://portal.intruder.io/assets/index-DzChsIZu.js) no se realizarán utilizando este enfoque de la vieja escuela.

Pruebas dinámicas de seguridad de aplicaciones (DAST)

Las herramientas de prueba dinámica de seguridad de aplicaciones (DAST) son generalmente una forma más sólida de escanear aplicaciones y tienden a tener una funcionalidad más compleja, lo que permite un análisis completo de las aplicaciones, compatibilidad con la autenticación y una capacidad más amplia para detectar debilidades en la capa de aplicaciones. De hecho, los escáneres DAST pueden parecer la opción natural para la detección de secretos en las interfaces de aplicaciones. No debería haber nada que impida que un escáner DAST descubra archivos JavaScript disponibles o busque secretos dentro de ellos.

Sin embargo, este tipo de escaneo es más costoso, requiere una configuración profunda y, en realidad, generalmente está reservado para una pequeña cantidad de aplicaciones de alto valor. Por ejemplo, es poco probable que configure un escáner DAST para cada aplicación que tenga disponible en un amplio sector digital. Además, muchas herramientas DAST no implementan una gama suficientemente amplia de expresiones regulares en comparación con las herramientas de línea de comandos más conocidas.

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

Pruebas de seguridad de aplicaciones estáticas (SAST)

Las herramientas de prueba de seguridad de aplicaciones estáticas (SAST) analizan el código fuente para identificar vulnerabilidades y son una forma principal de detectar secretos antes de que el código llegue a producción. Son eficaces para detectar credenciales codificadas y prevenir algunas clases de exposición.

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

Creación de una verificació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 están realmente agrupando secretos en las interfaces de JavaScript y está lo suficientemente extendido como para justificar un enfoque automatizado?

Para descubrirlo, construimos un control automatizado y escaneó aproximadamente 5 millones de solicitudes. El resultado fue una gran cantidad de exposiciones, significativamente más de lo que esperábamos. Solo el archivo de salida tenía más de 100 MB de texto sin formato y contenía más de 42.000 tokens en 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 encontramos

Tokens del repositorio de código

Las exposiciones más impactantes que identificamos fueron tokens para plataformas de repositorio de código como GitHub y GitLab. En total, encontramos 688 tokens, muchos de los cuales todavía estaban activos y daban acceso completo 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 alcance del token era permitir el acceso a todos los repositorios privados dentro de la organización, incluidos los secretos de canalización de CI/CD para servicios posteriores como AWS y SSH.

Claves API de gestión de proyectos

Otra exposición importante involucró una clave API para Linear, una aplicación de gestión de proyectos, integrada directamente en el código de interfaz de usuario:

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

y mas

Identificamos secretos expuestos en una amplia gama de otros servicios, incluidos:

API de software CAD – acceso a datos de usuario, metadatos de proyectos y diseños de edificios, incluido un hospital

Acortadores de enlaces – capacidad de 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

Conversores de PDF – acceso a herramientas de generación de documentos de terceros

Plataformas de análisis e inteligencia de ventas – acceso a datos de contacto y de empresa eliminados

No envíes tus secretos

Los controles de mayúsculas a la izquierda son importantes. SAST, el escaneo de repositorios y las barreras de seguridad IDE detectan problemas reales y evitan clases enteras de exposición. Pero como muestra esta investigación, no cubren todos los caminos que puede seguir un secreto hasta su producción.

Los secretos introducidos durante la construcción y la implementación pueden eludir esas salvaguardas y terminar en el código de front-end, mucho después del punto en el que ya se han ejecutado los controles de desplazamiento hacia 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 vuelvan más comunes.

Es por eso que es necesario el rastreo de aplicaciones de una sola página para detectar secretos antes de que lleguen a producción. Hemos integrado la detección automatizada de secretos de SPA en Intruder para que los equipos puedan detectarlos. Obtenga más información.

¿Encontró interesante este artículo? Este artículo es una contribución de uno de nuestros valiosos socios. Síguenos en noticias de google, Gorjeo y LinkedIn para leer más contenido exclusivo que publicamos.



Fuente

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *