Scraping Github: en busca de "secretos" para desarrollar

imagen

Al desarrollar un producto de software o un servicio SaaS basado en la nube, es bastante difícil rastrear las actividades de terceros de todos los especialistas involucrados en el proceso de desarrollo. Simplemente abra Github, ingrese "<company_domain_name.com> pass" en la búsqueda y evalúe los resultados. En el caso de que Github muestre repentinamente algo interesante en su entrega, consideraremos escenarios que pueden ayudar a los atacantes a interrumpir el proceso comercial de su empresa. Y si Github sigue en silencio, consideraremos opciones alternativas para atacar el ciclo de desarrollo de productos, en el que no solo los desarrolladores, sino incluso los ingenieros de seguridad, pueden convertirse en el punto de entrada a la infraestructura.

Desguace de Github


Con las consultas de búsqueda correctas, puede encontrar todo tipo de fragmentos de código que contienen credenciales para conectarse a la infraestructura de la empresa, que utilizan los desarrolladores y los ingenieros de control de calidad. Sin embargo, no solo Github puede ser examinado en busca de secretos. La técnica de estudiar repositorios públicos para secretos (datos de cuenta, claves privadas, etc.) le permite abrir el acceso a lugares interesantes en la aplicación incluso antes de que comience su análisis de seguridad directo.

Teniendo en cuenta el hecho de que muchas empresas de TI de productos con niveles de madurez completamente diferentes (desde el inicio hasta el negocio empresarial) involucran a varios contratistas en su ciclo de desarrollo, la probabilidad de fuga de datos valiosos a los repositorios públicos está creciendo. Cualquier experto involucrado en el ciclo de desarrollo conlleva ciertos riesgos para el producto.

Entonces, por ejemplo, en el proceso de búsqueda de fragmentos de código fuente que contienen el dominio de un producto SaaS, se pueden encontrar fragmentos de pruebas automáticas que contienen credenciales privilegiadas para conectarse a la plataforma. Y para asegurarse de que este ejemplo no sea hipotético, sino bastante real, solo vaya a Techcrunch, busque el nombre de alguna compañía que proporcione el producto SaaS y busque su dominio en el github.

Abrimos noticias sobre startups, vemos muchas billeteras y plataformas de blockchain, seleccionamos cualquier startup con un nombre elegante y buscamos su dominio en el github. Encontramos muchos secretos en diferentes scripts para conectarnos a la plataforma.

imagen
Una búsqueda en Github de las consultas correctas abre muchos guiones interesantes con secretos

Muy a menudo, los secretos se encuentran en los siguientes repositorios:

  • pruebas automáticas de código que los ingenieros de control de calidad respaldan en sus repositorios públicos personales;
  • repositorios de organizaciones contratantes responsables de integrar a los clientes con el producto;
  • Repositorios personales de desarrolladores que respaldan sus herramientas internas;
  • guiones de instalación del producto y archivos de microservicio esqueleto utilizados por los contratistas responsables de instalar y mantener el producto (operaciones).

imagen
Un ejemplo de un secreto dejado en el código: una clave privada para conectarse a la plataforma SaaS

Un ejemplo de secretos para ayudar a un atacante a comprometer un producto o su usuario:

  • credenciales de conexión (ejemplo de consultas de búsqueda: "nombre_producto + paso", "nombre_dominio + inicio de sesión");
  • claves y certificados privados (ejemplo de una consulta de búsqueda: "nombre_dominio + privado").

Secretos de los ingenieros de seguridad


Alguien de expertos en seguridad ahora exclamó: "¡Pero si los desarrolladores hubieran usado Hashicorp Vault, entonces estos problemas no hubieran sido!" Sí, bajo ciertas condiciones, tales soluciones para la gestión secreta son efectivas. Sin embargo, a veces, incluso los profesionales de seguridad cometen errores.

Tome las mejores soluciones comerciales para el análisis de código estático para vulnerabilidades (SAST). Entre estos principales, es probable que haya productos grandes y costosos que representan una plataforma completa para la integración en los procesos de desarrollo de CI / CD y tienen API para scripts de automatización de terceros.

SonarQube es un ejemplo de una plataforma de análisis de calidad y seguridad de código. Su popularidad está indicada por la cantidad de instalaciones que se pueden encontrar en Shodan con una sola solicitud:
puerto: 9000 sonarqube

imagen
Geografía de las instalaciones disponibles de la plataforma SonarQube.

imagen
Número de instalaciones de SonarQube por país

Si observa en Github cualquier secreto relacionado con SonarQube, puede encontrar pequeños scripts que se utilizan para conectar y controlar el escaneo.

imagen
Scripts que (posiblemente) contienen secretos para conectarse a la plataforma

Si mira la documentación oficial de SonarQube, puede encontrar una descripción del formato para iniciar tareas desde la CLI. En particular, una de las claves es responsable de transmitir datos sobre la cuenta en nombre de la cual se ejecutará el comando.

imagen
Claves responsables de transferir la información de la cuenta en la plataforma

Con esta información, puede obtener resultados de búsqueda más relevantes. Las consultas de búsqueda que contienen "sonar + inicio de sesión" o "sonar + contraseña" le permiten encontrar scripts de automatización que son utilizados no solo por los desarrolladores, sino también directamente por los comandos de seguridad.

imagen
Leímos la documentación, realizamos una nueva solicitud, recibimos un problema más relevante

Secrets Search Automation


Puede buscar una filtración de secretos en el repositorio oficial de la empresa, o en los repositorios no oficiales de sus empleados o contratistas (y tal vez usuarios). El proceso de encontrar secretos en Github o en otros repositorios puede ilustrarse de la siguiente manera:

imagen
Proceso de búsqueda de secretos

Para automatizar estas acciones, hay muchas utilidades y scripts, por lo que se recomienda no reinventar la rueda. Por ejemplo, puede tomar las siguientes herramientas:

  • gitGrabber (https://github.com/hisxo/gitGraber): permite el monitoreo en tiempo real de Github y otros servicios en busca de secretos. Adecuado para la tarea de monitorear la aparición de secretos para consultas de búsqueda dadas.
  • gitLeaks (https://github.com/zricethezav/gitleaks) - una herramienta para monitorear repositorios específicos para la filtración de secretos. Excelente para realizar tareas de monitoreo del repositorio oficial de la empresa.

El uso de estas utilidades junto con consultas que son relevantes para sus propósitos le permitirá organizar un sistema para monitorear la filtración de secretos en repositorios públicos. Al mismo tiempo, como los colegas de AppSec señalaron correctamente en los comentarios en Twitter , para mantener el secreto en secreto, debe implementar y usar soluciones de gestión secreta. Por ejemplo, Hashicorp Vault, que está dedicado a un material separado.

Investigadores, búsqueda exitosa! Para los desarrolladores, ¡commits seguros!

Source: https://habr.com/ru/post/484462/


All Articles