Edward-WanderCode/SCA

GitHub: Edward-WanderCode/SCA

一个自托管的静态代码分析平台,集成 SAST、密钥检测和 CVE 漏洞扫描,帮助团队在一处完成代码安全审计与报告导出。

Stars: 0 | Forks: 0

Next.js TypeScript Prisma License

# 🛡️ SCA — 静态代码分析器 🇨🇳 [简体中文版本](docs/README.vi.md) ## ✨ 功能 | 功能 | 描述 | |---------|-------------| | 🔍 **SAST 扫描** | 由 OpenGrep(兼容 Semgrep)驱动,内置 2000+ 社区规则 | | 🛡️ **漏洞检测** | 集成 Trivy,对依赖项和容器进行 CVE 扫描 | | 🔑 **密钥检测** | 基于 TruffleHog 的扫描,用于检测 API 密钥、token 和凭证 | | 🧹 **Linter 集成** | 内置支持 Ruff、ESLint 和 GolangCI-Lint | | 📊 **SARIF 导出** | 兼容 GitHub Security、VS Code 等的标准化输出 | | 📄 **PDF 报告** | 专业且可直接导出的漏洞报告 | | 🤖 **Telegram 机器人** | 通过 Telegram 进行远程扫描和通知 | | 🌲 **文件树视图** | 带有内联结果标注的交互式源代码树 | | 📈 **仪表盘** | 实时安全健康评分和扫描分析 | | 🔄 **增量扫描** | 对比多次扫描结果以跟踪修复进度 | ## 🏗️ 架构 ``` SCA/ ├── src/ │ ├── app/ # Next.js App Router (pages & API routes) │ │ ├── api/ # REST API endpoints │ │ │ ├── scan/ # Scan orchestration │ │ │ ├── history/ # Scan history management │ │ │ ├── telegram/ # Telegram bot webhooks │ │ │ └── upload/ # File upload handling │ │ ├── scan/ # New Scan page │ │ ├── results/ # Scan results viewer │ │ ├── history/ # Scan history page │ │ ├── rules/ # Rule registry browser │ │ ├── vulnerabilities/ # Vulnerability explorer │ │ ├── terminal/ # Agent terminal │ │ └── settings/ # Application settings │ ├── components/ # Reusable React components │ └── lib/ # Core logic │ ├── scanner.ts # Scan engine orchestrator │ ├── linter.ts # Multi-language linter runner │ ├── sarif.ts # SARIF format converter │ ├── telegram.ts # Telegram bot integration │ └── pdf-export.ts # PDF report generator ├── prisma/ # Database schema & migrations (SQLite) ├── scripts/ # Setup & maintenance scripts ├── OpenGrep/ # SAST engine (auto-downloaded) ├── Trivy/ # Vulnerability scanner (auto-downloaded) └── TruffleHog/ # Secret scanner (auto-downloaded) ``` ## 🚀 快速开始 ### 前置条件 - **Node.js** ≥ 20.x - **Windows** 10/11(扫描引擎为 Windows 可执行文件) - **Git** ### 安装 ``` # 1. Clone repository git clone https://github.com/Edward-WanderCode/SCA.git cd SCA # 2. 安装依赖 npm install # 3. 设置环境 cp .env.example .env # 使用你的配置编辑 .env # 4. 初始化数据库 npx prisma migrate dev npx prisma generate # 5. 下载扫描引擎 (OpenGrep, Trivy, TruffleHog) npm run setup # 6. 启动开发服务器 npm run dev ``` 应用程序将在 **http://localhost:3000** 提供。 ### 可用脚本 | 命令 | 描述 | |---------|-------------| | `npm run dev` | 启动开发服务器 | | `npm run build` | 构建生产环境 | | `npm run start` | 启动生产服务器 | | `npm run lint` | 运行 ESLint | | `npm run setup` | 下载扫描引擎二进制文件 | | `npm run update-rules` | 更新 OpenGrep 安全规则 | | `npm run cleanup-temp` | 清理临时扫描文件 | ## 🔧 配置 ### 环境变量 将 `.env.example` 复制到 `.env` 并进行配置: | 变量 | 必需 | 描述 | |----------|----------|-------------| | `DATABASE_URL` | 否 | SQLite 数据库路径(默认:`file:./prisma/dev.db`) | | `TELEGRAM_BOT_TOKEN` | 否 | 用于远程扫描的 Telegram Bot API token | | `TELEGRAM_CHAT_ID` | 否 | 用于接收通知的 Telegram 聊天 ID | ### 扫描源 SCA 支持多种扫描输入方式: - **📁 本地目录** — 浏览并选择服务器上的文件夹 - **📤 文件上传** — 上传源代码压缩包(ZIP、TAR.GZ) - **🔗 Git URL** — 克隆并扫描远程仓库 - **🤖 Telegram** — 通过 Telegram 机器人发送文件或仓库 ## 📜 许可证 该项目基于 [MIT 许可证](LICENSE) 授权。

Edward-WanderCode 用 ❤️ 制作

标签:SAST, StruQ, 盲注攻击, 自动化攻击, 自托管, 错误基检测, 静态代码分析