此仓库包含三个用于 2025 年欧洲黑帽大会 《GitHub 上的取证轨迹:猎寻供应链活动》(https://blackhat.com/eu-25/briefings/schedule/index.html#the-forensic-trail-on-github-hunting-for-supply-chain-activity-48832)的演示。
potential_attacks_demo:一个 Flask Web 应用程序,演示如何基于公共 GitHub 数据流识别和调查攻击。ghdig:一个用于调查 GitHub 活动的命令行工具。gitthrunter:一个玩具工具,用于识别可疑的 GitHub 活动、进行丰富并渲染以便进一步调查。potential_attacks_demopotential_attacks_demo 目录:
cd potential_attacks
pip install -r requirements.txt
flask run
http://127.0.0.1:5000 查看演示。ghdigghdig 目录:
cd ghdig
pip install -r requirements.txt
ghdig 需要一个 GitHub 个人访问令牌才能与 GitHub API 交互。
在 ghdig 目录中创建一个名为 .env 的文件。
像这样将你的 GitHub 令牌添加到文件中:
GITHUB_TOKEN=你的_github_令牌_在此
该工具作为 Python 模块从项目的根目录运行。
python -m ghdig <命令> [选项]
以下是可用命令及其使用示例:
gist:处理 GitHub Gist。
python -m ghdig gist <gist_id_or_url>python -m ghdig gist https://gist.github.com/mmvojwip/e9975a3a16acc492e3e7f677b6276cb2pr:处理 GitHub Pull Request。
python -m ghdig pr <仓库_url>python -m ghdig pr https://github.com/7finney/ethcodecommit:处理 GitHub 提交。
python -m ghdig commit <提交_url>python -m ghdig commit https://github.com/mmvojwip/agentkit/commit/023f11f08cc7b82036a78580202143381d703b9auser:分析 GitHub 用户。
gitthruntergitthrunter 目录:
cd gitthrunter
pip install -r requirements.txt
要运行查询,请执行 main.py 脚本并提供位于 queries/ 目录中的 SQL 查询文件的路径。
python main.py potential_attacks.sql --start_date "2025-09-01 00:00:00"
注意:--start_date 可能有助于减小查询大小
然后,丰富行为者数据:
python main.py potential_attacks.sql --enrich
注意:如果未配置 GitHub 令牌,丰富过程可能会遇到速率限制问题
最后,启动应用程序:
python app.py
python -m ghdig user <用户名_or_url>python -m ghdig user mmvojwiprender:渲染用户分析 HTML 报告。
python -m ghdig render <用户名>python -m ghdig render mmvojwipabsence:从 ClickHouse 查询中检查缺失的用户和仓库。
python -m ghdig absence "<查询>"python -m ghdig absence "$(< ghdig/tjactions_demo_query.sql)"