论文题目:Why an Android App Is Classified as Malware: Toward Malware Classification Interpretation
论文作者:Wu Bozhi, Chen Sen, Gao Cuiyun, Fan Lingling, Liu Yang, Wen Weiping, Lyu Michael
发表会议/期刊:ACM Transactions on Software Engineering and Methodology (TOSEM)
发布时间:2021
主题类型:恶意代码
第一作者/通信作者主页:B. Wu, Nanyang Technological University, Singapore and Peking University, China; email: [email protected];
S. Chen (corresponding author), College of Intelligence and Computing, Tianjin University, China and NTU, Singapore; email: [email protected];
本篇论文是对安卓恶意APP提出一个可解释性的机器学习分类方法(主要是可解释性的体现):其使用一种新颖有效的基于注意力机制的MLP的安卓恶意软件检测方法-----XMAL。其整个方法的架构如下图1所示:
整个架构主要有两个组成部分:一个分类器(Classifier)和一个解释器(Interpreter)。
分类器:从APK文件提取API调用和使用权限等作为特征输入(97个API调用和61个权限)构建特征向量。然后用这些特征向量去训练恶意文件分类器,其中分类器由attention layer和MLP两层组成。attention layer主要是学习特征的权重,该权重是特征与分类结果的一个关联分数,与分类相关性较大的特征被赋予较大的权重,而影响较小的特征被赋予较小的权重。然后利用注意力层中的全连接网络(MLP)来捕获特征之间的相关性,将注意力层加权后的特征映射到二分类中,而不是多层全连接网络。虽然多层全连接网络可以捕获特征之间更复杂的关系,但它涉及太多的数学运算,使得我们很难解释从输入特征到输出的精确映射。解释器:将恶意软件关键特征与其对应的语义进行匹配,生成Android恶意软件的恶意行为描述。行为描述表示如下图2所示:
解释器:首先需要对特征数据集进行一个语义精简提炼,同语义的可合并,并构成一个语义数据库,然后根据语义数据库再进行一个恶意规则排序,该规则排序是从恶意文件行为分析出来的。
a) 贡献点1:论文针对安卓恶意文件检测方法的可解释性问题,提出了一个可解释性模型XMAL,实现了模型对安卓恶意文件分类的可解释性。
b) 贡献点2:论文针对XMAL模型的可解释性方法,提出了一个定制基于注意力机制的MLP方法,实现了相对于目前SOTA方法的最高检测率。
代码链接:https://github.com/wubozhi/Xmal
a) 整个论文的使用类库主要使用sklearn、pandas开源库,基本都是开源类库的集成。
b) 由于使用的是基于ML的方法,代码实现整体上看上去难度不是很大,工作量基本上偏容易的,整体架构也比较简单易懂的。但是其实验结果部分有大量比较充分性的实验来证明恶意APP的分类可解释性,可解释性确实有很大提高。
c) 整体框架的代码起主要作用的是:特征提取、特征处理、日志记录、模型训练、模型检测,此外还有写文件夹主要存放APK文件(包括恶意文件和良性文件)、特征(包括常见的API和权限特征)。代码框架如下图3所示:
(1)该论文主要是根据注意力机制进行一个恶意行为特征的判断,不能输出与样本中所有恶意行为相匹配的特征。所以可以考虑通过使用多注意力机制对其进行改进,多注意力来关注特征的不同部分或不同类型的特征。多注意力利用多模态深度学习方法学习各类特征,利用多注意力关注更多的特征和行为来识别更多的恶意行为,从而提高特征多匹配的检测率。
(2)该论文的特征主要是两个方面:恶意文件对API的调用以及申请的APP权限。只基于这两个特征维度进行特征提取不足于判断恶意文件实行的恶意行为。例如有些恶意文件会采用代码混淆、加密和模糊等技术来逃避恶意检测器的检测。因此,在此基础上,还需要考虑更多的特征维度。比如说根据一个行为操作流程动态特征判断,因为API调用和权限请求主要是静态特征。同时需要考虑的是,特征的维度增多,在一部分程度上可能会面临着失去可解释性的提高。
(3)对于那些新兴的恶意文件,总是规避恶意文件检测器的检测,攻与防相互促进,道高一尺魔高一丈,检测方法难以覆盖所有的恶意代码变种,恶意文件的检测需要进行一个实时的检测更新。
(4)在移动端进行一个模型部署检测还会受到一个计算资源的消耗量问题,这样会对移动设备的存储和计算能力提出一个比较高的要求。这也是该论文整体模型架构比较轻量级的体现,因此对于那种大模型检测,可以考虑云端检测技术,将模型的资源消耗需求分布在云端。
[1]. Wu B, Chen S, Gao C, et al. Why an android app is classified as malware: Toward malware classification interpretation[J]. ACM Transactions on Software Engineering and Methodology (TOSEM), 2021, 30(2): 1-29.
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com