docs: update validation results to 15 projects with PoC assessment
Expanded from 7 to 15 MoonBit ecosystem projects (2,438 files total). Added per-finding manual review, PoC reproducibility assessment, and detailed true/false positive analysis for luna.mbt, mocket, cmark, crescent.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
moon-audit
MoonBit 生态安全静态分析工具。基于 AST 语法树分析,检测 MoonBit Web 应用中的安全漏洞。
工作原理
moon.pkg和moon.mod提取项目依赖,构建ImportContextmoonbitlang/parser将.mbt源文件解析为语法树IterVisitortrait,遍历 AST 匹配漏洞模式真实项目扫描效果
对 MoonBit 生态 15 个开源项目(总计 2,438 个文件)的全流程扫描结果:
11 个无 Web 框架依赖的项目全部零检出零误报,Import 门控机制验证有效。
已提交的安全修复 PR
功能特性
.env配置,自动调用 LLM API 验证 Finding 真伪检测规则
String::replace()仅替换首次出现,HTML 转义不完整safe=false,允许注入inner_html()接收动态内容,DOM XSSeval()/new Function()credentials=true且未限制 Origin快速开始
安装
方式一:构建独立二进制(推荐)
构建完成后即可独立使用,无需保留源码目录。
方式二:作为库依赖
一键全流程分析(pipeline)
一条命令完成全部 6 个分析阶段,只扫描一次,输出到
moon-audit-report/目录:LLM 验证需要 API 调用,pipeline 生成脚本后提示手动执行:
指定输出目录:
分步执行
也可以单独运行每个阶段:
使用方式
扫描项目
指定输出格式
列出所有规则
LLM 辅助分析
静态分析发现可能存在误报。
llm-analyze子命令读取项目.env配置,自动生成可执行的 LLM 验证脚本。第一步:配置
.env文件.env配置项:第二步:生成并运行分析脚本
脚本会逐条发送 Finding 给 LLM,输出:
llm_analysis_results.json其他输出格式:
自动兼容 Anthropic Claude API 和 OpenAI 兼容 API(DeepSeek、Ollama 等),根据
LLM_BASE_URL自动切换请求格式。动态部署 PoC 漏洞验证
根据静态扫描发现,生成针对目标环境的 PoC 验证脚本。脚本部署到运行中的服务实例,验证漏洞在真实条件下的可达性:
生成的 PoC 脚本针对 CORS 错误配置、Cookie 属性缺失、请求体 DoS、XSS 注入、路径穿越、CRLF 注入等 CWE 类型,每个脚本包含:
修复建议
为每种检出的 CWE 漏洞类型生成修复指南,含 Before/After 代码示例和 OWASP 分类:
扫描统计报告
按规则、文件、CWE、OWASP 分类聚合分析结果,输出风险评分:
配置文件
在项目根目录创建
.moon-audit.json:集成到 CI
GitHub Actions(推荐)
在项目中添加一个 workflow 文件即可,moon-audit 自动安装 MoonBit 工具链、运行扫描、上传结果到 GitHub Security:
扫描结果自动出现在 Security → Code scanning alerts 页面。
配置选项
常见用法
发现漏洞时阻断 PR 合并:
仅报告 Error 级别漏洞:
输出 JSON 报告(不上传 SARIF):
读取检出数量:
其他 CI 系统(GitLab CI / Jenkins 等)
作为库依赖调用
将 moon-audit 的扫描引擎嵌入到你的 MoonBit 项目中,用于构建自定义安全工具或编辑器插件。
1. 添加依赖
2. 在
moon.pkg中引入3. 调用扫描 API
4. 自定义规则配置
5. LLM 辅助验证集成
低误报配置推荐
moon-audit 通过 Import 门控大幅降低误报率。以下是针对不同项目类型的推荐配置:
Web 服务项目(使用 mocket/crescent):
前端 Wasm 项目(使用 rabbita):
通用库项目(最低误报):
项目结构
开发
许可证
MulanPSL-2.0