mcpField
S
security-ai-keys

security-ai-keys

github.com/igorwarzocha安全122112 次安装38 周前更新
代码仓库

关于 security-ai-keys

security-ai-keys 是面向集成 AI 提供商应用的安全审计技能,聚焦 API 密钥泄露。它列出常见泄露路径、加固检查项和扫描脚本。

主要功能

  1. 01AI 密钥泄露审计模式
  2. 02检查客户端密钥泄露
  3. 03扫描构建产物和源映射
  4. 04日志与遥测脱敏建议
  5. 05密钥轮换检查清单
  6. 06初步扫描脚本

适用场景

  1. 01部署前审计应用
  2. 02检查浏览器代码是否直接调用 AI API
  3. 03检查日志和错误报告中的密钥泄露

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/igorwarzocha/opencode-workflows --skill security-ai-keys

安装后在 Claude Code 中输入/security-ai-keys确认已加载。

附带文件scripts/scan.sh

详细介绍

针对集成 AI 提供商的应用中 AI API 密钥泄露情况的安全审计模式。

核心原则

  • 必须将 AI API 密钥视为机密,并将其保留在服务器端。
  • 不得将密钥发送到浏览器或移动客户端。
  • 应避免记录密钥;在日志记录或错误报告前进行脱敏。
  • 如果怀疑密钥已暴露,必须立即轮换密钥。

常见泄露途径

1) 客户端暴露
  • 包含 AI 密钥的 NEXT_PUBLIC_* / VITE_* 环境变量
  • 从浏览器代码直接调用 AI 提供商端点
2) 构建产物
  • 密钥嵌入到捆绑文件中(dist/、build/、.next/)
  • 源映射暴露包含密钥的服务器代码
3) 日志和遥测
  • console.log / logger 语句包含密钥值
  • 错误跟踪负载(Sentry、Datadog)包含请求头

快速审计命令

# Env files: AI keys accidentally exposed to client
rg -n "(NEXT_PUBLIC_|VITE_).*(OPENAI|OPENROUTER|ANTHROPIC|GEMINI|GOOGLE|VERTEX|BEDROCK|AWS|AZURE|MISTRAL|COHERE|GROQ|PERPLEXITY|TOGETHER|REPLICATE|FIREWORKS|HUGGINGFACE|HF_)" . -g "*.env*"

# Client code calling AI APIs directly (check for browser use)
rg -n "api\.openai\.com|openrouter\.ai|api\.anthropic\.com|generativelanguage\.googleapis\.com|aiplatform\.googleapis\.com|bedrock.*amazonaws\.com|api\.mistral\.ai|api\.cohere\.ai|api\.groq\.com|api\.together\.xyz|api\.perplexity\.ai|api\.replicate\.com|api\.fireworks\.ai|openai\.azure\.com" . -g "*.js" -g "*.ts" -g "*.jsx" -g "*.tsx" -g "*.vue"

# Scan build outputs for likely keys (heuristic)
rg -a "sk-[A-Za-z0-9]{20,}|sk-ant-[A-Za-z0-9-]{20,}|sk-or-[A-Za-z0-9-]{20,}|AIza[0-9A-Za-z_-]{35}|hf_[A-Za-z0-9]{20,}" dist/ build/ .next/ 2>/dev/null

# Service account credentials and cloud auth files
rg -n "\"type\"\s*:\s*\"service_account\"|GOOGLE_APPLICATION_CREDENTIALS|AWS_ACCESS_KEY_ID|AWS_SECRET_ACCESS_KEY|AZURE_OPENAI_API_KEY" . -g "*.env*" -g "*.json"

加固检查清单

  • AI 提供商密钥仅存在于服务器运行时(绝不放在浏览器中)
  • .env.local 和 .env.*.local 已加入 gitignore
  • 日志会对机密信息脱敏或将其省略(请求头、环境变量值)
  • 部署前扫描构建产物
  • 如果怀疑密钥已暴露,则轮换密钥

脚本

  • scripts/scan.sh - 首轮 AI 密钥泄露扫描

评论

支持 Markdown