mcpField
C
code-vuln-audit

code-vuln-audit

github.com/zebbern安全4.7k51 次安装1 天前更新
代码仓库

关于 code-vuln-audit

一款 Python 命令行安全扫描工具,可检查项目依赖、泄露的秘密信息和 OWASP 相关代码模式,适用于审查代码库的开发者,并支持按严重级别筛选文本或 JSON 结果。

主要功能

  1. 01审计 npm 和 Python 依赖
  2. 02通过模式匹配与熵检测秘密信息
  3. 03查找 OWASP 相关代码模式
  4. 04选择扫描模块和严重级别阈值
  5. 05生成文本或 JSON 报告

适用场景

  1. 01发布前检查项目依赖
  2. 02查找代码库中提交的凭据
  3. 03审查注入风险及不安全代码模式
  4. 04生成机器可读的安全发现结果

安装

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

$npx skills add https://github.com/zebbern/claude-code-guide --skill code-vuln-audit

安装后在 Claude Code 中输入/code-vuln-audit确认已加载。

附带文件LICENSEscripts/security_scan.py

详细介绍

code-vuln-audit

一款代码安全扫描工具,具备三项核心扫描能力:

  1. 依赖漏洞扫描 — 自动检测 npm / pip 依赖中的已知漏洞
  2. 机密泄露检测 — 通过正则匹配 + Shannon 熵分析,发现硬编码的机密信息、令牌和密码
  3. OWASP 模式检测 — 识别常见的安全反模式,例如 SQL 注入、XSS、命令注入和不安全反序列化

快速开始

# Scan the current directory (all checks)
python3 scripts/security_scan.py .

# Scan dependencies only
python3 scripts/security_scan.py --mode deps .

# Detect secret leaks only
python3 scripts/security_scan.py --mode secrets /path/to/project

# Detect OWASP security patterns only
python3 scripts/security_scan.py --mode owasp .

# Output report in JSON format
python3 scripts/security_scan.py --format json --output report.json .

# Only show findings at high severity and above
python3 scripts/security_scan.py --severity high .

扫描模块详情

1. 依赖漏洞扫描(deps)

自动检测项目类型并调用相应工具:

项目类型检测文件使用的工具
Node.jspackage.json + package-lock.jsonnpm audit
Pythonrequirements.txt / pyproject.toml / Pipfilepip-audit

如果未安装相应的审计工具,会显示提示信息,而不是报错。

2. 机密泄露检测(secrets)

通过两种方式进行检测:

正则匹配:涵盖常见的机密信息格式

机密信息类型示例模式
AWS 访问密钥以 AKIA 开头的 20 个字符字符串
GitHub 令牌以 ghp_ 或 github_pat_ 开头
Slack 令牌以 xoxb- 或 xoxp- 开头
Stripe 密钥以 sk_live_ 或 pk_live_ 开头
私钥文件-----BEGIN PRIVATE KEY-----
通用 API 密钥类似 api_key = "..." 的格式
URL 中的凭据https://user:pass@host
JWT 令牌eyJ... 格式

Shannon 熵分析:计算代码中字符串常量的信息熵(阈值 > 4.5 且长度 >= 20),以发现非标准格式的机密信息。

3. OWASP 模式检测(owasp)

涵盖 OWASP Top 10 中可通过静态分析检测的安全模式:

OWASP 类别检测模式
A02:加密失效弱哈希(MD5/SHA1)、弱加密算法(DES/RC4)
A03:注入SQL 注入、命令注入(os.system / subprocess shell / eval / exec)、XSS(innerHTML / document.write / dangerouslySetInnerHTML / v-html)
A04:不安全设计路径遍历
A05:安全配置错误启用调试模式、CORS 通配符、绑定到 0.0.0.0
A08:完整性失效不安全反序列化(pickle / yaml.load / marshal / unserialize)
A10:SSRF用户输入直接传入 HTTP 请求

支持的语言:Python、JavaScript/TypeScript、Java、PHP、Ruby、Go 等。

参数

参数说明默认值
TARGET要扫描的目录当前目录
--mode MODE扫描模式:all、deps、secrets、owaspall
--format FORMAT输出格式:text、jsontext
--output FILE输出文件路径stdout
--severity LEVEL最低报告级别:low、medium、high、criticallow
--exclude-dir DIR要排除的其他目录(可重复指定)-
--max-file-kb SIZE要扫描的最大文件大小,单位为 KB512
-h, --help显示帮助信息-

输出格式

文本输出(默认)
=== Security Scan Report ===
Target: /path/to/project
Modules: deps, secrets, owasp

[CRITICAL] AWS Access Key ID
  File: src/config.py:15
  Code: AWS_KEY = "AKIAIOSFODNN7EXAMPLE"

[HIGH] SQL Injection (f-string)
  File: src/db.py:42
  Code: cursor.execute(f"SELECT * FROM users WHERE id={user_id}")

--- Summary ---
Critical: 1 | High: 1 | Medium: 0 | Low: 0
Total findings: 2
JSON 输出
{
  "target": "/path/to/project",
  "scan_time": "2026-04-14T10:30:00",
  "findings": [
    {
      "scanner": "secrets",
      "name": "AWS Access Key ID",
      "severity": "critical",
      "file": "src/config.py",
      "line": 15,
      "snippet": "AWS_KEY = \"AKIAIOSFODNN7EXAMPLE\"",
      "category": "secret-pattern"
    }
  ],
  "summary": {"critical": 1, "high": 0, "medium": 0, "low": 0, "total": 1}
}

退出代码

退出代码含义
0未发现问题
1发现问题(至少存在一项安全问题)
2扫描器内部错误

前置条件

  • Python 3.7+(仅使用标准库)
  • 依赖扫描需要安装相应工具:npm(用于 Node.js 项目)、pip-audit(用于 Python 项目)
  • 如果缺少审计工具,将跳过相应模块并显示提示 — 其他模块仍会正常运行

评论

支持 Markdown