Guscyrus-cyber/Splunk_AI_ML_cybersecurity_threat_hunting_lab
GitHub: Guscyrus-cyber/Splunk_AI_ML_cybersecurity_threat_hunting_lab
基于 Splunk 和聚类算法的网络安全威胁狩猎实验项目,利用网络流量数据集检测异常行为并调查可疑活动。
Stars: 0 | Forks: 0
**AI/ML 网络安全实验 04 – 使用聚类概念进行威胁狩猎**
**概述**
在本实验中,我使用了 Splunk Enterprise 来执行威胁狩猎,其中运用了人工智能和机器学习中常见的聚类概念。与传统的基于特征的检测不同,聚类技术将相似的活动分组在一起,有助于识别可能代表以前未知威胁或可疑活动的异常行为。
数据集包含网络连接信息,包括源和目标 IP 地址、目标端口、协议、连接计数、唯一目标数、数据传输量、DNS 活动、失败登录尝试、地理位置和行为组。通过分析这些特征,我可以识别正常网络活动的模式,并将它们与侦察、命令与控制通信或其他可疑活动相关的行为区分开来。\
\
本实验介绍了聚类,这是一种广泛用于网络安全威胁狩猎的无监督机器学习技术。聚类不依赖于预定义的攻击特征,而是根据活动的特征将相似的活动分组,并突出显示与大多数网络流量显著不同的行为。
本实验中使用的主要人工智能/机器学习概念包括:
无监督学习\
聚类\
行为模式分析\
异常值检测\
威胁狩猎\
网络流量分析\
\
**现实世界的意义**
安全运营中心 (SOC) 通常使用聚类技术进行威胁狩猎,以识别可能不会触发传统安全警报的可疑行为。安全分析师通过识别与正常操作行为不同的事件组,使用聚类来检测侦察活动、异常网络通信、横向移动和命令与控制流量。
在本实验中,我将使用 Splunk Enterprise 分析网络活动、识别行为聚类、调查潜在威胁,并应用 AI/ML 概念来支持主动威胁狩猎。\
\
**目标**
本实验的目标是:
- 识别相似网络行为的聚类。
- 检测潜在的侦察和扫描活动。
- 使用聚类概念分析网络流量模式。
- 识别异常的源 IP 地址。
- 调查异常的连接行为。
- 检查 DNS 和失败登录活动。
- 确定可疑行为组的优先级,以供进一步调查。
**数据集**
**文件名:** threat_hunting_clustering_dataset.csv
请参阅代码库中的图片 # 1。
**字段**
timestamp
src_ip
dest_ip
dest_port
protocol
connection_count
unique_destinations
bytes_sent
dns_queries
failed_logins
country
behavior_group
**上传验证**
请参阅代码库中的图片 # 2。
**验证 60 个事件的索引数据集是否已导入 Splunk**
使用查询:
index=network sourcetype=clustering_hunt
| table timestamp src_ip dest_ip dest_port protocol connection_count unique_destinations bytes_sent dns_queries failed_logins country behavior_group\
\
我在索引后查询了整个数据集,以验证所有 **60 个事件** 是否已成功摄取到 Splunk Enterprise 中。结果显示了完整的网络事件集,包括时间戳、源和目标 IP 地址、端口、协议、连接计数、唯一目标数、数据传输量、DNS 活动、失败登录尝试、地理位置和行为组。出于演示目的,截图中仅显示了前 **5 个事件**,而完整数据集包含本实验中使用的 **60 个事件**。
请参阅代码库中的图片 # 3 和 # 4。
**确认数据集分布**
使用查询:
index=network sourcetype=clustering_hunt
| stats count by behavior_group\
请参阅代码库中的图片 # 5。
该数据集由代表不同类型网络活动的四个不同行为组组成。将在本实验中对这些行为组进行分析,以使用聚类概念和 AI/ML 威胁狩猎技术识别模式、检测异常值并调查可疑活动。**\
\**
| **行为组** | **事件** |
|-------------------------------|------------|
| normal_web_activity | 20 |
| admin_management_activity | 12 |
| recon_scanning_activity | 14 |
| suspicious_beaconing_activity | 14 |
**1. 数据集中存在哪些行为组?**
index=network sourcetype=clustering_hunt\
\| stats count by behavior_group\
\| sort - count
AI/ML 概念:
聚类发现\
请参阅代码库中的图片 # 6。
数据集中存在 4 个行为组\
.normal_web_activity\
. recon_scanning_activity\
. suspicious_beaconing_activity\
. admin_management_activity\
**2. 哪些源 IP 地址生成的连接数最多?**
index=network sourcetype=clustering_hunt\
\| stats sum(connection_count) as total_connections by src_ip\
\| sort - total_connections
AI/ML 概念:
异常值识别\
请参阅代码库中的图片 # 7 和 # 8。
生成连接数最多的源 IP 地址包括:
| **源 IP** | **总连接数** |
|---------------|-----------------------|
| 10.0.1.11 | 77 |
| 10.0.1.8 | 73 |
| 10.0.0.27 | 59 |
| 10.0.1.13 | 45 |
| 10.0.0.14 | 39 |
**3. 哪些源 IP 与最多数量的唯一目标进行了通信?**
index=network sourcetype=clustering_hunt\
\| stats max(unique_destinations) as unique_destinations by src_ip\
\| sort - unique_destinations
AI/ML 概念:
侦察检测\
请参阅代码库中的图片 # 9 和 # 10。
| **源 IP** | **唯一目标数** |
|---------------|-------------------------|
| 198.51.100.30 | 85 |
| 198.51.100.26 | 81 |
| 198.51.100.72 | 79 |
| 198.51.100.41 | 77 |
| 198.51.100.65 | 71 |
**4. 哪些国家/地区生成的网络连接数最多**?
index=network sourcetype=clustering_hunt\
\| stats sum(connection_count) as total_connections by country\
\| sort - total_connections
AI/ML 概念:
行为分组\
请参阅代码库中的图片 # 11。
| **国家/地区** | **总连接数** |
|-------------|-----------------------|
| Unknown | 2,619 |
|---------|-------|
| China | 1,659 |
|-------|-------|
| Russia | 1,309 |
|--------|-------|
| USA | 408 |
|-----|-----|
| UK | 118 |
|-----|-----|
| Canada | 100 |
|--------|-----|
**Unknown** 类别生成的网络连接数最多,其次是 **China** 和 **Russia**。这些国家/地区产生的连接活动远多于 USA、UK 和 Canada。
然而,仅仅是大量的连接并**不能**确认存在恶意活动。大量的连接可能是由合法的管理任务、自动化服务或正常的业务操作引起的。因此,需要进一步调查以确定此流量是否与可疑行为有关。\
此查询代表了行为分析的初始阶段。它不是直接识别攻击,而是突出显示网络活动最多的国家/地区。在 AI/ML 辅助的威胁狩猎中,这些结果可帮助分析师识别可能需要进一步调查的区域。
下一步是按可疑行为组(例如 **recon_scanning_activity** 和 **suspicious_beaconing_activity**)过滤数据集,以确定这些高流量的国家/地区是否也与潜在的恶意活动有关。从总体活动过渡到可疑聚类是 AI 驱动的威胁狩猎中的一个关键概念。
**5. 哪些国家/地区与最高数量的可疑活动有关?**
index=network sourcetype=clustering_hunt\
\| search behavior_group="recon_scanning_activity" OR behavior_group="suspicious_beaconing_activity"\
\| stats sum(connection_count) as suspicious_connections by country\
\| sort - suspicious_connections
请参阅代码库中的图片 # 12。
与最高可疑连接量相关的国家/地区是 **Unknown**、**China** 和 **Russia**。
**6. 最常被定为目标的是哪些目标端口?**
index=network sourcetype=clustering_hunt\
\| stats count by dest_port\
\| sort - count
AI/ML 概念:
服务画像\
请参阅代码库中的图片 # 13。
最常被定为目标的目标端口是:
**80 (HTTP)** 14 个事件\
**443 (HTTPS)** 12 个事件\
**8080 (替代 HTTP/Web 应用程序)** 8 个事件\
**22 (SSH)** 5 个事件\
**5985 (Windows Remote Management)** 5 个事件\
**8443 (替代 HTTPS)** 5 个事件\
\
数据集显示了跨几个类别的网络服务活动:
**Web 服务:** 端口 **80**、**443**、**8080** 和 **8443** 表示 Web 应用程序和 Web 服务器。\
**远程管理:** 端口 **22 (SSH)**、**3389 (RDP)** 和 **5985 (WinRM)** 表示远程管理活动。\
**遗留服务:** 端口 **21 (FTP)** 和 **23 (Telnet)** 出现的频率较低,但可能需要关注,因为它们是较旧的协议,如果仍在使用可能会带来安全风险。\
**文件共享:** 端口 **445 (SMB)** 仅出现一次,表明此数据集中的文件共享活动极少。\
从威胁狩猎的角度来看,攻击者通常会扫描 Web 服务和远程管理端口,因为它们通常提供进入组织网络的入口点。这些端口上的高活动量并不一定表示存在恶意行为,但它有助于识别应受到更密切监控的服务。\
此查询通过识别常见的服务使用模式来支持**行为聚类**。
频繁访问 **80** 和 **443** 通常是预期的。
集中在 **22**、**3389**、**5985**、**8080** 或 **8443** 上的活动可能代表一个独特的行为聚类,特别是当结合高连接计数、大量唯一目标或可疑的地理来源时。\
聚类算法不是将单个端口视为恶意的,而是评估**端口、流量、目标和行为特征的组合**,以区分正常的管理活动与侦察或攻击行为。这是 AI 辅助威胁狩猎相对于传统基于规则检测的一个关键优势。
**7. 哪个行为组传输的数据最多?**
index=network sourcetype=clustering_hunt\
\| stats sum(bytes_sent) as total_bytes by behavior_group\
\| sort - total_bytes
AI/ML 概念:
聚类比较\
请参阅代码库中的图片 # 14。
**suspicious_beaconing_activity** 行为组传输的数据量最大,达到 **61,010,869 字节**,使其成为数据集中数据量最大的行为组。\
\
结果显示了四个行为聚类之间在数据传输量上存在显著差异。\
结果显示了四个行为聚类之间在数据传输量上存在显著差异。
**. suspicious_beaconing_activity** 产生的网络流量远高于其他组,传输了超过 **6100 万字节**。
**. admin_management_activity** 产生了第二高的数据量,这是符合预期的,因为管理操作通常涉及远程管理和系统维护。
**. normal_web_activity** 产生了与日常用户活动一致的适中流量。
**. recon_scanning_activity** 传输的数据量最少,这与侦察行为相符,因为扫描通常涉及许多连接尝试,但交换的数据相对较少。这种模式与现实世界中的网络攻击一致,在攻击中,侦察会生成大量小请求,而命令与控制或恶意软件通信通常涉及持续且更大的数据传输。\
\
**人工智能/机器学习洞察\
此查询演示了聚类如何帮助分析师比较不同行为组的特征,而不是评估孤立的事件。
AI/ML 模型可以识别出:
**. 侦察** 的典型特征是**高连接计数**、**大量唯一目标数**和**低数据传输量**。
**. Beaconing 或命令与控制活动** 通常表现出**重复通信**加上**较高的累积数据传输量**。
**. 管理活动** 形成一个单独的聚类,因为它合理地传输了更多数据,同时遵循可预测的管理模式。
**. 正常用户活动** 保持在预期范围内,并作为基准。
通过比较这些行为聚类,分析师可以根据与正常操作显著不同的模式来确定调查的优先级,而不是仅依赖于预定义的攻击特征。这说明了现代安全运营中心 (SOC) 中 AI/ML 驱动的威胁狩猎的主要优势之一。
**8. 哪个行为组生成的 DNS 活动最多?**
index=network sourcetype=clustering_hunt\
\| stats sum(dns_queries) as total_dns_queries by behavior_group\
\| sort - total_dns_queries
AI/ML 概念:
模式识别\
请参阅代码库中的图片 # 15。
**suspicious_beaconing_activity** 行为组生成的 DNS 活动最多,达到 **1,625 次 DNS 查询**,大大超过了所有其他行为组。\
\
结果显示了四个行为聚类之间的 DNS 活动存在巨大差异。
**. suspicious_beaconing_activity** 生成了 **1,625 次 DNS 查询**,使其成为数据集中最活跃的 DNS 行为。
**. normal_web** 产生了 **342 次 DNS 查询**,这与日常 Web 浏览一致。
**. recon_scanning_activity** 生成了相对较少的 DNS 查询,因为网络扫描通常针对 IP 地址和服务,而不是严重依赖 DNS 解析。
**. admin_management_activity** 生成的 DNS 查询最少,反映了可预测的内部管理操作。
与 **suspicious_beaconing_activity** 聚类相关的异常高的 DNS 活动表明该行为需要进一步调查。
**人工智能/机器学习洞察**
此查询演示了 AI/ML 模型在对网络活动进行聚类时如何使用 **DNS 行为作为特征**。
聚类算法不是仅依赖于 DNS 活动,而是同时评估多个特征,包括:
**. DNS 查询量\
. 连接频率**
**. 数据传输大小\
. 唯一目标数量\
. 地理位置\
. 目标端口**
综合分析这些特征时,AI/ML 模型可以区分**正常 Web 浏览**、**管理活动**、**侦察**和**可疑的 beaconing**,而无需仅依赖于预定义的攻击特征。在此数据集中,极高的 DNS 查询量使得 **suspicious_beaconing_activity** 聚类成为最优先的进一步调查对象。
**9. 哪些行为组生成的失败登录次数最多?**
index=network sourcetype=clustering_hunt\
\| stats sum(failed_logins) as total_failed_logins by behavior_group\
\| sort - total_failed_logins
AI/ML 概念:
威胁狩猎优先级排序\
请参阅代码库中的图片 # 16。
**recon_scanning_activity** 行为组生成的失败登录尝试次数最多,达到 **49 次失败登录**,其次是 **suspicious_beaconing_activity**,为 **30 次失败登录**。\
\
结果表明身份验证失败集中在可疑行为组中。
**. recon_scanning_activity** 产生的失败登录次数最多。这与攻击者在侦察阶段的行为相一致,在此阶段,通常会使用无效凭据探测身份验证服务,以识别可访问的系统或薄弱账户。
**. suspicious_beaconing_activity** 产生的失败登录次数位居第二,这表明受感染的系统可能也正在尝试未经授权的身份验证,以此作为正在进行的恶意活动的一部分。
**. normal_web_activity** 和 **admin_management_activity** 显示的失败登录相对较少,这与预期的用户行为和合法的管理操作相一致。
这种分布表明,失败登录活动是确定与侦察相关行为调查优先级的一个有价值的指标。
**10. 哪些事件看起来最像侦察活动?**
index=network sourcetype=clustering_hunt\
\| sort - unique_destinations\
\| table src_ip country unique_destinations connection_count behavior_group
AI/ML 概念:
聚类异常值\
请参阅代码库中的图片 # 17 和 # 18。
| **源 IP** | **国家/地区** | **唯一目标数** | **连接数** | **行为组** |
|----|----|----|----|----|
| 198.51.100.30 | Russia | 85 | 139 | recon_scanning_activity |
| 198.51.100.26 | Unknown | 81 | 499 | recon_scanning_activity |
| 198.51.100.72 | Russia | 79 | 167 | recon_scanning_activity |
| 198.51.100.41 | Unknown | 77 | 406 | recon_scanning_activity |
| 198.51.100.65 | China | 71 | 277 | recon_scanning_activity |
与侦察活动最一致的事件源自 **198.51.100.x** 地址范围。这些系统联系了 **29 到 85 个唯一目标主机**,并且都被归类在 **recon_scanning_activity** 行为组中。\
\
有几个指标强烈表明存在侦察行为:
**.** 每个排名靠前的事件都属于 **recon_scanning_activity** 聚类。
**.** 源 IP 地址与异常多的唯一目标系统进行通信。
**.** 这些主机中的许多还生成了数百个网络连接。
**.** 该活动主要与 **Unknown**、**China** 和 **Russia** 国家/地区类别相关。
相比之下,正常的 Web 活动仅与 **6–8 个唯一目标**进行通信,代表了预期的用户行为。
这种高连接计数和广泛主机发现的组合是网络侦察和端口扫描操作的典型特征,这些操作通常在网络攻击的早期阶段观察到。
**11. 哪些行为组看起来最可疑,应该首先进行调查?**
index=network sourcetype=clustering_hunt\
\| stats sum(connection_count) as connections sum(unique_destinations) as destinations sum(bytes_sent) as bytes sum(failed_logins) as failed_logins by behavior_group\
请参阅代码库中的图片 # 19。
应优先调查的两个行为组是:
**1. recon_scanning_activity**\
**2. suspicious_beaconing_activity\
\**
每个可疑行为组都表现出不同的威胁特征:
### recon_scanning_activity
此行为组生成了:
**. 4,450 个网络连接**(最高)\
**. 852 个唯一目标数**(最高)\
**. 49 次失败登录尝试**(最高)\
**. 数据传输量相对较低**
这些特征与侦察和网络发现一致,在这种情况中,攻击者会探测许多系统和服务,同时交换相对较少的数据。
### suspicious_beaconing_activity
此行为组生成了:
**. 61,010,869 字节的传输量**(最高)\
**. 1,137 个网络连接**\
**. 30 次失败登录尝试**\
**. 适中数量的唯一目标数**
这些特征类似于命令与控制 (C2) beaconing 或持久性恶意软件通信,在这种情况中,受感染的系统会重复与外部基础架构进行通信并传输大量数据。
### 正常活动
**normal_web_activity** 和 **admin_management_activity** 组保持在预期的操作范围内,没有表现出相同的可疑行为指标组合。
## AI/ML 洞察
最终的调查展示了 AI 驱动的威胁狩猎的基本原则之一:
**没有任何单一指标可以确定活动是否为恶意活动。**
相反,AI/ML 模型会同时评估多个行为特征,例如:
**.** 连接量\
**.** 唯一目标数\
**.** 数据传输量\
**.** 失败登录频率\
**.** DNS 活动\
**.** 地理模式\
**.** 目标端口
通过结合这些特征,聚类算法将事件划分为不同的行为组。在本实验中:
**. recon_scanning_activity** 形成了一个以**高连接计数**、**广泛的主机发现**和**大量失败登录**为特征的聚类,这表明存在侦察。
**. suspicious_beaconing_activity** 形成了另一个单独的聚类,其以**非常高的数据传输量**、**大量的 DNS 活动**和**持续的出站通信**为特征,这代表了潜在的恶意软件或命令与控制行为。
这说明了现代 SOC 平台如何使用 AI/ML 根据**行为模式**而非仅依赖已知的攻击特征来确定调查优先级。这是一个**无监督学习**的实际示例,在该示例中,相似的事件被分组在一起,而分析师会调查偏离正常网络行为最远的聚类。
## 结论
本实验演示了聚类概念如何通过识别相关行为组而不是孤立事件来增强威胁狩猎。通过同时分析多个行为特征,我能够区分正常 Web 活动、合法的管理操作、侦察扫描和可疑的 beaconing。这种方法反映了 AI/ML 辅助的 SOC 平台如何帮助分析师专注于最重大的威胁,从而能够对以前未知或不断演变的攻击技术进行更快、更有效的调查。
标签:Apex, IP 地址批量处理, 异常检测, 插件系统, 机器学习, 网络安全, 网络流量分析, 聚类分析, 隐私保护