基于流量特征的异常设备检测

无监督且具有成本效益的学习:动态揭示异常设备

1. 引言

如今,可以想象在一个机构或企业的整个网络中存在成千上万的联网设备,例如网络摄像头、物联网传感器、客户端计算机和系统服务器。联网设备的数量与网络安全风险从经验上看呈高度正相关。假设有一个监控服务旨在检测这些数千台在线设备是否同时保持正常行为;那么,何种方法适用于这一场景?首先,直观上,在每台设备上安装自保护软件(如防病毒软件)有望提升安全性,防止受到攻击。然而,这种方法很快被发现成本高昂,因为运行中的设备通常在厂商和版本上各不相同。另一个不切实际的问题是,大多数计算和内存有限的物联网设备无法安装自保护软件,但这些联网的物联网设备仍然面临风险。以现实世界的例子1, 来说,赌场的一个智能温度计被黑客利用,用以窃取赌场的数据库信息。该案例表明,轻微异常可能导致重大经济损失。

在传统方法中,优先目标通常是检查物联网设备故障,但忽略了轻微异常;忽略的原因是大多数异常行为不会直接影响环境的运行。应用异常检测[1],[2]可能会耗费巨大,但对运行环境的价值较小。

相比之下,从安全角度来看,故障通常对安全风险的影响较小,并且可以通过固定而简单的规则明显地检测到。此外,被入侵设备在功能上与正常设备略有不同,但在流量行为上存在显著差异,这很难被察觉。攻击者可以隐藏恶意行为和入侵,从而在之后造成严重破坏。

最近的研究应用机器学习方法来检测流量数据集中的异常[3],[4],[5]。

近年来,随着物联网的不断发展,异常检测方法已被广泛研究[6],[7],[8]。此外,一些研究聚焦于物联网(IoT)与社交物联网(SIoT)的融合网络,并应用异常检测技术[9]。进一步地,本文从安全角度考虑了更广泛的网络环境领域。本文提出的方法能够在不关注设备类型多样性的前提下发现网络脆弱性,但以准确性为代价。即使损失部分准确性,本文方法的优势仍可大幅降低成本,并在实际服务中具备更实用的可扩展性。

根据现实世界的实际情况,本文不会讨论检测方法的高准确性。本文将重点介绍一种软硬件集成的灵活方法,如图1所示,以在可接受的分析时间内发现网络中的薄弱环节。该方法是一种无需分析单个设备的集中式管理类型。大多数集中式设计对计算有显著影响,因此本文提出了针对流量的关键特征,以减少分析时间。第3节将阐述该方法的思想。我们首先在第2节讨论现实世界的问题,以呈现本文的研究动机。

示意图0 核心交换机的(c)端口,添加(a)服务器以对所有(e)设备进行集中式分析,并分析(e)设备与(d)internet之间的流量。)

2. 现实问题

本文列出了我们在现实世界中遇到的缺陷问题的三个方面,并解释了传统方法面临的挑战。

2.1. 可扩展性

在现实世界场景中,可扩展性和分析时间比缺陷检测的预测性能更受关注。为了监控网络内的安全风险,解决方案的选择通常根据在线设备的规模大小而有所不同,设备数量可能从几十台到数千台不等2。即使采用深度学习[5], 等具有高准确性的可靠方法,由于学习与识别的计算成本过高,在大规模设备环境中也可能并不适用。此外,如果计算成本不是主要瓶颈,深度学习仍然表现出色。鉴于实际场景,本文的研究重点放在有限计算资源的情况下。对于实时应用而言,决策响应时间比预测准确率更为重要,即使允许精度有轻微下降。

2.2. 可靠数据不足

除了计算成本问题外,使用监督学习算法时还存在另一个重要问题,即缺乏可靠数据源 [10]。在学习范式中,可靠的数据源通常指具有足够数量的真实标签数据,例如正常与异常设备之间的标注数据。

由于不同厂商和应用,构建这些置信数据可能成本高昂,且标注结果在区分良性与恶意软件时可能存在模糊性。在缺乏置信度和充足数据的情况下,监督学习方法难以适应动态环境。环境中的设备数量不是固定的。与监督学习相比,无监督的自学习更适合此场景,但在这种复杂的场景中,数据收集仍然是一个挑战。

2.3. 隐私

有时,障碍并非与算法的性能有关,而是与隐私政策相关。隐私这一敏感问题限制了所提出方法的选择。

分析技术大多无法访问设备中的私密信息,例如来自网络摄像头的图像和视频、客户端的账户活动以及个人敏感的互联网浏览记录。此外,敏感信息通常在网络流量中被加密,攻击者可能借此隐藏恶意行为而不被发现。

受限的访问权限和数据加密增加了在现实世界场景中对异常行为进行分类的难度。由于缺乏对象行为的真实数据集,机器学习方法在此场景中的应用极为有限。

3. 提出的方法

与挖掘单个信息不同,本文采用集式分析网络的思想来发现隐含的异常行为,如图1 (a)、(b)和(c)所示。

端口镜像技术,例如图1(c),是一种低成本捕获环境[11]内网络流量的方法。

主要思想是单向流量捕获,以避免影响网络环境。我们使用端口镜像技术来实现这种单向方法。端口镜像可以确保目标环境的稳定性不受额外硬件的影响,如图1 (a) 所示。该方法保持了隐私保护策略,因为数据仍然处于加密状态。所提出的方法通过采用关键特征而非分析这些加密数据来实现。这些关键特征将在后续章节中讨论。

由于网络流量格式复杂且多样化,应考虑实时捕获方法。因此,本文在将捕获的流量原始数据导入提出算法之前,采用开源软件工具Zeek3, 进行预处理,如图2所示。

表1 是我们已在客户网络中部署的该硬件平台的应用规格,以实现提出的方法。在此运行场景中,一个客户的每日总流量可能超过1TB,并包含数十万个不同IP地址。因此,额外的硬件需要基于服务器的32核 CPU,以及3TB的合适存储。由于提出算法仅保留用于学习的关键特征并删除其他未知数据,3TB的存储是可接受的。

示意图1 中独立服务器的算法。DEZS方程是去加重Z分数的缩写。)

硬件 32GB内存 3TB硬盘 32GB内存 3TB硬盘 32GB内存 3TB硬盘 32GB内存 3TB硬盘 32GB内存 3TB硬盘
英特尔至强 32核 4个10Gb以太网
软件 软件 软件 软件 软件 软件
CentOS 7 Zeek 3.0.11 Zeek 3.0.11 PostgreSQL 10.14 PostgreSQL 10.14
算法 去加重Z分数 去加重Z分数 去加重Z分数 无监督挖掘 无监督挖掘

准备好的服务器有四个网络接口控制器;一个用于分发分析结果以发出警报;其他三个用于从不同的交换机镜像更多的网络流量,尽管在大多数情况下我们通常只使用一个网络控制器进行捕获。Zeek 工具可以帮助将原始数据处理成可读格式,而我们的算法则专门专注于特征提取。

组 源 IP
镜像 eth1
eth3
eth4
Cut
外部 IP
提取 特征
报告
| | Zeek |
| — | — |
| | Zeek |
| | Zeek |
专家验证
| |||||||||||||||||||||||||
| —|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|—|
| |||||||||||||||||||||||||
| ||||||||||||参数|参数|参数|参数|参数|参数|参数|参数|参数|参数||
| ||||||||||||DCIA 方程|DCIA 方程|参数|参数|参数|参数|参数|参数|参数|参数|参数|参数||
| |||| | | | |||||DCIA 方程|DCIA 方程|参数|参数|参数|参数|参数|参数|参数|参数|参数|参数||
| |||| | | | |||||DCIA 方程|DCIA 方程||||||||||||
| |||| | | | |||||DCIA 方程|DCIA 方程||||||||||||
| ||||||||||||DCIA 方程|DCIA 方程|||历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘||
| ||||||||||||||||历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘||
| |||||||||| ||||||历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘|历史无监督 挖掘||
| Data|||eth2|eth2|eth2|eth2|eth2|eth2| | |||||||||||||||
| Data|||eth2|eth2|eth2|eth2|eth2|eth2| | |||||||||||||||
| Data|||| | | ||| | |||||||||||||||
| Data|||| | | ||| | ||| | ||| | || | |本地 DB|本地 DB||
| |||| | | ||| | ||| | ||| | || | |本地 DB|本地 DB||
| ||||||||| | ||| | ||| | || | |本地 DB|本地 DB||
| |||| | | ||| | ||| | ||| | || | |本地 DB|本地 DB||
| |||| | | ||||||| | ||| | || | |本地 DB|本地 DB||
| |||| | | ||||||| | ||| | || | |本地 DB|本地 DB||
| |||||||||||||||||||||||||
| |||||||||||||||||||||||||

图2中的特征提取方法用于从网络行为中选择自适应特征,以避免检查网络数据包的复杂性。提出的特征列在表2中。由于加密数据的存在,无法检查流量内容,但源IP和目的IP仍然对网络行为具有价值。

如果考虑网络的内部风险,通过源IP地址(SIP)来区分目的IPs将构成设备的行为指纹。流量可能每天都有不同的变化,但目标地址的数量应保持在一定范围内。例如,温度计只会向特定服务器发送温度数据。如果物联网设备一天内连接到数百个不同的IP地址,则可能已被劫持用于攻击或渗透其他服务。从经验上看,内部风险与僵尸网络 [12]行为相关,即攻击者已控制了该设备。

相比之下,考虑到外部安全风险,单个目标IP( DIP)的不同源IP(SIPs)数量将成为防御外部威胁的关键特征。例如,DDoS攻击[13]通过大量连接占用带宽,使目标网络瘫痪。DDoS的特征通常表现为从大量的不同源IP向少数几个目的IP发起连接。如果能够在实时检测到异常连接数量,系统管理员就可以在早期阶段防止严重破坏。事实上,外部风险通常被注意到当破坏已经发生时。

表2所示的关键特征为适应复杂流量提供了一种易于观察且直接的方法。在不考虑不同厂商的产品或加密网络包的情况下,该方法有助于我们构建用于实时响应的可靠算法。在接下来的讨论中,我们将介绍所提出的无监督算法以发现异常行为。

原始特征
周期
特征 时间戳 源IP
(SIP)
目标地址 DIP 流量字节
提取内部风险特征 提取内部风险特征 提取内部风险特征 提取内部风险特征 提取内部风险特征
周期 小时 小时 Days Days
特征 源IP与 不同的
DIPs
源IP与 总流量 源IP与 不同的
DIPs
源IP与 总流量
特征
提取外部风险特征 提取外部风险特征 提取外部风险特征 提取外部风险特征 提取外部风险特征
周期 小时 小时 Days Days
特征 目的IP与
不同的
目的IP与 总流量 目的IP与
不同的
目的IP与 总流量
SIPs SIPs
## 3.1. 提出算法

如上所述,定义每个设备的标准行为并不容易。通过所提出的集中式分析,我们收集每个设备用于基线的历史行为。每个设备仅通过比较过去的行为来检测异常,避免了定义模糊的正常与异常行为标准。

根据不同的攻击行为,基于上述内容检测异常存在两种不同情况。算法类似,因此本节仅通过关注源IP地址(SIP)来描述内部风险。

1) Zeek 观察以太网:
- Zeek 可以将网络行为转换为 CSV 格式。
- 转移的结果包含时间戳、源IP、目的IP和流量字节的列。
- 一对源IP和目的IP被定义为网络行为的基本单元。

2) 按天/小时对基本单元进行分组:
- 由于基本单元可能在一天内多次出现,此步骤对重复的基本单元进行分组。
- 分组后基本单元的流量字节将累积为总字节。

3) 移除外部IP:在此场景中,我们仅需要内部源IP
- 使用私有IP的定义来过滤。
- 一些内部IP可能是公共IP,因此我们的算法使用频率来学习这些内外混合IP。

4) 特征提取:关键特征列表见表2
- 由于我们仅保留少数信息,流量的大小将大大减少。

5) 历史无监督学习:
- 由于数量庞大,我们选取按连接的目的IP数量排序的前20%的源IP地址(SIPs)。
- 我们使用60天作为学习的观测周期。

6) 异常阈值:我们使用数学方程定义异常行为。
- 修改后的阈值可由安全专家通过验证进行调整。

3.2. 数学方程

由于不同厂商和应用,每个设备的行为仅与其历史行为进行比较。本文利用置信区间来定义阈值,该方法独立于厂商的差异。置信区间的基本形式如下所示:

$$
\text{Mean}(T) - Z_{\alpha/2} \frac{\sigma}{\sqrt{T}} \leq \text{CI}(T) \leq \text{Mean}(T) + Z_{\alpha/2} \frac{\sigma}{\sqrt{T}} \quad (1)
$$

$\text{CI}(T)$ 是置信区间,与观测流量的长期周期 $T$ 相关;在本例中,$T$ 被设为60天。此外,我们将 $\text{CI}(t)$ 定义为置信区间的短期周期 $t$。

$Z_{\alpha/2}$ 与置信水平相关,例如:

$$
P[\text{range of } \text{CI}(T)] = 1 - \alpha \quad (2)
$$

在我们的设定中,我们选择 $P[\text{range of } \text{CI}(T)] = 99.99\%$,因此 $Z_{\alpha/2} \approx 4$。由于置信区间的定义,$\text{CI}(T)$ 的边界将受到 $T$ 的影响。如果样本数量足够大,该方程将提供更高的正常行为精度。短期的 $\text{CI}(t)$ 表示对近期活动的粗略观察。

异常动态置信区间(DCIA)方程如下所示:

$$
\text{DCIA Score}(x) = \frac{LB(T) - r \times SB(t)}{} \quad (3)
$$

其中,

$$
LB(T) =
\begin{cases}
1 & \text{if } x \in \text{CI}(T) \
4 & \text{otherwise}
\end{cases} \quad (4)
$$

$$
SB(t) =
\begin{cases}
0 & \text{if } x \in \text{CI}(t) \
t - 1 & \text{else if } x \in \text{CI}(t - 1) \
\vdots & \
2 & \text{else if } x \in \text{CI}(2) \
1 & \text{else if } x \in \text{CI}(1)
\end{cases} \quad (5)
$$

DCIA 方程包含两个不同的分析周期。例如,如果某些设备的行为发生了剧烈变化,长期行为 $LB(T)$ 将显示出异常,并且目标将被所提出的方法选中。相反,如果变化持续发生,例如新设备被添加到环境中,则短期行为 $SB(t)$ 会防止这些事件被检测到。

短期内的 $t$ 因一周时间被设置为7。$r$ 的范围通常设置在0和1之间。我们在应用中定义了 $r = 0.1$,但安全专家可以根据实际的安全事件进行修改。

4. 结果

我们使用安全信息与事件管理(SIEM)来接收算法报告的响应,如图3所示。如上所述,单个客户存在1TB大小的原始流量,但我们的算法可在1分钟内检测到异常行为。通过应用此方法,我们发现了一些可疑行为,例如错误配置或功能测试,但没有设备实际上被外部攻击者劫持,因为在观测周期内几乎不可能捕获到真实攻击。我们希望该平台能够说明防止现实世界攻击的能力。

示意图2

5. 结论

提出的工作面临的挑战是解决整个网络中缺陷检测的稳定性问题。在我们提出的方法中,巨大流量可以被提取为仅保留少量数据的关键特征。我们利用置信水平对历史行为进行自学习。由于物联网设备的厂商多样性、产品、版本和应用各异,关键特征学习能够快速发现异常行为。

从经验上看,异常行为可能由设备劫持、病毒植入、认证破解或其他网络犯罪引起;然而,受感染设备在功能和操作上可能仍然看似正常——这就是为什么这些持续存在的风险通常被忽视的原因。然而,如果发生剧烈行为,我们的算法可以捕捉到这种轻微的异常状态。

监督学习可能是异常分类的一种解决方案,但该方法需要可信资源,而这些资源在现实世界中通常不可用。因此,精确性能与计算成本之间出现了两难困境。由于计算能力有限,当存在数以万计的在线设备时,可能无法同时精确地监控和发现恶意行为。这正是我们采用无监督学习算法并结合所提出的数学方程的原因。尽管该方法在缺陷检测上的精度可能会略有损失,但可扩展性问题得以解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值