论文详读:LEMNA: Explaining Deep Learning based Security Applications

我以我ppt的内容顺序介绍一下这篇论文,希望有错误的地方大家可以帮我指出嘻嘻

1、论文出处

论文名:LEMNA: Explaining Deep Learning based Security Applications

作者:Wenbo Guo, Dongliang Mu, Jun Xu, Purui Su, Gang Wang, Xinyu Xing(Wenbo Guo是宾夕法尼亚大学计算机系博士,并且在京东安全研发中心研究时发表了此篇论文)

论文发表:Proceedings of The 25th ACM Conference on Computer and Communications Security  CCS2018年优秀论文(CCS是安全领域四大顶会之一)

发表时间:2018年10月

 

2、概述

2.1主要内容

   本文介绍了一种新的方法——LEMNA,可以为基于深度学习的安全应用提出高精度的解释,该方法提出了基于fused lasso增强的混合回归模型,解决了现有的解释技术无法处理特征依赖和非线性局部边界问题。LEMNA可以帮助安全分析人员用来理解分类器行为,排除分类错误等。总的来说LEMNA本质上是一种解释技术

2.2研究背景

     目前深度神经网络在网络安全应用上展现了强大的潜力,并且在恶意软件分类,****等都取得了很好的效果。****指的是将二进制代码转化为汇编语言或其他语言代码,实现二次开发。其作用包括检测恶意软件、易受攻击的代码片段,挖掘漏洞,生成安全补丁等。深度学习在二进制****的应用主要包括使用RNN识别函数边界,定位函数类型特征等等。恶意软件分类指的是判断软件/文件是恶性的还是良性的,深度学习在这上面的应用主要是使用MLP模型进行大规模的恶意软件分类。

      但是由于神经网络的不透明特性,很难知道深度神经网络是依据什么如何做出分类决策的,因此提出了一种解释技术来解释深度神经网络是如何做出决策的,解释技术实际上就是用来找到对分类结果做出关键贡献的特征。

2.3研究动机

     由于我们关心的安全领域(如二进制****)使用的深度学习模型,深度学习模型包含多层网络,复杂度高,很难知道深层神经网络是如何做出某些决定的,安全从业人员难以信任深度学习模型,并且现有的解释技术在安全领域应用得非常少,并且效果不好,因此为了改进现有解释技术存在的问题,我们提出一种解释技术——LEMNA

2.4要解决的问题

       安全领域例如二进制****、恶意软件分类领域没有适用的高精度的解释技术,以及现有的解释技术存在的:无法处理特征依赖和非线性局部边界问题。

2.5遇到的挑战

       安全领域对于解释的精度(准确度)要求非常高,如果安全从业人员不能排除分类错误,那么这些错误会在实践中被方法,容易是受到攻击。因此如何提高解释技术的解释精度非常重要

2.6主要解决思路

      主要思路是将目标深度学习分类器视为一个黑箱,并通过模型近似推导出解释,首先引入了fusion lasso来处理特征依赖问题,接着,将融合lasso集成到混合回归模型中,逼近局部非线性决策边界,最后求解集成混合回归模型参数,最后应求解得到的模型来作出解释。

 

3、详细介绍

3.1研究现状

近年来,深层神经网络在构建安全应用方面显示出巨大的潜力。到目前为止,研究人员已经成功地应用深度神经网络对二进制****、恶意软件分类器进行了训练均取得了极高的准确率。

深度学习虽然在各个领域显示出巨大的潜力,但缺乏透明度限制了它在安全或安全关键领域的应用,然而网络的高度复杂性也导致了模型的低可解释性,很难理解深层神经网络是如何做出某些决定的。缺乏透明度为建立对模型的信任或有效地排除分类错误造成了关键障碍。

由于我们关心的安全领域,例如二进制****,使用的深度学习模型,深度学习模型包含多层网络,复杂度高,很难知道深层神经网络是如何做出某些决定的,因此提高安全从业人员对深度学习模型的信任度,并且从分类决策中学到知识,排除深度学习分类时出现的错误,提高准确率,需要应用解释技术来解释安全领域的深度学习问题。

目前常用的解释技术包括白盒解释技术和黑盒解释技术,白盒解释计算指的是在已知的模型结构,模型参数和训练数据下分析推断特征的重要性,主要为CNN设计的,主要用在图像领域。而黑盒解释技术指的是将分类器视为一个黑箱,并通过发送输入和观察输出来分析特征的重要性,黑盒技术的代表性模型有LIME。

 

3.2问题引入

现有的解释技术研究大多集中在图像分析或自然语言处理(NLP)等非安全应用领域,这些方法通常用卷积神经网络 (CNN),然而二进制反向工程和恶意软件分析等安全应用程序都具有高级特性依赖关系,因此,递归神经网络(RNN)或多层感知器模型(MLP)用得更多。

目前,RNN上还没有很好的解释方法,并且现有的方法仍然存在解释精度很低的,另一方面,现有的方法通常有较低的解释精度。对于图像识别等应用而言,相对较低的解释精度是可以接受的。但是对于安全应用,比如二进制分析而言,即使对于一个字节的解释偏差也会导致严重的错误。

除此之外,LIME模型虽然表现的很好,但是LIME模型无法解决特征依赖问题以及不支持局部非线性决策边界。因此提出一种可以应用于安全领域,并且可以解决特征依赖问题和支持局部非线性决策边界的高精度的解释技术是非常必要的。

 

3.3模型提出

针对LIME模型存在的无法解决特征依赖问题以及不支持局部非线性决策边界的问题提出了fused Lasso和混合回归模型

  • fused lasso

Fused lasso是一种惩罚因子,可以用来约束参数,也就是说可以用来捕获特征依赖项,首先我们假设线性回归模型为:f(x)= βx+ϵ        

1)根据模型定义损失函数L(f(x),y),这里????????为训练样本, ????????为样本真实标签,f(????_????)=βxi + ϵ为对样本????_????的预测标签     

论文详读:LEMNA: Explaining Deep Learning based Security Applications

2)将惩罚项fused lasso引入到损失函数

论文详读:LEMNA: Explaining Deep Learning based Security Applications

其中N表示总的样本个数,M表示总的特征维数,S 表示自己设置的阈值参数,将阈值设置为非常小的值,就可以实现将相邻的特征的系数设为相同。

3)最后期望得到的线性回归模型为:

论文详读:LEMNA: Explaining Deep Learning based Security Applications

可以看到特征x2,x3分配了相同的系数,因此利用这个线性回归模型就可以解决特征依赖问题

  • 混合回归模型

论文详读:LEMNA: Explaining Deep Learning based Security Applications

K表示混合模型中线性回归模型分量的个数,πk表示每个线性回归分量分配的权重,

因此给定足够的样本,混合回归模型都可以得到非常准确的决策边界

      

  • LEMNA模型——混合回归模型集成fused lasso

论文详读:LEMNA: Explaining Deep Learning based Security Applications

其中????k表示第k个线性回归分量的样本数,βkj表示第k个线性回归分量的第j个参数,????????表示第k个线性回归分量的参数向量。将模型最小化,求得参数???????? ,就可以得到最终的混合回归模型。

 

3.4模型求解  解决方案理论、方法、算法、公式等的分析、推导和讨论

对于LEMNA模型的求解与标准线性回归不同,我们的优化目标很难实现,不能简单地利用MLE来实现最小化。为了有效地估计混合回归模型的参数,我们使用了另一种方法

1)为了有效的估计混合回归模型,用概率的形式表示混合回归模型,由K个高斯分布函数的线性组合(高斯混合模型)

论文详读:LEMNA: Explaining Deep Learning based Security Applications

其中????_k^2表示第k个高斯分布的方差,????_????表示第k个线性回归分量的权重

2)然后对于参数????_????,????_k^2, ????_????这三个参数,利用EM算法(期望最大化算法)进行参数估计

基本思路:首先对这三个参数进行初始化,然后将所有样本都分配给对应高斯分布。然后再使用MLE重新计算三个参数,并且在计算????_????的时候加入lasso约束,重复执行这两个步骤,直到高斯分布稳定下来。

   

3.5具体实验和结果

我们将LEMNA应用于两个安全应用:利用RNN检测****二进制代码的函数开始位置、基于MLP对PDF恶意软件进行分类。

  • 分类器参数设置

函数开始位置检测:使用包含2200二进制的数据集的RNN,训练4个不同的分类器。数据集中的每个二进制文件都表示为十六进制代码序列,将序列中的每个元素视为一个特性。

PDF恶意软件分类器:基于广泛使用的数据集(4999个恶意PDF文件和5000个良性文件)构建一个基于mlp的恶意软件分类器,为每个文件提取135个特性,随机选取70%的数据集(恶意软件和良性1:1)作为训练数据,剩下的30%作为测试数据。

  • LEMNA模型实验步骤

1)给出一个输入实例x(一段二进制序列样本)首先利用分类器RNN找到了函数开始的位置

2)构建基于x的合成样本(思想是随机地使x的一个特征子集无效)

3)设置模型参数:N = 500 , K = 6 , S = e^(−4)

4)利用LEMNA模型求解得到混合回归模型,其中权重最大的线性分量是最终线性模型

5)根据最终线性模型的系数来对特征的重要性进行排序

  • 分类器分类结果

论文详读:LEMNA: Explaining Deep Learning based Security Applications

可以明显的发现,两个深度学习分类器分类效果都非常好

  • LEMNA模型解释结果

论文详读:LEMNA: Explaining Deep Learning based Security Applications

给定一个输入十六进制序列和检测到的函数开始,即83, LEMNA在序列中标记出一组贡献最大的十六进制编码。这里,83是函数的开始,LEMNA指出,函数开始前的十六进制编码90是最重要的检测原因。

 

3.6结论

为了验证解释的正确性,进行了两个阶段的实验。

  • 局部近似精度

1)对于每个样本x_i,首先使用分类器得到预测概率 ????????  (????=1,2……????)

2)针对样本x_i,使用LEMNA模型得到最佳的线性模型

3)利用这个线性模型计算近似预测概率 (???????? ) 

4)最后使用均方根误差(RMSE)来测量近似的决策边界和原始的决策边界的误差,并和LIME模型进行对比论文详读:LEMNA: Explaining Deep Learning based Security Applications

论文详读:LEMNA: Explaining Deep Learning based Security Applications

结果表明,LEMNA模型的RMSE比LIME模型小一个数量级,LEMNA模型得到的局部线性模型更精确,LEMNA模型解释效果更好

      

  • 端到端评价

假设特征Fx为解释模型选中的一小部分重要特征,这里定义了PCR作为评价指标,表示的是样本分类为原始标签的概率

1)特征推理测试:对分类正确的样本x中的Fx进行空化,构造一个新样本,并计算PCR

论文详读:LEMNA: Explaining Deep Learning based Security Applications

2)特征增强测试:对于一个分类错误的样本x,用解释模型找到的特征Fx替换中的对应特征

论文详读:LEMNA: Explaining Deep Learning based Security Applications

3)特征生成测试:保留Fx,同时为其余特征随机分配值,构建新样本

 

论文详读:LEMNA: Explaining Deep Learning based Security Applications

 

在所有三个测试中,我们的LEMNA都比LIME和随机基线表现出色得多。有趣的是,对于恶意软件分类器,LIME的性能和随机特征选择一样差。这是因为特征向量稀疏,不利于决策边界的平滑。LIME很难准确地逼近非光滑边界,这再次验证了LEMNA更适合于安全应用,因为与图像分析任务相比,安全应用需要更高的解释精度

 

4.总结——文章的主要贡献:

  • 论文提出了可以应用在特定安全领域(二进制****和恶意软件分类等)上的解释模型——LEMNA,在二进制****和恶意软件分类中有很好的应用。
  • 提出了一系列评价方法来量化解释结果的准确性,实验表明,LENMA解释效果很好。
  • 对于二进制逆向分析,LEMNA解释了为什么分类器会做出错误的决定,并且针对这种错误提出了修补方法,提高了分类准确率
  • 建立对安全领域的深度学习模型的信任