文章目录
- Detecting Unknown Encrypted Malicious Traffic in Real Time via Flow Interaction Graph Analysis
- 摘要
- 存在的问题
- 论文贡献
- 1. 威胁模型和设计目标
- 2. HyperVision
- 3. 理论分析
- 4. 实验评估
- 总结
- 论文内容
- 工具
- 数据集
- 可读的引用文献
Detecting Unknown Encrypted Malicious Traffic in Real Time via Flow Interaction Graph Analysis
中文题目:基于流交互图分析的未知加密恶意流量实时检测
发表会议:Network and Distributed System Security Symposium
发表年份:2023/3/3
作者:Chuanpu Fu, Qi Li, Ke Xu
latex引用:
@article{fu2023detecting,title={Detecting unknown encrypted malicious traffic in real time via flow interaction graph analysis},author={Fu, Chuanpu and Li, Qi and Xu, Ke},journal={arXiv preprint arXiv:2301.13686},year={2023}}
摘要
为了保护网络的机密性和隐私性,目前互联网上的流量被广泛地加密。然而,流量加密技术经常被攻击者滥用,以掩盖其恶意行为。由于加密的恶意流量具有与良性流量相似的特征,因此可以很容易地逃避传统的检测方法。特别是,现有的加密恶意流量检测方法是受监督的,它们依赖于已知攻击的先验知识(例如,标记数据集)。实时检测未知加密恶意流量,不需要先验的领域知识,仍然是一个悬而未决的问题。
在本文中,我们提出了HyperVision,一种基于实时无监督机器学习(ML)的恶意流量检测系统。特别是,HyperVision能够通过利用基于流量模式构建的小型内存图来检测未知的加密恶意流量模式。该图捕获由图结构特征表示的流交互模式,而不是特定已知攻击的特征。我们开发了一种无监督图学习方法,通过分析图的连通性、稀疏性和统计特征来检测异常交互模式,这允许HyperVision检测各种加密攻击流量,而不需要任何已知攻击的标记数据集。此外,我们建立了一个信息论模型,证明图所保存的信息接近理想的理论边界。
我们通过92个数据集(包括48个加密恶意流量攻击)的实际实验展示了HyperVision的性能。实验结果表明,HyperVision的AUC至少为0.92,F1为0.86,明显优于现有方法。特别是在我们的实验中,超过50%的攻击可以逃避所有这些方法。此外,HyperVision的检测吞吐量至少为80.6 Gb/s,平均检测时延为0.83s。
存在的问题
- 现有的加密流量检测方法是有监督的,即依赖于已知攻击的先验知识,只能检测到已知流量模式的攻击。他们提取特定已知攻击的特征,并使用已知恶意流量的标记数据集进行模型训练。因此,他们无法检测到加密流量的广泛攻击,即用未知模式构建的攻击。
- 由于加密攻击流量和非加密攻击流量的特征有显著差异[2],[3],这些方法都无法检测到使用加密流量和不使用加密流量构造的攻击,也无法实现通用检测。
总结:
- 现有方法无法实现无监督的检测
- 现有方法无法检测未知恶意流量
- 现有方法无法实现通用检测
论文贡献
- 提出了HyperVision,这是第一个利用流交互图对未知模式的加密恶意流量进行实时无监督检测。
- 开发了几种算法来构建内存图,使我们能够准确地捕获各种流之间的交互模式。
- 设计了一种轻量级的无监督图学习方法,通过图特征检测加密流量。
- 开发了一个由信息论建立的理论分析框架,以表明该图捕获了接近最优的交通交互信息。
- 建立HyperVision,并使用各种真实世界加密恶意流量的广泛实验来验证其准确性和效率。
论文解决上述问题的方法:
- 提出了HyperVision来实现无监督的检测
- 构建内存图来捕获各种流之间的交互模式,从而达到检测未知恶意流量的目的
- 构图时保留使用明文流量检测传统(已知)攻击的能力,从而实现通用检测
1. 威胁模型和设计目标
- 威胁模型:
根据路由器通过端口镜像[17]复制的流量进行检测,保证系统不干扰流量转发。在识别出加密的恶意流量后,可以配合现有的on-path恶意流量防御[48],[49],[88]对检测到的流量进行节流。
在本文中,我们专注于检测由加密流量构成的主动攻击。我们不考虑不会给受害者产生流量的被动攻击,例如流量窃听[68]和被动流量分析[70]。
- 设计目标:
开发一个实时系统(即HyperVision)来检测加密的恶意流量。
HyperVision的设计目标如下:
- 应该能够实现通用检测,即检测由加密或非加密流量构成的攻击,确保攻击无法逃避流量加密[2],[77]。
- 能够实现实时高速流量处理,即可以识别经过加密的流量是否为恶意流量,同时检测延迟较低。
- HyperVision执行的检测是无监督的,这意味着它不需要任何加密恶意流量的先验知识。也就是说,它应该能够处理未知模式的攻击,即零日攻击,这是没有公开的[30]。因此,我们不使用任何标记的流量数据集进行ML训练。现有的检测方法无法很好地解决这些问题[62]。
2. HyperVision
- HyperVision在不了解已知攻击流量的前提下分析表示交互模式的图结构特征,从而实现对各种攻击的无监督检测。
- 不考虑流量类型,通过分析流量来实现通用检测,可以检测加密和非加密的恶意流量。
- 图1展示了HyperVision的三个关键部分,即图构建、图预处理和异常交互检测。
图构建
HyperVision收集网络流以构建图。同时,将流划分为短流和长流,并分别记录它们的交互模式,以降低图的密度。在图中,它使用不同的地址作为顶点,分别连接与短流和长流相关的边。它将大量相似的短流聚合在一起,为一组短流构造一条边,从而降低了维护流交互模式的开销。
此外,该方法通过拟合长流中报文特征的分布来构造与长流相关的边,保证了记录的流交互模式的高保真度,同时解决了传统方法[36]中流特征粗粒度的问题。
任务:
- Flow Collection(流收集):分类长流和短流。为后面降低图的密度打基础。
- Short Flow Aggregation(短流聚合):聚合短流,降低图的密度,避免流之间的依赖关系爆炸。同时,流聚合减少了存储开销,这使得维护内存图以进行实时检测变得可行。
- Feature Distribution Fitting for Long Flows(长流的特征分布拟合):使用直方图来表示长流的每个包的特征分布,避免保留它们的每个包的长特征序列。可以减少存储开销,使得维护内存图以进行实时检测变得可行。(该方法通过拟合长流中报文特征的分布来构造与长流相关的边,保证了记录的流交互模式的高保真度,同时解决了传统方法[36]中流特征粗粒度(比如流中包的个数就属于流特征粗粒度)的问题。)
- Flow Collection(流收集)
- 开发了一种流分类算法来对流量进行分类,具体如下:
简单解释一下上面的算法:
- 输入:
– PktInfo:理解为列表,保存着所有数据包: [ p k t0, p k t1, p k t2, p k t3, . . . ][pkt_0,pkt_1,pkt_2,pkt_3,…][pkt0,pkt1,pkt2,pkt3,…]其中每个pkt都包含该数据包的所有特征信息
– FlowHashTable:理解为字典,键值为Hash(src,dst,srcport,dstport),值为具有相同四元组的数据包。其实每个元素就可以理解为一个流。 H a s h ( 四元组 ) : [ p k t0, p k t1, . . . ] , H a s h ( 四元组 ) : [ p k ti, p k t i + 1. . . ]{Hash(四元组):[pkt_0,pkt_1,…],Hash(四元组):[pkt_i,pkt_{i+1}…]}Hash(四元组):[pkt0,pkt1,…],Hash(四元组):[pkti,pkti+1…]- 输出:分类好的长流和短流
- 步骤:
time_now:用于记录当前数据包的时间戳;last_check:记录上一次检查时的时间戳
- 初始化time_now和last_check都为第一个数据包的时间戳
- 对于每一个数据包而言,如果再FlowHashTable中有了当前流的键,那么就将该数据包加入对应的list中,否则就创建一个新的键,再将数据包加入list中。其实这一步就是在根据四元组将所有数据包分成对应的流。但注意:这里并不是一下子就对所有数据包全分流了。每加入一个数据包就要执行下面的判断。
- 判断当前时间戳和上一次检查的时间戳的时间间隔是否大于JUDGE_INTERVAL,如果大于就执行下面的操作。这一步是在实现每隔JUDGE_INTERVAL时间就判断分类一次长流和短流。
- 进入判断,对每个流而言,如果当前数据包的时间戳与每个流的最后一个数据包的时间戳的时间间隔大于PKT_TIMEOUT,那就表明该flow的所有数据包已经收集好了,此时判断该流的长度是否大于FLOW_LINE,如果大于,就将该流判断为长流,否则判断为短流。
注意:PKT_TIMEOUT应该设置的比较大,起码要使得FlowHashTable中已经收集至少1个流的全部数据包。- 清空FlowHashTable中所有已经判断好的流的信息。将last_check赋值为当前数据包的时间戳。
该算法的本质其实就是根据各个流的长度来判断长流和短流,因为要实现实时性,所以才有了这样比较复杂的设计。因为不能把所有的流先收集好再判断,而是应该边收集边判断,因此才有了JUDGE_INTERVAL。
注意:是从数据平面轮询每个数据包的无状态信息,而不是在数据平面上维护流状态(例如状态机[89]),以防止攻击者操纵状态,例如侧通道攻击[65]和逃避检测[79]。
- Short Flow Aggregation(短流聚合)
- 如图3(a)所示,如果我们使用传统的四元组流作为边,分析图会非常密集,这类似于物源分析中的依赖爆炸问题[83],[87]。我们观察到大多数短流具有几乎相同的每个数据包特征序列。例如,重复的SSH破解尝试的加密流来自特定的攻击者[39]。因此,我们在分类后使用一条边进行短流聚合来表示相似的流。
设计了一种聚合短流的算法。当满足以下所有要求时,一组流可以聚合:(1)流具有相同的源地址 和/或 目的地址,这意味着由这些地址产生的行为相似;
(2)流具有相同的协议类型;
(3)流的数量足够大,即当短流的数量达到阈值AGG LINE时,确保流具有足够的重复性。
- 接下来,我们为短流构造一条边,为所有流及其四元组保留一个特征序列(即协议、长度和到达间隔)。因此,图上存在四种与短流相关的边,即源地址聚合、目的地址聚合、两个地址都聚合和不聚合。因此,连接到边的顶点可以表示一组地址或单个地址。
- 源地址聚合:[1.1.1.1,2.2.2.2,3.3.3.3] ——– [4.4.4.4]
- 目的地址聚合:[1.1.1.1] ——– [2.2.2.2,3.3.3.3,4.4.4.4]
- 两个地址都聚合:[1.1.1.1,2.2.2.2] ——– [3.3.3.3,4.4.4.4]
- 两个地址都不聚合:[1.1.1.1] ——- [2.2.2.2]
- 在图3(b)中,我们观察到该算法减少了93.94%的顶点和94.04%的边。绿色突出显示的边表示利用漏洞的短流(即2.38 Kpps,来自PH值)。请注意,流聚合减少了存储开销,这使得维护内存图以进行实时检测变得可行。
- Feature Distribution Fitting for Long Flows(长流的特征分布拟合)
- 使用直方图来表示长流的每个包的特征分布,避免保留它们的每个包的长特征序列,因为长流中的特征是集中分布的。
具体方法:维护一个哈希表来为每个长流中的每个数据包特征序列构造直方图。- 数据包长度:
哈希桶宽度:10字节;
哈希码:每个数据包长度 / 哈希桶宽度
计数器:记录每个哈希码对应的链表的长度
结果:
- 图4(a):平均只使用了11个桶来拟合数据包长度的分布,表示长流中数据包长度的种类很少。
- 图4(b):大多数桶收集的数据包超过200个,表示数据包长度的各个种类的数量都很多。
根据上述两个结果可以推断数据包长度这个特征在所有长流的数据包中非常集中,即长流中的大多数数据包具有相似的数据包长度。
- 到达间隔:
哈希桶宽度:1ms
哈希码:每个数据包的到达间隔 / 哈希桶宽度
计数器:记录每个哈希码对应的链表的长度
结果:
- 到达间隔拟合平均使用121个桶。
- 每桶71包。
根据上述两个结果可以推断到达间隔这个特征在所有长流的数据包中非常集中,即长流中的大多数数据包具有相似的到达间隔。
- 协议:
哈希码:每个协议的掩码
计数器:记录每个哈希码对应的链表的长度
由于协议类型的数量有限,我们使用更少的桶来实现更高效的拟合。
图预处理
对构建的交互图进行预处理,通过提取连通分量来减少处理图的开销,并使用高级统计信息对组件进行聚类。其中,聚类可以准确地检测出只有良性交互模式的组件,从而对这些良性组件进行过滤,减小图的规模。此外,我们进行了预聚类,并使用生成的聚类中心来表示图像中的识别的集群的边缘。
任务:
- Connectivity Analysis(连通性分析):判断正常连通分量和异常连通分量,正常分量中的边都被判定为正常流量,异常分量中的边可能存在恶意流量,因此需要进一步判断。
- Edge Pre-Clustering(边预聚类):对异常分量中相似的边进行聚类,进一步减小图的开销。
- Connectivity Analysis(连通性分析)
根据图5(a)得知,大部分的连通分量的字节总数都很小,即大部分连通分量都包含很少的流或数据包
步骤:
- 使用深度优先搜索获得图的所有连通分量。
- 使用DBSCAN对所有的连通分量进行聚类,使用以下五个特征来表示一个连通分量:
- 长流的数量
- 短流的数量
- 表示短流的边数
- 所有长流的字节数
- 所有短流的字节数
之所以使用的全是与流长度和数据包长度相关的特征,是因为上面图5(a)统计了连通分量的字节数非常集中,因此从这个维度来聚类比较有说服力
- 对于每个分量,计算到其最近中心的欧几里得距离。根据我们的经验研究,当它的距离超过其他所有连通分量到达它们最近中心距离的99百分位时,就可以判断该连通分量为异常分量。
图5(b)显示了聚类的一个实例,其中直径表示组件上的流量规模(以字节为单位)。观察到,大部分的分量规模都很小,被分类为异常分量有很高的比例是大规模的分量,即大规模分量很有可能是异常分量。
- 与正常分量相关联的所有边都被标记为良性流量,与异常分量相关联的边将被进一步处理。
- Edge Pre-Clustering(边预聚类)
根据图6可知,在特征空间中,大多数边与许多与其相似的边相邻。原因在于,根据构图方式可以推理出,相邻的边会共享至少一个节点(即ip地址),而同一个节点发出的流量在特征相似这也的确合理。
所以,下面可以对连通分量的边进行聚类,将相似的边用一条边来替代,从而进一步减小图的开销。
方法:
- 分别为与短流和长流相关的边提取了8个和4个图结构特征,具体特征如上图所示
- 对特征进行min-max归一化
- 使用DBSCAN方法进行聚类,其中要采用较小的搜索范围 ϵ\epsilonϵ 和较大的mini-point值,以避免在聚类中包含不相似的边,从而可能产生假阳性
- 对于无法聚类的异常边,将其作为只含这一条边的簇
异常交互检测
通过分析图形特征,实现了无监督加密恶意流量检测。我们通过解决顶点覆盖问题来识别图中的关键顶点,这确保了基于聚类的图学习以最小的聚类数量处理所有边缘。对于每个选定的顶点,我们根据它们的流动特征和表示流动相互作用模式的结构特征对所有连接的边进行聚类。HyperVision可以通过计算聚类的损失函数实时识别异常边缘
任务:
Identifying Critical Vertices(识别关键节点):
- Identifying Critical Vertices(识别关键节点)
为了有效地学习流量的交互模式,我们不直接对所有边进行聚类,而是对连接到关键顶点的边进行聚类。对于每个连通分量,构建关键顶点的子集应该满足下面两个条件:
- 分量中的任何一条边 , 都与该顶点子集中的至少一个节点是接触的,这样可以确保每条边都至少聚类一次
- 从满足第一条的所有子集中,选择关键节点最少(即该子集中元素数量最少) ,这样可以使聚类的次数最小化,以减少图学习的开销。
找到这样一个顶点子集是一个优化问题,等价于顶点覆盖问题[33],它被证明是NP完全的(NPC)。我们选择每个分量上的所有边和所有顶点来解决问题。并将该问题重新定义为可满足模理论(SMT)问题,利用Z3 SMT求解器[55]可以有效地解决该问题。
- Edge Feature Clustering for Detection(边缘特征聚类检测)
将连接到每个关键顶点的边聚类,以识别异常的相互作用模式。
- 使用了table V中的结构特征以及统计特征。
- 使用轻量级K-Means算法分别对与短流和长流相关的边进行聚类,并计算表示恶意流检测恶意程度的聚类损失。计算方法如下:
其中:
- KK K:聚类中心的数量
- C iC_i Ci:第 i 个中心
- f(edge)f(edge) f(edge):边的特征向量,使用的特征如table V所示
- C(edge)C(edge) C(edge):预聚类时,edge所在的簇中的所有的边
- TimeRangeTimeRange TimeRange:计算 由边表示的流 所覆盖的时间范围。
- los s center (edge)loss_{center}(edge) losscenter(edge):该边与距它最近的聚类中心的距离。可以表示与关键节点相连的其他边的差距
- los s cluster (edge)loss_{cluster}(edge) losscluster(edge):预聚类时,该边所在簇中包含的所有边所覆盖的时间范围。长时间持续的相互作用模式趋于良性
- los s count (edge)loss_{count}(edge) losscount(edge):边表示的流量数。大规模流量的爆发暗示恶意行为。
此外,我们使用权重:α, β, γ来平衡损失项。最后,当边的损失函数大于阈值时,它将相关流检测为恶意流。
3. 理论分析
太复杂了,看不太懂了。
4. 实验评估
实验设置
实现方法:
- 高速数据平面模块:使用libpcap++[63] 21.05版本封装的DPDK[37] 19.11.9版本来实现。
- 图构造模块:在内存中维护图,用于实时检测。
- 图学习模块:使用mlpack[57] (版本3.4.2) 中的DBSCAN和K-Means进行聚类,使用Z3 SMT Solver [55] (版本4.8)识别关键顶点。
测试平台:
将HyperVision部署在一个基于DELL服务器(PowerEdge R410, 2012年生产)的测试台上,该测试台上有两个Intel Xeon E5645 cpu (2 × 12核),Ubuntu 20.04.2 (Linux 5.11.0), Docker 20.10.7, 24GB内存,一个Intel 82599ES 10gb /s网卡,以及两个Intel 850nm SFP+激光端口用于光纤连接。我们为DPDK (3GB/NUMA节点)配置了6GB的大页内存,并为16个网卡RX队列绑定了8个物理核上的8个线程,以解析来自高速流量的每个数据包特征。我们使用8个核在内存中构建图,7个核用于图学习,剩下的一个核作为DPDK主核。
数据集:
使用来自日本东京vantage-G of WIDE MAWI项目的真实骨干网络流量数据集作为后台流量,时间为2020年1月至6月。vantage使用连接到其IXP (DIX-IE)的10gb /s光纤将流量 从/到 其BGP对等体和提供商,并使用端口镜像收集流量,这与我们的威胁模型和上面描述的物理测试平台一致。根据现有研究[22],[43],[66]定义的规则,将后台流量数据集中具有明显模式的攻击流量去除。
通过构建真实的攻击或在我们的测试平台中重放现有的痕迹来生成恶意流量。具体来说,我们在拥有超过1500个实例的虚拟私有云(VPC)中收集恶意流量。我们操纵实例,根据真实世界的测量[22],[24],[40],[42],[43],[54],[66]和现有研究中的相同设置[11],[26],[41],[44]来执行攻击。我们将实验中使用的80个新数据集(详见表VI)分为四组,其中三组是加密的恶意流量。
- Traditional brute force attack(传统暴力攻击):虽然HyperVision主要针对加密流量,但我们生成了28种传统泛洪攻击来验证其通用检测和基线的准确性,其中包括18种高速率攻击和10种低速率攻击:
- 使用真实数据包速率的蛮力扫描
- 各种速率的源欺骗DDoS
- 放大攻击
- 探测易受攻击的应用程序
- Encrypted flooding traffic(加密泛洪流量):与暴力泛洪不同,加密泛洪是通过针对特定应用的重复攻击行为产生的
- 链路泛洪生成加密的低速率流,如低速率TCP攻击[44]、[52]和Crossfire攻击[41],造成链路拥塞
- 注入加密流,利用协议漏洞,通过泛洪攻击流量,将报文注入通道[11],[26],[28]
- 密码破解缓慢地尝试劫持加密通信协议[39],[50]。
- Encrypted web malicious traffic(加密的web恶意流量):Web恶意流量通常通过HTTPS加密。我们收集了七种广泛使用的web攻击产生的流量,包括自动漏洞发现(包括XSS, CSRF,各种注入)[64],SSL漏洞检测[53]和爬虫。我们还收集引诱受害者访问钓鱼网站的SMTP-over-TLS垃圾邮件流量[61]。
- Malware generated encrypted traffic(恶意软件生成加密流量):恶意软件活动的流量是低速率和加密的,例如恶意软件组件更新或传递[9]、命令和控制(C&C)通道[8]和数据泄露[77]。我们使用2020年发布的恶意软件感染统计数据[42],并从采用的优势[23],[59]中探测活动地址,以估计可见受害者的数量。我们使用相同数量的实例来重放公共恶意软件流量数据集[13],[73]来模拟恶意软件活动,这与现有的研究[58]类似。
恶意流量与物理测试台上的后台流量数据集同时按照原始报文速率重放。具体来说,每个数据集包含1200 ~ 1500万个数据包,重放时间为45秒,前75%时间不包含恶意流量,用于收集流量交互和训练基线。请注意,我们的数据集中加密攻击流的速率仅为0.01 ~ 8.79 Kpps,仅消耗0.01% ~ 0.72%的带宽。
为了消除数据集偏差的影响,我们还使用了12个现有数据集,包括Kitsune数据集[56]、CICDDoS2019数据集[14]和CIC-IDS2017数据集[15],这些数据集都是在现实世界中收集的。这些详细的结果可以在附录B2中找到。特别是两个CIC数据集[14],[15]中的流量在多次攻击下持续6 ~ 8小时,目的是验证HyperVision的长期性能(见附录B3)。此外,我们验证了HyperVision对使用混淆技术的逃避攻击的鲁棒性,这可以在附录B4中找到。
基线模型:
- Jaqen(基于采样记录和基于特征的检测)。Jaqen[51]使用sketch获取流量统计信息,并应用基于阈值的检测。我们在测试台上建立了Jaqen的原型,并针对每个统计量和每次攻击调整签名,以获得最佳的准确性。
- FlowLens(基于采样记录和基于ML检测)。FlowLens[5]使用抽样流量分布和监督学习,即随机森林。我们使用本文中使用的精度最好的超参数设置来重新训练ML模型。
- Whisper(流量级特征和基于ML的检测)。Whisper[30],[31]提取流的频域特征,利用聚类学习特征。我们将Whisper部署在物理测试平台上,不做任何修改,然后重新训练集群模型。
- Kitsune(包级特征和基于DL的检测)。Kitsune提取每个包的特征,并使用自编码器学习特征,这是一种无监督的方法[56]。我们使用它的默认超参数并重新训练模型。
- DeepLog(基于事件记录和DL检测)。DeepLog是一个使用LSTN RNN[20]的通用日志分析器。我们使用连接日志进行检测,并使用其原始超参数设置来实现最佳精度。
评估指标:
AUC、F1
超参数:
采用了4折交叉验证以避免过拟合和超参数偏差。具体来说,数据集被平均划分为四个子集。每个子集使用一次作为验证集,通过实证研究调优超参数,其余三个子集用作测试集。最后,将四个结果平均得到最终结果。此外,我们的消融研究表明,不同的阈值设置最多会导致5.2%的精度损失。因此,超参数的选择对检测结果影响有限。
准确率评估
性能
总结
论文内容
学到的方法
理论上的方法:
- 聚类可以从以下几个角度切入:
(1)类似短流进行聚类:
- 流具有相同的源地址 和/或 目的地址,这意味着由这些地址产生的行为相似;
- 流具有相同的协议类型;
- 流的数量足够大,即当短流的数量达到阈值AGG LINE时,确保流具有足够的重复性。
(2)类似连通分量可以进行聚类。用以下五元组表示连通分量,然后DBSCAN聚类:
- 长流的数量
- 短流的数量
- 表示短流的边数
- 所有长流的字节数
- 所有短流的字节数
(3)类似长流进行聚类
- 分别为与短流和长流相关的边提取了8个和4个图结构特征,具体特征如上图所示
- 对特征进行min-max归一化
- 使用DBSCAN方法进行聚类,其中要采用较小的搜索范围 ϵ\epsilonϵ 和较大的mini-point值,以避免在聚类中包含不相似的边,从而可能产生假阳性
- 对于无法聚类的异常边,将其作为只含这一条边的簇
(4)使用聚类方法对流进行聚类:
- 减小图规模的方法
- 聚类短流
- 聚类连通分量
- 预聚类长流
写论文的方法:
模范文章论文优缺点
优点:
- 考虑了无监督下加密流量的检测方法
- 考虑了模型的鲁棒性
- 考虑了模型的实时性
- 考虑了模型对未知加密流量的检测能力
- 考虑了模型的通用性,即能检测加密流量也可检测非加密流量
- 文献引用极多,实验工作极其丰富
缺点:
没想到困惑点:
- 不太清楚异常交互检测中Identifying Critical Vertices(识别关键节点)的SMT优化方法是怎么建模的
创新想法
- Connectivity Analysis(连通性分析)那里也可以分析一下各个连通分量的其他特征,比如时间间隔等,如果各个连通分量的时间间隔特征很集中,那么用DBSCAN根据时间相关特征来进行聚类也未尝不可。
工具
- Z3 SMT求解器:求解顶点覆盖问题来提取关键顶点,以最小化聚类数量
- NetFlow
- Zeek
数据集
- vantage-G of WIDE MAWI项目
- MAWI数据集[80]
- Kitsune数据集[56]
- CIC-IDS2017数据集[15]
- CIC-DDoS2019数据集[14]
可读的引用文献
- Flowlens: Enabling efficient flow classification for ml-based network security applications
- Kitsune: An ensemble of autoencoders for online network intrusion detection
- Deeplog: Anomaly detection and diagnosis from system logs through deep learning