DeeTomPanda/Guard

GitHub: DeeTomPanda/Guard

一款基于 Rust 的多语言静态安全分析工具,通过 AST 遍历检测代码中的安全漏洞并提供可视化仪表板和 SARIF 报告输出。

Stars: 0 | Forks: 0

# Guard ``` ███ █ █ ███ ████ ████ █ █ █ █ █ █ █ █ █ █ ██ █ █ █████ ████ █ █ █ █ █ █ █ █ █ █ █ █ ███ ███ █ █ █ █ ████ ``` 一款使用 Rust 构建的适用于任何代码库的静态分析安全工具。Guard 使用 AST 遍历(通过 [OXC](https://github.com/oxc-project/oxc))处理 JS/TS,并使用 tree-sitter 处理其他语言,以比基于正则表达式的方法更高的准确率检测安全漏洞。结果可直接在终端中或通过本地 Flutter 仪表板查看。 ## 功能 - **SQL Injection** — 检测模板字面量、字符串拼接和直接字符串参数中的原始 SQL - **Eval & Dangerous Calls** — 标记 `eval()`、`Function()` 及类似的危险调用表达式 - **Hardcoded Secrets** — 捕获嵌入在源代码中的 API 密钥、token 和凭据 - 基于 AST — 比正则表达式扫描器的误报率更低 - 对 CI/CD 友好的 CLI,带有明确的退出码 - 用于浏览扫描结果的本地 Web 仪表板 ### 扫描工作原理 此示例展示了 JavaScript 的扫描流程。其他语言遵循相同的顶层路径,但使用特定语言的解析器和分析器。 ``` CLI scan path └── parse code with language-specific parser (OXC for JS/TS, tree-sitter for Go, etc.) └── build AST └── query/traverse AST for security patterns └── report() → push to findings Vec └── store in AppState └── serve via GET /api/results/{scan_id} └── Flutter dashboard renders findings ``` ### 服务器架构 ``` localhost:3000/ ├── /api/results/{scan_id} # JSON findings endpoint ├── /app # Flutter SPA (base-href: /app/) └── / # redirects → /app ``` ## 用法 ### 扫描文件并打开仪表板 ``` guard scan path/to/(file or any dir) ``` 这将: 1. 在 `http://localhost:3000` 启动本地服务器 2. 对提供的文件运行扫描 3. 在结果页面自动打开仪表板 4. 持续运行直到按下 `Ctrl+C` ## 🧾 SARIF 输出 (GitHub Code Scanning) Guard 可以导出 **SARIF 格式** 的扫描结果,该格式与 GitHub Code Scanning、VS Code SARIF Viewer 及其他 SARIF 工具兼容。 ### 生成快速分析 ``` guard analyze path/to/(file or dir) ``` ### 生成 SARIF 报告 ``` guard scan path/to/(file or dir) --sarif ``` ### 注意 这将: 1. 像往常一样运行扫描 2. 根据扫描结果生成 SARIF 报告 3. 自动将其保存到文件中 4. 输出文件命名 如果未提供输出路径,Guard 会生成一个默认文件,例如 ` guard-20260615_142355-report.sarif ` 查看 `examples` 以获取 SARIF 输出示例。 Guard 的 SARIF 输出兼容: - GitHub Code Scanning - VS Code SARIF Viewer - 其他兼容 SARIF 的工具 ### 仅启动服务器 ``` guard serve ``` ## 构建 ``` # 构建 rust CLI cargo build --release # 构建 flutter dashboard cd dashboard flutter build web --base-href /app/ ``` ## 漏洞类型 | 类型 | 示例 | |---|---| | SQL Injection | `` `SELECT * FROM ${table}` `` | | Eval | `eval(userInput)` | | Hardcoded Secret | `const API_KEY = "sk-..."` | ## 计划中 - [ ] Symbol 和 Call 的解析 - [ ] Call Graph(跨文件引用) - [ ] Taint Analysis - [ ] Python 支持 - [ ] Java 支持 ## 已完成 - [x] JavaScript 支持 - [x] TypeScript 支持 - [x] Go 支持 - [x] SARIF 输出格式(兼容 GitHub Code Scanning) - [x] SymbolTable 和 CallTable 提取
标签:DOE合作, Rust, SAST, 可视化界面, 盲注攻击, 网络流量审计, 通知系统, 错误基检测, 静态代码分析