Scraping Github: Procurando por "segredos" para desenvolver

imagem

Ao desenvolver um produto de software ou um serviço SaaS baseado em nuvem, é bastante difícil rastrear as atividades de terceiros de todos os especialistas envolvidos no processo de desenvolvimento. Basta abrir o Github, digite "<nome_do_domínio_empresa.com> passe" na pesquisa e avalie os resultados. Caso o Github realmente mostre algo interessante em sua entrega, consideraremos cenários que podem ajudar os invasores a interromper o processo de negócios da sua empresa. E se o Github ainda estiver silencioso, consideraremos opções alternativas para atacar o ciclo de desenvolvimento do produto, no qual não apenas os desenvolvedores, mas também os engenheiros de segurança, podem se tornar o ponto de entrada para a infraestrutura.

Sucateamento no Github


Com as consultas de pesquisa corretas, é possível encontrar todos os tipos de fragmentos de código que contêm credenciais para conectar-se à infraestrutura da empresa, usados ​​por desenvolvedores e engenheiros de controle de qualidade. No entanto, não apenas o Github pode ser examinado em busca de segredos. A técnica de estudar repositórios públicos de segredos (dados da conta, chaves privadas etc.) permite abrir o acesso a locais interessantes no aplicativo mesmo antes do início da análise de segurança direta.

Considerando o fato de que muitas empresas de TI de produtos com níveis de maturidade completamente diferentes (do início ao negócio da empresa) envolvem vários prestadores de serviços em seu ciclo de desenvolvimento, a probabilidade de vazamento de dados valiosos para repositórios públicos está aumentando. Qualquer especialista envolvido no ciclo de desenvolvimento acarreta certos riscos para o produto.

Assim, por exemplo, no processo de pesquisa de fragmentos de código-fonte contendo o domínio de um produto SaaS, podem ser encontrados fragmentos de autoteste contendo credenciais privilegiadas para conexão à plataforma. E para garantir que este exemplo não seja hipotético, mas bastante real, basta ir ao Techcrunch, encontrar o nome de alguma empresa que fornece o produto SaaS e procurar seu domínio no github.

Abrimos notícias sobre startups, vemos muitas carteiras e plataformas blockchain, selecionamos qualquer startup com um nome sofisticado e procuramos seu domínio no github. Conhecemos muitos segredos em diferentes scripts para conectar-se à plataforma.

imagem
Uma pesquisa no Github pelas consultas corretas abre muitos scripts interessantes com segredos

Na maioria das vezes, os segredos são encontrados nos seguintes repositórios:

  • codificar testes automáticos que os engenheiros de controle de qualidade fazem backup em seus repositórios públicos pessoais;
  • repositórios de organizações contratantes responsáveis ​​pela integração de clientes com o produto;
  • Repositórios pessoais de desenvolvedores que fazem backup de suas ferramentas internas;
  • scripts de instalação do produto e arquivos de microsserviço de esqueleto usados ​​pelos contratados responsáveis ​​pela instalação e manutenção do produto (operações).

imagem
Um exemplo de segredo deixado no código: uma chave privada para conectar-se à plataforma SaaS

Um exemplo de segredos para ajudar um invasor a comprometer um produto ou seu usuário:

  • credenciais de conexão (exemplo de consultas de pesquisa: “product_name + pass”, “domain_name + login”);
  • chaves e certificados privados (exemplo de uma consulta de pesquisa: "domain_name + private").

Segredos dos engenheiros de segurança


Alguém de especialistas em segurança agora exclamou: "Mas se os desenvolvedores usassem o Hashicorp Vault, esses problemas não teriam acontecido!" Sim, sob certas condições, essas soluções para gerenciamento secreto são eficazes. No entanto, às vezes, mesmo os profissionais de segurança cometem erros.

Adote as principais soluções comerciais para análise de código estático para vulnerabilidades (SAST). Entre essas opções, provavelmente haverá produtos grandes e caros que representam uma plataforma completa para integração nos processos de desenvolvimento de CI / CD e possuem APIs para scripts de automação de terceiros.

O SonarQube é um exemplo de plataforma de análise de qualidade e segurança de código. Sua popularidade é indicada pelo número de instalações que podem ser encontradas em Shodan com uma única solicitação:
porto: 9000 sonarqube

imagem
Geografia das instalações disponíveis da plataforma SonarQube

imagem
Número de instalações SonarQube por país

Se você procurar algum segredo relacionado ao SonarQube no Github, poderá encontrar pequenos scripts usados ​​para conectar e controlar a verificação.

imagem
Scripts que (possivelmente) contêm segredos para conectar-se à plataforma

Se você consultar a documentação oficial do SonarQube, poderá encontrar uma descrição do formato para iniciar tarefas a partir da CLI. Em particular, uma das chaves é responsável pela transmissão de dados sobre a conta em nome da qual o comando será executado.

imagem
Chaves responsáveis ​​pela transferência de informações da conta na plataforma

Usando essas informações, você pode obter resultados de pesquisa mais relevantes. As consultas de pesquisa que contêm "sonar + login" ou "sonar + senha" permitem encontrar scripts de automação que são usados ​​não apenas pelos desenvolvedores, mas também diretamente pelos comandos de segurança.

imagem
Lemos a documentação, fizemos uma nova solicitação, recebemos um problema mais relevante

Segredos Search Automation


Você pode procurar por um vazamento de segredos no repositório oficial da empresa ou nos repositórios não oficiais de seus funcionários ou contratados (e talvez usuários). O processo de encontrar segredos no Github ou em outros repositórios pode ser ilustrado da seguinte maneira:

imagem
Processo de pesquisa de segredos

Para automatizar essas ações, existem muitos utilitários e scripts, portanto, é recomendável não reinventar a roda. Por exemplo, você pode usar as seguintes ferramentas:

  • gitGrabber (https://github.com/hisxo/gitGraber) - permite o monitoramento em tempo real do Github e outros serviços em busca de segredos. Adequado para a tarefa de monitorar a aparência de segredos para determinadas consultas de pesquisa.
  • gitLeaks (https://github.com/zricethezav/gitleaks) - uma ferramenta para monitorar repositórios específicos para o vazamento de segredos. Ótimo para executar tarefas de monitoramento do repositório oficial da empresa.

O uso desses utilitários juntamente com consultas relevantes para seus propósitos permitirá que você organize um sistema para monitorar o vazamento de segredos nos repositórios públicos. Ao mesmo tempo, como os colegas da AppSec observaram corretamente nos comentários no Twitter , para manter o segredo, é necessário implementar e usar soluções de gerenciamento de segredo. Por exemplo, o Hashicorp Vault, dedicado a um material separado.

Pesquisadores, pesquisa bem-sucedida! Para os desenvolvedores, o commit é seguro!

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


All Articles