pwrod/azure-webapp-ir-lab

GitHub: pwrod/azure-webapp-ir-lab

该项目在 Azure 中搭建了一个完整的 Web 攻击检测与事件响应实验环境,用于展示从攻击模拟、Splunk 检测分析到 NIST 标准化事件处置的全流程。

Stars: 1 | Forks: 0

# Azure Web 应用程序事件响应实验 ![平台](https://img.shields.io/badge/Cloud-Microsoft%20Azure-0078D4?logo=microsoftazure&logoColor=white) ![SIEM](https://img.shields.io/badge/SIEM-Splunk-000000?logo=splunk&logoColor=white) ![目标](https://img.shields.io/badge/Target-DVWA%20on%20Apache-red) ![攻击者](https://img.shields.io/badge/Attacker-Kali%20Linux-557C94?logo=kalilinux&logoColor=white) ![框架](https://img.shields.io/badge/Mapped%20to-MITRE%20ATT%26CK-C22D40) ![OWASP](https://img.shields.io/badge/Mapped%20to-OWASP%20Top%2010-000000?logo=owasp&logoColor=white) 一个在 Microsoft Azure 中构建的端到端**检测与事件响应**实验。一名 Kali 攻击者 对 **DVWA** Web 服务器运行真实的 Web 攻击链;该活动在 **Splunk** 中被检测和 调查;并且该事件通过完整的响应生命周期进行处理 —— **遏制、根除和恢复验证** —— 使用 Azure NSG 规则、主机防火墙 规则和完整性检查。 本仓库是一个展示云 SOC 技能的作品集项目:建立检测 基础设施、编写 SPL 检测、将活动映射到 **MITRE ATT&CK**,以及执行符合 **NIST SP 800‑61** 生命周期的 IR playbook。 ## 架构 ``` flowchart LR subgraph VNet["Azure VNet — WebIR-VNet · 10.20.0.0/16"] direction LR subgraph AS["Attacker-Subnet · 10.20.1.0/24"] Kali["🐉 Kali-Attacker
10.20.1.10"] end subgraph WS["Web-Subnet · 10.20.2.0/24"] Web["🌐 Ubuntu-Web · DVWA
Apache · PHP · MariaDB
10.20.2.10"] end subgraph SS["SIEM-Subnet · 10.20.3.0/24"] Splunk["📊 Splunk-SIEM
Indexer + Web UI
10.20.3.10"] end end Kali -->|"HTTP attack traffic :80"| Web Web -->|"Apache logs via Universal Forwarder :9997"| Splunk ``` 分段通过 NSG 强制执行:攻击者只能通过 HTTP 访问 Web 层,Web 层仅通过 9997 端口将日志转发给 SIEM,管理端口(SSH、Splunk 8000)被锁定为 分析师的家庭 IP。完整的拓扑结构、IP 方案和 NSG 规则位于 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) 中。 ## 本实验展示了什么 - **云基础设施** — Azure 中的资源组、VNet、子网分段、三层 VM 设计以及 NSG 最小权限规则。 - **日志管道工程** — Apache 访问/错误日志通过 Universal Forwarder 发送到 Splunk 的专用 `web` 索引中。 - **检测工程** — 使用 `rex` 进行字段提取,使用 `urldecode` 进行 payload 规范化,以及针对扫描、暴力破解、注入和 Web Shell 访问的基于阈值的检测。 - **威胁映射** — 每次攻击均映射到 MITRE ATT&CK、OWASP Top 10 和 CWE。 - **事件响应** — 遏制(Azure NSG + `ufw`)、根除(哈希后删除)和恢复验证,记录为正式的事件报告。 - **分析师判断** — 诚实地记录仅 Apache 日志的可见性可以和不可以看到的内容,以及如何弥合这些差距。 ## 攻击链 → 检测 → 映射 | # | 攻击者动作 | 工具 | MITRE ATT&CK | OWASP | Splunk 检测 | |---|-----------------|------|--------------|-------|------------------| | 1 | 端口和服务扫描 | `nmap` | [T1046](https://attack.mitre.org/techniques/T1046/) 网络服务发现 | — | 网络层(见差距) | | 2 | 目录暴力破解 | `gobuster` | [T1595.003](https://attack.mitre.org/techniques/T1595/003/) 字典扫描 | A05 | [`02-directory-bruteforce.spl`](detections/02-directory-bruteforce.spl) | | 3 | 登录暴力破解 | `curl` 循环 | [T1110.001](https://attack.mitre.org/techniques/T1110/001/) 密码猜测 | A07 | [`04-dvwa-login-bruteforce.spl`](detections/04-dvwa-login-bruteforce.spl) | | 4 | SQL injection | `curl` | [T1190](https://attack.mitre.org/techniques/T1190/) 利用面向公众的应用 | A03 | [`03-sql-injection.spl`](detections/03-sql-injection.spl) | | 5 | 恶意文件上传 | DVWA 上传 | [T1505.003](https://attack.mitre.org/techniques/T1505/003/) Web Shell | A03 | [`05-uploaded-php-access.spl`](detections/05-uploaded-php-access.spl) | 包含 CWE 和各项技术证据的完整映射:[`docs/MITRE-ATTACK-MAPPING.md`](docs/MITRE-ATTACK-MAPPING.md)。 ## 事件响应生命周期 (NIST SP 800‑61) | 阶段 | 本实验中发生的事情 | |-------|--------------------------| | **准备** | 构建 Azure 环境,部署 DVWA,搭建 Splunk,转发日志,捕获正常流量基线。 | | **检测与分析** | 运行 SPL 检测,提取字段,识别攻击者 IP,并重建完整的事件时间线。 | | **遏制** | 为攻击者 IP 添加 Azure NSG **Deny** 规则和主机 `ufw` 阻止。 | | **根除** | 定位上传的 PHP 文件,对其进行哈希处理作为证据,然后将其删除。 | | **恢复** | 重启服务,确认工件返回 `404`,并验证没有新的攻击流量。 | 完整的叙述以分析师风格的报告形式写在了 [`docs/INCIDENT-REPORT.md`](docs/INCIDENT-REPORT.md) 中。 ## 仓库结构 ``` azure-webapp-ir-lab/ ├── README.md ← you are here ├── docs/ │ ├── LAB-GUIDE.md ← full build & attack walkthrough (Phases 1–11) │ ├── ARCHITECTURE.md ← topology, IP scheme, NSG rules, log flow │ ├── DETECTION-ENGINEERING.md ← how the SPL works + tuning notes │ ├── MITRE-ATTACK-MAPPING.md ← ATT&CK / OWASP / CWE cross-reference │ └── INCIDENT-REPORT.md ← formal incident write-up ├── detections/ ← individual Splunk searches (.spl) ├── config/ ← Splunk forwarder inputs.conf + notes ├── attack/ ← consolidated Kali commands + benign marker file └── screenshots/ ← evidence ``` ## 快速开始 完整的分步构建指南位于 **[`docs/LAB-GUIDE.md`](docs/LAB-GUIDE.md)** 中 —— 它涵盖了 Azure 设置、DVWA 安装、Splunk 配置、攻击模拟、调查和完整的 响应。所有命令均使用示例 IP 方案(Kali `10.20.1.10`,Web `10.20.2.10`,Splunk `10.20.3.10`);在出现占位符的地方替换为您自己的私有 IP。 ## 截图 各阶段的证据位于 [`screenshots/`](screenshots/README.md) 中
标签:CISA项目, ffuf, OPA, Web安全, 安全运营, 应用安全, 微软云, 扫描框架, 蓝队分析, 靶场