如何搜索组织及公司GitHub仓库,查找AWS Access Keys及个人密钥?
搜索AWS Access Keys的实用方法
一、搜索GitHub组织仓库中的AWS Access Keys
- GitHub内置代码搜索:直接用AWS Access Key ID的正则表达式
AKIA[0-9A-Z]{16}在组织的仓库搜索页筛选"Code"类型,就能定位包含密钥的文件。注意私有仓库需要你有对应访问权限,且GitHub搜索有速率限制,大规模搜索可能需要分批进行。 - GitHub CLI批量搜索:用
gh search code命令批量扫描组织仓库,比如:
导出CSV方便后续核对,前提是已经安装并认证了GitHub CLI。gh search code --owner=你的组织名 --regex="AKIA[0-9A-Z]{16}" --csv=name,path,url > aws_keys.csv - 本地扫描工具:用
truffleHog这类开源工具克隆组织仓库后本地扫描,命令:
它会自动验证密钥有效性,过滤掉已失效的,减少误报。trufflehog github --org 你的组织名 --only-verified
二、定位公司代码仓库中个人AWS Access Keys
- 仓库内置搜索:如果公司用GitLab、Bitbucket或自建平台,直接在全局代码搜索里用正则匹配,比如
AKIA[0-9A-Z]{16}或者AWS_SECRET_ACCESS_KEY\s*=\s*".+",覆盖所有仓库和主流代码、配置文件类型。 - 静态代码分析工具:把仓库接入SonarQube或Semgrep,配置自定义规则检测硬编码密钥。比如Semgrep可以写规则匹配
aws_access_key_id = "AKIA..."这类代码片段,提交代码时自动触发扫描,实时告警。 - 本地批量扫描脚本:写个简单的Shell脚本遍历所有克隆的公司仓库:
指定常见的密钥可能出现的文件类型,降低误报率。#!/bin/bash for repo in ./公司仓库目录/*/; do echo "正在扫描 $repo..." grep -r "AKIA[0-9A-Z]\{16\}" "$repo" --include="*.py" --include="*.js" --include="*.env" --include="*.yml" done - 预提交钩子拦截:在公司Git仓库配置
pre-commit钩子,加入detect-secrets插件,开发者提交代码前自动检查,一旦发现AWS密钥就阻止提交,从源头杜绝个人密钥流入代码库。
内容的提问来源于stack exchange,提问作者Stvvks
相关产品推荐
相关产品推荐

