知攻善防|攻击者是怎么批量盗刷APIKey的?

admin 2026-07-01 04:58:43 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文从攻防视角剖析APIKey批量盗刷与防范。攻击者通过自动化扫描GitHub仓库与历史提交、代码搜索API及抓取前端JSBundle窃取密钥用于挖矿或窃密。防御上,文章针对网页、小程序和App提供了利用DevTools、TruffleHog等工具的自查方案。核心建议是严禁在客户端硬编码密钥,AI接口必须经后端中转,并持续监控仓库安全。 综合评分: 91 文章分类: 数据泄露,代码审计,WEB安全,移动安全,安全工具


cover_image

知攻善防|攻击者是怎么批量盗刷 API Key 的?

原创

冰片Ice 冰片Ice

安全女王

2026年7月1日 01:29 广东

在小说阅读器读本章

去阅读

下面从攻击者视角防御者自查视角两个维度完整拆解 API Key盗刷和防盗刷。


🔴 Part 1:攻击者是怎么批量盗刷 API Key 的?

1. 自动化扫描 GitHub 公开仓库(最主流手段)

攻击者不需要主动”入侵”——他们只是持续扫描 GitHub,等你犯错。攻击者运行自动化 Bot,每隔几分钟就扫描公开仓库一次——一旦你提交了密钥,在你发现之前,它就已经被盗用了。

具体技术手段:

研究人员(以及攻击者)的典型流程是:利用 GitHub 提供的 GH Archive 公开活动流,过滤出每小时所有公开仓库的 commit 事件,收集对应仓库链接,然后对每一个仓库批量扫描。

检测算法:双引擎识别

扫描器通常使用两种方法:① 正则表达式——匹配已知格式,例如 sk-...AKIA...ghp_... 等各服务商的固定前缀;② 随机性信号——通过统计分析(香农熵)标记那些看起来是”机器生成”而非”人工书写”的高熵字符串。

2026 年的最新进展:

2026 年 3 月,Gitleaks 的原作者 Zach Rice 发布了继任工具 Betterleaks,用字节对编码的”Token Efficiency”替代了香农熵,识别准确率进一步提升。


2. 利用 GitHub Code Search API 批量搜索特征字符串

攻击者(和白帽研究者)通过 GitHub Code Search API 直接搜索特征词,例如 api_keysk_live_AIza 等,结合模式匹配和熵分析过滤出真实密钥。

可以构造精确的搜索语法,例如:

(path:*.env OR path:*.yml OR path:*.json) AND ("OPENAI_API_KEY" OR "sk-proj-")

尽管技术在进步,人为失误仍是主要原因——许多开发者仍无意识地将 API 密钥硬编码进源码,提交到公开仓库,而 GitHub 作为全球最大的代码托管平台,无意间成了泄露密钥的集散地。


3. 扫描前端 JS Bundle(针对网页应用)

攻击者使用自动化工具扫描每一个新部署的网站寻找暴露的密钥。如果你的 API Key 出现在 JavaScript 里,恶意 Bot 通常会在部署后 15 分钟内就发现并记录它。

Webpack、Vite 等打包工具可能通过 Source Map、错误信息或嵌入 Bundle 的配置对象,意外暴露密钥。


4. 扫描 Git 提交历史(捡”删了但没删干净”的密钥)

很多人以为删掉 .env 文件就安全了——但攻击者的工具会自动扫描提交历史,即使文件已被删除,只要曾经提交过,历史记录中就永久存在。


5. 盗到 Key 之后干什么?

一旦获得暴露的 API Token,攻击者可以:以原始所有者身份访问账户服务并产生计费——例如挂载加密货币挖矿服务器,让你收到天价账单;利用支付处理器接口测试盗刷的信用卡,难以追踪;或者访问云存储服务,窃取企业私有数据。


🟢 Part 2:如何自查已上线的网页/小程序/App?

🌐 网页(Web App)自查

方法一:浏览器 DevTools 手动检查(零成本,立刻能做)

打开你的网站,按 F12,然后:

1. Network 标签页 → 刷新页面 → 查看所有 JS 文件请求
   → 点开每个 .js 文件 → 搜索关键词:
   sk-  |  AIza  |  AKIA  |  ghp_  |  xoxb-  |  key=  |  token=

2. Sources 标签页 → 搜索(Ctrl+Shift+F)→ 搜索上述关键词

3. Application 标签页 → Local Storage / Session Storage / Cookies
   → 检查是否有明文存储的密钥

方法二:在线免费扫描工具(最方便)

| 工具 | 地址 | 特点 | | — | — | — | | VibeFactory Scanner | vibefactory.ai/security-scanner | 扫描网站,覆盖 150+ 种密钥格式 | | SupaExplorer | supaexplorer.com | 专门检测 Supabase Key、暴露的数据表和不安全端点 | | VibeEval Checker | vibe-eval.com/token-leak-checker | 扫描已部署网站前端 JS 中的 Firebase、Stripe、AWS、OpenAI、Supabase 等密钥 | | Pentest-Tools Scanner | pentest-tools.com | 检测 HTTP 响应中暴露的私钥,被动运行,无需额外配置 |

使用方式:粘贴你的网站 URL → 点击扫描 → 查看报告

方法三:KeyLeak Detector(Chrome 扩展 + CLI,最深度)

这是一个运行时泄漏检测器,不仅能找到静态代码中的密钥,还能发现只在运行时才出现的密钥,并验证 Supabase RLS 配置和 Firebase 安全规则是否真正生效。

Chrome 扩展模式下,在你浏览网站时实时检测泄露的密钥,并提供 TEST 按钮,支持验证 14 个服务商的 Key 是否仍然有效。

方法四:扫描 Git 仓库历史记录

# 用 Gitleaks 扫描整个 Git 历史(包括已删除文件)
docker run -v "$(pwd):/path" zricethezav/gitleaks:latest detect --source="/path" --verbose

# 或用 TruffleHog(支持 800+ 种密钥格式,且会实际验证 Key 是否有效)
trufflehog git file://. --only-verified

TruffleHog 是目前覆盖最广的方案,能检测 800 多种密钥类型,并支持主动验证——即实际调用 API 确认密钥是否仍然有效,而不是仅仅匹配字符串格式。


📱 微信小程序自查

小程序的 JS 代码会被编译打包进 .wxss/.js 文件,同样可能包含硬编码的 Key。

自查步骤:

1. 微信开发者工具 → 打开你的小程序项目
2. 在项目目录下全局搜索(Ctrl+Shift+F):
   sk-  |  key=  |  token=  |  secret=  |  apiKey
3. 检查 app.js / config.js / utils/ 目录下的所有配置文件
4. 检查是否有明文写在 wx.request() 的 header 里的 Authorization

特别注意: 小程序打包后,用户可以通过反编译工具(如 wxappUnpacker)还原出源码,所以任何写在小程序端的 Key 都等同于公开。


📱 原生 App(iOS / Android)自查

一旦发现泄露,立即轮换和吊销密钥,不要拖延——攻击者行动非常快。

自查方式:

# Android APK 反编译检查
apktool d your-app.apk -o output_dir
grep -r "api_key\|sk-\|AIza\|secret" output_dir/

# iOS IPA 检查
unzip your-app.ipa -d output_dir
strings output_dir/Payload/*.app/your-binary | grep -E "sk-|AIza|AKIA"

核心结论: App 内嵌的任何密钥都可以被反编译提取,这是移动端的根本性约束,解决方案只有一个:AI 相关的 API Key 必须放在你的后端服务器上,App 只与你自己的后端通信。


📋 一键自查清单

网页已上线后:
  □ 用 VibeFactory / VibeEval 扫描你的线上 URL
  □ 用 DevTools Sources 搜索 sk- / AIza / AKIA / token=
  □ 用 TruffleHog 扫描 Git 历史(含已删除文件)
  □ 检查 Network 请求,看是否有直连第三方 AI API 的请求
  □ 订阅 GitGuardian,持续监控公开仓库

小程序:
  □ 全局搜索配置文件中的密钥关键词
  □ 确认所有 AI 调用均通过云函数/后端中转,而非直连

App:
  □ 确认无任何 API Key 硬编码在客户端代码或资源文件中
  □ 确认构建流程中 Key 不会被打包进 Bundle

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全女王 冰片Ice 冰片Ice《知攻善防|攻击者是怎么批量盗刷 API Key 的?》

评论:0   参与:  0