abdillahisaidismail-arch/xdr-simulator

GitHub: abdillahisaidismail-arch/xdr-simulator

面向银行PCI-DSS合规场景的XDR模拟器,完整展示从多源日志采集到威胁检测与合规报告的安全运营流水线。

Stars: 0 | Forks: 0

# XDR 模拟器 — 银行 SOC [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![PCI-DSS v4.0](https://img.shields.io/badge/PCI--DSS-v4.0-critical.svg)](https://www.pcisecuritystandards.org/) [![MITRE ATT&CK](https://img.shields.io/badge/MITRE-ATT%26CK-purple.svg)](https://attack.mitre.org/) [![Status](https://img.shields.io/badge/status-portfolio--ready-brightgreen.svg)](#) ## 目录 - [这个项目是什么?](#what-is-this-project) - [架构](#architecture) - [前置条件](#prerequisites) - [安装](#installation) - [使用方法](#usage) - [SOC HUD](#the-soc-hud) - [检测到的事件(3 种类型)](#detected-incidents-3-types) - [PCI-DSS v4.0 覆盖范围](#pci-dss-v40-coverage) - [API 参考](#api-reference) - [项目结构](#project-layout) - [测试](#tests) - [路线图](#roadmap) - [许可证](#license) ## 这个项目是什么? **XDR 模拟器**端到端地重现了受监管银行环境中的安全运营中心 团队在正常运营日可能面临的情况。它从三个不同的日志源生成逼真的安全 遥测数据,对其进行解析和标准化,执行**多源关联** 处理,应用映射到 **MITRE ATT&CK** 的**自动检测规则**,并最终 生成一份符合 **PCI-DSS v4.0** 的审计追踪记录,每个检测到的 案例都会生成一份结构化的事件报告 (`IR-*.json`)。 这是一个**作品集项目**,旨在通过单个代码库展示: - 对**银行监管约束**(PCI-DSS v4.0、数据保留、 审计追踪、职责分离)的理解, - 干净、可测试的 **Python 流水线**(生成器 → 解析器 → 关联 → 检测 → 合规 → 报告), - 提供生产级 **Flask API** 和精致的 **单文件 SOC HUD**(HTML/CSS/JS — 无需构建系统)的能力, - 将检测结果映射到 **MITRE ATT&CK 技术**(T1110、T1078、T1548)。 ## 架构 ``` ┌───────────────────────────────────────────────────────────────────────┐ │ XDR SIMULATOR PIPELINE │ ├───────────────────────────────────────────────────────────────────────┤ │ │ │ [1] GENERATORS │ │ ├── syslog_generator.py (RFC 5424 — firewalls, SSH, …) │ │ ├── filebeat_generator.py (JSON envelope — application logs) │ │ └── json_generator.py (REST API — banking core events) │ │ │ │ │ ▼ │ │ [2] PARSER & NORMALISER │ │ └── event_parser.py → unified Event model │ │ │ │ │ ▼ │ │ [3] CORRELATION ENGINE │ │ └── correlation_engine.py → multi-source matching │ │ │ │ │ ▼ │ │ [4] DETECTION ENGINE (3 rules · MITRE-mapped) │ │ ├── SSH brute-force → T1110 │ │ ├── Abnormal access → T1078 │ │ └── Privilege escalation → T1548 │ │ │ │ │ ▼ │ │ [5] PCI-DSS COMPLIANCE │ │ ├── compliance_report.json (Req. 6 / 8 / 10) │ │ ├── audit_trail_*.jsonl (90-day retention) │ │ └── IR-.json (one per incident) │ │ │ │ │ ▼ │ │ [6] REPORTING & SOC HUD │ │ ├── reporter.py → data/xdr_report.json │ │ └── api.py + hud.html → http://localhost:5000 │ │ │ └───────────────────────────────────────────────────────────────────────┘ ``` 实时状态由 `_write_progress()` 在每个阶段发布到 `data/progress.json`。HUD 每隔 **1.5 秒**轮询一次 `/api/progress`,因此在 模拟运行期间,每个阶段会逐渐亮起绿灯。 ## 前置条件 - **Python 3.11+**(在 3.11 和 3.12 / macOS、Linux 上测试) - **pip** ≥ 23.0 - 用于 HUD 的**现代浏览器**(Chrome、Edge、Firefox、Safari ≥ 16) - **无需 Node.js、无需 npm、无需 webpack** — 仪表盘是纯 HTML/CSS/JS, 由 Flask 提供服务,并使用两个 CDN 托管库(Google Fonts + [Chart.js 4](https://www.chartjs.org/))。 ## 安装 ``` # 1. 克隆 git clone https://github.com/abdillahisaidismail-arch/xdr-simulator.git cd xdr-simulator # 2. 虚拟环境 (按照约定命名为 .venv) python3.11 -m venv .venv source .venv/bin/activate # macOS / Linux # .venv\Scripts\activate # Windows PowerShell # 3. 运行时依赖 pip install --upgrade pip pip install -r requirements.txt # 4. (可选) 以 editable 模式安装包本身以使用 # `xdr-simulator` console script pip install -e . ``` 就是这么简单。无需编译,无需原生扩展。 ## 使用方法 模拟器可以以两种模式运行 — **单终端**(推荐,通过 HUD 按钮运行)或**双终端**(经典 CLI 工作流)。 ### 单终端 — 推荐 ``` python api.py # 打开 http://localhost:5000 # → 点击 ▶ LAUNCH SIMULATION ``` HUD 底部的控制栏允许您直接调整 `--events` 和 `--attack-prob`,然后通过 `POST /api/run` 触发运行。进度条、KPI、MITRE 图表和事件流会在执行期间**实时**更新。 ### 双终端 — 经典模式 ``` # 终端 1 — 启动 API + HUD python api.py # 终端 2 — 运行 pipeline (实时更新会显示在浏览器中) python -m xdr_simulator --events 5000 --attack-prob 0.25 ``` ### CLI 选项 | 标志 | 默认值 | 描述 | | ------------------- | ------- | ---------------------------------------- | | `--events`, `-e` | `12000` | 每天生成的事件数量 | | `--attack-prob`,`-a`| `0.12` | 攻击事件的概率 (0.0 – 1.0) | | `--output`, `-o` | `data` | 报告的输出目录 | | `--log-dir` | `logs` | 应用程序日志的目录 | | `--quiet`, `-q` | off | 隐藏文本仪表盘 | 示例: ``` python -m xdr_simulator --events 20000 # bigger run python -m xdr_simulator --events 5000 --attack-prob 0.4 # heavy attack day python -m xdr_simulator --output reports/ --quiet # CI-friendly ``` ## SOC HUD HUD 位于 `http://localhost:5000`,是一个**单文件**的深色主题 仪表盘,具有与真实银行 SOC 控制台相同的外观和感觉。 它展示的内容: | 面板 | 显示内容 | | ---------------------- | ------------------------------------------------------------------ | | **KPI 条** | 总事件数 · 事件数 · 严重 · 关联数 · 解析率 | | **按严重程度划分的事件** | 条形图 (严重 / 高 / 中 / 低 / 信息) | | **事件流** | 实时更新,点击任意行可打开完整的事件模态框 (PCI-DSS Req. 10)| | **MITRE ATT&CK** | T1110 · T1078 · T1548 及其相对数量条形图 | | **流水线健康状况** | 5 个流水线阶段实时亮起 | | **日志源** | Syslog / Filebeat / JSON API 的分布情况 + 严重程度环形图 | | **近期运行** | 过往模拟的历史记录 (时间戳 · 事件数 · 事件) | | **PCI-DSS v4.0** | 要求 6 / 8 / 10 的状态 + 90 天数据保留检查 | 键盘快捷键:`R` 刷新,`A` 切换自动轮询,`L` 启动运行, `Esc` 关闭事件模态框。 ## 检测到的事件(3 种类型) 每条检测规则都会在 `data/` 目录下生成一个结构化的 `IR-.json` 文件,并映射到一种 **MITRE ATT&CK 技术**。 | # | 事件类型 | MITRE | 严重程度范围 | 触发逻辑(摘要) | | --- | ------------------------- | ------- | -------------- | ------------------------------------------------------------------ | | 1 | **SSH 暴力破解** | `T1110` | 高 → 严重| 在短时间窗口内来自同一源 IP 的 ≥ N 次失败的 SSH 认证 | | 2 | **异常访问** | `T1078` | 中 → 高 | 在异常位置/非工作时间使用的有效凭据 | | 3 | **权限提升** | `T1548` | 严重 | 在可疑认证事件后不久发生的 `sudo` / 角色更改| 每份事件报告包含:`incident_id`、`incident_type`、`severity`、 `mitre_technique`、`source_ip`、`target`、`event_count`、`description`、 `recommended_action` 以及 `pci_dss` 参考(Req. 10 审计条目)。 ## PCI-DSS v4.0 覆盖范围 | 要求 | 模拟器如何处理 | | --------------- | --------------------------------------------------------------- | | **Req. 6** | 记录在案并带有版本化 MITRE 映射的检测规则 | | **Req. 8** | 全面追踪认证 / 权限提升事件 | | **Req. 10** | 仅追加的审计追踪 (`audit_trail_*.jsonl`) + 单个事件报告 (`IR-*.json`) | | **Retention** | 由合规模块强制执行的 90 天轮换策略 | ## API 参考 所有路由均由 `api.py` 在 `http://localhost:5000` 上公开。 | 方法 | 路由 | 描述 | | ------ | -------------------- | -------------------------------------------------------- | | GET | `/` | 提供 SOC HUD (`hud.html`) | | GET | `/api/status` | 健康检查 (服务器时间、项目根目录、版本) | | GET | `/api/progress` | 实时流水线状态 (阶段 0–5 + 计数器) | | GET | `/api/report` | 最终的 XDR 报告 (`data/xdr_report.json`) | | GET | `/api/incidents` | 所有独立的事件报告 (`IR-*.json`) | | GET | `/api/history` | 过往模拟运行的历史记录 | | GET | `/api/run/status` | 当前 `/api/run` 子进程的状态 | | POST | `/api/run` | 启动新的模拟 — 请求体 `{"events": 5000, "attack_prob": 0.25}` | 开发期间,对 `/*` 的 CORS 设置为开放,以允许直接从磁盘打开 `hud.html`。 ## 项目结构 ``` xdr-simulator/ ├── api.py ← Flask API + HUD server (port 5000) ├── requirements.txt ← Runtime deps (Flask, flask-cors, PyYAML) ├── pyproject.toml ← Packaging metadata ├── README.md ├── LICENSE ├── tests/ ← Pytest test suite │ ├── test_detection.py │ ├── test_generators.py │ ├── test_integration.py │ └── test_parser.py ├── xdr_simulator/ │ ├── __main__.py ← `python -m xdr_simulator` │ ├── main.py ← 6-phase pipeline + _write_progress() │ ├── generators/ ← Syslog / Filebeat / JSON API │ ├── parsers/ ← Normalisation │ ├── correlation/ ← Multi-source correlation │ ├── detection/ ← 3 detection rules (MITRE) │ ├── compliance/ ← PCI-DSS v4.0 + audit trail │ ├── dashboard/ │ │ ├── reporter.py ← Builds data/xdr_report.json │ │ └── hud.html ← Single-file SOC HUD │ └── utils/ └── data/ ← Created at runtime ├── progress.json ← Live pipeline state (HUD reads this) ├── xdr_report.json ← Final report (phase 6) ├── history.json ← Run history └── IR-*.json ← One file per detected incident ``` ## 测试 ``` pip install -e ".[dev]" pytest -q ``` 该套件覆盖了解析器、生成器、检测引擎以及一个端到端的 集成场景,该场景会运行一次小型模拟并检查生成的制品。 ## 路线图 - [ ] 更多检测规则(数据窃取、横向移动) - [ ] Sigma 规则导出 - [ ] 用于审计追踪的可选 ElasticSearch 接收器 - [ ] 使用 Server-Sent Events (SSE) 替代 HUD 轮询 - [ ] Docker 镜像 (`docker run -p 5000:5000 xdr-simulator`) ## 许可证 [MIT](LICENSE) © Abdillahi Said Ismail — 银行网络安全作品集 项目。
标签:AMSI绕过, ATT&CK框架, Cloudflare, CMS安全, CSS, Flask, HTML, IP 地址批量处理, IR, JavaScript, MITRE ATT&CK, PCI-DSS, PCI-DSS v4.0, Python, REST API, 单文件前端, 多模态安全, 多源关联, 威胁检测, 子域名暴力破解, 安全事件, 安全仪表盘, 安全可视化, 安全日志, 安全管道, 安全规则引擎, 安全运营中心, 安全遥测, 审计轨迹, 恶意代码分类, 扩展检测与响应, 数据可视化, 数据管道, 无后门, 日志关联分析, 端点安全, 组合作品集, 网络安全, 网络映射, 自动化检测, 补丁管理, 软件工程, 逆向工具, 金融服务安全, 银行安全, 隐私保护