debugging the life logo
  • About 
  • Blog 
  • Tags 
Blog
  1. Home
  2. Blogs
  3. Github Commiters Spy - Dimensionando licenças de SAST, SCA e IaC.

Github Commiters Spy - Dimensionando licenças de SAST, SCA e IaC.

Posted on August 14, 2024 • 3 min read • 538 words
DevSecOps
 
Application Security
 
AppSec
 
Github
 
Sast
 
Sca
 
Iac
 
Snyk
 
Checkmarx
 
Veracode
 
DevSecOps
 
Application Security
 
AppSec
 
Github
 
Sast
 
Sca
 
Iac
 
Snyk
 
Checkmarx
 
Veracode
 
Share via
debugging the life
Link copied to clipboard

Se você usa Github e precisa de ajuda no dimensionamento de licenças de soluções de análise estática, o GHCS pode oferecer um bom auxílio. 😉

On this page
  • Introdução
  • Motivações
  • Pré-requisitos
  • Como usar
  • Pontos de atenção
  • Agradecimentos
  • Referências
Github Commiters Spy - Dimensionando licenças de SAST, SCA e IaC.

Introdução  

O “Github Committers Spy” (GHCS) é uma ferramenta desenvolvida em Python 3 que te auxiliará a identificar a quantidade de desenvolvedores individuais em sua organização no Github, atendendo aos modelos atuais de licenciamento das principais fabricantes destas soluções. Você pode acessar o repositório do projeto através do link https://github.com/0xtiago/GithubCommittersSpy.

Github Commiters Spy
Github Commiters Spy

Motivações  

O GHCS foi desenvolvido durante o período de testes e dimensionamento de solução de SAST (Static Application Security Testing) e SCA (Software Composition Analysis) em um dos projetos que sou responsável. Paralelamente, enquanto parte do time triava o caderno de testes, a outra parte (eu incluso) nos direcionamos a realizar o levantamento de desenvolvedores individuais nos projetos que entrariam no escopo de cobertura de alguma dessas soluções enterprise que estávamos avaliando.

Antes de partirmos para o desenvolvimento, tivemos algumas dificuldades no levantamento das seguintes informações:

  • Lista de repositórios pertencentes a produtos críticos para o negócio;
  • Mapeamento de desenvolvedores alocados nestes projeto.

A partir deste momento, resolvemos ir para o plano B, que era obter os dados brutos e fazer a análise por script (GHCS). Mas antes tivemos um pouco mais de trabalho…

  • Levantamos a lista de todos os repositórios do Github de projetos em produção;
  • Analisamos individualmente através de alguns padrões existentes, e filtramos quais eram os repositórios membros de produtos críticos para o negócio.

Com essas informações em mãos, partimos para o código.

Pré-requisitos  

  • Git
  • Python 3 e PIP;
  • Lista com as URLs dos repositório que deseja analisar;
  • Um Personal Access Token do Github com os escopos repo e user.
Github Personal Token - Permissões necessárias.
Github Personal Token - Permissões necessárias.

Como usar  

  1. Clone e acesse o repositório https://github.com/0xtiago/GithubCommittersSpy:

    git clone https://github.com/0xtiago/GithubCommittersSpy && cd GithubCommittersSpy
  2. Instale as dependências do script:

    pip install -r requirements.txt
  3. Renomeio o arquivo config_sample.yaml para config.yaml e configure o Personal Access Token do Github em github_token:

    github_token: "gh_XXXXXXXXXX"
  4. Crie um arquivo chamado repositories.txt e adicione a lista de todos os repositórios que deseja analisar, no seguinte formato:

    • Um repositório por linha;
    • Nos formatos owner/repo ou https://github.com/owner/repo.
  5. Agora é só executar o script passando com o argumento -d passando a quantidade de dias pregressos para análise:

    python gh_committers_spy.py -d 90
  6. O script exibirá para você ao fim da execução a quantidade de committers individuais. As informações dos usuários e a quantidade de commits encontrados de cada um será exportado para o arquivo commiters.csv.

Como esse tipo de informação em mãos, fica muito mais fácil dimensionar o licenciamento necessário para atender aos modelos de exemplo abaixo.

Checkmarx

Checkmarx - Modelo de Licenciamento
Checkmarx - Modelo de Licenciamento

Snyk

Snyk - Modelo de Licenciamento
Snyk - Modelo de Licenciamento

Pontos de atenção  

 
  • Verifique se o token gerado no Github (Personal Access Token ) possui as permissões necessárias para o acesso em repositórios privados.

  • O script avalia apenas os commmits na branch default de cada repositório.

  • Cada repositório listado no arquivo repositories.txt será convertido para o formato owner/repository durante o processo de verificações e parsings.

Agradecimentos  

Algumas pessoas que contribuiram durante todo o processo de desenvolvimento e testes. ❤️

  • Michelle Mesquita - https://github.com/michelleamesquita
  • Murillo Rocha - https://github.com/6drocha
  • Tiago “Kid” Machado - https://github.com/gar0t0

Referências  

  • GitHub REST API v3
  • Requests: HTTP for Humans
  • PyYAML Documentation
  • Snyk Plans
  • Checkmarx One Cloud Licence Types and Restrictions
  • Veracode - Contributing developers - repository report

👾

 Processo de Gestão de Vulnerabilidades e Automação para OffSec e AppSec Utilizando Atlassian Jira: Proposta e Tutorial
HackerWhale - Offensive Docker Image 
On this page:
  • Introdução
  • Motivações
  • Pré-requisitos
  • Como usar
  • Pontos de atenção
  • Agradecimentos
  • Referências
comments powered by Disqus
👾

Eternal student.

     
Copyright © 2024 Tiago Tavares.
debugging the life
Code copied to clipboard