Credential Scanner

自动检测代码库中泄露的API密钥、密码等敏感信息,支持多云平台和主流服务。

已扫描安全风险
适合谁
软件开发者、DevOps工程师
不适合谁
无代码环境的普通用户、无需安全审计的非技术人员
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @nirwandogra/credential-scanner

Skill 说明

命令、参数、文件名以原文为准

凭证扫描器

用于扫描代码、配置文件和代码仓库中意外泄露的密钥与凭证的安全技能。

何时使用此技能

当用户提出以下请求时使用该技能:

  • 要求“检查是否泄露了密钥”或“扫描 API 密钥”
  • 希望在提交或发布前审计某个仓库或目录
  • 询问“这段代码中是否有硬编码的密码?”
  • 要求“查找凭证”或“检查是否暴露了令牌”
  • 需要提交前或发布前的安全检查
  • 表达对意外提交密钥的担忧

功能特性

  • 检测 40 多种密钥模式,包括:

- AWS 访问密钥、秘密密钥、会话令牌

- Azure 存储密钥、连接字符串、SAS 令牌

- GCP 服务账户密钥、API 密钥

- GitHub / GitLab / Bitbucket 个人访问令牌(PAT)

- OpenAI、Anthropic、Hugging Face API 密钥

- Slack 机器人令牌、Webhook 地址

- Stripe、Twilio、SendGrid 密钥

- 数据库连接字符串(MongoDB、PostgreSQL、MySQL、Redis)

- SSH 私钥、PEM/PFX 证书

- JWT 令牌、Bearer 令牌

- 配置文件中的通用密码(password=、secret=、token=)

  • 支持扫描单个文件、目录或递归扫描整个仓库
  • 自动忽略二进制文件、node_modules、.git 等非相关路径
  • 输出结果可为 Markdown 报告或 JSON 格式
  • 提供严重性评级(严重、高、中、低)
  • 为每个发现项提供修复建议

如何进行扫描

扫描一个目录

python secret_scanner.py /path/to/project

使用 JSON 输出

python secret_scanner.py /path/to/project --json

扫描并保存报告

python secret_scanner.py /path/to/project --output report.md

在智能体中使用

"扫描这个项目中的泄露密钥"
"检查代码库中是否有任何 API 密钥"
"在当前目录运行 secret-scanner"
"在我的配置文件中查找硬编码的密码"
"在我推送至 GitHub 前审计这个仓库"

检测到的密钥模式

云服务商密钥

服务商检测到的密钥
AWS访问密钥 ID(AKIA...)、秘密访问密钥、会话令牌
Azure存储账户密钥、连接字符串、SAS 令牌、客户端密钥
GCPAPI 密钥(AIza...)、服务账户 JSON 文件、OAuth 客户端密钥

人工智能 / 大模型密钥

服务模式
OpenAIsk- 开头的 API 密钥
Anthropicsk-ant- 开头的密钥
Hugging Facehf_ 开头的令牌
Cohere配置中的 API 密钥

开发平台凭证

平台检测到的密钥
GitHubghp_gho_ghu_ghs_ghr_ 令牌
GitLabglpat- 令牌
Slackxoxb-xoxp-xoxs- 令牌,以及 webhook URL
Stripesk_live_sk_test_rk_live_ 密钥
Twilio账户 SID、认证令牌
SendGridSG. 开头的 API 密钥

数据库与基础设施

类型模式
MongoDB包含凭据的 mongodb://mongodb+srv:// 连接字符串
PostgreSQL包含密码的 postgresql:// 连接字符串
MySQL包含密码的 mysql:// 连接字符串
Redis包含密码的 redis:// 连接字符串
SSH`-----BEGIN (RSA\
证书PEM、PFX、P12 文件中嵌入的密钥

通用模式

模式描述
password=配置/环境文件中的硬编码密码
secret=硬编码的密钥
token=硬编码的令牌
Bearer代码中的 Bearer 令牌
Basic AuthBase64 编码的基本认证头
JWTeyJ 开头的 JWT 令牌
高熵字符串看起来像密钥的长随机字符串

严重性等级

严重性描述示例
🔴 严重正在使用的生产环境凭证AWS 秘密密钥、私钥、数据库密码
🟠 具有广泛权限的服务令牌GitHub PAT、Slack 机器人令牌、Stripe 生产密钥
🟡 中等可能为测试/开发用的密钥测试 API 密钥、示例令牌
🟢 可能的误报注释中的通用 password=、占位符值

扫描的文件类型

默认扫描以下文件类型:

  • 源代码:.py, .js, .ts, .java, .go, .rb, .php, .cs, .rs
  • 配置文件:.json, .yaml, .yml, .toml, .ini, .cfg, .conf
  • 环境文件:.env, .env.local, .env.production
  • Shell 脚本:.sh, .bash, .zsh, .ps1
  • 文档文件:.md, .txt
  • 其他:Dockerfile, docker-compose.yml, Makefile

忽略的路径

自动跳过以下路径:

  • node_modules/, vendor/, venv/, .venv/
  • .git/, .svn/
  • __pycache__/, .pytest_cache/
  • 二进制文件、图片、编译输出
  • package-lock.json, yarn.lock

修复建议

当发现密钥时,该技能建议采取以下措施:

  1. 立即轮换密钥 —— 假设已泄露
  2. 从代码中移除 —— 使用环境变量或密钥管理工具替代
  3. 添加到 .gitignore —— 防止 .env 和凭证文件被提交
  4. 使用 git-filter-repo —— 从 Git 历史记录中清除密钥
  5. 启用 pre-commit 钩子 —— 在提交前拦截密钥

环境要求

  • Python 3.7+
  • 无额外依赖(仅使用 Python 标准库)

入口点

  • 命令行接口(CLI): secret_scanner.py

标签

#security #secrets #credentials #api-keys #tokens #passwords #scanner #audit #pre-commit #leak-detection #cloud #aws #azure #gcp #devops

N
@nirwandogra

已收录 1 个 Skill

相关推荐