
Outil semi-automatisé et piloté par les retours pour rechercher rapidement dans des masses de données publiques sur GitHub des secrets sensibles.
GitGot est un outil semi-automatisé, piloté par les retours, qui permet aux utilisateurs de rechercher rapidement dans des quantités de données publiques sur GitHub des secrets sensibles.
Lors des sessions de recherche, les utilisateurs fournissent des retours à GitGot sur les résultats à ignorer, et GitGot réduit l'ensemble des résultats. Les utilisateurs peuvent mettre sur liste noire des fichiers par nom de fichier, nom de dépôt, nom d'utilisateur, ou par une correspondance floue du contenu du fichier.
Les listes noires générées lors de sessions précédentes peuvent être sauvegardées et réutilisées pour des requêtes similaires (par exemple, example.com vs subdomain.example.com vs Example Org). Les sessions peuvent également être mises en pause et reprises à tout moment.
En savoir plus sur la conception semi-automatisée avec intervention humaine ici : https://bishopfox.com/blog/semi-automated-vs-automated-security-tools.
[1] Installez la dépendance ssdeep pour le hachage flou.
Ubuntu/Debian (ou équivalent pour votre distribution) :
apt-get install python3-dev libfuzzy-dev ssdeep
ou, pour Mac OSX :
brew install ssdeep
Pour Windows ou les distributions *nix sans le paquet ssdeep, veuillez consulter les instructions d'installation de ssdeep.
[2] Après avoir installé ssdeep, installez les dépendances Python avec pip :
pip3 install -r requirements.txt
Exécutez gitgot-docker.sh pour construire l'image Docker GitGot (si elle n'existe pas déjà) et exécuter la version dockerisée de l'outil GitGot.
Lors de l'invocation, gitgot-docker.sh créera et montera les répertoires logs et states à partir du répertoire de travail actuel de l'hôte. Si ce gitgot-docker.sh est exécuté depuis le répertoire du projet GitGot, il mettra à jour le conteneur Docker avec les modifications apportées à gitgot.py ou checks/ :
./gitgot-docker.sh -q example.com
(Voir gitgot-docker.sh pour les commandes Docker spécifiques)
GitHub nécessite un token pour des raisons de limitation de débit. Créez un token d'API GitHub avec aucune autorisation/aucun scope. Cela équivaudra à un accès public à GitHub, mais permettra d'utiliser l'API de recherche GitHub. Définissez ce token en haut de gitgot.py comme indiqué ci-dessous :
ACCESS_TOKEN = "<NO-PERMISSION-GITHUB-TOKEN-HERE>"
(Alternativement, ce token peut être défini comme variable d'environnement GITHUB_ACCESS_TOKEN)
Après avoir ajouté le token, vous êtes prêt à lancer :
# Default RegEx list and logfile location (/logs/<query>.log) are used when no others are specified.
# Query for the string "example.com" using default GitHub search behavior (i.e., tokenization).
# This will find com.example (e.g., Java) or example.com (Website)
./gitgot.py -q example.com
# Query self-hosted GitHub instance
./gitgot.py -q example.com -u https://git.example.com
# Query for the exact string "example.com". See Query Syntax in the next section for more details.
./gitgot.py -q '"example.com"'
# Query through GitHub gists
./gitgot.py --gist -q CompanyName
# Using GitHub advanced search syntax
./gitgot.py -q "org:github cats"
# Custom RegEx List and custom log files location
./gitgot.py -q example.com -f checks/default.list -o example1.log
# Recovery from existing session
./gitgot.py -q example.com -r example.com.state
# Using an existing session (w/blacklists) for a new query
./gitgot.py -q "Example Org" -r example.com.state
Les requêtes GitGot sont envoyées directement à l'API de recherche de code GitHub, alors consultez la documentation de GitHub pour une syntaxe de requête plus avancée.
/(secretToken))