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: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-green.svg)](https://python.org) [![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](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, 上游代理, 代码安全, 大语言模型安全, 提示词注入检测, 无后门, 机密管理, 漏洞枚举, 请求拦截, 逆向工具, 静态应用安全测试