leonardo-matheus/vulnscan

GitHub: leonardo-matheus/vulnscan

VulnGate 是一个整合 Trivy 和 OpenGrep/Semgrep 的 CLI 工具,在统一命令下同时完成依赖项漏洞扫描与源码静态安全分析。

Stars: 0 | Forks: 0

# VulnGate 由 [Trivy](https://aquasecurity.github.io/trivy/) + [OpenGrep](https://opengrep.dev) / [Semgrep](https://semgrep.dev) 提供支持的漏洞扫描 CLI。 ## 简介 **VulnGate** 将两个扫描器整合到一个 CLI 中: - **Trivy** — 检测依赖项、secrets 和 misconfigurations 中的漏洞 - **OpenGrep/Semgrep** — 直接检测源代码中的不安全模式 (SAST) ``` Trivy: dependências com CVEs conhecidas SAST: SQL injection, XSS, eval, weak crypto, etc. ``` ## 前置条件 - **Go 1.22+**(用于编译) - **Trivy** — 通过 `vg install` 自动安装 - **OpenGrep** — 通过 `vg install` 自动安装 ## 快速安装 ``` # 编译 go build -o vulngate . # 安装全部 (Trivy + OpenGrep + aliases) vg install # 或者使用 force (重新安装) vg install --force # 验证安装 vg install --check ``` ### `vg install` 的作用 1. 将 `vulngate` 复制到 `~/.vulngate/bin/` 2. 创建别名 `vg.bat` (CMD) 和 `vg.ps1` (PowerShell) 3. 在 PowerShell profile 中添加 `function vg` 4. 下载并安装 **Trivy** 5. 下载并安装 **OpenGrep** 6. 将 `~/.vulngate/bin/` 添加到用户的 PATH 中 ## 命令 ### Scan (Trivy) ``` vg scan fs . # Scan filesystem vg scan fs ./my-project # Scan projeto específico vg scan repo https://github.com/org/repo # Scan repositório Git vg scan fs . --severity HIGH,CRITICAL # Filtrar severidade vg scan fs . --format sarif --output report.sarif # Export SARIF ``` ### SAST (OpenGrep/Semgrep) ``` vg sast fs . # Scan com OpenGrep (padrão) vg sast fs . --engine semgrep # Scan com Semgrep vg sast fs . --rules rules/sast # Regras customizadas vg sast fs . --fail-on ERROR # Falhar em ERROR vg sast fs . --format json --output sast.json ``` ### Full Scan (Trivy + SAST) ``` vg full # Scan completo no diretório atual vg full . # Idem vg full ./my-project # Scan completo em projeto vg full fs ./my-project # Subcomando explícito vg full --engine semgrep # Usar Semgrep ``` ### 其他 ``` vg version # Versão do VulnGate e Trivy vg install # Instalar dependências vg install --check # Verificar instalação ``` ## 包含的 SAST 规则 ### Java - 通过字符串拼接导致的 SQL Injection - 不安全的 TLS (HostnameVerifier) - 弱加密算法 (MD5, SHA1, DES, RC4) ### JavaScript/TypeScript - `eval()`, `new Function()`, 使用字符串的 `setTimeout` - Node.js 查询中的 SQL Injection ### React - `dangerouslySetInnerHTML` ### Vue.js - `v-html` ### 自定义规则 将您的规则放在 `rules/sast/custom/` 中: ``` rules: - id: hardcoded-api-key pattern: | $VAR = "sk-..." message: Hardcoded API key detected languages: [java, javascript] severity: ERROR ``` ## GitHub Actions ``` - name: VulnGate Scan run: | go build -o vulngate . ./vulngate install --check ./vulngate full fs . --format sarif --output results.sarif - name: Upload SARIF uses: github/codeql-action/upload-sarif@v3 if: always() with: sarif_file: results.sarif ``` ## Exit Codes | Code | 含义 | |------|-------------| | `0` | 未发现漏洞 | | `1` | 发现漏洞(根据 `--fail-on` 设置) | | `2` | 执行或验证错误 | ## Roadmap - [ ] Docker image 扫描 - [ ] 配置文件 `.vulngate.yaml` - [ ] 基于严重程度的漏洞策略 - [ ] 带有理由和过期时间的忽略列表 - [ ] Markdown 报告生成 - [ ] Slack/Teams 集成 - [ ] HTTP API - [ ] Web 仪表板 - [ ] 扫描历史记录 - [ ] Dependency-Track 集成 - [ ] 使用 Syft 生成 SBOM - [ ] OSV-Scanner 集成 ## 许可证 MIT License。
标签:EVTX分析, Go, LNA, Ruby工具, 日志审计, 错误基检测, 静态代码分析