我扫描了 22 个流行的 GitHub 仓库的安全问题——68% 存在泄露的密钥
Source: Dev.to
概览
我构建了一个名为 shinobi 的 CLI 工具(在 PyPI 上以 shinobi-scan 提供),它可以对任意项目目录或 GitHub 仓库进行快速的 10 秒安全扫描。扫描内容包括:
- 暴露的 API 密钥和秘密模式
- 危险的默认设置(例如 debug 模式、通配符 CORS)
- 易受攻击的依赖项
- 缺失的安全基础
- AI 相关风险
该工具完全使用 Python 编写,使用 argparse 实现 CLI,利用正则表达式进行秘密检测,使用 gitpython 扫描历史记录,并通过子进程调用进行依赖审计。它 100 % 本地运行,数据不会离开你的机器。
pip install shinobi-scan
GitHub 仓库:
方法论
我将 shinobi 指向了 22 个流行的开源项目,包括:
- FastAPI
- Flask
- Dify
- Flowise
- LiteLLM
- Lobe‑Chat
对每个仓库都按照上述类别进行扫描。工具会根据发现的严重程度报告威胁等级(低、 中、 高、 严重)。
发现
- 86 % 的被扫描仓库返回了 高 或 严重 的威胁等级。
- 最常见的问题是 暴露的秘密模式(在源代码中直接出现的 API 密钥格式)。
- 第二常见的问题是 危险的默认设置,例如保留
debug=True或使用通配符 CORS 设置。
即使许多暴露的密钥属于测试用例,但在成千上万的文件中出现真实感的密钥模式,说明在这些模板上进行分叉或构建的开发者会继承大量的安全债务。
结论
此次扫描表明,相当大比例的流行开源项目包含易于检测的安全弱点。运行类似 shinobi 的本地自动化扫描可以帮助开发者在问题向下游传播之前识别并修复这些问题。
联系方式
如有反馈或疑问,欢迎随时联系。我在 X(原 Twitter)上全天在线。