流量分析开发工具包(TADK):在网络应用程序中启用实时AI推理

插播一个流量分类的论文

Published in: 2022 Thirteenth International Conference on Ubiquitous and Future Networks (ICUFN)

论文题目:

Traffic Analytics Development Kits (TADK): Enable Real-Time AI Inference in Networking Apps

论文地址:

https://arxiv.org/abs/2208.07558

摘要

复杂的流量分析,如加密流量分析和未知恶意软件检测,强调需要先进的方法来分析网络流量。传统的使用固定模式、签名匹配和规则来检测网络流量中的已知模式的方法正在被AI(人工智能)驱动的算法所取代,然而,由于缺乏高性能AI网络特定框架,无法在网络工作负载中部署基于AI的实时处理。在本文中,我们描述了流量分析开发工具包(TADK)的设计,这是一个特定于基于人工智能的网络工作负载处理的行业标准框架,TADK可以在网络设备中提供从数据中心到边缘的实时基于ai的网络工作负载处理,而不需要专门的硬件(例如gpu、神经处理单元等)。我们已经在商用WAF和5G UPF中部署了TADK,评估结果表明,TADK在流量特征提取上的吞吐量可达35.3Gbps /核,在流量分类上的吞吐量可达6.5Gbps /核,并且可以将SQLi/XSS检测降低到4.5µs /请求,精度高于固定模式解决方案。

1 介绍

针对人工智能推理的软件技术进步降低了障碍(计算成本和研发工作),释放了网络应用程序开发人员在其商业解决方案中使用人工智能先进技术的创造力和创新,报告和分析预计,AI在企业SD-WAN部署中的使用将从2021年的5%增加到2025年的40%。

行业实践正在通过网络分析方法引入使用人工智能(AI)和机器学习(ML)模型的AI技术,以下是一些用例示例:(1)流量分析:用于分析加密的网络流量,以识别网络中的异常;(2)恶意软件检测:检测SQL注入、跨站脚本等恶意流量;(3)用户行为分析:检测关系,识别异常,并对安全进行实证评估。

为了支持真实的工作负载,实时AI流量分析的行业标准框架必须满足性能、准确性和可伸缩性的要求,根据之前与客户和合作伙伴的研究和讨论,我们确定了以下几个相互挑战:

•高吞吐量:每个核心高达3Gbps(基于规则的级别),用于基于人工智能的流量分类

•低延迟:每个请求5 ~ 10µs,用于恶意流量检测

•高精度:精度 95%

•易于部署:无需专用硬件(例如GPU, NPU, FPGA)部署

•易于开发:为了解决上述挑战,我们设计了流量分析开发工具包(TADK),这是一个专门用于基于人工智能的网络工作负载处理的行业标准框架。

TADK可以在网络设备中提供从数据中心到边缘的实时基于ai的网络工作负载处理,而不需要专门的硬件。简单地说,TADK为基于人工智能的网络处理带来了几个优势:

1)高性能:TADK为基于人工智能的实时流量分析提供了高度优化的库,我们设计了几种新的算法来提高性能,从我们的基准测试结果来看,流量分类可以达到6.5Gbps /核,在大多数情况下完全支持实时分类,同时,SQLi/XSS检测的整个管道可以实现每一个HTTP请求4.5 ~ 6.1µs,比现有的基于规则的解决方案快2倍,流量分类和SQLi/XSS检测在大多数情况下准确率 95%。

2)易于部署:使用TADK开发的应用程序不依赖于任何专用硬件,TADK充分利用现代CPU功能,如VX512来加速AI性能。

3)易于开发:TADK提供了一个基于模块的开发环境,开发人员可以通过组合TADK的模块来实现自己的基于人工智能的交通分析应用程序,就像积木一样。

本文的其余部分组织如下:我们首先在第二部分介绍了基于人工智能的流量分析的背景和相关工作,在第三节中,我们将给出TADK的总体设计,然后,我们将在第四节中给出高度优化的特征提取算法的一些细节,我们将在两种场景下评估TADK:流量分类和第五节中的SQLi/XSS检测,在第六节中总结。

2 背景及相关工作

A.数据收集

系统的调查总结了一个基于人工智能的流量分析的一般管道,第一步是数据收集,基于人工智能的解决方案需要历史数据作为输入源来训练模型,然而,由于准确性和隐私问题,很难捕获和标记足够多的流量,据报道,60%的研究正在使用公共非加密流量,并使用DPI工具对流量进行标记,为了解决这个问题,TADK提供了一个标记助手,可以帮助用户一键标记非加密和加密流量。

B.特征提取

下一步是特征提取。最常见的趋势是使用基于统计的特征(例如,到达间隔时间和具有最小、最大和平均指标的数据包大小),因为它们既可以用于非加密流量分析,也可以用于加密流量分析。然而,一些开源特征提取库的性能不如TADK的库,同时,TADK不仅可以从加密流量中提取统计特征,还可以提取词汇特征。实验证明,统计特征与词汇特征相结合可以显著提高准确率,TADK的流量提取库已用于人工智能流量分析,TADK提供了一个标记器,它比现有的提取词汇特征的解决方案要快得多。

C. AI推理

在最后一步,需要一个AI模型或模型集合来收集分析结果,有监督方法和无监督方法都广泛应用于流量分析中。标记数据集用于训练监督模型,如SVM、决策树和随机森林,无监督模型如K-Means被用于异常流量检测。同时,由于对加密流量进行标记比较困难,大多数解决方案采用无监督模型对加密流量进行聚类。在TADK中,我们为人工智能推理提供了一个优化的随机森林模型,我们比较了各种模型,发现随机森林在流量分析工作负载的准确性和延迟之间很好地平衡。

3 TADK的总体设计

A.核心库

TADK由一系列核心库组成,这些核心库对应于我们之前提到的特征提取和AI推理步骤,我们在图1中展示了每个组件,流量聚合器用于将报文(如实时报文或PCAP文件中的报文跟踪)中的流量按5元组进行聚合,协议检测用于识别TCP、TLS、QUIC等协议,特征提取是TADK的竞争力,经过精心设计,可以支持基于人工智能的实时流量分析,我们将在第四节中介绍一些核心算法,AI引擎是基于Intel oneDAL的高性能随机森林的包装,我们的AI引擎支持训练和推理,包括自动特征缩减。


B. Utilities

TADK为训练提供了一些有用的实用工具,数据清理器和标签助手提供了一键式的流量标签解决方案,用户只需要捕获一个或几个包跟踪(例如,PCAP文件)作为标记助手的输入,助手将这些包跟踪聚类为几个集群,每个集群将有一个标记提示,用户唯一的工作就是用提示标记每个集群,并使用标记的流量来训练模型。

C.参考方案

TADK提供了一些示例来展示TADK核心库的参考用法,流分类样本可以监控网络流量,识别加密流量中的不同应用,数据包跟踪(PCAP文件)或实时流量都可以作为流分类样本的输入。SQL injection (SQLi)/ XSS (Cross-Site Script)检测样例可以检测HTTP流量负载中是否含有恶意代码,TADK还为流分类示例提供了VPP插件,为SQLi/XSS检测示例提供了ModSecurity插件,通过这些插件,用户可以直接将基于人工智能的解决方案集成到现有的管道中,而无需任何修改,我们在图1中给出积分点。

4 特征提取

A.基于simd的直方图

最常用的统计特征是直方图,如TCP报文头长度、有效载荷长度、到达时间间隔等的分布特征,因此,设计一个有效的直方图算法是一个关键问题。

本文以TCP报文有效载荷长度直方图计算为例,详细说明了实现方法,一个包长度的缓冲区,如图2所示,用于存储网络流中每个包的有效载荷长度(为简单起见,这里考虑16个包),直方图的目的是计算缓冲区中属于特定bin的每个元素的数量。

1)现有解决方案:标量计算(Scalar Calculation, SC)是一种被广泛应用的方法,它已经在大多数特征提取库中实现,SC是一种基于循环的方法,这意味着他们为直方图使用了大量的循环和分支(它必须逐个处理和计数每个元素),为了弥补这一缺点,提出了一种无环设计,如基于simd的算法。

2)高级V向量计算:我们提出了一种基于simd的算法,称为高级V向量计算(avc)。

如图2所示,我们将输入流量分为4类:

1)类别 1:所有元素都在不同的bins中。

2)类别2:所有元素均为随机分布。

3)类别3:所有元素都在一个bin里(除了最大的bin)。

4)类别4:所有元素都在最大的bin里。

由于每个类别需要不同的算法来计算,我们还提出了V向量类别分类器(VCC)来识别输入数据的类别,为了防止VCC成为直方图计算的开销,我们最多只使用3条指令来识别类别,这也如图2所示,我们在表I中给出SIMD intrinsic的定义。

简单地说,我们首先使用CMPGT来确定每个元素是否大于最大的bin,如果所有的元素都比最大的bin大,它就是第4类。然后,我们用CONFLICT来计算vec冲突,用msk uni来检查每个元素是否唯一,如果所有元素都是唯一的,那么它就是类别1,最后,我们可以简单地检查是否只有一个活动位的msk单元,如果msk uni中只有1位,则为类别3,否则为类别2。

虽然用最多3条指令计算类别1、3和4中的直方图很容易,但为类别2设计算法是最具挑战性的工作,因此,我们提出了一种新的算法来计算类别2中的直方图,我们也在图3中给出了一个例子,算法1为AVC和VCC的伪代码。我们评估了我们提出的直方图计算的一个VC,VC在1、2、3、4类中分别比现有解决方案快11.73倍、4.38倍、1.33倍和1.47倍。

B. DFA-based Tokenization

大多数基于人工智能的流量分析(例如,下一代Web应用防火墙)需要标记化来将词汇特征(基于字符串的信息)转换为向量,作为人工智能模型的输入。对于词法特性,大多数标记器(例如OpenNMT)是基于分支的,这意味着它们使用大量的IF-ELSE来标记。基于分支的解决方案很容易实现,但它对CPU的管道不友好,并且可能会增加缓存丢失的数量。因此,TADK使用了基于DFA的标记器,并提供了可以将易于编码的概要文件转换为特定DFA的生成器,我们在图4中给出了一个基于DFA的标记器的SQLi检测示例,我们还给出了一个培训视频来描述标记器是如何工作的。

1)生成器:为了支持多种语言/文件格式,我们提出了一个可以从用户定义的配置文件生成DFA的生成器,我们定义了一种DFA概要语言,可以方便地由我们的客户维护,并且易于扩展,为出现的威胁添加新的令牌,并支持更多的用例,生成器还包括一个DFA编译器,用于将用户定义的概要文件编译到相应的DFA转换表中,DFA转换表由Tokenizer直接使用。

2) Tokenizer: DFA转换表描述了每种状态和输入字符下的转换行为,算法2展示了DFA引擎是如何工作的,引擎在主循环中进行简单的转换,这使得它非常快。

5 评估

A 环境

我们使用GCC 7.5实现TADK。由于TADK已经部署在WAF或5G用户平台功能(UPF)等多个场景中,因此我们有不同的CPU和RAM环境。5G UPF采用中兴5300G4X,基于Intel Xeon Gold 6330N CPU(冰岛),配置512GB DDR4 RAM。其他评估是基于Xeon Gold 6148 CPU (Skylake)和Intel Xeon Platinum 8358 CPU(冰岛),带有32G DDR4 RAM。我们将参考流量分类样本集成到中兴5G UPF中,以测试其吞吐量和准确性,我们使用IXIA作为流量生成器来生成流量,以测试零丢包的最大吞吐量。

B 数据

由于我们选择随机森林作为我们的AI推理模型,我们评估了随机森林在流量分类和恶意软件检测方面的准确性,在流量分类中,我们从现实世界中收集了国内最热门的应用(百度、天猫、BILIBILI、腾讯、今日头条、快手、QQ、香山、QQNEWS、优酷、微信),进行训练和推理,在恶意软件检测中,我们使用SQLMAP作为SQLi, XSSTRIKE作为XSS来收集用于训练和推断的数据。我们还选择了一些公共数据进行推理。

C.流量分类

1)准确率:我们给出了模型的混淆矩阵,可以对图5中的9个应用进行分类,精确度和召回率均大于90%,平均精密度、召回率和f1-score分别为0.936、0.926、0.918。从评价结果可以看出,该方法在大多数场景下都能满足流量分类的精度要求。

我们还训练了一个模型来分类微信图像传输流量和微信视频传输流量,这是UDP流量,我们准备了70个图像传输流和100个视频传输流进行训练,我们在表II中给出了精度细节,平均精确度、召回率和f1-score分别为0.883、0.884、0.883。

2)性能:我们用可以分类2个应用程序的模型测试我们的延迟(用1524个流的WECHAT和用1551个流的YOUKU训练和测试)。从表III中,我们可以看到我们的延迟可以达到每个流10.7µs,这对于大多数情况是足够的,此外,我们还在表III中测试了DNS、HTTP和TLS特征提取的延迟,DNS、HTTP、TLS的平均报文数分别为2、8、13,使用POPCNT指令和新的体系结构,延迟显著降低,TLS延迟比HTTP低的原因是TLS需要提取的词法特征更少。

我们还通过优酷测试了吞吐量,每个流的平均数据包是20个,超过99%的流是HTTP和TLS流,吞吐量为每核6.5Gbps (1629 kpps),平均每个流的数据包数为28个,我们可以估计在大多数情况下我们的吞吐量可以达到9.1Gbps。特征提取的吞吐量可达35.3Gbps。

3) 5G UPF中的吞吐量:我们使用图6中分别可以将5G UPF中的3、5和9个应用程序分类的模型测试吞吐量,最大吞吐量为3.78Gbps (618kpps)与5个应用程序,可获得3.39Gbps (515kpps)和3.58Gbps (599kpps)与3和9个应用程序,结果表明,该算法的性能不会随着应用数量的增加而降低,5G UPF的吞吐量不能达到我们前面提到的吞吐量并且有抖动的原因是我们的流表实现和其他集成开销。

D.恶意软件检测

1)准确性:我们用TADK实现了一个用于SQLi/XSS的ModSecurity插件,我们将我们的插件与在相同服务器环境(Nginx与ModSecurity)中充分利用的libinjection进行比较。我们使用SQLMAP和XSSTRIKE设置一个攻击客户端来生成流量以测试准确性,TADK的插件比libinjection有更高的精度(SQLi为100%,XSS为99.8%),并且它有更少的误报。

2)延迟:我们评估了表IV中SQLi/XSS插件的延迟,TADK的延迟比libinjection少50%,总之,在SQLi/XSS中,基于人工智能的解决方案比基于规则的解决方案具有更低的延迟,这使得实时基于人工智能的恶意软件检测成为可能。

6 结论

在本文中,我们提出了TADK作为解决实时基于ai的网络工作负载处理的解决方案。评估结果表明,采用TADK实现的应用程序可以满足实时性能(恶意软件检测每请求4.5µs,流量分类和特征提取每核6.5Gbps和35.3Gbps)、准确性( 95%)和不需要任何专用硬件的可扩展性的要求,我们已经在WAF和5G UPF中部署了我们的解决方案,并对其在实际应用中进行了评估,我们目前正在与合作伙伴一起改进实际部署所需的可靠性和缺失的特性(例如,GQUIC),最终将由公众和社区进行检查和使用。

展开阅读全文

页面更新:2024-04-12

标签:流量   直方图   吞吐量   工具包   人工智能   算法   应用程序   实时   标记   模型   特征   解决方案   类别   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top