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, 安全运营, 扫描框架, 日志自动化, 红队行动