Lakkshanth/Azure-Honeypot-Sentinel
GitHub: Lakkshanth/Azure-Honeypot-Sentinel
基于 Azure 和 Microsoft Sentinel 构建的云端 Windows 蜜罐项目,用于捕获并分析公网未授权登录尝试,实现攻击威胁的集中检测与地理可视化。
Stars: 0 | Forks: 0
# 结合 Microsoft Sentinel SIEM 的 Azure 蜜罐




## 概述
本项目演示了如何在 Microsoft Azure 上部署基于云的 **Windows 蜜罐**,并集成 **Microsoft Sentinel (SIEM)** 以实现集中的日志收集、监控、威胁检测和攻击可视化。
该项目模拟了一台故意暴露在公网的 Windows 虚拟机,以吸引未经授权的登录尝试。Windows 安全事件日志通过 Azure Monitor Agent (AMA) 收集,转发到 Azure Log Analytics Workspace,使用 Kusto Query Language (KQL) 进行分析,利用 GeoIP 情报进行丰富,并通过 Microsoft Sentinel 进行监控。
## 项目资源
📄 **项目报告:** `docs/Azure_Honeypot_Report.pdf`
🎥 **项目演示:** `demo/Azure_Honeypot_Demo.mp4`
## 目录
- 概述
- 项目目标
- 核心功能
- 使用技术
- 架构
- 项目工作流
- KQL 查询
- 监控的事件 ID
- 技能与技术
- 学习成果
- 未来改进
- 仓库结构
- 参考资料
- 作者
# 项目目标
- 在 Microsoft Azure 中部署一台 Windows 虚拟机。
- 将该 VM 配置为面向互联网的蜜罐。
- 捕获来自外部源的失败登录尝试。
- 将 Windows 安全事件转发至 Azure Log Analytics Workspace。
- 集成 Microsoft Sentinel 进行集中安全监控。
- 使用 Kusto Query Language (KQL) 分析日志。
- 使用 GeoIP 情报丰富安全事件。
- 通过 Microsoft Sentinel 监控攻击活动。
# 核心功能
- 托管在 Microsoft Azure 上的 Windows 10 蜜罐
- Microsoft Sentinel SIEM 集成
- 使用 Azure Log Analytics Workspace 进行集中日志收集
- Windows 安全事件监控
- 失败登录检测 (Event ID 4625)
- 使用 Sentinel Watchlists 进行 GeoIP 丰富
- 使用 Kusto Query Language (KQL) 进行威胁狩猎
- 针对未经授权登录尝试的安全事件分析
# 使用技术
- Microsoft Azure
- Azure Virtual Machine (Windows 10)
- Microsoft Sentinel
- Azure Log Analytics Workspace
- Azure Monitor Agent (AMA)
- Azure Network Security Group (NSG)
- Data Collection Rules (DCR)
- Kusto Query Language (KQL)
- GeoIP Watchlists
- Windows Event Viewer
# 架构
```
Internet
│
▼
Windows 10 Azure VM
(Honeypot Machine)
│
Windows Security Events
│
▼
Azure Monitor Agent (AMA)
│
▼
Log Analytics Workspace (LAW)
│
▼
Microsoft Sentinel
│
▼
Threat Detection & Analysis
```
# 项目工作流
## 步骤 1 – Azure 环境设置
- 创建了 Azure 订阅。
- 登录到 Azure Portal。
- 为部署准备了云环境。
## 步骤 2 – 部署 Windows 蜜罐
创建了一台 Windows 10 Azure Virtual Machine,包含:
- 公网 IP 地址
- 管理员凭据
- Network Security Group (NSG)
通过以下方式配置该 VM:
- 通过 NSG 允许入站流量。
- 禁用 Windows 防火墙。
- 使虚拟机可被外部连接访问。
此配置使 VM 能够作为基础蜜罐运行,用于观察未经授权的登录尝试。
## 步骤 3 – 生成安全事件
为了验证日志记录功能:
- 执行了多次失败的登录尝试。
- 登录到虚拟机。
- 打开了 Windows Event Viewer。
- 验证了 Event ID **4625 (Failed Logon)**。
这些事件随后会被转发至 Microsoft Sentinel 进行分析。
## 步骤 4 – 配置日志收集
创建了:
- Azure Log Analytics Workspace
- Microsoft Sentinel 实例
配置了:
- 通过 Azure Monitor Agent (AMA) 收集 Windows 安全事件
- Data Collection Rule (DCR)
这允许集中收集 Windows 安全事件,以供监控和调查。
## 步骤 5 – 使用 KQL 查询安全日志
用于检索失败登录事件的示例查询:
```
SecurityEvent
| where EventID == 4625
```
此查询检索由 Windows 安全日志记录的所有失败身份验证尝试。
## 步骤 6 – GeoIP 日志丰富
将 GeoIP Watchlist 导入到 Microsoft Sentinel 中。
该 watchlist 将攻击者 IP 地址与以下信息关联:
- 国家
- 州/省
- 城市
- 纬度
- 经度
示例 KQL 查询:
```
let GeoIPDB_FULL = _GetWatchlist("geoip");
SecurityEvent
| where EventID == 4625
| evaluate ipv4_lookup(
GeoIPDB_FULL,
IpAddress,
network
)
```
经过丰富后,攻击者 IP 地址可以与地理位置相关联,从而改善分析效果。
## 步骤 7 – 攻击监控
Microsoft Sentinel 用于通过分析以下内容来监控失败的身份验证尝试:
- 攻击者 IP 地址
- 国家
- 城市
- 地理坐标
- 失败登录尝试
- 攻击源
# KQL 查询
本仓库包含以下 Kusto Query Language 脚本:
### `queries/failed_logins.kql`
检索失败的登录尝试。
```
SecurityEvent
| where EventID == 4625
| order by TimeGenerated desc
```
### `queries/geoip_lookup.kql`
使用地理信息丰富失败登录事件。
```
let GeoIPDB_FULL = _GetWatchlist("geoip");
SecurityEvent
| where EventID == 4625
| evaluate ipv4_lookup(
GeoIPDB_FULL,
IpAddress,
network
)
```
# 监控的事件 ID
| Event ID | 描述 |
|----------|-------------|
| 4625 | 失败的登录尝试 |
| 4624 | 成功的登录 |
| 4634 | 用户注销 |
| 4672 | 分配特殊权限 |
# 技能与技术
- 云安全
- Microsoft Azure 管理
- Microsoft Sentinel SIEM
- 安全监控
- 威胁狩猎
- Windows 安全事件分析
- Kusto Query Language (KQL)
- Azure Log Analytics
- 事件调查
- 网络安全
- GeoIP 情报
- 安全分析
# 学习成果
通过这个项目,我学习了如何:
- 部署云端托管的 Windows 蜜罐。
- 配置 Azure 网络以进行安全监控。
- 使用 Azure Monitor Agent 收集 Windows 安全事件。
- 将日志转发到 Azure Log Analytics Workspace。
- 集成 Microsoft Sentinel 进行集中监控。
- 使用 KQL 分析失败的身份验证尝试。
- 使用 GeoIP 情报丰富安全事件。
- 使用基于云的 SIEM 工具调查攻击者活动。
# 未来改进
- 部署多台蜜罐虚拟机。
- 除了 Windows 系统外,还监控基于 Linux 的系统。
- 配置自定义的 Sentinel Analytics Rules。
- 集成 Microsoft Defender for Endpoint。
- 使用 Azure Logic Apps 自动化事件响应。
- 将检测结果映射到 MITRE ATT&CK Framework。
- 开发高级的威胁狩猎仪表板。
# 仓库结构
```
Azure-Honeypot-Sentinel/
│
├── README.md
│
├── docs/
│ └── Azure_Honeypot_Report.pdf
│
├── demo/
│ └── Azure_Honeypot_Demo.mp4
│
└── queries/
├── failed_logins.kql
└── geoip_lookup.kql
```
# 参考资料
- Microsoft Azure 文档
- Microsoft Sentinel 文档
- Azure Monitor 文档
- Kusto Query Language (KQL) 文档
# 作者
- **Lakkshanth R**
计算机科学与工程(网络安全)工学学士
- **Roohith R**
计算机科学与工程(网络安全)工学学士
## 许可证
本项目仅供教育和研究目的使用。
标签:AMSI绕过, Microsoft Azure, PB级数据处理, 威胁检测, 安全运维, 底层分析, 蜜罐, 证书利用