Unsupervised Abnormal Traffic Detection through Topological Flow Analysis

44 阅读4分钟

摘要

网络威胁是现代技术世界中一个永久的问题。近年来,复杂的流量分析技术和异常检测(AD)算法被用来应对越来越多的颠覆性对抗攻击。恶意入侵被定义为旨在非法利用私有资源的侵入行为,通过异常数据流量和/或异常连接模式表现出来。尽管目前文献中提供了大量统计或基于签名的检测器,但恶意流的拓扑连接组件很少被利用。此外,现有的统计入侵检测器很大一部分基于监督学习,依赖于标记数据。通过将网络流视为一对节点之间的加权定向交互,在本文中,我们提出了一种简单的方法,该方法有助于在无监督异常检测算法中使用连通图特征。

METHODOLOGY

我们方法的主要步骤简化为:

  1. 将网络流嵌入到有向图中;
  2. 从图中提取若干统计节点特征并扩展原始特征集。我们使用符号XRm×NX∈R^{m×N}表示流量数据,其中mm是给定流的特征数量,NN是流的数量。

首先,给定网络内的一组固定 IP,将它们映射为整数集[n]:={1,2,,n}[n] := \{1, 2, · · · , n\},其中nn是网络中机器的数量,这很简单。现在我们进一步考虑图G={V,E,W}\mathcal{G}=\{V,E,W\},其中顶点集合V={1,2,···,n},E是节点之间的边集合,对应于成对的IPs,W是权重矩阵。例如,给定两个 IP 之间的流表示,令 (i,j)(i, j) == (源 IP, 目标 IP),则(i,j)E(i, j) ∈ E如果 IP 映射(i,j)(i, j)和值wijw_{ij}之间存在流矩阵WW中的第ii列和第jj行定义了一些可求和的特征,例如源和目标之间传输的数据包数量。

节点i的egonet被定义为由与节点i相连的所有邻居形成的子图,如图1所述。请注意,与不同节点相关的egonets可能有不同的维度,这取决于每个节点的度数。主要来说,我们的方案包括以下三个步骤:

image.png

Flow-to-graph

第一步通过保留源、目标地址(i,j)(i, j)和表示权重wijw_{ij}的特定属性来执行数据从流格式到图形格式的转换。该特定属性可以是原始数据XX 中的任何实值可求和特征。由于同一对节点之间可能会多次发生多个流,因此我们得到多个权重 wijtw^t_{ij} ,其中tt是时间计数器。我们对这些权重进行求和以获得最终权重:wij=twijtw_{ij} = \sum_t w^t_{ij}
根据获得的图特征和权重,我们形成与数据相关的有向图

Graph-to-features

现在在这个图上我们执行以下操作:
1.提取所有egonets并将它们堆叠到E\mathcal{E}中,其中每个EiE\mathcal{E}_i∈ \mathcal{E} 是与节点iVi ∈ V关联的egonet
1'.为每个节点提取大小为 ℓ 的随机游走。将 Ei ∈ E 表示为与 V 中的节点 i 关联的随机游走。从节点 i 开始,对于最多 ℓ 次迭代,随机选择当前节点的邻居(关于均匀概率分布),并将其关联的边添加到子集 Ei 中。新选择的节点成为当前节点并执行新的迭代。如果到达节点 i 或行走长度 ℓ,则过程终止并输出行走。
2.对于任何 i ∈ [n],提取 egonet/随机游走实例 Ei 的 p 个特征。将 zi ∈ Rp 表示为这些特征的向量。
3.输出矩阵 Z ∈ Rp×n,作为包含所有自我特征的数组。

首先,我们仅执行两个选项 1) 或 1') 中的一个步骤。请注意,场景 1 ′ ) 中计算的随机游走 Ei 并不限于节点 i 的自我网络邻域。步骤1)之后,步骤2)计算的统计特征包括:自我网络维度、出链数、入链数。在替代方案 1') 中,它们包括步行第一条腿上的重量或从步行的第一个节点一路转移到最后一个节点的重量。所有功能的完整描述可以在[23]中找到

Feature expansion

最后,我们通过添加ZZ的列作为XX中列的延长来扩展原始数据。因此,对于从源ii到目的地jj的给定流xtXx_t∈ X,我们形成:

image.png

包含t[N]t∈[N]的列x^t\hat{x}_t的矩阵X^\hat{X}是我们方案的输出。 首先,请注意步骤 II 中的图嵌入将大小为 m×Nm × NXX的流映射到大小为 p×np×n 的最终矩阵ZZ。相比之下,XX的列对应于图中的边/流,而ZZ中的列与节点相关联。在下一节中,我们将展示 AD 工具在检测异常节点方面的性能。

其次,步骤III相当于将局部拓扑信息插入到流特征中。因此,强制机器之间建立异常连接的攻击很可能反映在图特征{zi,zj}\{z_i,z_j\}中,并通过通常的异常检测来检测。

我们在上述处理过程的数据输出上进一步测试了几种异常检测的性能,例如:One Class-SVM、Isolation Forests和Local Outlier Factor。