zarguell/openexposuremanagement

GitHub: zarguell/openexposuremanagement

一个开源自托管的漏洞暴露管理平台,用于聚合多源扫描结果、统一资产视图并结合威胁情报进行漏洞风险优先级排序。

Stars: 0 | Forks: 0

# Open Exposure Management (OEM) 一个自托管的漏洞暴露管理平台,用于摄取基础设施发现结果、统一资产视图,并通过 EPSS 和 CISA KEV 威胁情报丰富发现结果。 ## MVP 目标 演示一个可运行的平台,能够: - 从 VM 扫描器(类似 Tenable/Qualys)摄取漏洞发现结果 - 使用确定性匹配统一不同扫描间的资产 - 浏览和搜索资产及发现结果 - 使用 EPSS 评分和 CISA KEV 数据丰富发现结果 - 支持 CVE 级别的抑制提议和审批 ## 快速开始(演示) ### 🚀 快速演示模式(无身份验证) 为了快速演示,您可以在没有身份验证的情况下运行应用程序: #### Docker Compose(推荐) ``` # 一条命令自动设置一切 ./setup.sh # 访问地址: # Frontend: http://localhost:80 # Backend API: http://localhost:8080 # PgAdmin: http://localhost:5050 (admin@oem.local / admin) ``` #### 本地开发(仅限开发使用) ``` # 需要本地 PostgreSQL # 以 demo 模式同时启动前端和后端 ./demo.sh # 或者手动: # 终端 1 - Backend(需要 PostgreSQL 运行) cd api && DEMO_MODE=true go run ./cmd/server # 终端 2 - Frontend cd ui && npm run dev ``` **⚠️ 安全警告**:演示模式完全禁用了身份验证。这用于生产环境是不安全的! ### 🔐 完整的生产环境设置 用于具有适当身份验证的生产环境: ``` # 构建并启动所有服务(包括数据库设置) docker compose up --build # 运行数据库迁移 export DATABASE_URL="postgres://oem:password@localhost:5432/oem?sslmode=disable" ~/go/bin/migrate -path db/migrations -database "$(DATABASE_URL)" up # 导入样本数据(可选) make seed # 运行冒烟测试 make demo-smoke ``` 通过设置以下环境变量来配置 OIDC 身份验证: - `VITE_OIDC_ISSUER` - 您的 OIDC 提供商颁发者 URL - `VITE_OIDC_CLIENT_ID` - 您的 OIDC 客户端 ID ### 🧪 测试与验证 ``` # 运行所有测试 make test # 运行冒烟测试(端到端验证) make demo-smoke # 导入样本数据 make seed ``` ## 开发说明 ### 前置条件 - Docker 和 Docker Compose - Go 1.21+(用于本地开发和迁移) - Node.js 20+(用于本地开发) - Make - golang-migrate(由 setup.sh 自动安装):`go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest` ### 故障排除 #### 设置问题 - **设置脚本失败**:确保 Docker 和 Docker Compose 已安装并正在运行 - **端口冲突**:设置脚本使用标准端口 (80, 8080, 5432, 5050)。请停止冲突的服务或修改 docker-compose.yml 中的端口 #### 服务问题 - **服务未启动**:使用 `docker compose logs` 检查日志 - **PgAdmin 无法访问**:稍等片刻以待初始化完成,然后访问 http://localhost:5050 (admin@oem.local / admin) - **Dashboard 未加载**:清除浏览器缓存或尝试硬刷新 (Ctrl+F5) #### 开发问题 - **本地演示脚本失败**:确保 PostgreSQL 在本地运行,或改用 Docker 设置 - **构建失败**:确保在本地开发环境中安装了 Go 1.21+ 和 Node.js 20+ #### 常用命令 ``` # 检查数据库连接 docker exec -it oem-postgres psql -U oem -d oem # 查看迁移状态 docker exec oem-postgres psql -U oem -d oem -c "\dt" # 重置一切(注意:会破坏数据) docker compose down -v docker volume rm openexposuremanagement_postgres-data openexposuremanagement_pgadmin-data # 创建备份 ./scripts/backup.sh # 查看服务日志 docker compose logs -f ``` **有关全面的操作指南,请参阅 [docs/operations.md](docs/operations.md)** ### 目录结构 ``` . ├── api/ # Go API service │ └── cmd/server/ # Main entry point ├── ui/ # React SPA (Vite) ├── db/ # Database migrations and schemas │ └── migrations/ # SQL migrations ├── docs/ # Architecture and runbooks └── docker-compose.yml ``` ### 常用命令 ``` # 开发 make dev # Start development environment make test # Run all tests (Go + UI) make lint # Run linters # 数据库 DATABASE_URL="postgres://oem:password@localhost:5432/oem?sslmode=disable" ~/go/bin/migrate -path db/migrations -database "$(DATABASE_URL)" up # Apply migrations DATABASE_URL="postgres://oem:password@localhost:5432/oem?sslmode=disable" ~/go/bin/migrate -path db/migrations -database "$(DATABASE_URL)" down # Rollback DATABASE_URL="postgres://oem:password@localhost:5432/oem?sslmode=disable" ~/go/bin/migrate -path db/migrations -database "$(DATABASE_URL)" create -ext sql -dir db/migrations # Create migration # 快速设置 ./setup.sh # Full Docker setup with database, migrations, and all services ./demo.sh # Local development setup (requires local PostgreSQL) # 实用工具 make seed # Seed sample data make demo-smoke # Run end-to-end smoke test make help # Show all available commands ``` ## 文档 - **[docs/architecture.md](docs/architecture.md)** - 详细的架构、API 端点和数据模型 - **[docs/operations.md](docs/operations.md)** - 完整的部署、管理和故障排除操作指南 - **[docs/tasks.md](docs/tasks.md)** - 实施路线图和任务跟踪 - **[TESTING.md](TESTING.md)** - 测试指南和程序 ## 架构 有关详细的架构、API 端点和数据模型,请参阅 [docs/architecture.md](docs/architecture.md)。 ## 任务与里程碑 有关实施路线图,请参阅 [docs/tasks.md](docs/tasks.md)。 ## 许可证 MIT ## 安全 ⚠️ **演示模式警告**:默认配置包含仅用于开发的演示 API 密钥。切勿在生产环境中使用演示密钥。
标签:ASM, BlazeGraph, CISA KEV, CVE, Docker, Docker Compose, EPSS, EVTX分析, Go语言, GPT, OIDC, PostgreSQL, Qualys, Self-hosted, Tenable, 企业安全, 占用监测, 威胁情报, 安全合规, 安全漏洞, 安全防御评估, 开发者工具, 数字签名, 无线安全, 日志审计, 暴露面管理, 测试用例, 漏洞管理, 版权保护, 程序破解, 网络代理, 网络安全, 网络安全审计, 网络资产管理, 自主托管, 请求拦截, 资产管理, 隐私保护