hari7190/vulnerability-scanner

GitHub: hari7190/vulnerability-scanner

一个面向企业的 SaaS 漏洞扫描平台,通过 Go Agent 大规模自动化检测 Linux 服务器漏洞并提供修复指导。

Stars: 0 | Forks: 0

# vulnerability-scanner 一个面向企业的 SaaS 平台,可大规模自动化执行 Linux 服务器的漏洞检测与修复指导。 ## 架构 - **前端:** React 18+ 配合 TypeScript - **后端:** Ruby on Rails 7.1+ (API 模式) - **Agent:** Go 1.21+ - **数据库:** MySQL 8.0+ - **后台任务:** Sidekiq 配合 Redis - **容器化:** Docker 与 Docker Compose ## 开发模式 **本地编码,远程 VM 部署** 本项目专为以下开发场景设计: - ✅ 在本地机器上编写代码(资源消耗低) - ✅ 在远程 VM 上部署和运行应用程序 - ✅ 使用提供的脚本轻松同步代码变更 有关完整的工作流,请参阅 [DEVELOPMENT-WORKFLOW.md](DEVELOPMENT-WORKFLOW.md)。 ## 前置条件 ### 本地机器 - 代码编辑器(VS Code 等) - Git - 对远程 VM 的 SSH 访问权限 - rsync(用于文件同步) - **Windows 用户**:推荐使用 WSL (Windows Subsystem for Linux) 来运行 bash 脚本 - **macOS 用户**:脚本可直接运行 - 无需额外设置 ### 远程 VM - 已安装 Docker 和 Docker Compose - SSH 服务器正在运行 - 资源充足(2+ CPU 核心,4GB+ RAM,20GB+ 磁盘) - 可访问的端口:3000(后端),5173(前端) ## 快速开始 ### 1. 配置 VM 访问权限 创建 `config/.vm-config` 文件: ``` cp config/.vm-config.example config/.vm-config # 使用你的 VM 详细信息编辑 config/.vm-config ``` ### 2. 初始部署至 VM 将应用程序部署到您的 VM: ``` ./scripts/deploy-to-vm.sh ``` 此操作将会: - 同步代码至 VM - 构建 Docker 镜像 - 启动所有服务 - 设置数据库 ### 3. 访问应用 - **前端:** http://VM_IP:5173 - **后端 API:** http://VM_IP:3000 - **健康检查:** http://VM_IP:3000/health ### 手动设置 #### 1. 克隆仓库 ``` git clone cd vulnerability-scanner ``` #### 2. 设置环境变量 在根目录下创建 `.env` 文件: ``` cp .env.example .env # 使用你的配置编辑 .env ``` #### 3. 初始化 Rails 应用(如果尚未完成) ``` cd backend rails new . --api --database=mysql --skip-test --skip-git cd .. ``` #### 4. 启动开发环境 ``` cd config docker-compose up -d cd .. ``` 这将启动以下服务: - MySQL 数据库(端口 3306) - Redis(端口 6379) - Rails 后端 API(端口 3000) - Sidekiq worker - React 前端(端口 5173) #### 5. 设置数据库 ``` # 使用 docker-compose (带连字符) 或 docker compose (带空格) cd config docker-compose exec backend rails db:create docker-compose exec backend rails db:migrate docker-compose exec backend rails db:seed cd .. ``` #### 6. 访问应用 - **前端:** http://localhost:5173 - **后端 API:** http://localhost:3000 - **健康检查:** http://localhost:3000/health - **Sidekiq Web UI:** http://localhost:3000/sidekiq(仅限开发环境) ## VM 上的开发 ### 后端 ``` # 访问 Rails console ./scripts/vm-exec.sh backend rails console # 运行 migrations ./scripts/vm-exec.sh backend rails db:migrate # 运行 tests ./scripts/vm-exec.sh backend bundle exec rspec # 查看 logs ./scripts/view-vm-logs.sh backend ``` ### 前端 ``` # 运行 tests ./scripts/vm-exec.sh frontend npm test # 安装 dependencies ./scripts/vm-exec.sh frontend npm install # 查看 logs ./scripts/view-vm-logs.sh frontend ``` ### 数据库 ``` # 访问 MySQL (通过 backend container) ./scripts/vm-exec.sh backend rails dbconsole # 重置 database ./scripts/vm-exec.sh backend rails db:reset ``` ## 项目结构 ``` vulnerability-scanner/ ├── backend/ # Rails API application ├── frontend/ # React application ├── agent/ # Go agent application ├── docs/ # Documentation ├── scripts/ # Deployment and VM management scripts ├── config/ # Configuration files (docker-compose.yml, .vm-config) └── README.md # This file ``` ## 文档 ### 开发 - [开发工作流](docs/DEVELOPMENT-WORKFLOW.md) - 本地编码,远程 VM 部署 - [远程 VM 设置](docs/REMOTE-VM-SETUP.md) - 详细的 VM 设置指南 - [Docker 命令](docs/DOCKER-COMMANDS.md) - Docker Compose 命令参考 - [快速开始](docs/QUICK-START.md) - 快速设置指南 - [WSL 使用](docs/WSL-USAGE.md) - 在 Windows 上通过 WSL 使用 bash 脚本 - [macOS 使用](docs/MACOS-USAGE.md) - 在 macOS 上使用 bash 脚本 ### 项目文档 - [产品需求文档](docs/prd.md) - [系统架构](docs/architecture.md) - [UX 设计](docs/ux-design.md) - [史诗与用户故事](docs/epics-and-stories.md) - [Sprint 计划](docs/sprint-plan.md) - [测试设计](docs/test-design.md)
标签:B2B, Docker, Docker Compose, Go语言, Linux服务器, NIDS, osquery, React, Redis, Ruby on Rails, SaaS, Sidekiq, Syscalls, TypeScript, Web安全, 内存转储, 分布式系统, 加密, 后台任务, 响应大小分析, 安全基线, 安全插件, 安全防御评估, 容器化, 微服务架构, 插件系统, 搜索引擎查询, 教学环境, 无线安全, 日志审计, 模块化设计, 漏洞扫描器, 特权提升, 程序破解, 网络安全, 网络安全审计, 自动化修复, 自动化攻击, 自动化部署, 蓝队分析, 请求拦截, 跨平台开发, 运维安全, 隐私保护