读前问题:
- 1.找到给模型重构攻击下的定义
- 2.什么是自适应样本生成算法?
- 3.什么是决策边界?
- 4.用了哪五个模型进行的检测,引用的论文是什么?找到并下载整理出来。
摘要
机器学习广泛应用在恶意流量检测领域,模型安全正成为一个重要的研究课题。针对模型重构攻击方法需要大量目标先验知识、依赖大量真实的数据、使用范围较窄等问题,提出了一种基于自适应样本生成的模型重构方法。通过一种基于图检索的自适应样本生成算法,利用商量真实的样本快速生成均匀分布在输入域的生成样本。根据目标模型的的决策对重构模型的边界进行修正,结合网络流量特征方法和模型超参数优化方法对重构模型进行迭代训练,最终实现模型重构攻击。针对5个恶意流量检测机器学习模型的重构攻击实验表明,重构后模型的重构率和准确率随着迭代轮次的增加而逐渐提高,仅使用目标模型输出标签,重构率达到90%以上。
一、介绍
模型重构攻击是利用输入特定的数据对黑盒机器学习模型进行查询,得到输出结果,然后重新训练与黑盒模型等价或近似的模型,达到打破机器学习机密性的目的。
攻击的对象:
1.[9] Magán-Carrión, Roberto, et al. "Towards a reliable comparison and evaluation of network intrusion detection systems based on machine learning approaches." Applied Sciences 10.5 (2020):1775.
2.[10] Komisarek, Mikołaj, et al. "How to Effectively Collect and Process Network Data for Intrusion Detection?." Entropy 23.11 (2021): 1532.
二、基于自适应样本生成的模型重构方法
A、模型重构方法的框架
- 构建初始种子集E,并根据目标模型参数,对种子集进行处理
- 种子集一方面用来训练重构模型R,一方面用来根据算法生成自适应样本集D
- 样本集同时交给重构模型和目标模型来进行分类(打标签)
- 将分类后结果不一致的样本添加到种子集中
- 重复上述步骤,直到样本集为空或者达到预设的迭代轮次
注意:1中如果目标模型特征空间未知,需要使用坐标下降法从特折集中筛选出来特征,找到符合目标的特征空间的特征。
2中用贝叶斯搜索算法优化重构模型的超参数。
B、基于图检索的自适应样本生成算法
第1行中,Intrinsics是一种指令,是编译器内置的函数或操作符,它们以汇编语言的形式实现,并针对处理器架构进行了优化,可以提高程序运行速度。Intrinsics可以使开发人员能够在使用高级语言编写代码时访问底层机器指令(如SIMD指令),从而提高代码的执行效率。
σ是一个距离函数,第1行中把它转换成了SIMD指令的形式,以提高计算效率。
2-13行时一个while循环,循环条件是预设的N轮次。
第3行,先随机生成几个备选的样本到集合C中。
第4行,把备选集C和种子集E都转换成SIMD形式的数据
第5行,使用图检索算法HNSW根据C和E来生成矩阵distMatrix,该矩阵表示每一个样本与种子之间的距离关系。
第6-8行,计算每一个候选样本与种子集中最近的种子样本之间的距离。
第9行,上面求出的距离中最大的那个距离,其所对应的候选样本,将被选定为生成样本,并加入种子集。
【注意】至于这里第九行为什么要选距离最大的那个样本,是基于前文中提及的一个原理:在软件故障测试中,给定一组以前执行的测试用例,不揭示任何故障,新的测试用例原理这些旧的测试用例,更有可能揭示故障。并且为了让样本集中的样本可以均匀分布,所以先让每一个备用样本选择了对应的一个最近的种子,然后再来在这些对应的距离中找出一个最大值。
上图所示是自适应样本的生成过程,更加直观。
(a)图中首先随机生成四个备选样本c1-c4
(b)图中根据HNSW图检索算法,找到每一个备选样本周围 j 个邻近的节点,如c1周围的e1,3,5,并计算出它们之间的距离
(c)图中找到每一个备选样本周围的 j 个邻近节点里最近的节点,如c1与e3,并把最近距离给保留下来
(d)图中找到刚才那些保留的保留的距离里面距离最大的那个节点,并把他作为生成的样本e8
C、重构模型训练过程
(1)种子样本筛选方法
首先,希望种子样本包含更多的“信息”量。在本文中,作者引用了“信息熵(information entropy)”的概念来表示种子样本集中信息量的大小。信息熵越大,信息量越大。计算信息熵的公式如下:
其中,m 表示总的特征数量,ti表示在第 i 个特征中,总的变量的数量(也可以理解为取的值),p(aij)表示在第 i 个特征中的第 j 个变量在该特征下所有变量中出现的概率(取到这个值的概率)。
由该公式也可以看出,当一个特征只能取一个变量值的时候,它的信息熵为0;而每个特征的变量总数越多,对应特征的信息熵值越大,特征信息熵之和也越大,也即特征分布的越混乱,包含的“信息”越多。
那这里说白了,是不是就是尽可能地去找特征取值不一样的种子啊?这个公式的图像该怎么画呢......
(2)流量特征选取方法
如果目标模型公开了其机器学习模型所使用的特征,那么只需要在重构过程中使用这些特征;反之,如果没有明确的话,就需要进行流量特征选择。
本文中使用的选择算法是:最小绝对收缩选择算子算法 Least Absolute Shrinkage and Selection Operator algorithm(LASSO for short)
LASSO算法可以压缩特征的回归系数,使某些特征的系数为0,即丢弃该特征。下面是该算法的损失函数:
其中f()是一个Sigmoid函数,λ是正则化率。
【本文中没有详细讲解LASSO算法,没看懂,之后再自己找材料学习吧】
(3)模型超参数优化方法
机器学习模型通常可以通过调整超参数来提升预测的精确度。
本文中,采用贝叶斯优化算法(Bayesian optimization algorithm)来选择机器学习模型的超参数。给定优化后的目标模型、超参数数值及其对应的目标函数值,用多元高斯过程来建模。
在每一步的迭代搜索中,根据多元高斯分布预测下一个参数选择的分布。也就是说,下一个要测试的超参数设置具有更多的不确定性。通多迭代更新目标函数的后验分布,直到后验分布基本符合真实分布,从而保证在多次迭代中得到伪最优超参数选择。
【注意】后验分布(Posterior Distribution)是概率论和统计学中的重要概念,它是已知一些观察数据的前提下,对于未知参数的概率分布进行推断的结果。
三、实验和分析
A、目标模型
(1)文献[9]中的模型,使用Faac(特征计数)方法进行特征提取,使用随机森林、支持向量机和逻辑回归进行流量分类。数据集MIX、NSL-KDD、UGR16和UNSWNB 15,其中后三者为开源数据集。
(2)文献[10]中使用的特征提取方法和数据集NF-UQ-NIDS-v2来自文献[16]。特征提取方法是使用nProbe工具从公开的pcap文件中提取43维的NetFlow v9特征。进一步地,通过将五元组与原始特征集众的双向流进行匹配,获得统一特征集中的每个双向流的标签。所生成的统一特征集是从包头中提取的,并不依赖于加密的或明文的有效载荷信息。大多数网络设备都可以提取NetFlow记录。NF-UQ-NIDS-v2的数据来源于四个数据集,即UNSWNB15、Ton IoT、BoT IoT和CSE-CIC-ISD2018。使用随机森林和人工智能神经网络进行网络流量分类。
[16] Sarhan, Mohanad , S. Layeghy , and M. Portmann . "Towards a Standard Feature Set for Network Intrusion Detection System Datasets." (2021).
B、评价方法
重构率(Refactor Rate,RR),表示重构模型与目标模型的相似性。
精确度(Accuracy,A),表示模型整体的检测性能。
测试集样本数为m,重构模型与目标模型分类相同的为p,目标模型与真实标签分类相同的为q。
C、实验过程
先验知识:
- 全样本特征的表示
- 目标模型使用的特征集
- 目标模型采用的机器学习算法
- 目标模型的输出
其中1和4是必要条件。
D、实验结果和分析
以(a)为例,可以看到,在不查询目标模型的情况下,只用种子集进行训练,随着种子集样本数的提升,重构率提高。而在种子数一定的情况下,随着查询次数的提升,重构率提高。
【重构率越高越难,往后可能只是一个很小的百分数,就要很大的功夫】
第三列中选定了一类种子/训练轮次
右边的为重构模型选择的四种基础模型,
其中,Ture表示已知目标模型的特征集,False表示未知目标的特征集。括号外数字表示重构模型的准确率,括号内数字表示重构模型的重构率。