Code Security Auditor
综合代码安全审计工具,结合 AI 推理能力与专业安全扫描工具,提供高可信度漏洞发现、可执行修复方案和持续学习优化。
🎯 核心能力
| 能力 | 说明 | 对标 Codex Security |
|---|
| OWASP Top 10 检测 | SQL 注入、XSS、CSRF、SSRF 等 | ✅ |
| 依赖漏洞扫描 |
npm/pip/cargo/maven 依赖安全检查 | ✅ |
|
密钥泄露检测 | API Key、密码、Token 硬编码检测 | ✅ |
|
SAST 静态分析 | 代码流分析、污点追踪 | ✅ |
|
配置安全审计 | CORS、CSP、SSL/TLS 配置检查 | ✅ |
|
修复方案生成 | 提供可执行的安全修复代码 | ✅ |
|
误报率优化 | AI 上下文理解降低误报 | ✅ |
🚀 快速开始
CODEBLOCK0
📋 审计阶段(8 阶段深度审计)
Phase 1: 依赖安全扫描
扫描项目依赖中的已知漏洞。
CODEBLOCK1
输出示例:
{
"phase": "dependency_scan",
"verdict": "WARN",
"findings": [
{
"id": "DEP-001",
"severity": "HIGH",
"package": "requests",
"version": "2.28.0",
"vulnerability": "CVE-2023-32681",
"description": "信息泄露风险",
"fix": "升级到 2.31.0+",
"cvss": 7.5
}
]
}
Phase 2: 密钥泄露检测
检测硬编码的敏感信息。
检测模式:
CODEBLOCK3
工具集成:
# truffleHog
trufflehog filesystem <path> --json
# gitleaks
gitleaks detect --source <path> --report-format json
# detect-secrets
detect-secrets scan --all-files > .secrets.baseline
Phase 3: OWASP Top 10 漏洞扫描
3.1 SQL 注入检测
检测模式:
CODEBLOCK5
扫描规则:
- - 字符串拼接 SQL 语句
- 未使用参数化查询
- 用户输入直接进入查询
- ORM 的 raw query 未转义
3.2 XSS(跨站脚本)检测
检测模式:
CODEBLOCK6
扫描规则:
- - 用户输入直接渲染到 HTML
- 未使用模板引擎的自动转义
- innerHTML 直接赋值
- dangerouslySetInnerHTML 使用
3.3 SSRF(服务器端请求伪造)检测
检测模式:
CODEBLOCK7
扫描规则:
- - requests/urllib 直接使用用户输入
- 未验证 URL 协议(http/https only)
- 未检查内网 IP(169.254.169.254 等)
- 未限制重定向
3.4 其他 OWASP Top 10
| 漏洞类型 | 检测重点 |
|---|
| A01 权限控制失效 | 未授权访问、IDOR、水平/垂直越权 |
| A02 加密失败 |
弱加密算法、硬编码密钥、明文存储 |
|
A03 注入 | SQL、NoSQL、命令注入、LDAP 注入 |
|
A04 不安全设计 | 缺少速率限制、无审计日志 |
|
A05 配置错误 | 默认配置、详细错误信息、开放端口 |
|
A06 脆弱组件 | 过期依赖、已知漏洞 |
|
A07 认证失败 | 弱密码、无 MFA、会话固定 |
|
A08 数据完整性 | 无签名验证、反序列化漏洞 |
|
A09 日志失败 | 敏感信息入日志、无审计追踪 |
|
A10 SSRF | 见上方详细检测 |
Phase 4: 代码流分析(污点追踪)
追踪用户输入从源头到敏感操作的路径。
CODEBLOCK8
AI 增强分析:
- - 跨函数污点追踪
- 识别净化函数(sanitizer)
- 上下文敏感分析
- 降低误报率
Phase 5: 配置安全审计
5.1 Web 服务器配置
CODEBLOCK9
5.2 SSL/TLS 配置
CODEBLOCK10
5.3 文件权限
CODEBLOCK11
Phase 6: 认证与会话安全
检查项:
| 检查点 | 要求 |
|---|
| 密码存储 | bcrypt/argon2,禁止明文/MD5/SHA1 |
| 会话管理 |
HttpOnly + Secure + SameSite |
| Token 安全 | JWT 签名验证、合理过期时间 |
| MFA 支持 | 关键操作要求多因素认证 |
| 速率限制 | 登录/注册接口防暴力破解 |
| 账户锁定 | 多次失败后临时锁定 |
Phase 7: 安全日志与监控
检查项:
CODEBLOCK12
要求:
- - 敏感信息不入日志
- 安全事件完整记录
- 日志完整性保护
- 告警阈值配置
Phase 8: AI 驱动漏洞验证
使用 AI 模型验证潜在漏洞的真实性,降低误报。
CODEBLOCK13
效果(对标 Codex Security):
- - 误报率 ↓ 50%
- 噪声 ↓ 84%
- 真实漏洞检出率 ↑
📊 风险评级系统
CVSS 3.1 评分
| 等级 | 分数范围 | 颜色 |
|---|
| 严重 (Critical) | 9.0 - 10.0 | 🔴 |
| 高危 (High) |
7.0 - 8.9 | 🟠 |
|
中危 (Medium) | 4.0 - 6.9 | 🟡 |
|
低危 (Low) | 0.1 - 3.9 | 🟢 |
|
无风险 (None) | 0.0 | ⚪ |
综合 verdict
CODEBLOCK14
🔧 修复方案生成
自动修复示例
SQL 注入修复
修复前:
CODEBLOCK15
修复后:
CODEBLOCK16
XSS 修复
修复前:
CODEBLOCK17
修复后:
CODEBLOCK18
SSRF 修复
修复前:
CODEBLOCK19
修复后:
import socket
from urllib.parse import urlparse
import ipaddress
def is_safe_url(url: str) -> bool:
parsed = urlparse(url)
if parsed.scheme not in ['http', 'https']:
return False
try:
ip = socket.gethostbyname(parsed.hostname)
ip_obj = ipaddress.ip_address(ip)
# 禁止私有 IP、链路本地、云元数据
if ip_obj.is_private or ip_obj.is_loopback or ip_obj.is_link_local:
return False
if str(ip_obj) == '169.254.169.254': # AWS metadata
return False
return True
except:
return False
def fetch_url(url: str):
if not is_safe_url(url):
raise ValueError("Unsafe URL detected")
return requests.get(url, allow_redirects=False)
📁 配置文件 (.security-audit.yaml)
CODEBLOCK21
📤 报告输出
终端摘要
CODEBLOCK22
JSON 报告(机器可读)
CODEBLOCK23
SARIF 格式(IDE 集成)
CODEBLOCK24
🔄 CI/CD 集成
GitHub Actions
CODEBLOCK25
GitLab CI
CODEBLOCK26
📚 参考资源
OWASP Top 10 2021
- - https://owasp.org/www-project-top-ten/
CWE 通用弱点
安全编码规范
- - Python: https://docs.python.org/3/library/security.html
- Node.js: https://nodejs.org/en/docs/guides/security/
漏洞数据库
- - NVD: https://nvd.nist.gov/
- CVE: https://cve.mitre.org/
🎯 与 OpenAI Codex Security 对比
| 能力 | Codex Security | Code Security Auditor |
|---|
| OWASP Top 10 | ✅ | ✅ |
| 依赖扫描 |
✅ | ✅ |
|
密钥检测 | ✅ | ✅ (truffleHog/gitleaks) |
|
SAST | ✅ AI 驱动 | ✅ AI + 规则混合 |
|
误报优化 | ✅ ↓50% | ✅ AI 验证阶段 |
|
修复建议 | ✅ 可执行代码 | ✅ 可执行代码 |
|
本地运行 | ❌ 需上传 OpenAI | ✅ 完全本地 |
|
数据隐私 | ⚠️ 代码出境 | ✅ 代码不出境 |
|
费用 | 付费(首月免费) | ✅ 开源免费 |
|
可扩展 | ❌ 封闭 | ✅ 自定义规则 |
⚠️ 风险声明
- 1. 本工具不保证发现所有漏洞 — 安全审计应结合人工审查
- 自动修复需谨慎 — 建议 review 后再应用
- 生产环境前必须人工确认 — 自动化工具不能替代安全专家
- 定期更新规则库 — 新漏洞不断出现,保持工具更新
📝 使用示例
CODEBLOCK27
持续学习优化:每次审计结果可反馈到 AI 模型,持续降低误报率、提高检出率。
代码安全审计师
综合代码安全审计工具,结合 AI 推理能力与专业安全扫描工具,提供高可信度漏洞发现、可执行修复方案和持续学习优化。
🎯 核心能力
| 能力 | 说明 | 对标 Codex Security |
|---|
| OWASP Top 10 检测 | SQL 注入、XSS、CSRF、SSRF 等 | ✅ |
| 依赖漏洞扫描 |
npm/pip/cargo/maven 依赖安全检查 | ✅ |
|
密钥泄露检测 | API Key、密码、Token 硬编码检测 | ✅ |
|
SAST 静态分析 | 代码流分析、污点追踪 | ✅ |
|
配置安全审计 | CORS、CSP、SSL/TLS 配置检查 | ✅ |
|
修复方案生成 | 提供可执行的安全修复代码 | ✅ |
|
误报率优化 | AI 上下文理解降低误报 | ✅ |
🚀 快速开始
bash
完整安全审计
code-security-auditor audit <项目路径>
快速扫描(仅高危漏洞)
code-security-auditor quick <项目路径>
针对特定漏洞类型
code-security-auditor scan --type sql-injection <项目路径>
code-security-auditor scan --type xss <项目路径>
code-security-auditor scan --type ssrf <项目路径>
生成修复建议
code-security-auditor fix <漏洞ID>
与基线对比
code-security-auditor compare --baseline .security-baseline.json
📋 审计阶段(8 阶段深度审计)
阶段 1:依赖安全扫描
扫描项目依赖中的已知漏洞。
bash
Python
pip-audit
safety check
pipx run pip-audit --format json
Node.js
npm audit --json
npx audit-ci --config audit-ci.jsonc
Rust
cargo audit --json
Java/Maven
mvn org.owasp:dependency-check-maven:check -Dformat=JSON
输出示例:
json
{
phase: dependency_scan,
verdict: WARN,
findings: [
{
id: DEP-001,
severity: HIGH,
package: requests,
version: 2.28.0,
vulnerability: CVE-2023-32681,
description: 信息泄露风险,
fix: 升级到 2.31.0+,
cvss: 7.5
}
]
}
阶段 2:密钥泄露检测
检测硬编码的敏感信息。
检测模式:
python
API Keys
r(api[_-]?key|apikey)\s
[:=]\s[\][a-zA-Z0-9]{20,}[\]
Passwords
r(password|passwd|pwd)\s
[:=]\s[\].+[\]
Tokens
r(token|secret|auth)\s
[:=]\s[\][a-zA-Z0-9_-]{20,}[\]
Private Keys
r-----BEGIN (RSA |EC )?PRIVATE KEY-----
Cloud Credentials
rAKIA[0-9A-Z]{16} # AWS Access Key
rghp_[a-zA-Z0-9]{36} # GitHub Token
工具集成:
bash
truffleHog
trufflehog filesystem <路径> --json
gitleaks
gitleaks detect --source <路径> --report-format json
detect-secrets
detect-secrets scan --all-files > .secrets.baseline
阶段 3:OWASP Top 10 漏洞扫描
3.1 SQL 注入检测
检测模式:
python
危险模式
cursor.execute(fSELECT * FROM users WHERE id = {user_id}) # ❌
cursor.execute(SELECT * FROM users WHERE id = + user_id) # ❌
安全模式
cursor.execute(SELECT * FROM users WHERE id = %s, (user_id,)) # ✅
扫描规则:
- - 字符串拼接 SQL 语句
- 未使用参数化查询
- 用户输入直接进入查询
- ORM 的 raw query 未转义
3.2 XSS(跨站脚本)检测
检测模式:
python
危险模式
return f
{user_input}
# ❌
html =
+ request.args.get(name) + # ❌
安全模式
from markupsafe import escape
return f
{escape(user_input)}
# ✅
扫描规则:
- - 用户输入直接渲染到 HTML
- 未使用模板引擎的自动转义
- innerHTML 直接赋值
- dangerouslySetInnerHTML 使用
3.3 SSRF(服务器端请求伪造)检测
检测模式:
python
危险模式
requests.get(user_url) # ❌ 无 URL 验证
urllib.request.urlopen(user_input) # ❌
安全模式
def safe_request(url: str) -> Response:
parsed = urlparse(url)
if not is
safeurl(parsed):
raise ValueError(Unsafe URL)
return requests.get(url)
扫描规则:
- - requests/urllib 直接使用用户输入
- 未验证 URL 协议(http/https only)
- 未检查内网 IP(169.254.169.254 等)
- 未限制重定向
3.4 其他 OWASP Top 10
| 漏洞类型 | 检测重点 |
|---|
| A01 权限控制失效 | 未授权访问、IDOR、水平/垂直越权 |
| A02 加密失败 |
弱加密算法、硬编码密钥、明文存储 |
|
A03 注入 | SQL、NoSQL、命令注入、LDAP 注入 |
|
A04 不安全设计 | 缺少速率限制、无审计日志 |
|
A05 配置错误 | 默认配置、详细错误信息、开放端口 |
|
A06 脆弱组件 | 过期依赖、已知漏洞 |
|
A07 认证失败 | 弱密码、无 MFA、会话固定 |
|
A08 数据完整性 | 无签名验证、反序列化漏洞 |
|
A09 日志失败 | 敏感信息入日志、无审计追踪 |
|
A10 SSRF | 见上方详细检测 |
阶段 4:代码流分析(污点追踪)
追踪用户输入从源头到敏感操作的路径。
python
污点源(Source)
user_input = request.args.get(id) # tainted
污点传播
data = process(user_input) # still tainted
query = build_query(data) # still tainted
污点汇(Sink)
cursor.execute(query) # VULNERABLE!
AI 增强分析:
- - 跨函数污点追踪
- 识别净化函数(sanitizer)
- 上下文敏感分析
- 降低误报率
阶段 5:配置安全审计
5.1 Web 服务器配置
yaml
CORS 检查
cors:
allowed_origins: [*] # ❌ 生产环境禁止
allowed_methods: [GET, POST]
credentials: true # ⚠️ 与 * 冲突
CSP 检查
content
securitypolicy:
default_src: [self] # ✅
script_src: [self, unsafe-inline] # ⚠️ 避免 unsafe-inline
5.2 SSL/TLS 配置
yaml
ssl:
min_version: TLSv1.2 # ✅ 禁止 TLSv1.0/1.1
ciphers: # ✅ 使用强加密套件
- ECDHE-RSA-AES256-GCM-SHA384
- ECDHE-RSA-AES128-GCM-SHA256
hsts: true # ✅ 启用 HSTS
5.3 文件权限
bash
检查敏感文件权限
chmod 600 .env # ✅
chmod 644 config.yaml # ✅
chmod 755 scripts/ # ✅
chmod 777 anything # ❌ 禁止
阶段 6:认证与会话安全
检查项:
bcrypt/argon2,禁止明文