
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.
Una búsqueda en Github de las consultas correctas abre muchos guiones interesantes con secretosMuy 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).
Un ejemplo de un secreto dejado en el código: una clave privada para conectarse a la plataforma SaaSUn 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
Geografía de las instalaciones disponibles de la plataforma SonarQube.
Número de instalaciones de SonarQube por paísSi observa en Github cualquier secreto relacionado con SonarQube, puede encontrar pequeños scripts que se utilizan para conectar y controlar el escaneo.
Scripts que (posiblemente) contienen secretos para conectarse a la plataformaSi 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.
Claves responsables de transferir la información de la cuenta en la plataformaCon 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.
Leímos la documentación, realizamos una nueva solicitud, recibimos un problema más relevanteSecrets 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:
Proceso de búsqueda de secretosPara 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!