nishanrajmulik1/cloud-soc-honeynet-azure

GitHub: nishanrajmulik1/cloud-soc-honeynet-azure

该项目是一个云基础的SOC蜜罐实验室,使用Microsoft Sentinel和KQL来开发检测规则并分析网络攻击,解决安全运营中的实战演练和威胁研究问题。

Stars: 0 | Forks: 0

# Azure Sentinel SOC 蜜罐:检测工程与威胁分析 ![蜜罐攻击地图](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/d98c06adcb120456.jpg) ## 项目摘要 - **目标:** 在单台笔记本电脑上,从零开始构建完整的SOC能力,涵盖日志收集、检测规则、地理可视化与事件响应。 - **区域:** 澳大利亚东部(数据驻留地) - **暴露窗口:** 约72小时 - **成果:** 捕获297,534次攻击,自动生成39个事件,成功入侵0次。 ## 架构 | 层级 | 技术 | |---|---| | 蜜罐虚拟机 | Windows 10 Pro 22H2 (Standard_B2s) | | 日志收集 | 通过数据收集规则使用Azure Monitor Agent (AMA) | | 日志存储 | Azure Log Analytics 工作区 | | SIEM | Microsoft Sentinel | | 查询语言 | Kusto查询语言 (KQL) | | 威胁映射 | MITRE ATT&CK 框架 | | 地理定位 | 内置KQL函数 `geo_info_from_ip_address()` | ## 关键数据 | 指标 | 数值 | |---|---| | 捕获的失败登录尝试 | **297,534** | | 独立攻击者IP数 | **28** | | 源国家数 | **14** | | 从暴露到首次攻击的时间 | **约20小时** | | 部署的自定义检测规则数 | **5** | | 自动生成的事件数 | **39** | | 成功的未授权登录 | **0** | ## 攻击来源国前5名 | 国家 | 尝试次数 | |---|---| | 🇺🇸 美国 | 99,076 | | 🇺🇦 乌克兰 | 69,910 | | 🇧🇩 孟加拉国 | 30,699 | | 🇷🇴 罗马尼亚 | 27,677 | | 🇲🇾 马来西亚 | 14,838 | ## 最具攻击性IP前5名 | IP | 国家 | 尝试次数 | |---|---|---| | 20.119.34.7 | 美国 | 99,068 | | 119.148.8.66 | 孟加拉国 | 30,699 | | 80.94.95.83 | 罗马尼亚 | 27,671 | | 165.99.199.134 | 马来西亚 | 14,838 | | 138.94.140.190 | 墨西哥 | 14,401 | ## 被攻击最多的用户名前5名 ![被攻击最多的用户名](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/60ebf0a01c120457.jpg) | 用户名 | 尝试次数 | |---|---| | \HONEYPOT | 144,605 | | \ADMINISTRATOR | 28,227 | | \USER | 15,236 | | \ADMIN | 6,026 | | \BACKUP | 4,952 | ## 已构建的检测规则 ![事件队列](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/7a2d76d6c1120458.jpg) | # | 规则 | MITRE ATT&CK | 严重性 | 结果 | |---|---|---|---|---| | 1 | 来自单IP的RDP暴力破解 | T1110.001 | 中 | 已触发(经调整后,见经验教训) | | 2 | 暴力破解后成功登录 | T1110 + T1078 | 高 | 未触发(无入侵) | | 3 | 从异常国家成功登录 | T1078 | 高 | 未触发(无入侵) | | 4 | 密码喷洒检测 | T1110.003 | 中 | 生成27个事件 | | 5 | 针对单账户的分布式暴力破解 | T1110 | 高 | 阈值调整后触发 | ## 仓库结构 ``` azure-sentinel-honeypot-soc/ ├── README.md (this file) ├── architecture/ (diagrams, design docs) ├── kql-queries/ (analysis queries) ├── detection-rules/ (5 Sentinel rules + MITRE mapping) ├── playbooks/ (incident response procedures) ├── reports/ (final analysis writeup) ├── screenshots/ (evidence and visualisations) └── notes/ (daily progress log) ``` ## 关键经验教训 ### 1. LogonType 3 vs 10 - 检测工程洞察 最初的检测规则过滤 `LogonType == 10` (远程交互,完整RDP会话)。对297,534条失败登录事件的分析显示,**100%的攻击记录为LogonType 3 (网络)**,没有记录为LogonType 10。现代RDP暴力破解工具会在Windows建立远程交互会话之前,在网络级别认证 (NLA) 阶段失败。**生产环境的检测规则必须包含LogonType 3以捕获真实的攻击模式。** ### 2. 主机名泄露作为侦察风险 48%的尝试针对 `\HONEYPOT`,该名称源自虚拟机主机名。生产环境的虚拟机应使用非描述性主机名 (例如 `web-prd-04`),以避免通过RDP横幅、证书CN或网络广播向攻击者泄露用途。 ### 3. 单IP持续攻击 vs 僵尸网络扩散 单个IP (`20.119.34.7`,位于美国) 产生了33%的攻击流量。大多数威胁模型假设分布式僵尸网络活动,但专用的攻击者基础设施也同样常见。速率限制和基于IP的异常检测是互补的控制措施。 ### 4. Sentinel连接器与通用DCR的陷阱 只有当数据收集规则是通过Sentinel中的 **Windows安全事件(通过AMA)** 连接器页面创建时,`SecurityEvent` 表才会被填充,*而不是* 通过通用的 监视器 -> 数据收集规则 路径。通用DCR会填充 `Event` 表,该表不会触发Sentinel的内置检测。这一点文档记录不佳,耗费了大量故障排除时间。详见 `reports/final-analysis-report.md`。 ### 5. 未触发规则的价值 规则2和3(入侵指标)在观察期间从未触发,而这正是期望的结果。一个*因为*未发生入侵而没有触发的检测规则是一个有价值的信号。检测工程同时衡量信号与静默。 ## 与ACSC Essential Eight的映射 | 控制项 | 本实验如何体现 | |---|---| | 多因素认证 | 将会击败100%观察到的攻击 | | 限制管理员权限 | `\ADMINISTRATOR` 账户遭受28,227次尝试,绝不应暴露于外部 | | 操作系统补丁 | Windows 10 22H2在暴露期间收到了补丁;基于AMA的监控继续运行 | | 应用控制 | 如果发生入侵,将减轻入侵后活动 | ## 工具与技术 `Microsoft Azure` · `Microsoft Sentinel` · `Log Analytics` · `KQL` · `Azure Monitor Agent` · `MITRE ATT&CK` · `ACSC Essential Eight` · `Windows安全事件日志` ## 作者 由 **Nishan Rajmulik** 作为自主学习的SOC分析师项目构建。 寻求检测工程、SOC分析师 (T1/T2) 和安全运营相关职位。 [GitHub](https://github.com/nishanrajmulik1) [LinkedIn](https://www.linkedin.com/in/nrajmulik)
标签:AMSI绕过, Azure Monitor Agent, Azure云平台, KQL查询语言, Microsoft Sentinel, MITRE ATT&CK框架, SOC安全运营, 地理可视化, 威胁分析, 威胁情报, 威胁检测, 子域名暴力破解, 安全信息与事件管理, 开发者工具, 搜索引擎爬取, 攻击映射, 攻击统计, 数据收集规则, 日志存储, 网络安全, 自动化侦查工具, 自动化检测, 蜜罐实验室, 蜜罐技术, 隐私保护