潘小琴 尹 慧 蔡 熠 段康容
(1.西南科技大学工程技术中心 绵阳 621010)(2.中国船舶集团有限公司第七二二研究所 武汉 430205)
为了解决传统网络控制与管理(Network Control and Management,NC&M)方案(如SNMP、sFlow和NetFlow 等[1])在细粒度、实时性和灵活性方面的不足,网络自动化(Network Automation,NA)系统[2~3]应运而生。基于软件定义网络(Software-Defined Networking,SDN)架构,NA将基于机器学习的数据分析器(ML-based Data Analytics,ML-DA)模块引入控制平面,给SDN 控制器赋予了人类智慧,使其可自主完成“观察-分析-行动”的决策闭环控制。操作流程如图1 浅色箭头所示,首先利用遥测技术(如ML-INT[4])观察数据平面网元的运行状态,通过数据收集代理(Data Collection Agent,DCA)汇聚、整理观察到的遥测数据,由控制通道将其上报到控制平面;然后,控制平面的ML-DA 利用ML 模型实时分析遥测数据,实现异常检测和定位;最后,基于分析结果和当前网络状态,SDN控制器做出及时的NC&M决策处理检测到的异常。
图1 网络自动化(NA)系统架构和黑盒攻击
虽然引入ML 模型可减少人工干预,但是ML模型给NA 系统带来的安全隐患却不容忽视。ML-DA 中ML 模型的输出结果直接影响SDN 控制器的NC&M决策。研究表明,恶意方可通过数据投毒干扰ML 模型的正常操作。例如,在合法样本上添加难以察觉的微小干扰使之变为对抗样本,在输入样本中混入对抗样本来误导ML模型输出错误结果[11]。
由于建立控制通道的传输层安全(Transport Layer Security,TLS)或安全套接层(Secure Socket Layer,SSL)等协议容易遭受中间人攻击[8~9],导致遥测数据被窃听和篡改,ML 模型可能遭受对抗样本攻击。例如,攻击者可以通过窃听控制通道获得合法遥测样本,基于合法样本制作对抗样本并注入通道中[6]实施攻击。此外,在“机器学习即服务(Machine-learning-as-a-service,MLaaS)”[10]场景下,网络管理者需要将ML 模型的训练外包给第三方。当遥测数据上传到MLaaS 提供商的云服务器后,攻击者可以入侵MLaaS 系统进行数据投毒,用对抗样本悄悄污染ML 模型[11]。上述事实说明,有必要研究对抗样本攻击给ML 辅助的NA 系统带来的影响。
目前,关于对抗样本攻击的研究热点集中在计算机视觉领域[12]。例如,攻击者可以用图像对抗样本误导基于DNN、SVM 等不同结构的ML模型[12~13]。此外,对抗样本已成功作用于多种实际场景的图像分类器(如人脸识别、自动驾驶、交通标志识别等[14])。然而,图像数据的特征(例如元素维度、取值范围、元素相关性等)与遥测数据有本质区别,图像分类器的结构和实现异常检测的分类器也完全不同。并且,网络的动态变化特性和缺乏先验知识的特点使得NA 系统中的对抗样本攻击更复杂。因此,针对图像分类器的对抗样本攻击方法无法直接适用于NC&M领域。
NC&M 领域的相关研究表明,基于ML 模型的流量预测器(如LSTM-NN模型)很容易被对抗样本误导输出错误的流量预测结果,严重干扰虚拟光网络切片[11]和IP-over-EON 网络中的流量梳理和路由[6]。然而,流量数据与用于异常检测的遥测数据的特征存在较大差异(二者分别在时间和空间尺度上展开)。并且流量预测器和分类器在结构、输入/输出评价指标等方面也完全不同。因此,基于流量预测器的对抗样本攻击方法也不能直接推广到分类器。
为了探究对抗样本攻击给ML 辅助的NA 系统带来的安全隐患,本文研究如何生成对抗样本并攻击系统中用于异常检测的分类器,定量分析对抗样本给分类器性能带来的影响。
对抗样本攻击的目标是ML-DA 中基于ML 的合法分类器(记为Γ),基于是否可以获得Γ的先验知识,可以分为白盒、灰盒和黑盒三种攻击策略。其中,白盒/灰盒攻击需要获得NA 系统的全部/部分先验知识,例如训练/测试数据集和目标分类器结构等。考虑攻击的实用性,本文仅讨论如何实现不需要任何先验知识的黑盒攻击策略。定义合法分类器Γ的输入为一个向量x,其中每个元素对应一种遥测数据类型(如转发延时或OSNR等)。黑盒攻击假设攻击者能够对Γ进行查询,即输入任意x到Γ并获得其输出的分类结果Γ(x)。攻击者通过实现无目标攻击来干扰NA系统的正常工作,也就是在合法样本x上添加一个最小的干扰δx构造出对抗样本x*,用来误导Γ输出不正确的分类结果[15]:
然而,当基于ML的分类器内部结构未知时,上述优化问题通常既非线性也非凸。因此,直接求解δx具有一定挑战性。
在NA 系统中,ML-DA 实时处理大量的遥测数据,这使得攻击者必须快速计算δx用来制作对抗样本才能发起有效攻击。传统的基于查询的对抗样本生成算法(如ZOO[16])需要对合法分类器进行数万次查询,无法满足实时性需求。而基于神经网络制作的对抗样本迁移性不高且神经网络难以收敛,该方法也无法直接应用到本问题中。此外,攻击者通常无法直接获得NC&M 场景中合法分类器Γ的隐私信息(如遥测数据类别、分类器架构等),这导致基于迁移的攻击方法[13]失效。因此,本文设计了一种新的兼顾有效性和实时性的对抗样本攻击方法。
黑盒攻击的流程如图1 深色箭头所示。首先,攻击者通过已有技术[18]窃听ML-DA 和DCA 之间的控制通道得到一组合法遥测样本,合成训练数据集并通过查询合法分类器Γ获得标签(记为{O,Γ(O)})。然后,利用{O,Γ(O)}训练一个模仿合法分类器Γ行为的替代分类器(记为S)。最后,将合法遥测样本x输入S即可构造出对抗样本x*,利用中间人攻击篡改合法遥测样本为对抗样本,误导Γ输出错误的异常检测结果。由于网络在大部分时间内处于正常运行状态[17],攻击者窃听的遥测样本通常仅包含“正常”类型。因此,上述策略的难点在于如何从一组“正常”类型的遥测数据获得一个包含完整“异常”类型的数据集,从而有效地训练S。
图2 解释了为替代分类器S合成训练数据集{O,Γ(O)}的过程。Step 1 攻击者通过窃听DCA、ML-DA 和SDN 控制器之间的控制通道,获得一组带标签的合法遥测样本D。Step 2对数据进行预处理以提高数据合成效率。首先筛选出D 中“正常”类型样本,然后删除由于采集或通信错误导致的离群值,接着使用Quickhull 算法[19]计算样本的凸包D*,最后将D*作为初始种子集合D0,查询Γ获得标签Γ(D0),同时将{D0,Γ(D0)}放入训练数据集{O,Γ(O)}中。
图2 合成训练数据集的操作过程
接下来,在最大查询次数qmax或最大迭代次数imax范围内,Step 3~8 在迭代中扩展训练数据集{O,Γ(O)}。初始时刻(i=0),Step 3 初始化种子数据集Di,Step 4 根据高斯分布N(μ,σ)产生干扰Ni,向种子集合Di中的样本添加噪声以合成新样本(即Di+Ni=Pi)。为了最小化对目标分类器Γ的查询次数,Step 5 过滤Pi中不需要查询Γ的样本,即选出位于凸包D*内部的样本,因为用这些样本查询Γ无法提高S的分类准确度,将所需样本插入集合,同时选择Di中与对应的样本插入集合。使用查询Γ 来“打标签”,并获得一组带标记的样本{,Γ()} ,将其插入训练数据集{O,Γ(O)}。随后,利用Step 6~8来尽可能产生均衡的不同异常类型的训练数据。Step 6 在中选择数量少于阈值的样本类型,把它们放在选择集合Si中,将Si合并到下一次迭代的种子集合{Di+1,Γ(Di+1)}中,同时Step 7 对Si执行数据增强操作以进一步扩展{O,Γ(O)}。Step 8 选择增强之后数量低于阈值的样本补充到种子集合{Di+1,Γ(Di+1)}中,以增加后续迭代过程中该类型样本数量。最后,在完成数据合成后,可获得一个大型的合成训练数据集{O,Γ(O)}。
图3 展示了从仅包含“正常”类型的样本合成训练数据集的主要步骤。初始遥测数据和提取的凸包分别如图3(a)和3(b)所示。然后,给样本添加高斯噪声干扰后产生的新样本Pi如图3(c)所示。接着,对新样本进行过滤操作得到所需样本集合,如图3(d)所示。随后,图3(e)使用的样本查询Γ 以标记数据,图3(f)在中选择部分样本作为选择集合Si。基于种子集合Di和训练数据集O,对选择集合Si进行数据增强的过程如图3(g)所示,其目的是在分类边界附近合成新样本以提高S训练的准确性。首先,检查每一个a∈Si样本,筛选出标签与对应的种子样本不同的那些样本。然后,在训练数据集中寻找与a的欧氏距离小于阈值的所有邻居样本点。例如,基于样本点a∈Si(红色三角形),找到了种子样本点x′(蓝色菱形)和邻居样本点y′(圆形)。接着,基于找到的样本点,使用线性插值公式[20]计算新样本:b=a+ℓ·(x′-a),其中ℓ 是服从[0,1)均匀分布的随机数。例如,分别用{a,x′}和{a,y′}生成了新样本b1和b2。查询Γ以标记产生的b1和b2,并将其插入训练数据集{O,Γ(O)}中。随后,在{a,x′,y′}中选择与b1、b2标签不同的两个样本点,继续应用上述逻辑生成新的样本。例如,分别用{b1,x′}和{b2,y′}生成新的样本c1和c2。最后,标记新样本并补充到训练数据集{O,Γ(O)}中。
图3 合成训练数据集的主要步骤
攻击者利用合成的训练数据集{O,Γ(O)}训练一个替代分类器S,基于训练好的S,攻击者可利用经典的白盒攻击算法DeepFool[21]和FGSM[22]来制作对抗样本,利用对抗样本的迁移性来实现黑盒攻击。DeepFool 通过求解合法样本与数据超平面边界之间的距离得到最小干扰δx:
FGSM 则通过引入代价函数C(·)来计算干扰δx:
其中,sign(·)表示相对于x的代价函数梯度符号,参数ε用来控制干扰的幅度。因此,可以通过调整ε的值来平衡对抗样本误导Γ错误分类的概率和系统检测到对抗样本攻击的可能性。
本文搭建了一个IP-over-EON 多层网络作为测试平台,收集用于异常检测的遥测数据进行仿真实验。
测试平台的数据平面是一个真实的IP-over-EON 多层网络,如图4 所示。EON 层由2台Juniper BTI7800 带宽可变光收发器(BV-T)、1台Finisar×9 带宽可变波长选择交换机(BV-WSS)、若干掺饵光纤放大器(EDFA)和长距离光纤组成。其中,BV-T 经复用后部署在节点A、B、C 上,所有节点均复用一台BV-WSS。在光层采用BV-T内部的DSP 模块实现光性能监视器(OPM),采集光路的接收功率(Power)、OSNR、误码率(BER)、色散、差分群时延等参数。实验利用色散补偿、放大的自发辐射噪声发生器(ASE)、可调光衰减器(VOA)等模块来模拟光信号在长距离光纤中的传输情况。IP 层由4台支持OVS-POF的软件交换机、1个DCA、4个终端主机组成。其中,交换机支持ML-INT功能[4],交换机、DCA 分别运行在不同的Linux 服务器上,终端主机使用商用的流量发生/分析器模拟。
图4 测试平台
测试平台的控制平面通过扩展基于开放网络操作系统(Open Network Operating System,ONOS)平台实现,也运行在高性能的Linux 服务器上。本文采用两种方式采集遥测数据,当使用带内遥测时,软件交换机将遥测数据作为INT 字段插入到用户数据包中,并汇聚到位于网络边缘的DCA[4],由DCA 上报到控制平面。当使用带外遥测时,由OPM 采集光参数并直接向控制平面报告遥测数据。ML-DA 采用数据平面开发套件(Data Plane Development Kit,DPDK)实现,可同时解析带内和带外遥测数据。
本文利用测试平台搭建异常检测场景,如图4所示。在IP 层,本文设置连接在OVS-POF 1 的主机1 向连接在OVS-POF 3 的主机2 传输一条流,如图4 中红色箭头所示。通过应用光层的ASE 噪声插入、BV-WSS 配置、VOA 调整和IP 层的带宽使用、OVS-POF 交换机流表重配置等操作,模拟IP-over-EON 网络中的正常/异常情况。收集大约95000 个遥测数据样本,每个样本是一个一维向量,包括OSNR、光功率、色散、转发时延、输入/输出端口带宽。然后,除正常以外,异常类型包括“高功率”、“低功率”、“OSNR 衰减”、“WSS 左移”、“WSS右移”、“高时延”、“包拥塞”、“丢包”和“交换机误配”。最后,用大约85500 个样本训练合法分类器,并用大约9500个样本进行测试。
为了定量分析对抗样本攻击给ML模型带来的影响,定义攻击迁移率表示误导合法分类器输出错误分类结果的对抗样本比例。对95000 个遥测数据进行预处理得到初始种子集合D0,假设它包含所有异常类型(即D0=770且|Γ(D0) |=10)。由于实际系统中网络异常属于小概率事件,设置“正常”与“异常”类型样本数量的比例约为17∶1。接着,针对DNN 架构的合法分类器Γ,构建一个多层感知机作为替代分类器S。设置算法中imax=10,qmax={4000,6000,8000,10000},分别训练多个替代分类器S,结果如表1 所示。结果显示S的分类准确度、平均迭代次数与查询次数qmax成正比,因为更多的查询次数意味着算法可以反复迭代,从而获得一个更大的训练数据集{O,Γ(O)}来提高S的性能,但是,算法的运行时间也随之增加。因此,需要设置合理的qmax以平衡攻击的有效性和实时性。
表1 算法性能
为了进一步验证算法的实用性,假设初始种子集合D0仅包含“ 正常”类型(即D0=500 且|Γ(D0) |=1)。然后,攻击者设置imax=10,qmax=8000,仍然按照上述方式训练替代分类器,其分类准确率为88.30%。最后,用DeepFool 和FGSM 算法制作对抗样本并攻击合法分类器。
图5 比较了基于两种不同初始种子集合制作对抗样本时的攻击迁移率。所有情况下,攻击者都能够利用本文提出的方法发起有效的攻击,攻击迁移率首先随着干扰程度 |δx|的增加而迅速增加,然后逐渐收敛。对于同一种制作方法,攻击迁移率与|Γ(D0) |正相关,这是因为初始种子数据集提供更多的异常类型将有助于攻击者产生完整异常类型。尽管如此,当干扰程度受限时,即使|Γ(D0) |= 1 依然能获得类似|Γ(D0) |=10 的攻击性能。例如,利用FGSM 来制作对抗样本且限制干扰程度为0.05 时,攻击迁移率分别是57.54%和64.21%(相差6.67%)。这表明本文提出的方法不依赖于D0中异常类型的先验知识,可通过数据增强补充缺少的异常类型。
图5 算法的攻击迁移率
对比图5(a)和图5(b),当添加相同程度的干扰时,FGSM性能优于DeepFool,可以实现更有效的对抗样本攻击。当限制生成对抗样本的最大干扰程度为0.05 时,且在|Γ(D0) |=1 的极端情况下,即使使用攻击效果更差的DeepFool制作对抗样本,该算法的攻击迁移率依然大于0.4,这证实了算法的有效性和实用性。
为了进一步验证本文所提方法的可扩展性,接下来讨论该方法对不同ML 模型结构的影响。首先,分别使用LR、DT、SVM 来构建Γ,并采用与DNN 相同的方式完成训练。imax和qmax保持不变,针对上述目标分类器分别训练替代分类器S,其分类性能如表2 所示。结果显示对于不同的ML 模型,S都实现了高于70%的分类准确率,实验结果再次验证了本文所提方法的有效性。
表2 S的分类准确性
最后,本文验证算法的性能下界。基于表2 在|Γ(D0) |=1 情况下训练的替代分类器,利用Deep-Fool算法产生对抗样本,分别攻击对应的目标分类器,攻击迁移率如图6 所示。结果表明即使替代分类器始终采用DNN 结构,不同ML 模型结构的目标分类器都可以被本文所提方法误导,这证实了其泛化能力。
图6 不同ML模型的攻击迁移率
本文提出了一种对抗样本攻击方法,误导NA系统中基于ML 的分类器输出错误结果。首先,设计了一种对抗样本生成算法来合成替代分类器的训练数据集,该算法能够通过仅包含“正常”类型的初始遥测数据合成涵盖完整异常类型的数据集,同时最小化对目标分类器的查询次数。然后,利用对抗样本攻击NA 系统中的分类器,分析了攻击给分类器性能带来的影响。最后,利用从真实的IP-over-EON 测试平台采集的遥测数据进行了仿真实验。结果表明,所提出的攻击方法能够自适应地制作和注入对抗样本干扰NA系统的正常运行。