HeJiguang/codescan

GitHub: HeJiguang/codescan

结合确定性规则与 LLM 分析的代码安全扫描工具,通过结构化流水线和 MCP 协议为编程智能体提供原生的代码审查能力。

Stars: 18 | Forks: 4

CodeScan hero banner

# CodeScan English | [简体中文](README.zh-CN.md) 针对文件、代码库、Git diffs 和编程智能体的 AI 辅助代码安全扫描。 从确定性规则开始,利用 LLM 分析深化上下文,并通过 MCP 和 Codex skill 暴露扫描器。 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/783c6e1e81162855.svg)](https://github.com/HeJiguang/codescan/actions/workflows/ci.yml) ![Python](https://img.shields.io/badge/python-3.10%2B-0F172A?logo=python&logoColor=white) ![LangChain](https://img.shields.io/badge/LangChain-runtime-0B3B2E?logo=chainlink&logoColor=white) ![LangGraph](https://img.shields.io/badge/LangGraph-workflow-102A43?logo=databricks&logoColor=white) ![MCP](https://img.shields.io/badge/MCP-ready-111827) ![License](https://img.shields.io/badge/license-MIT-111827)
## 快速链接 - [为什么选择 CodeScan](#why-codescan) - [适用人群](#who-this-is-for) - [5 分钟体验](#try-it-in-5-minutes) - [快速开始](#quick-start) - [配合 Codex 使用](#use-with-codex) - [示例输出](#example-output) - [参与贡献](#get-involved) - [路线图](#roadmap) ## 为什么选择 CodeScan 许多 AI 代码扫描器仅仅是粘贴源文件之上的聊天包装器。它们听起来很智能,但输出结果不稳定,难以集成,且在实际工作流中难以信赖。 CodeScan 走了一条更严格的路线: - 从确定性的基于规则的信号开始 - 使用 LLM 分析来深化上下文和解释 - 强制结构化输出,而不是自由形式的 blob 解析 - 通过 CLI、报告、MCP 工具和 Codex 工作流交付相同的结果模型 CodeScan 专注于审查工作流,在这里确定性检查、结构化发现和智能体集成至关重要。 ## 适用人群 目前 CodeScan 对以下人群最有用: - 希望在合并代码前进行第二轮安全检查的开发者 - 使用 Codex、Cursor 或 Claude 并希望获得结构化安全工具的团队 - 希望拥有轻量级代码库分类工具,而又不想搭建大型平台的维护者 - 对安全规则、AI 辅助分析或原生 MCP 开发者工具感兴趣的贡献者 目前,它最适合作为审查助手和原生智能体扫描层,而不是一个完整的 SAST 平台。 ## 5 分钟体验 从以下三项开始: 1. 浏览 [`examples/demo-vulnerable-app`](examples/demo-vulnerable-app) 中的示例固件 2. 打开 [`examples/sample-mcp-result.json`](examples/sample-mcp-result.json) 中的代表性结果 3. 阅读 [示例输出](docs/example-output.md) 中的图文说明 本地运行: ``` pip install -e . python -m codescan config --provider deepseek --api-key YOUR_API_KEY --model deepseek-chat python -m codescan dir examples/demo-vulnerable-app --output demo-result.json ``` ## 与众不同之处 | 领域 | 当前功能 | 为什么重要 | | --- | --- | --- | | `LangChain` 提供商 | 统一 DeepSeek、OpenAI、Anthropic 和兼容 OpenAI 的端点 | 无需重写扫描器即可切换模型 | | `LangGraph` 工作流 | 将文件分析建模为 `rule_scan -> llm_scan -> merge_and_finalize` | 为 AI 运行时提供真正的流水线,而不是杂乱的提示词 | | `MCP Server` | 为编程智能体暴露结构化扫描工具 | 让 Codex 和其他 MCP 客户端直接调用 CodeScan | | `Skill layer` | 提供可安装的 `codescan-review` skill | 指导 Codex 何时扫描以及如何呈现结果 | | 报告系统 | 生成 HTML / JSON / 文本输出 | 同时适用于人工和自动化 | | 测试 + CI | 验证运行时、打包、文档和入口点 | 防止代码库退化为原型质量 | ## 架构 ``` flowchart LR A["CLI / GUI"] --> B["CodeScanner"] A2["MCP Server"] --> B A3["Codex Skill"] --> A2 B --> C["AIAnalysisService"] C --> D["providers.py"] C --> E["chains.py"] C --> F["workflow.py"] B --> G["VulnerabilityDB"] B --> H["report.py"] F --> I["rule_scan"] F --> J["llm_scan"] F --> K["merge_and_finalize"] ``` 核心布局: ``` codescan/ ├── ai/ │ ├── providers.py │ ├── prompts.py │ ├── chains.py │ ├── workflow.py │ ├── schemas.py │ └── service.py ├── scanner.py ├── report.py ├── vulndb.py ├── mcp_server.py └── __main__.py skills/ └── codescan-review/ ``` ## 快速开始 ### 1. 克隆 ``` git clone https://github.com/HeJiguang/codescan.git cd codescan ``` ### 2. 安装 ``` python -m venv .venv # Linux / macOS source .venv/bin/activate # Windows .venv\Scripts\activate pip install -e . ``` ### 3. 配置模型 ``` python -m codescan config --show python -m codescan config --provider deepseek --api-key YOUR_DEEPSEEK_API_KEY --model deepseek-chat ``` ### 4. 试用 CLI ``` python -m codescan file /path/to/file.py python -m codescan dir /path/to/project python -m codescan git-merge main ``` ### 5. 试用 MCP server ``` codescan-mcp --transport stdio ``` ## 配合 Codex 使用

CodeScan Codex workflow

要从 Codex 使用 CodeScan,请结合以下两层: 1. 安装 `codescan-review` skill 2. 运行 `codescan-mcp --transport stdio` 3. 让 Codex 在具体的扫描范围内进行安全审查 这为 Codex 提供了工作流指导以及真正的结构化扫描工具。 良好的入门提示词: ``` Use $codescan-review to inspect the current branch against main and report only actionable security findings. Use $codescan-review to inspect this file for security issues, especially trust boundaries and command execution risks. Use $codescan-review to scan this repository and summarize the top security risks by severity. ``` 更多设置细节请参见[配合 Codex 使用](docs/codex.md)、[MCP 指南](docs/mcp.md)和[Skill 指南](docs/skill.md)。 ## MCP 真能提升智能体安全性吗? 是的,在审查工作流中可以。 如果在正确的时机使用 CodeScan,并将其视为一种审查工具而非自动保证,它可以提高智能体编写代码的安全性: - 最高价值:在合并前扫描当前分支或 diff - 较高价值:扫描涉及身份验证、SQL、Shell 执行、文件处理、模板或敏感信息的可疑文件 - 较低价值:为了解或分类而进行广泛的代码库扫描 MCP 改变的是集成成本。CodeScan 无需让智能体调用 shell、等待报告并解析结果文件,而是可以直接在审查循环中返回结构化的发现结果。 MCP 本身无法解决的问题: - 轻量级规则匹配产生的误报 - 缺乏更深入的数据流或框架感知分析 - 在将高严重性发现确认为已证实的漏洞之前,需要人工验证 换言之:MCP 使安全审查工作流更容易被智能体一致地使用。它本身并不会将任何扫描器变成一个完整的安全门禁。 ## 示例输出

CodeScan sample findings preview

本代码库包含一个小型的有意设计的漏洞固件,以及一个代表性的结构化扫描结果: - [`examples/demo-vulnerable-app`](examples/demo-vulnerable-app) - [`examples/sample-mcp-result.json`](examples/sample-mcp-result.json) 这些文件展示了在进行任何本地模型设置之前的预期结果形态。 更多细节请参见[示例输出](docs/example-output.md)。 ## 参与贡献 当前的贡献领域: - 提高规则质量并减少误报 - 添加 Semgrep 或基于 AST 的检查 - 改进 GUI 可用性或拆分 `gui.py` - 添加基准测试代码库和评估固件 - 改进文档、示例、引导流程和 Codex 工作流 从这里开始: - [贡献指南](docs/CONTRIBUTING.md) - [新手任务指南](docs/good-first-issues.md) - [社区指南](docs/community.md) - [支持](SUPPORT.md) - [MCP 指南](docs/mcp.md) - [Skill 指南](docs/skill.md) - 贡献指南中描述的 `good first issues` 通道 请使用 GitHub issue 模板提交 Bug 和功能建议。 ## 当前交付内容 - 统一的现代聊天模型提供商层 - 基于 LangGraph 的文件分析工作流 - 文件、目录、GitHub 代码库和 Git diff 扫描 - HTML / JSON / 文本报告生成 - 桌面 GUI - 带有结构化安全工具的 MCP server - 可安装的 `codescan-review` Codex skill - 特定于 Codex 的设置指南和工作流图解 - 演示漏洞固件和示例 MCP 风格的发现结果 - GitHub Actions CI 和测试覆盖率 ## 质量门禁 ``` python -m pytest tests -q python -m compileall codescan python -m codescan --help python -m codescan mcp --help ``` ## 路线图 - [x] 使用 `LangChain + LangGraph` 重建 AI 运行时 - [x] 修复 CLI / GUI / 报告层契约不匹配问题 - [x] 添加打包元数据、测试和公共 CI - [x] 为编程智能体发布 MCP server 接口 - [x] 发布可安装的 Codex skill - [x] 在代码库主页添加具体的示例输出 - [ ] 通过更深入的 Semgrep / AST 审查流程增强规则的可信度 - [ ] 添加 SARIF 输出和 GitHub 代码扫描集成 - [ ] 继续将扫描/导出/设置逻辑从 `gui.py` 中拆分出来 - [ ] 添加基准测试代码库和可重复的评估固件 ## 文档 - [技术文档](docs/technical_doc.md) - [MCP 指南](docs/mcp.md) - [Skill 指南](docs/skill.md) - [配合 Codex 使用](docs/codex.md) - [示例输出](docs/example-output.md) - [新手任务](docs/good-first-issues.md) - [社区指南](docs/community.md) - [贡献指南](docs/CONTRIBUTING.md) - [支持](SUPPORT.md) ## 许可证 MIT。参见 [LICENSE](LICENSE)。
标签:Agent, AI辅助分析, CISA项目, Codex, DevSecOps, DLL 劫持, Git Diff扫描, LangChain, LangGraph, LLM, MCP, Python, Unmanaged PE, 上游代理, 代码安全, 大语言模型, 威胁情报, 安全审查, 安全工作流, 开发者工具, 无后门, 模型上下文协议, 源码审计, 漏洞枚举, 编程助手, 轻量级, 逆向工具, 错误基检测, 静态代码分析, 预合并扫描