d7meealz/azure-cloud-soc-lab

GitHub: d7meealz/azure-cloud-soc-lab

基于 Azure 构建的紫队云 SOC 实验室,将蜜罐检测、Sentinel 检测工程、Web 渗透测试与 WAF 防御统一到一个安全运营中心。

Stars: 0 | Forks: 0

# 🛡️ Azure Cloud SOC — 紫队实验室 ![Azure](https://img.shields.io/badge/Microsoft-Azure-0078D4?logo=microsoftazure&logoColor=white) ![Sentinel](https://img.shields.io/badge/Microsoft-Sentinel-0078D4?logo=microsoft&logoColor=white) ![KQL](https://img.shields.io/badge/Language-KQL-blue) ![MITRE](https://img.shields.io/badge/MITRE-ATT%26CK-red) ## 📂 仓库结构 ``` azure-cloud-soc-lab/ ├── diagrams/ → architecture, Red Team/WAF flow, GeoIP attack map ├── kql/ → detection & hunting queries (brute-force, logon, WAF, GeoIP) ├── media/ → demo GIFs (WAF block, firewall logs, Sentinel detection) ├── presentation/ → full project write-up (PDF) └── README.md ``` ## 🎥 演示 ### WAF 实时拦截 SQL 注入 针对登录表单的实时 `' OR 1=1 --` 攻击在到达应用之前被 **403 Forbidden** 成功拦截。 ![WAF 拦截 SQLi](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0d209565da065650.gif) ### WAF 捕获的真实攻击 查询 `AGWFirewallLogs` 展示了被 OWASP Core Rule Set 拦截的活跃互联网攻击者 —— 包括路径遍历、PHP 注入和 SQL 注入,全部被匹配并拦截。 ![WAF 防火墙日志](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b2e796d408065656.gif) ### Microsoft Sentinel 中触发的暴力破解检测 一个预定的分析规则检测到了 RDP 暴力破解:外部 IP 正在喷洒管理员用户名(一个源在每 10 分钟的窗口内尝试了 12 次以上)。 ![Sentinel 暴力破解检测](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/968971ddf3065702.gif) ## 🧭 架构 ![架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e64b1548ba065708.png) **蓝队面 — 蜜罐 pipeline:** 互联网攻击者访问暴露的 Windows VM(通过 NSG 暴露的 RDP :3389);其安全事件通过 Log Analytics 工作区流入 Microsoft Sentinel。 ![红队 / WAF 流量](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/267ae9e06e065714.png) **红队面 — Web 应用:** 攻击通过 Burp 路由到保护 OWASP Juice Shop 的 Application Gateway WAF;恶意 payload 在到达应用之前被 **403 Forbidden** 拦截。 两个面都流入**同一个** Log Analytics 工作区和 Microsoft Sentinel — 构建一个统一的 SOC。 ## 🔵 蓝队 — 检测与响应 - 部署了一台暴露在互联网上的 Windows 10 蜜罐 - 通过 Azure Monitor Agent (AMA) + Data Collection Rule 将其连接到 Microsoft Sentinel - 在第一小时内捕获了**真实的 RDP 暴力破解攻击** (EventID 4625) - 在 VirusTotal 中验证了攻击者 IP,并构建了全球流量的 **GeoIP 攻击地图** - 设计了经过调优、**映射到 MITRE ATT&CK** 的分析规则,可自动生成事件 - 作为分析师处理事件队列(分类 → 调查 → 归类 → 关闭) ## 🔴 红队 — 进攻测试与 WAF 防御 - 将 OWASP Juice Shop 部署为 Azure Container Instance - **SQL 注入**身份验证绕过 (`' OR 1=1 --`) → 以 admin 身份登录 - 通过搜索字段进行 **跨站脚本攻击 (XSS)** - 在其前方放置处于 Prevention 模式的 Azure Application Gateway **WAF (OWASP CRS)** - 重新运行攻击 → 被 **403 Forbidden** 拦截 - 将 WAF 日志路由到同一个 SOC,并在 `AGWFirewallLogs` 中搜寻攻击 ### 🌍 GeoIP 攻击地图 来自失败登录事件的攻击者 IP,通过 GeoIP watchlist (`ipv4_lookup`) 进行丰富,并绘制在世界地图上 —— 直观地证明了针对蜜罐的持续、全球性的自动化攻击。 ![GeoIP 攻击地图](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/1591eff77c065720.png) *计数是每个位置的总失败登录尝试次数(非唯一攻击者);位置反映了 IP 托管地,不一定是攻击者的真实来源。* ## 🔍 检测规则 (KQL) 请参阅 [`kql/`](kql/) 文件夹: | 规则 | 检测内容 | MITRE | |------|---------|-------| | [RDP 暴力破解](kql/failed-logons-bruteforce.kql) | 按源 IP 分组的失败登录 (4625) | T1110.001 | | [成功登录](kql/successful-logon-detection.kql) | 真实网络/RDP 登录(已调优以排除噪音) | T1078 | | [GeoIP 攻击地图](kql/attack-map-geoip.kql) | 用位置信息丰富攻击者 IP | — | | [WAF 攻击搜寻](kql/waf-firewall-logs.kql) | 在 `AGWFirewallLogs` 中匹配攻击 | — | ## 💡 关键经验 - **检测重在调优,而非数量** — 一个简单的 `contains "success"` 规则会让你淹没在误报中;基于 EventID、LogonType 和源 IP 进行过滤才能使告警有意义。 - **上下文很重要** — 将真实的攻击者 IP 与 Azure 平台流量区分开来,将真实的违规与预期的管理员登录区分开来,是分类的核心。 - **攻防是一个整体系统** — 每次攻击都会生成 SOC 可检测到的 telemetry,从而闭合红/蓝循环。 ## 📄 完整说明 [📑 演示文稿 (PDF)](presentation/Azure_SOC_Project.pdf) **Abdulrahman Alzahrani** — 渗透测试员 | 网络安全分析师 🔗 [LinkedIn](https://linkedin.com/in/d7meealz) · ✍️ [Medium](https://medium.com/@d7meealz)
标签:CISA项目, Microsoft Azure, PE 加载器, WAF, 安全运营中心, 数据展示, 紫队, 红队, 网络映射, 请求拦截