
Uma ferramenta para capturar todos os segredos do git utilizando múltiplas ferramentas de busca git de código aberto.
git-all-secrets é uma ferramenta que pode:
A varredura é feita por várias ferramentas de código aberto, tais como:
NOTA - Mais ferramentas podem ser adicionadas no futuro, se desejado!
NOTA - A varredura pode ser feita por todas as ferramentas ou por qualquer uma delas, especificando a flag toolName.
Se todas as ferramentas forem usadas para escanear, a saída final da ferramenta combina a saída de todos os arquivos de todas as ferramentas em um único arquivo de saída consolidado.
A maneira mais fácil de executar git-all-secrets é via Docker e eu recomendo fortemente instalar o Docker se você ainda não o tiver. Depois de ter o Docker instalado,
docker run --rm -it abhartiya/tools_gitallsecrets --help para entender as diferentes flags que ele pode receber como entrada.docker run -it abhartiya/tools_gitallsecrets -token=<> -org=<>. Você também pode especificar uma ferramenta específica para usar na varredura digitando algo como docker run -it abhartiya/tools_gitallsecrets -token=<> -org=<> -toolName=<>. As opções são thog e repo-supervisor.thogEntropy assim - docker run -it abhartiya/tools_gitallsecrets -token=<> -org=<> -toolName=thog -thogEntropy.docker ps -a.docker cp <container-id>:/root/results.txt .-token = Token de acesso pessoal do Github. Precisamos disso porque requisições não autenticadas à API do Github podem atingir o limite de taxa rapidamente!
-org = Nome da Organização a ser escaneada. Isso escaneará todos os repositórios públicos na org + todos os repositórios e gists de todos os usuários da org. Se você estiver usando um token de um usuário que faz parte desta org, ele também clonará e escaneará todos os gists secretos pertencentes a esse usuário, bem como todos os repositórios privados nessa org aos quais o usuário tem acesso. No entanto, NÃO clonará nem escaneará nenhum repositório privado deste usuário pertencente a esta org. Para escanear repositórios privados de usuários, use a flag scanPrivateReposOnly com a flag user juntamente com a chave SSH montada em um volume.
-user = Nome do Usuário a ser escaneado. Isso escaneará todos os repositórios e gists deste usuário. Se o token fornecido for o token do usuário, os gists secretos também serão clonados e escaneados. Mas apenas repositórios públicos serão clonados e escaneados. Para escanear repositórios privados deste usuário, use a flag scanPrivateReposOnly com a flag user juntamente com a chave SSH montada em um volume.
-repoURL = URL HTTPS do Repositório a ser escaneado. Isso escaneará apenas este repositório. Para repositórios públicos, mencionar a URL https do repositório será suficiente. No entanto, se você deseja escanear um repositório privado, então você precisa fornecer a URL ssh juntamente com a chave SSH montada em um volume e a flag scanPrivateReposOnly.
-gistURL = URL HTTPS do Gist a ser escaneado. Isso escaneará apenas este gist. Não existe conceito de gist público ou secreto desde que você tenha a URL. Mesmo se você tiver um gist secreto, se alguém souber a URL HTTPS do seu gist secreto, também poderá acessá-lo.
-output = Este é o nome do arquivo onde todos os resultados serão armazenados. Por padrão, é results.txt.
-cloneForks = Esta é a flag booleana opcional para clonar forks de repositórios de org e usuário. Por padrão, é definido como 0, ou seja, nenhum fork é clonado. Se os forks devem ser clonados, este valor precisa ser definido como 1. Ou, simplesmente mencione -cloneForks junto com outras flags.
-orgOnly = Esta é a flag booleana opcional para pular a clonagem de repositórios de usuários pertencentes a uma org. Por padrão, é definido como 0, ou seja, comportamento normal. Se os repositórios de usuários não devem ser escaneados e apenas os repositórios da org devem ser escaneados, este valor precisa ser definido como 1. Ou, simplesmente mencione -orgOnly junto com outras flags.
-toolName = Esta é a flag string opcional para especificar qual ferramenta usar na varredura. Por padrão, é definido como all, ou seja, thog e repo-supervisor serão todos usados na varredura. Os valores são thog ou repo-supervisor.
-teamName = Nome da Equipe da Organização que tem acesso a repositórios privados para varredura. Esta flag não foi totalmente testada, então não posso garantir a funcionalidade.
-scanPrivateReposOnly = Esta é a flag booleana opcional para especificar se você deseja escanear repositórios privados de usuários ou não. Mencionar isso NÃO escaneará repositórios públicos de usuários. E você precisa fornecer a chave SSH montando o volume no contêiner. Além disso, isso só funciona com a flag user, a flag repoURL ou a flag org.
Quando a flag org é mencionada junto com a flag scanPrivateReposOnly e sem a flag orgOnly, ela escaneará os repositórios públicos E privados pertencentes a esta org aos quais o usuário tem acesso (cujo token é fornecido). Em seguida, continuará escaneando APENAS os repositórios privados do usuário (cujo token é fornecido). Finalmente, continuará escaneando todos os gists públicos e secretos deste usuário (cujo token é fornecido). Em resumo, a flag scanPrivateReposOnly realmente afeta apenas as flags user e repoURL.
-enterpriseURL = Flag opcional para fornecer a URL do Github Enterprise, se você deseja escanear repositórios corporativos. Deve ser algo como https://github.org.com/api/v3 juntamente com a chave SSH montada no contêiner. Consulte escaneando github enterprise abaixo.
-threads = O valor padrão é 10. Isso é para limitar o número de threads se o seu sistema não for suficientemente potente. Na maioria dos casos, deixar como 10 deve ser suficiente.
-thogEntropy = Esta é uma flag opcional que basicamente indica se você deseja obter segredos baseados em alta entropia do truffleHog ou não. Os segredos de alta entropia do truffleHog produzem MUITO ruído, então se você realmente não quer todo esse ruído e está executando git-all-secrets em uma organização grande, recomendo não mencionar esta flag. Por padrão, é definido como False, o que significa que o truffleHog produzirá resultados apenas com base nas expressões regulares no arquivo rules.json. Se você estiver escaneando uma organização relativamente pequena com um conjunto limitado de repositórios ou um usuário com poucos repositórios, mencionar esta flag faz mais sentido.