mornos25/Hybrid-Threat-Hunting-Automated-Log-Ingestion-Pipeline

GitHub: mornos25/Hybrid-Threat-Hunting-Automated-Log-Ingestion-Pipeline

该项目构建了一条从 Wireshark 网络取证到 Microsoft Sentinel 云端自动化日志摄取的端到端威胁狩猎管道,解决安全运营中多源日志分析与云端检测的问题。

Stars: 0 | Forks: 0

# 混合威胁狩猎与自动化日志摄取管道 ## 📌 项目概述 本项目展示了一种用于安全运营和威胁分析的混合方法... 👉 **[在此处观看 8 分钟的项目演示与实战讲解视频](https://drive.google.com/file/d/1jwzJpZ-3i-XVv41LB7uT3mhIBO-z0lTi/view?usp=sharing)** 它包含两个核心阶段: 1. **网络取证:** 使用 Wireshark 对恶意网络捕获文件 (PCAP) 进行深度数据包分析。 2. **云安全工程:** 使用 Azure Data Collection Endpoints (DCE)、Logic Apps、PowerShell 和 Postman 设计自动化日志摄取架构至 Microsoft Sentinel,随后使用 Kusto Query Language (KQL) 进行云规模的威胁狩猎。 ## 🛠️ 阶段 1:网络取证 (Wireshark) 在分析原始网络捕获文件 (`.pcap`) 时,采用了结构化的三步调查工作流来隔离异常活动: ### 步骤 1:协议层级分析 * 评估了网络流量的整体情况,以过滤掉标准的背景噪声。 * 识别了 TCP、UDP 和 HTTP 流量的基线分布,以精确定位大量非特征通信集中的位置。 ### 步骤 2:会话追踪与攻击者隔离 * 通过按数据量(数据包/字节)对会话进行排序,隔离出特定的 endpoint。 * 映射了明确的源 IP 和目标 IP 地址,以识别威胁行为者的机器和目标受害者。 * **安全洞察:** 注意到通信开始向 **动态/临时端口 (49152–65535)** 转移。攻击者经常利用这些高端口进行 Command and Control (C2) 通道或 Reverse Shells 攻击,以混入正常的出站客户端流量并绕过标准的防火墙警报。 ### 步骤 3:通过 I/O 图表进行时间线映射 * 利用 Wireshark I/O 图表随时间可视化流量峰值。 * 在大规模的垂直流量激增上精确定位时间戳,成功识别出自动化扫描工具和数据外泄操作被触发的确切秒数。 ## ☁️ 阶段 2:云摄取工程 (Microsoft Sentinel) 为了扩展分析规模,设计了一个企业级的日志摄取管道,将解析后的 JSON 日志数据直接路由到自定义的 Microsoft Sentinel 表 (`CoreTable_CL`) 中。 ### 架构组件 * **Azure App Registration:** 配置为具有适当 API 权限的 OAuth2 身份验证。 * **Data Collection Endpoint (DCE) & Data Collection Rule (DCR):** 进行配置以提供安全的摄取 URL 接口。 * **Azure Blob Storage:** 设置为原始日志的着陆区。 ### 已测试和评估的摄取方法 为了确保全面的工程验证,开发并测试了三种不同的摄取机制: 1. **Postman API 调用:** 构建原始 `POST` 请求以直接测试 DCE endpoint。API 成功返回 **`204 No Content`** 状态码,验证了有效的 token 身份验证和 payload 结构的接受。 2. **PowerShell 脚本:** 开发脚本以编程方式打包、签署并将日志包推送到 Azure Monitor Ingestion API。 3. **Azure Logic Apps(Serverless 工作流):** 构建了一个由 blob storage 上传触发的自动化管道,使用 `Get blob content (V2)` 状态操作将数据动态发送到 HTTP endpoint。 ### 工程故障排除与经验教训 * **挑战:** 虽然摄取入口点验证成功(包括 `204` API 响应),但工作区自定义表内的数据反映遇到了后端渲染阻碍。 * **分析:** 将此诊断为云基础设施延迟(首次动态启动全新自定义表时常见的后端存储索引延迟)与时间戳过滤边界的综合结果,其中旧的日志对象时间戳超出了默认的查询范围。 * **解决方案:** 通过使用另一个个人租户来验证工作区行为,并转向在已填充的 schema 上暂存高价值查询,从而适应并保持了操作势头。 ## 🎯 使用 Kusto Query Language (KQL) 进行威胁狩猎 为了展示云规模的检测能力,在 Sentinel Queries Hub 框架内开发了以下优化的 KQL 查询,以拦截常见的攻击场景: ### 1. 暴力破解与凭证填充检测 此查询监控失败的身份验证事件,以便在横向发展发生之前隔离出暴力破解途径。 ``` SecurityEvent | where EventID == 4625 | summarize FailureCount = count() by TargetUserName, Computer | where FailureCount > 5 | order by FailureCount desc 2. Internal Reconnaissance & Lateral Movement This query filters network operations targeting high-risk management ports to catch infected hosts attempting to pivot through internal subnets. DeviceNetworkEvents | where RemotePort in (22, 3389, 445) | summarize ConnectionCount = count() by LocalIP, RemoteIP, RemotePort | where ConnectionCount > 50 📂 Repository Structure ├── wireshark-analysis/ # Screenshots of Protocol Hierarchy, Conversations, and I/O Graphs ├── azure-pipeline-configs/ # PowerShell ingestion scripts and Logic App JSON workflows ├── kql-queries/ # Production-ready .kql threat hunting files └── README.md # Project documentation 🚀 Conclusion This project demonstrates the ability to adapt under infrastructural constraints—pivoting seamlessly between deep, localized packet-level forensics in Wireshark and cloud-native SIEM architecture and query design in Microsoft Sentinel. ```
标签:AI合规, Libemu, 安全运营, 扫描框架, 日志自动化, 红队行动