Evaluating and Improving Adversarial Robustness of Machine Learning-Based Network Intrusion Detectors

摘要简介:

现有的攻击主要集中在特征空间和/或白盒攻击上,这些攻击在现实情况下不切实际地进行假设,无法在实践中充分证明系统健壮性的上限。

作者的工作在以下几个方面优于以前的工作:

(i) practical-所提议的攻击可以在保持功能正常的前提下,以极其有限的知识和负担得起的开销自动改变原始流量。

(ii) generic-所提出的攻击对于使用各种ML / DL模型和基于非有效载荷的特征来评估各种NIDS的鲁棒性是有效的

(iii) explainable-提出了一种基于ML的NIDS脆弱鲁棒性的解释方法。还提出了一种对抗攻击的防御方案,以提高系统的鲁棒性。

在CV\NLP\Malware 等领域的对抗攻击方法不适用于网络入侵检测(针对流量特征空间的攻击)

1、以上一些攻击都是在修改特征向量,也就是特征空间的攻击,而不是实际的输入空间(即NIDS的原始流量)。这是因为在其他领域中,从输入空间到特征空间的特征映射是可逆的,相反从网络流量到NIDS中的特征的特征提取既不可逆也不可区分。

2、需要确保在修改恶意流量时不会出现违反通信规则或恶意功能损失的情况

针对流量空间的对抗攻击(即直接修改流量):

1、一些out-of-data的研究是针对于基于签名的IDS的对抗攻击,不在考虑范围内

2、针对现在流行的基于异常的检测的对抗攻击,有一些研究是在模仿良性流量或随机变异,开销比较大,效率也不高

3、利用流量空间对抗攻击的唯一工作[1](这里并不是唯一,但是确实这篇文章主要讲的修改基于packet的修改)是基于对NIDS有充分了解的强有力的白盒假设,这是不切实际的,因为在现实情况下始终无法访问目标NIDS。

综上所述,基于ML的NIDS的现有对抗攻击(无论是特征空间还是流量空间)由于其不切实际而且假设和过分简化的流量突变

作者提出一种双层优化方法,分两步的对抗攻击:

1、首先,需要解决对抗特征(adversarial features )的寻找,在较小的变异空间,而且开销也较小。作者扩展了IDSGAN的思想用到GAN,搜索替代模型的低置信度的区域,然后基于对抗攻击的可转移性,来攻击目标ML模型。

2、然后,寻找最佳流量变体,which对于特征空间上的对抗特征的距离最近。作者提出了一种启发式数据包制作框架,以自动诱变恶意流量,同时使用元信息的向量解决不可逆的特征提取。为了可解释性作者量化了每一个特征的重要性。

相关工作:

作者对NIDS对抗攻击进行了分类

1、特征空间攻击

特征空间攻击是不切实际的,因为基于ML的NIDS中的特征提取始终是不可逆的,很难因为修改特征从而生成实际的对抗性的实际流量

2、流量空间攻击

流量的白盒突变[1],很难获得相关目标攻击模型的全部信息

流量随机突变,缺乏理论指导

流量的混淆,以对抗流量分析(保护隐私),这方面的代表性工作是traffic morphing,模仿良性流量,但是没有用到对抗学习的方法。

攻击模型:

作者假设攻击者既不需要任何有关目标分类器的知识,也不需要其输出标签或概率,并且生成原始流量。

PGA:是假设攻击者知道目标NIDS的特征空间,可以构建相同的特征提取器

PBA:是假设攻击者什么也不知道,这种情况下根据领域知识来进行构建

作者放宽了两个假设

训练了替代目标模型,构建替代的特征提取器,同时考虑到保留恶意功能和最小化修改的开销,抽象问题为:

转化为双层优化问题,定义如下:

求解过程:

在条件(4)的约束下,求解(3)中的f*(对抗特征)

利用求解出的f*在(2)中探索最优解t^,并且符合约束(5)

方法:

解决双层优化的问题,使用增强型生成对抗网络(GAN)模型来生成对抗特征(在(3)中),并使用粒子群优化(PSO)来搜索逃避的流量突变体(在(2)中)。

使用GAN和PSO结合很像很像那个想法。

为什么使用GAN生成对抗向量:

在特征空间中搜索f★以减少变异流量的开销,指导变异,在没有对抗性特征指导的情况下,恶意功能可能最终无法到达最近的良性空间(方案1)或错过瞬态良性空间(方案2)。

GAN生成了PSO的优化目标。当基于PSO对恶意流量进行变异时,我们通过测量它们与GAN产生的对抗特征的相似性来发现具有最佳回避效果的流量变异。

生成对抗特征:

生成对抗网络的目的是将恶意特征转换为其对抗版本

生成器的loss=鉴别器的输出+重构误差,这样既可以模仿良性特征同时也可以减少扰动

鉴别器的loss=最大化生成输入向量的输出,同时最小化良性输入向量的输出

变异流量

基础的流量变异操作符

作者将流量的特征分为时间和空间两个大方面

同时作者定义的变异操作如下:

1、针对原始恶意流量的修改:更改原始流量的数据包到达时间

2、针对制作流量注入:需要某些字段(MAC / IP /端口)必须与附近的原始数据包一致,不会损害原始流量的恶意性,不会引起协议语义或通信冲突(例如TCP流量的连接中断); 不会引起受害者的反应。

3、针对制作流量调整:

(b1) Altering the interarrival time of packets in crafted traffic
(b2) Altering the # protocol layer of packets in crafted traffic
(b3) Altering the payload size of packets in crafted traffic

向量化元信息

为了方便对结构化的流量数据进行数值运算,vectorize traffic into meta-info vectors,不同于特征提取,此向量化是可逆(rebuild)的

分别是X代表一个数据包,提取的数据包级别的特征信息。

基于PSO的自动流量诱变

每个粒子代表流量空间中的一个突变体,PSO通过根据粒子的位置和速度矢量迭代地移动它来优化问题,每个粒子在迭代中的运动由其速度计算,速度由三项决定:

  • 上一次迭代的位置
  • 之前迭代最好的位置y(cognitive force)
  • 当前迭代其他粒子的最好位置(social force)

开销的限制:

  • 制作的数据包数量
  • 数据包到达间隔的

有效性的评估

  1. rebuild ,随机确定协议吗?after randomly determining their protocol type with reference to # protocol layers
    in craft[i]
  2. 提取特征
  3. 提取的特征与对抗特征进行计算距离
  4. 更新位置

防御方案

  1. 对抗训练
  2. 特征选择
  3. 对抗特征减少

作者主动模拟所提议的攻击,然后计算变异流量中每个特征维的值与原始特征相比与对抗特征的接近程度,我们的主要主张是功能的高维度性使攻击者有机会利用一些易受攻击的维度来逃避检测。因此,我们提出了一种直观的防御方案,即删除具有低鲁棒性得分的部分特征维。

实验评估

实验设定

1、数据集

Kitsune Dataset

CIC-IDS2017

2、目标模型

Kitsune:由基于数据包的特征提取器和自动编码器模型组成kitnet

使用不同的ML分类器:

(MLP)多层感知机

(LR)逻辑回归

(DT) 决策树

(SVM)支持向量机

(IF)独立森林

特征提取器:

  • AfterImage packet-based extractor Kitsune中基于数据包的提取器,它可以计算各种衰减时间窗口中数据包大小,计数和抖动的增量统计信息
  • CICFlowMeter 是基于流的提取器,提取连接的几个统计信息(例如,大小,计数和持续时间)

度量标准:

原始恶意流量规避率(MER)

检测逃避率(DER)

恶意概率的下降率(即恶意概率下降率(PDR)

攻击的规避有效性与NIDS的鲁棒性之间的关系是:对于相同的NIDS,具有更好的逃逸率的攻击对于评估鲁棒性更为有用。对于相同的攻击,具有较高逃逸率的NIDS的鲁棒性较差。

“恶意特征模仿率”(MMR),可以明确显示攻击过程中潜在空间中特征的变化。具体而言,MMR反映了突变期间恶意特征接近对抗功能的程度。

实验结果

不同攻击的逃逸效率:

首先对比了随机突变和TWA均有优势

对比PSO和PSO+GAN ,发现对抗特征很有指导作用

随着开销增大,也就是可以注入更多数据包和间隔更长时间,发现也提高了逃逸效率

最后针对不同攻击的流量进行了分开测试

不同分类器和特征的鲁棒性:

如何验证恶意功能的保留:

作者对模拟了原始数据集收集的实验测试行平台, 进行了验证。

讨论

Limitations.

专为无需有效载荷检查而规避NIDS的

另一个限制是我们的攻击目前处于脱机状态,但是可以通过重播变异的流量来解决此问题,因为我们已经证明了重播的流量可以产生与原始攻击相同的恶意意图。

在提出的攻击中,我们注入了一些精心设计的流量,这些流量可以与原始数据包聚合在一起,以影响功能。但是,某些不可预测的后台流量(即某些不受攻击者控制但也可以到达受害者或NIDS的流量)可能会破坏我们在某些功能上的变异流量。

提高攻击效果。在本文中,我们将更多的精力放在探索更实际的攻击上,而不是全力以赴地提高逃避率。一方面,在本研究中,我们仅在PSO和GAN的实现中使用默认设置。例如,我们仅使用[52]中推荐的PSO算法的参数。另外,我们使用欧几里得距离来衡量这项工作中特征的相似性。未来的工作应集中在其他距离函数或仔细的参数调整是否可以实现更好的结果上。

附录

A结论:对抗性特征可以通过节省特征空间中的移动距离来有效地减少变异流量的开销

B流量特征的参考

  1. Choice of data form : packets and sessions/flows

  2. Choice of basic measurements: size (e.g., packets’ length/bytes), count (e.g., packets’ number), and time (e.g., inter-arrival time between packets).

  3. Process of basic measurements : 给定以某些数据形式进行的测量,现有的提取方法更喜欢基于窗口的收集(例如,具有相同源IP或在固定时间间隔内的数据)和/或统计计算(例如,均值和方差)来获得高级特征。

参考文献

[1] M. J. Hashemi, G. Cusack, and E. Keller, “Towards evaluation of nidss in adversarial setting,” in Proceedings of the 3rd ACM CoNEXT Workshop on Big DAta, Machine Learning and Artificial Intelligence for Data Communication Networks, pp. 14–21, 2019.

[2]C. V . Wright, S. E. Coull, and F. Monrose, “Traffic morphing: An efficient defense against statistical traffic analysis.,” in NDSS, vol. 9, Citeseer,2009.

评论

本文是少有的针对流量空间比较详细的介绍

文章github地址:https://github.com/dongtsi/TrafficManipulator

评估NIDS模型的对抗性和鲁棒性相关推荐

  1. 第六课.模型评估与模型选择

    目录 导语 模型评估 回归任务的评估指标 分类任务的评估指标 过拟合现象 过拟合的原因 过拟合解决办法 模型选择与调整超参数 正则化 留出法 交叉验证 网格搜索 实验:线性回归预测股票走势 实验说明 ...

  2. Python使用numpy包编写自定义函数计算平均绝对误差(MAE、Mean Absolute Error)、评估回归模型和时间序列模型、解读MAE

    Python使用numpy包编写自定义函数计算平均绝对误差(MAE.Mean Absolute Error).评估回归模型和时间序列模型.解读MAE 目录

  3. R语言使用randomForest包构建随机森林模型(Random forests)、使用importance函数查看特征重要度、使用table函数计算混淆矩阵评估分类模型性能、包外错误估计OOB

    R语言使用randomForest包中的randomForest函数构建随机森林模型(Random forests).使用importance函数查看特征重要度.使用table函数计算混淆矩阵评估分类 ...

  4. R语言使用rpart包构建决策树模型、使用prune函数进行树的剪枝、交叉验证预防过拟合、plotcp可视化复杂度、rpart.plot包可视化决策树、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用rpart包构建决策树模型.使用prune函数进行树的剪枝.使用10折交叉验证选择预测误差最低的树来预防过拟合.plotcp可视化决策树复杂度.rpart.plot包可视化最终决策树.使用t ...

  5. R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型、分类预测器(分类变量)被自动替换为一组虚拟编码变量、summary函数查看检查模型、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型(Logistic regression).分类预测器(分类变量)被自动替换为一组虚拟编码变量.summary函数查看检查模型.使用t ...

  6. Python使用numpy包编写自定义函数计算均方误差(MSE、mean squared error)、评估回归模型和时间序列模型、解读MSE评估指标

    Python使用numpy包编写自定义函数计算均方误差(MSE.mean squared error).评估回归模型和时间序列模型.解读MSE评估指标 目录

  7. R语言编写自定义函数、评估回归模型预测变量的相对重要性(Relative importance)、通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加、评估预测变量的重要度、并通过点图可视化

    R语言编写自定义函数.评估回归模型预测变量的相对重要性(Relative importance).通过在所有可能的子模型中添加一个预测变量而获得的R方的平均增加.来评估预测变量的重要程度.并通过点图可 ...

  8. sklearn使用投票回归VotingRegressor算法构建多模型融合的投票回归模型、并自定义子回归器的权重(weights)、评估多模型融合的回归模型、评估R2、mse、rmse、mape

    sklearn使用投票回归VotingRegressor算法构建多模型融合的投票回归模型.并自定义子回归器的权重(weights).评估多模型融合的回归模型.评估R2.mse.rmse.mape 目录

  9. R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图、混淆矩阵、准确率、精确度、召回率、ROC、AUC)、PRTPlot函数获取logistic模型最优阈值(改变阈值以优化)

    R语言glm拟合logistic回归模型:模型评估(模型预测概率的分组密度图.混淆矩阵.Accuray.Precision.Recall.ROC.AUC).PRTPlot函数可视化获取logistic ...

最新文章

  1. 区块链BaaS云服务(16)天德链TDBC“智能合约”
  2. Eclipse中Junit测试中@Before不执行
  3. 小问题: windows组件调用失败,无法加载安装安装程序:Wbemupgd.dll
  4. 北海市计算机等级考试,2021上半年北海市计算机二级报名时间|网上报名入口【已开通】...
  5. java获取运行时对象,java 面向对象(四十一):反射(五)反射应用二:获取运行时类的完整结构...
  6. 如何让普通用户执行一些root用户才能执行的命令
  7. workerman创建wss服务
  8. 怎么桌面给计算机设密码,怎么设置电脑桌面密码
  9. (2022牛客多校五)H-Cutting Papers(签到)
  10. 判断设备是否是 iphone5
  11. 大数据工具之Trino
  12. 如何制定有效的项目进度计划——甘特图
  13. 【行为分析】(一)宏观简介
  14. 三角兽首席科学家分享实录:基于对抗学习的生成式对话模型
  15. 网络安全:大数据问题
  16. Python采集网站ip代理, 检测IP代理是否可用,构建自己的ip代理池
  17. 微信小程序input框中加入小图标的实现方法
  18. springboot学习记录--Maven setting配置
  19. USB转I2C USB转I2C模块
  20. 民宿管理软件免费的就是最好的吗?

热门文章

  1. java水平制表符_java中水平制表符\t的作用
  2. 【完美支持iOS5】iFile 1 6 1 含依赖包deb下载
  3. 最强大脑----“汉字女英雄”填字游戏研究
  4. 动态网站的制作与设计_动态网站制作是什么?
  5. 【p2p】RTCPeerConnection协议理解
  6. xml中foreach使用_前进的火车_新浪博客
  7. microsoft office visio基本使用方法
  8. UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题
  9. 【物理应用】基于Matlab模拟井筒多相流附matlab代码
  10. golang学习之旅