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, 可视化界面, 盲注攻击, 网络流量审计, 通知系统, 错误基检测, 静态代码分析