目录
GitHub敏感信息收集与防御指南
GitHub作为全球最大的代码托管平台,存储着数十亿行公开代码,其中可能包含大量意外泄露的敏感信息。本文将系统介绍从基础到进阶的GitHub信息收集技术,重点关注特定组织/网站的敏感信息发现方法。
一、基础搜索技巧
1. 核心敏感关键词搜索
"password"
"api_key"
"secret_key"
"credentials"
"database_password"
"access_token"
"auth_token"
"encryption_key"
"private_key"
2. 文件类型限定搜索
filename:.env "DB_PASSWORD" # 环境文件中的数据库密码
filename:config.json "api_key" # JSON配置文件中的API密钥
filename:.properties "jdbc.url" # Java属性文件中的数据库连接
二、定向信息收集技术
1. 针对特定组织的搜索
org:xxcompany "internal" # 搜索xxcompany组织内部信息
org:xxcompany "prod" AND "password" # xxcompany生产环境密码
org:xxcompany "staging" AND "credentials" # xxcompany测试环境凭证
2. 针对特定网站的搜索
"site:example.com" AND "password" # 查找与特定网站相关的密码
"site:example.com" AND "api_key" # 查找特定网站的API密钥
"site:example.com" AND "database" AND "password" # 特定网站数据库密码
3. 针对云服务的搜索
"AWS_ACCESS_KEY_ID" AND "AWS_SECRET_ACCESS_KEY"
"AKIA[0-9A-Z]{16}" # AWS访问密钥模式
filename:credentials aws_access_key_id
"service_account.json" AND "private_key"
三、高级精准定位技巧
1. 组合搜索条件
"aws_access_key_id" AND "aws_secret_access_key" filename:.env
"slack_token" AND filename:.json
"stripe_key" AND ("live" OR "prod")
2. 时间限定搜索
"password" pushed:>2023-01-01 # 最近一年的密码泄露
"api_key" created:>=2022-01-01 # 2022年后创建的API密钥
"secret" pushed:2023-01-01..2023-12-31 # 2023年全年的密钥泄露
3. 路径限定搜索
path:src/main/resources "application.yml" "password"
path:.github/workflows "secret" # GitHub Actions中的密钥
path:config "database.yml" # 数据库配置文件
path:secrets "token" # secrets目录中的令牌
四、防御策略
1. 预防措施
预提交检查:使用git-secrets、truffleHog等工具在代码提交前扫描敏感信息
密钥管理:使用Vault、AWS Secrets Manager等专业密钥管理工具
环境隔离:严格区分开发、测试和生产环境的凭证
2. 监控与响应
定期扫描:使用GitHub API或第三方工具监控组织仓库
实时告警:设置敏感信息提交的即时通知
应急响应:建立凭证泄露后的快速轮换流程
3. 组织管理
权限控制:遵循最小权限原则,限制敏感仓库访问
代码审查:实施严格的代码审查制度
员工培训:定期进行安全意识培训