Lakkshanth/Azure-Honeypot-Sentinel

GitHub: Lakkshanth/Azure-Honeypot-Sentinel

基于 Azure 和 Microsoft Sentinel 构建的云端 Windows 蜜罐项目,用于捕获并分析公网未授权登录尝试,实现攻击威胁的集中检测与地理可视化。

Stars: 0 | Forks: 0

# 结合 Microsoft Sentinel SIEM 的 Azure 蜜罐 ![Microsoft Azure](https://img.shields.io/badge/Microsoft_Azure-0078D4?style=for-the-badge&logo=microsoftazure&logoColor=white) ![Microsoft Sentinel](https://img.shields.io/badge/Microsoft_Sentinel-5E5E5E?style=for-the-badge&logo=microsoft&logoColor=white) ![Kusto Query Language](https://img.shields.io/badge/Kusto_Query_Language-00599C?style=for-the-badge) ![Azure Monitor](https://img.shields.io/badge/Azure_Monitor-0078D4?style=for-the-badge&logo=microsoftazure&logoColor=white) ## 概述 本项目演示了如何在 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级数据处理, 威胁检测, 安全运维, 底层分析, 蜜罐, 证书利用