alexandre-leng/ai-security-code-validator
GitHub: alexandre-leng/ai-security-code-validator
一款专为 LLM 生成代码设计的安全扫描器,通过多引擎并行分析检测 AI 特有漏洞和传统安全风险,并提供两级自动化审查工作流。
Stars: 0 | Forks: 0
# 🤖 AI Code Validator
🔍 专为 LLM 生成的代码提供 **1000+ 安全规则**
🛡️ **Prompt injection 检测** — 集成 Whitney (transilienceai/whitney)
⚡ **几秒钟完成扫描** — 在代码进入生产环境之前
🤖 **两级 Workflow** — 自动批准安全代码,上报风险
**关键词:** AI 代码安全,AI 生成代码扫描器,LLM 安全扫描器,Prompt injection 检测,安全代码审查,面向 AI 代码的 SAST,DevSecOps,Semgrep 安全自动化,软件供应链安全
[](LICENSE)
[](https://python.org)
[](Dockerfile)
## 🚨 问题:AI 会编写不安全的代码
**LLM 生成的代码中有 45% 包含 OWASP Top 10 漏洞。**
*(Veracode, 2025)*
你向 ChatGPT 要一个 Python 脚本。它给了你一个带有 `os.system()` 和硬编码 API key 的代码。
你使用 Copilot 编写登录表单。它建议对用户输入使用 `eval()`。
你提示 Claude 编写数据 pipeline。它生成了对不受信任数据使用 `pickle.loads()` 的代码。
**问题在于:** 开发者信任 AI 生成的代码。他们不会逐行阅读。他们不会审查 Copilot 自动补全在两行有效代码之间插入的内容。
**结果:** 漏洞以机器速度混入生产环境。
## ✅ 解决方案:为 AI 生成代码提供安全护栏
AI Code Validator 是第一款**专为机器编写(而非人类编写)的代码设计**的安全扫描器。
我们不只是查找 SQL injection。我们还能查找:
🔴 **LLM 特有的漏洞**
• AI 应用中的 Prompt injection
• LLM 喜欢生成的不安全反序列化(如 pickle, yaml)
• 自动补全注入的 `eval()` / `exec()` 模式
• Copilot 生成的硬编码 API key
• 使用 f-string 构建的 SQL 查询(Copilot 最喜欢的模式)
🟠 **传统漏洞** — 涵盖 14 种语言的 1000+ 规则
• SQL injection、XSS、命令注入
• 凭证泄露(AWS、GitHub、Stripe、OpenAI key)
• 易受攻击的依赖项(使用 OSV 实时数据库进行 SCA)
• 许可证合规性(GPL 检测)
🟢 **不会拖慢你工作进度的 Workflow**
• **Level 0:** 自动批准安全代码(零摩擦)
• **Level 1:** 将真实风险上报给人工审查
• **Auto-fix:** 使用单个命令生成更正后的代码
## ⚡ 快速开始
```
# 安装
pip install -e .
pip install semgrep bandit
# 扫描文件(即时)
python3 -m aicv.cli scan app.py
# 扫描你的 Copilot 生成的项目
python3 -m aicv.cli scan my-ai-project/
# 两级工作流(推荐团队使用)
python3 -m aicv.cli level0 my-project/ # Auto-approve safe code
python3 -m aicv.cli level1 my-project/ # Review escalated risks
# 自动修复所有可修复的内容
python3 -m aicv.cli fix --file app.py
# 生成 SBOM 以满足合规要求
python3 -m aicv.cli sbom --target . --format cyclonedx
# 检查依赖项的已知 CVE (OSV 实时)
python3 -m aicv.cli sca --target .
# 启动 API + 仪表盘
AICV_API_KEY="demo" python3 -m aicv.cli serve
# → http://localhost:5001/review.html
```
## 工作原理
AI Code Validator 将多个应用安全测试引擎组合到一个单一的工作流程中,专为 **AI 生成的代码、Copilot 辅助的提交、CI/CD pipeline 以及大规模安全审查**而构建。
### 1. 解析目标
扫描器会检测项目的语言、框架和文件类型,然后为源代码、依赖项、基础设施即代码以及 AI 特有的攻击面选择合适的分析器。
### 2. 运行多引擎分析
它会并行协调多个引擎:
• **Semgrep 规则** 用于检测代码漏洞、不安全的模式、API 滥用、IaC 问题和特定框架的风险
• **Prompt injection 检测** 针对 LLM 应用、RAG pipeline、agent 工作流和危险的 sink 链
• **凭证检测** 用于发现 API key、token 和泄露的凭证
• **SCA** 针对实时的 OSV 数据库检测易受攻击的依赖项
• **SBOM 和许可证分析** 用于合规性、治理和供应链可见性
### 3. 关联并评估发现结果
发现的结果将被标准化、去重,并根据严重程度和置信度进行评分,最后转换为对开发者友好的风险报告,其中包含全局评分和可操作的修复提示。
### 4. 通过两级 Workflow 路由
安全或低风险的发现可以在 **Level 0** 中自动批准,而高置信度或严重的问题将被升级到 **Level 1** 进行人工验证,这使得该工作流能够在真实的工程团队中使用,而不会产生警报疲劳。
### 5. 导出或集成
结果可以通过 CLI、REST API、SARIF 输出、仪表板、GitHub PR 评论和编辑器集成来使用,因此团队可以在本地开发、pre-commit 检查、Pull Request 或生产发布门禁中使用 AI Code Validator。
## 🔥 是什么让我们与众不同
### 1. Prompt Injection 检测
检测 AI 应用中跨越 16+ 源类型的 **Prompt injection 漏洞**:
```
# AI Code Validator 检测到此内容:
openai.ChatCompletion.create(
messages=[{"role": "user", "content": user_input}] # 🔴 PROMPT INJECTION
)
# 还有此内容:
pickle.loads(ai_generated_data) # 🔴 UNSAFE DESERIALIZATION
# 以及此内容:
eval(llm_output) # 🔴 CODE INJECTION
```
### 2. 专为 AI 的速度而生
• **在 < 10 秒内**完成典型文件的扫描
• **1000+ 规则**涵盖所有主要的漏洞类别
• **14 种语言** — Python、JS/TS、Java、Go、Rust、C/C++、PHP、Ruby、C#、Swift、Kotlin、Shell
• **实时 SCA** — 实时查询 OSV 数据库(而非静态的 CVE 列表)
### 3. 两级安全 Workflow
**Level 0 — 自动化(零摩擦)**
```
python3 -m aicv.cli level0 my-project/
```
执行流程:
• 具有高置信度的 LOW/MEDIUM 发现 → **自动批准**
• 已知且可修复的模式 → **自动解决**
• CRITICAL/HIGH 发现 → **升级至 Level 1**
输出:
```
🤖 Level 0 — Automated Security Scan
📊 Results:
Auto-approved: 12
Auto-resolved: 3
Escalated to Level 1: 5
```
**Level 1 — 人工审查**
```
python3 -m aicv.cli level1 my-project/
```
针对每种发现类型的安全检查清单的交互式会话:
```
👤 Level 1 — Human Security Review
[CRITICAL] app.py:15
Rule: python-sqli-format-string
Code: cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")
📝 Security Checklist:
1. Is the user input properly parameterized?
2. Are ORM methods used instead of raw SQL?
Decision [approve/reject/skip/quit]: reject
Notes: Confirmed SQLi, must use parameterized queries
```
### 4. VS Code 插件(实时)
边写代码边扫描。在你的编辑器中直接获得针对 AI 生成漏洞的即时高亮显示。
命令:
• `Ctrl+Shift+S` — 扫描当前文件
• 状态栏 — 实时漏洞计数
• 仪表板 — 严重程度细分的 webview
### 5. 开源、自托管、支持 Air-Gap
• **MIT 许可证** — 无供应商锁定
• **自托管** — 你的代码永远不会离开你的基础设施
• **兼容 Air-gap** — 可离线工作(需要 OSV API 的 SCA 除外)
• **SARIF 导出** — 与 GitHub Advanced Security 集成
## 🛡️ 检测引擎(13 个)
**Semgrep** — 1000+ 规则,30+ 个类别(SQLi、XSS、注入、IaC、容器、CI/CD、AI/ML)
**Prompt Injection (Whitney)** — 针对 16+ 种 Prompt injection 源类型的 Semgrep 规则(直接 HTTP/CLI/Voice,间接 RAG/Web/File Upload,关键 sink:PAL 链、SQL 链、PythonREPL)
**Bandit** — Python AST 分析(硬编码密码、shell 注入)
**Secrets Detector** — 14 种模式 + 验证器(AWS、GitHub、Stripe、OpenAI key)
**SCA(软件组成分析)** — 实时 OSV 数据库查询。7 个生态系统:PyPI、npm、Maven、Go、Cargo、RubyGems、Packagist
**SBOM 生成器** — CycloneDX 1.5 + SPDX 2.3 导出
**License 扫描器** — Copyleft、限制性、未知许可证检测
**SARIF 导出器** — GitHub/CodeQL 集成标准
**Dead Code 检测器** — Python AST(未使用的导入、函数、类)
**框架规则** — Django、Flask、Express、Laravel、FastAPI 专用规则
**语言检查器** — 14 种带有专用分析器的语言
**评分引擎** — 0-100 分 + A-F 等级
**Auto-Fix** — 基于正则表达式 + AST 的代码更正
## 🌍 语言与框架
**语言:** Python、JavaScript、TypeScript、Java、Go、PHP、Ruby、C#、Rust、C、C++、Swift、Kotlin、Shell/Bash
**基础设施:** Dockerfile、Kubernetes YAML、Terraform、CloudFormation
**AI/ML 专用:** PyTorch、TensorFlow、OpenAI API、LangChain 模式
**区块链:** Solidity 智能合约
**移动端:** Android (Kotlin/Java)、iOS (Swift)
## 📋 CLI 命令
```
scan 🔍 Full security scan (all 12 engines)
level0 🤖 Automated workflow — auto-approve safe code
level1 👤 Human review — security checklist per finding
fix 🔧 Auto-fix vulnerabilities
delta 📊 Compare two scans (regression detection)
notify 📢 Slack / Discord / Email / Webhook alerts
pr 🐙 Post results as GitHub PR comment
sbom 📦 Generate Software Bill of Materials
sca 📦 Dependency vulnerability scan (OSV real-time)
license 📜 License compliance scan
sarif 📊 SARIF export for GitHub/CodeQL
checklist 📝 Security checklists for reviewers
serve 🚀 REST API + Web dashboard
version 📌 Show version
tools 📦 List available tools
```
## 🚀 部署选项
### Docker(生产就绪)
```
docker-compose up -d
# API: http://localhost:5001
# 仪表盘: http://localhost:5001/review.html
```
多阶段 Dockerfile 包含:
• 非 root 用户
• 只读文件系统
• 健康检查
• 带有速率限制的 Nginx 反向代理
### GitHub Actions
```
# 自动扫描每个 PR
# 如果发现 CRITICAL 漏洞则阻止合并
```
### API 使用
```
curl -X POST http://localhost:5001/api/v1/scan \
-H "X-API-Key: demo" \
-H "Content-Type: application/json" \
-d '{"code": "import os\nos.system('id')", "language": "python"}'
```
## 📊 示例输出
```
╔══════════════════════════════════╗
║ 🤖 AI CODE VALIDATOR v3.3 ║
╚══════════════════════════════════╝
📁 app.py
📊 Score: 0/100 💀 Grade F
🔍 23 vuln(s) | C:12 H:7 M:0 L:1
🔴 [CRITICAL] app.py:10
[semgrep] LLM output passed to os.system(). Extreme risk.
🔴 [CRITICAL] app.py:13
[semgrep] Unsafe pickle.loads() on AI-generated data
🟠 [HIGH] app.py:7
[semgrep] LLM prompt constructed with dynamic input.
Risk of prompt injection.
🔴 [CRITICAL] app.py:20
[secrets] 🔑 Stripe Secret Key detected: sk_l…7890
⚙️ Two-Level Workflow:
Level 0 (Auto): 0/23 handled
Level 1 (Human): 23 need review
```
## 🏗️ 架构
```
aicv/
├── scanner.py # Multi-engine orchestrator (12 engines)
├── scoring.py # 0-100 + A-F scoring
├── secrets_detector.py # API key patterns + entropy analysis
├── sca_scanner.py # Real-time OSV dependency scanning
├── sbom_generator.py # CycloneDX + SPDX generation
├── sarif_exporter.py # SARIF v2.1.0 export
├── license_scanner.py # License compliance
├── workflow.py # Two-level security workflow
├── auto_fix.py # Code correction engine
├── report_exporter.py # JSON / MD / HTML export
├── notifier.py # Slack / Discord / Email / Webhook
├── github_pr.py # GitHub PR integration
├── checkers/ # 11 language-specific analyzers
│ ├── rust_checker.py
│ ├── cpp_checker.py
│ ├── typescript_checker.py
│ ├── swift_checker.py
│ ├── kotlin_checker.py
│ └── shell_checker.py
api/ # REST API (Flask + Gunicorn)
static/ # Web dashboard (review.html)
rules/semgrep/ # 1000+ security rules (50+ files)
vscode-extension/ # VS Code extension (TypeScript)
```
## 📈 v3.3 中的新功能
**1000+ Semgrep 规则** — 涵盖 15+ 类别的 50+ 个规则文件
**实时 SCA** — OSV API 集成(取代静态 CVE 列表)
**VS Code 插件** — 在你的 IDE 中进行实时扫描
**Docker + SaaS MVP** — 多阶段 Dockerfile、docker-compose、nginx
**社区基础设施** — Issue 模板、CI/CD、CoC、PR 模板
**AI/ML 安全规则** — Prompt injection、不安全的 pickle、LLM eval 检测
## 📚 文档
• [架构](docs/ARCHITECTURE.md) — 系统设计与数据流
• [API 参考](docs/API.md) — 完整的 REST API 文档
• [Workflow 指南](docs/WORKFLOW.md) — 两级安全工作流
• [贡献指南](docs/CONTRIBUTING.md) — 代码标准与 PR 流程
• [安全](docs/SECURITY.md) — 支持的版本与披露策略
• [战略](docs/STRATEGY.md) — 竞争分析与路线图
## GitHub SEO 建议
如果你希望该仓库在 GitHub 搜索中更容易被发现,最大的提升通常来自于 **About 描述**、**topics** 以及 README 的前 20 行。
**建议的 GitHub 描述**
`开源的 AI 代码安全扫描器,用于 LLM 生成的代码。在 CI/CD 和 DevSecOps 工作流中检测 Prompt injection、secrets、易受攻击的依赖项和 OWASP 风险。`
**建议的 GitHub topics**
`ai-security`、`llm-security`、`application-security`、`code-security`、`secure-coding`、`prompt-injection`、`sast`、`semgrep`、`devsecops`、`owasp`、`supply-chain-security`、`sbom`、`sarif`、`vulnerability-scanner`、`github-actions`
**建议的网站**
目前使用仓库 URL,或者未来的落地页,例如 `https://www.formalibre.org`,并为 AI Code Validator 设置专门的产品板块。
## 📄 许可证
MIT
## 🙏 鸣谢
本项目包含或受到以下开源项目的启发:
- **[transilienceai/whitney](https://github.com/transilienceai/whitney)** (Apache 2.0) — 涵盖 16+ 源类型的 Prompt injection 检测规则
- **[Shiboof/Code-Vulnerability-Scanner](https://github.com/Shiboof/Code-Vulnerability-Scanner)** (MIT) — 安全评分系统,语言检测模式
- **[duriantaco/skylos](https://github.com/duriantaco/skylos)** (Apache 2.0) — Dead code 检测模式,框架感知规则
有关完整的第三方归属详情,请参阅 [LICENSE](LICENSE)。
**[⭐ 在 GitHub 上 Star](https://github.com/alexandre-leng/ai-code-validator)**
**[🐛 报告问题](https://github.com/alexandre-leng/ai-code-validator/issues)**
**[🌐 formalibre.org](https://www.formalibre.org)**
标签:CISA项目, DevSecOps, LLM防护, Python, StruQ, 上游代理, 代码安全, 大语言模型安全, 提示词注入检测, 无后门, 机密管理, 漏洞枚举, 请求拦截, 逆向工具, 静态应用安全测试