
Démos pour Black Hat Europe 2025's The Forensic Trail On GitHub: Chasse aux activités de la chaîne d'approvisionnement
Ce dépôt contient trois démos pour la conférence Black Hat Europe 2025 : The Forensic Trail On GitHub: Hunting For Supply Chain Activity
potential_attacks_demo : Une application web Flask qui présente une démo d'identification et d'investigation d'une attaque basée sur le flux public GH.ghdig : Un outil en ligne de commande pour enquêter sur l'activité GitHub.gitthrunter : Un outil jouet qui identifie une activité GitHub suspecte, l'enrichit et la rend pour une investigation plus approfondie.potential_attacks_demopotential_attacks_demo :
cd potential_attacks
pip install -r requirements.txt
flask run
http://127.0.0.1:5000 pour voir la démo.ghdigghdig :
cd ghdig
pip install -r requirements.txt
ghdig nécessite un jeton d'accès personnel GitHub pour interagir avec l'API GitHub.
Créez un fichier nommé .env dans le répertoire ghdig.
Ajoutez votre jeton GitHub au fichier comme ceci :
GITHUB_TOKEN=your_github_token_here
L'outil s'exécute en tant que module Python depuis la racine du projet.
python -m ghdig <commande> [options]
Voici les commandes disponibles et des exemples d'utilisation :
gist : Gère les Gists GitHub.
python -m ghdig gist <gist_id_or_url>python -m ghdig gist https://gist.github.com/mmvojwip/e9975a3a16acc492e3e7f677b6276cb2pr : Gère les pull requests GitHub.
python -m ghdig pr <repo_url>python -m ghdig pr https://github.com/7finney/ethcodecommit : Gère les commits GitHub.
python -m ghdig commit <commit_url>python -m ghdig commit https://github.com/mmvojwip/agentkit/commit/023f11f08cc7b82036a78580202143381d703b9a: Analyse un utilisateur GitHub.
gitthruntergitthrunter :
cd gitthrunter
pip install -r requirements.txt
Pour exécuter une requête, lancez le script main.py et fournissez le chemin vers votre fichier de requête SQL situé dans le répertoire queries/.
python main.py potential_attacks.sql --start_date "2025-09-01 00:00:00"
Note : --start_date peut être nécessaire pour réduire la taille de la requête
Ensuite, enrichissez les données des acteurs :
python main.py potential_attacks.sql --enrich
Note : l'enrichissement rencontrera probablement des problèmes de limites de taux si un jeton GitHub n'est pas configuré
Enfin, lancez l'application :
python app.py
userpython -m ghdig user <username_or_url>python -m ghdig user mmvojwiprender : Affiche un rapport HTML d'analyse d'utilisateur.
python -m ghdig render <username>python -m ghdig render mmvojwipabsence : Vérifie les utilisateurs et dépôts absents à partir d'une requête ClickHouse.
python -m ghdig absence "<query>"python -m ghdig absence "$(< ghdig/tjactions_demo_query.sql)"