MazenAlaa305/ORCHESTRATION-SECURITY-CENTER
GitHub: MazenAlaa305/ORCHESTRATION-SECURITY-CENTER
面向中小企业的网络安全编排平台,整合资产发现、漏洞扫描、风险评分、SIEM/SOAR 集成与审计报告,降低安全运营门槛。
Stars: 0 | Forks: 0
# Orchestration Security Center
一个面向中小企业(SME)的网络安全编排平台。该系统将资产发现、漏洞扫描、风险评分、SIEM/SOAR 集成以及审计就绪报告整合在一个仪表板中。
毕业设计项目,赫尔万国际技术大学。
[](https://github.com/MazenAlaa305/ORCHESTRATION-SECURITY-CENTER/actions/workflows/ci.yml)
[]()
[]()
[]()
## 目录
- [项目摘要](#project-summary)
- [截图](#screenshots)
- [工作原理](#how-it-works)
- [主要功能](#main-features)
- [技术栈](#technology-stack)
- [快速开始](#quick-start)
- [配置](#configuration)
- [默认访问凭据](#default-access)
- [常用命令](#useful-commands)
- [测试](#testing)
- [项目结构](#project-structure)
- [文档](#documentation)
## 项目摘要
Orchestration Security Center 帮助中小企业团队运行实用的安全工作流,而无需购买完整的企业级 SIEM/SOAR 产品。它能够发现资产、启动开源扫描器、验证发现结果、对风险进行排名,并通过管理者和分析师都能理解的 Web 仪表板展示结果。
该项目专注于确定性的编排:扫描器的决策基于发现的服务和配置的扫描范围,因此平台能够产生可重复的结果,而不是产生大量嘈杂、随机的告警。
## 截图
以下截图取自最终的毕业项目演示。
| 标题 | 登录 | 拓扑 |
|---|---|---|
|  |  |  |
| 完整报告 | 分析师档案 |
|---|---|
|  |  |
## 工作原理
```
Target / Lab Network
|
v
Asset discovery and service fingerprinting
|
v
Scanner orchestration: Nmap, Nuclei, OpenVAS
|
v
Validation, deduplication, and framework tagging
|
v
Risk scoring, remediation workflow, and reporting
|
v
Dashboard, SIEM events, SOAR actions, PDF/JSON exports
```
## 主要功能
| 领域 | 提供的功能 |
|---|---|
| 身份验证 | JWT 登录、基于角色的访问控制、档案管理、审计日志 |
| 资产发现 | 目标清单、子网发现、拓扑生成、资产去重 |
| 扫描 | Nmap、Nuclei、OpenVAS、验证探测以及异步 Celery worker |
| 风险管理 | 面向业务的风险评分、严重性细分、SLA 跟踪、风险解释 |
| 漏洞工作流 | 状态变更、修复说明、误报处理以及重新验证 |
| 报告 | 签名的 PDF 报告、JSON 导出、报告验证、审计证据 |
| SIEM/SOAR | 可选的 Wazuh、Elasticsearch、Kibana 和 n8n 集成 |
| 实验环境 | 包含漏洞的 Docker 实验环境,用于演示、测试和可重复的评估 |
| AI 咨询 | 可选的基于 Gemini 的修复指导,带有防护措施和兜底逻辑 |
## 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | React 18、Vite、Tailwind CSS、Framer Motion、D3.js、Recharts、React Router、React Query、Zustand |
| 后端 | FastAPI、SQLAlchemy、Alembic、Pydantic、Celery、Redis、PostgreSQL、JWT |
| 安全工具 | Nmap、Nuclei、OpenVAS/GVM、验证探测、范围防护 |
| SIEM/SOAR | Wazuh、Elasticsearch、Kibana、n8n |
| 基础设施 | Docker Compose、Caddy、CoreDNS、隔离的 Docker 实验网络 |
| 测试 | pytest、Vitest、Playwright 风格的 E2E 测试、Postman 集合 |
## 快速开始
### 1. 前置条件
在运行项目之前,请先安装以下内容:
- 带有 Docker Compose v2 的 Docker Desktop
- Windows 上的 PowerShell 5.1+,或 Linux/macOS 上的 Bash
- Git
- Lite 模式最低需要 16 GB 内存
- Full 模式建议使用 32 GB 内存
- 20 GB 可用磁盘空间
### 2. 克隆仓库
```
git clone https://github.com/MazenAlaa305/ORCHESTRATION-SECURITY-CENTER.git
cd ORCHESTRATION-SECURITY-CENTER
```
### 3. 创建环境配置
复制示例文件并填写密钥:
```
Copy-Item .env.example .env
```
```
cp .env.example .env
```
生成所需的密钥:
```
python -c "import secrets; print(secrets.token_hex(32))"
python -c "import base64, os; print(base64.urlsafe_b64encode(os.urandom(32)).decode())"
```
将第一个值放入 `.env` 文件中的 `JWT_SECRET`,第二个值放入 `CREDENTIAL_ENCRYPTION_KEY`。
### 4. 启动 Lite 模式
Lite 模式是推荐的首次运行方式。它会启动仪表板、后端、数据库、Redis、Celery worker 以及较小的漏洞靶场环境。
```
powershell -ExecutionPolicy Bypass -File .\start-lite.ps1
```
```
bash start-lite.sh
```
打开:
- 仪表板:`https://localhost`
- 后端 API 文档:`http://localhost:8000/docs`
- Juice Shop 靶场目标:`http://localhost:3000`
- 靶场 API 网关:`http://localhost:8081`
在浏览器中接受本地自签名证书警告。
### 5. 启动 Full 模式
Full 模式增加了较重的集成组件:OpenVAS、Elasticsearch、Kibana、Wazuh、n8n、Celery Beat 以及完整的靶场配置文件。
```
powershell -ExecutionPolicy Bypass -File .\start-full.ps1
```
```
bash start-full.sh
```
仅当 Docker Desktop 分配了足够的内存时才使用 Full 模式。如果容器重启或变得不健康,请增加 Docker 资源并再次运行该命令。
## 配置
配置从项目根目录的 `.env` 文件加载。请勿提交真实的密钥。
| 变量 | 必填 | 用途 |
|---|---|---|
| `JWT_SECRET` | 是 | 签发身份验证 token |
| `CREDENTIAL_ENCRYPTION_KEY` | 是 | 加密存储的目标凭据 |
| `DATABASE_URL` | 提供 Docker 默认值 | 后端数据库连接 |
| `REDIS_URL` | 提供 Docker 默认值 | Celery broker 和 runtime cache |
| `GEMINI_API_KEY` | 可选 | 启用 Gemini 修复指导 |
| `LLM_PROVIDER` | 可选 | 使用 `gemini` 或 `none` |
| `SIEM_ENABLED` | 可选 | 在后端服务准备就绪时启用 SIEM 集成 |
| `SOAR_ENABLED` | 可选 | 启用 n8n SOAR webhook |
| `OPENVAS_ENABLED` | 可选 | 启用 OpenVAS 集成 |
| `LAB_ENABLED` | 可选 | 启用与靶场相关的后端功能 |
| `REPORT_SIGNING_KEY` | 建议 | 签发报告元数据和验证数据 |
可选集成默认处于禁用状态,在未配置时会平滑失效。
## 默认访问凭据
在后端首次启动时,应用程序会为开发/演示用途初始化一个本地管理员账户:
| 角色 | 邮箱 | 密码 | 备注 |
|---|---|---|---|
| 管理员 | `admin@local` | `Admin#159` | 首次启动时初始化;登录后请及时修改 |
可以使用以下命令创建其他演示用户:
```
docker compose exec backend python seed_demo_users.py
```
## 常用命令
| 任务 | Windows | Linux/macOS |
|---|---|---|
| 启动 Lite 技术栈 | `powershell -ExecutionPolicy Bypass -File .\start-lite.ps1` | `bash start-lite.sh` |
| 不重新构建启动 Lite | `powershell -ExecutionPolicy Bypass -File .\start-lite.ps1 -NoBuild` | `bash start-lite.sh --no-build` |
| 启动 Full 技术栈 | `powershell -ExecutionPolicy Bypass -File .\start-full.ps1` | `bash start-full.sh` |
| 停止所有容器 | `powershell -ExecutionPolicy Bypass -File .\stop-all.ps1` | `bash stop-all.sh` |
| 查看后端日志 | `docker compose logs -f backend` | `docker compose logs -f backend` |
| 查看所有容器 | `docker compose ps` | `docker compose ps` |
| 重新构建主技术栈 | `docker compose up -d --build` | `docker compose up -d --build` |
## 故障排除
| 问题 | 解决方法 |
|---|---|
| Docker 命令失败 | 启动 Docker Desktop 并等待其完全运行 |
| 后端启动失败 | 确保在 `.env` 中设置了 `JWT_SECRET` 和 `CREDENTIAL_ENCRYPTION_KEY` |
| 浏览器警告证书问题 | 接受 `https://localhost` 的本地自签名证书 |
| Full 模式容器重启 | 增加 Docker Desktop 的内存分配或使用 Lite 模式 |
| 数据初始化请求失败 | 等待靶场启动完成,然后从仪表板运行初始化操作,或重试启动脚本 |
| 端口已被占用 | 停止冲突的服务或更新 compose 的端口映射 |
## 测试
运行后端测试:
```
pytest backend/tests/ -v --cov=backend/app
```
运行前端测试:
```
npm --prefix frontend test
```
运行项目测试助手:
```
python run_tests.py
```
API 集合:
```
postman/OrchestrationSecurityCenter_API.postman_collection.json
```
## 项目结构
```
.
|-- backend/ FastAPI app, services, models, migrations, tests
|-- frontend/ React and Vite dashboard
|-- infra/ Caddy, isolation, and OpenVAS infrastructure files
|-- lab/ Vulnerable lab containers and sample data
|-- lab_config/ Lab bootstrap configuration
|-- postman/ API collection
|-- tests/ End-to-end test suite
|-- all_tests/ Extended backend and frontend tests
|-- docs/screenshots/ README screenshots
|-- docker-compose.yml Main application stack
|-- docker-compose.lab.yml Vulnerable lab stack
|-- start-lite.ps1/.sh Lite stack launcher
|-- start-full.ps1/.sh Full stack launcher
|-- stop-all.ps1/.sh Shutdown scripts
|-- TEAM_PLAN.md Team roles and responsibilities
|-- TECHNICAL_NOTES.md Architecture and implementation notes
|-- FYP_Documentation.md Full academic documentation
|-- FYP_Figures.md Figure catalogue
`-- Orchestration_Security_Center_Presentation.pptx.pdf
```
## 文档
| 文件 | 用途 |
|---|---|
| [TEAM_PLAN.md](TEAM_PLAN.md) | 团队所有权、角色、职责和入职说明 |
| [TECHNICAL_NOTES.md](TECHNICAL_NOTES.md) | 架构、API、数据模型和操作说明 |
| [FYP_Documentation.md](FYP_Documentation.md) | 学术项目文档 |
| [FYP_Figures.md](FYP_Figures.md) | 图表列表和捕获指南 |
| [Orchestration_Security_Center_Presentation.pptx.pdf](Orchestration_Security_Center_Presentation.pptx.pdf) | 最终演示 PDF |
## 安全提示
- 仅在您拥有或获得授权测试的系统和网络上使用此项目。
- 该靶场故意包含易受攻击的服务和弱凭据以供演示。
- 将靶场网络与真实的生产网络保持隔离。
- 请勿提交 `.env`、真实的 API key、包含敏感数据的导出报告或生产环境凭据。
## 团队
团队由十一名成员组成,涵盖领导、后端、AI、前端、可视化、扫描、QA 和文档等方向。完整的归属详情记录在 [TEAM_PLAN.md](TEAM_PLAN.md) 中。
## 许可证
学术项目,赫尔万国际技术大学。项目团队保留所有权利。外部使用需获得团队负责人的书面许可。
标签:AV绕过, CTI, FastAPI, React, SIEM/SOAR, Syscalls, 安全管理平台, 安全规则引擎, 实时处理, 插件系统, 搜索引擎查询, 测试用例, 版权保护, 网络安全, 自定义脚本, 越狱测试, 隐私保护