malakamahdy/OS_Project
GitHub: malakamahdy/OS_Project
模拟 SOC 安全运营中心的分布式容器安全平台,在 Docker 环境中集成实时监控、漏洞扫描、合规检查与 AI 辅助修复,适合安全学习与演练。
Stars: 0 | Forks: 0
# ⛫ Citadel — 分布式容器安全平台 ⛫
## 文件结构
```
OS_Project/
├── server/
│ ├── server.js # Central backend
│ ├── Dockerfile
│ └── package.json
├── agent/
│ ├── metrics_agent.js # CPU/memory monitoring agent
│ ├── network_agent.js # Network intrusion detection agent
│ ├── Dockerfile
│ ├── Dockerfile.secrets-demo
│ └── package.json
├── nginx/
│ └── nginx.conf
├── src/
│ └── Dashboard.jsx # React frontend
├── docker-compose.yml # Main stack
├── docker-compose.demo.yml # Demo containers
├── .env # API keys (not committed)
└── package.json
```
## 设置
### 1. 创建 `.env` 文件
在项目根目录下,创建一个名为 `.env` 的文件:
```
OPENAI_API_KEY=your-openai-api-key-here
```
### 2. 安装前端依赖
```
npm install
```
## 运行项目
### 启动主堆栈(后端 + agents)
```
docker-compose up --build
```
### 启动演示容器(在单独的终端中)
```
docker-compose -f docker-compose.demo.yml up -d
```
### 启动前端(在单独的终端中)
```
npm run dev
```
打开 [http://localhost:5173](http://localhost:5173)
## 停止项目
```
docker-compose down
docker-compose -f docker-compose.demo.yml down
```
## 功能特性
- **实时监控** — 通过 Socket.io 实时获取容器 CPU、内存和健康指标。每个容器的迷你图每 10 秒更新一次。
- **漏洞扫描** — Trivy 扫描所有正在运行的容器镜像以查找 CVE,按严重程度排序,并提供完整的 CVE 详细信息和参考链接。
- **机密信息检测** — Trivy 机密信息扫描器可发现硬编码在镜像层中的 API key、token 和私钥。使用相互隔离的缓存目录并行运行,以避免冲突。
- **CIS 合规性** — CIS Docker Benchmark 1.6.0 检查分为镜像安全和容器运行时两类,每次检查均提供 PASS/FAIL 状态。
- **自主故障纠正** — Watchdog 会在 30 秒内检测到离线的 agent 和崩溃的容器,并通过 Docker socket 自动将其重启。
- **网络 Agent 故障转移** — 如果 Agent-3(网络入侵检测器)离线,Agent-1 将被提升为备用节点,并且仪表板上会出现黄色横幅提示。
- **告警去重** — 无论有多少 agent 报告,相同的告警标题和来源绝不会创建重复条目。
- **LLM 集成** — 当容器 CPU 或内存占用超过 90% 时,Agent 会调用 OpenAI GPT-4o-mini,并将修复建议发送回仪表板。
- **基于角色的访问控制** — 三种角色(Security Admin、Compliance Analyst、DevOps Engineer),每种角色都有受限的侧边栏和特定于角色的任务列表。
- **审计日志** — 记录每个事件的永久日志:告警、扫描、容器重启、agent 恢复、配置更改。上限为 500 个事件。
- **扫描历史** — 仪表板主页跟踪每次已完成的漏洞、合规性和机密信息扫描,并显示结果计数。
- **PDF 导出** — 通过 jsPDF 导出完整的安全报告,包括 agent、告警、漏洞、合规性检查结果和审计日志。
- **配置页面** — 可在运行时直接从仪表板编辑 CPU、内存和 agent 超时阈值,并立即应用于后端。
- **深色 / 浅色模式** — 完整的主题切换功能,包含温暖的米色浅色模式和深色默认模式。
## 功能相关终端命令
### 触发自主故障纠正 — 停止一个 agent
```
docker stop cs-agent-1
# 查看 dashboard — 30 秒内出现 fault panel,agent 自动重启
docker start cs-agent-1
```
### 触发网络 Agent 故障转移
```
docker stop cs-agent-3
# Dashboard 上出现 Yellow failover banner
docker start cs-agent-3
```
### 触发容器自动重启
```
docker stop cs-redis-cache
# Backend 检测到退出状态并自动重启
```
### 触发 CPU 飙升以进行 LLM 分析
```
docker exec cs-alpine-logger sh -c "while true; do :; done &"
# 约 30 秒内 LLM 分析出现在 Live Monitor 上(需要 OpenAI key)
docker exec cs-alpine-logger pkill sh # stop the spike
```
### 注入演示 LLM 分析(无需 OpenAI key)
```
curl -X POST http://localhost:3002/api/demo/llm-test \
-H "Content-Type: application/json" \
-d '{"containerName":"cs-alpine-logger"}'
```
如果您没有 API key 访问权限,这仅用于查看可视化 UI 效果。
## 端口
| 服务 | 端口 |
|---|---|
| Frontend (React) | 5173 |
| Backend (Express) | 3002 |
| Demo nginx proxy | 8080 |
标签:Anthropic, CISA项目, CIS基准, Dashboard, DevSecOps, Docker, GNU通用公共许可证, MITM代理, Mr. Robot, Nginx, Node.js, React, Socket.io, SOC系统, Syscalls, Web截图, 上游代理, 分布式系统, 响应大小分析, 安全运营中心, 安全防御评估, 安全防护, 容器安全, 容器监控, 微服务安全, 无线安全, 系统模拟, 网络映射, 自定义脚本, 请求拦截