【恶意软件检测】【防】DeepRefiner: Multi-layer Android Malware Detection

文中部分内容来自:复旦白泽战队 微信公众号文章
论文链接:点击查看
本文发表在2018 IEEE European Symposium on Security and Privacy (EuroS&P),(安全顶级会议)
第一作者是来自新加坡管理大学(SMU)的Ke Xu。

主要内容

1.快速又有效的检测恶意软件

1.1快速:
多层感知机(MLP,也叫ANN即人工神经网络)应用于xml文件上,能够快速的检测大部分恶意软件
1.2有效:
基于语义的深度学习,在安卓应用的字节码上使用含有语义结构的LSTM模型,捕获恶意软件行为信息

2.自动化提取特征

设计实现

1.DeepRefiner的设计(2层结构)

1.基于xml特征的多层感知机模型
2.基于字节码语义特征的LSTM模型
在这里插入图片描述

Layer1: 基于xml特征的多层感知机模型

(1) 提取安卓应用的xml文件,包括AndroidManifest.xml文件和位于/res/文件夹下的xml文件。
(2) 解析得到的所有xml文件,提取xml结构中的标签值和属性值作为检测特征,其中包括应用申请的权限、含有的组件和使用的字符串等信息。
(3) 将得到的所有字符串特征按照特定的顺序组织,如果一个应用中含有某一个特征,则将该特征对应位置的值置为1,否则为0,得到特征向量。
(4) 在训练阶段,根据训练集应用的特征向量训练多层感知机检测模型。在检测阶段,则将特征向量输入到训练好的多层感知机模型中,得到模型的预测值PMalicious和PBenign,并根据以下公式进行分类。把label=Uncertain的放到下一层做判断。在这里插入图片描述

Layer2:基于字节码语义特征的LSTM模型

(1) 提取标记为不确定应用的dex文件,并对其反编译得到对应的字节码序列。
(2) 对dex字节码进行预处理,简化字节码序列。
(3) 利用bytecode2vec的嵌入算法,将简化后的字节码转换成向量表示,得到向量表示的序列,对应于带有语义信息的特征向量。
(4) 在训练阶段,根据训练集应用的特征向量训练LSTM模型。在检测阶段,则将特征向量输入到训练好的LSTM模型中,完成对应用的最终分类。

2.自动化特征工程:

在特征提取上,DeepRefiner整个过程是自动化完成的,并不需要专业的领域知识和大量的人力。对xml文件特征的提取是自动化地提取其中的标签值和属性值,然后表示成特征向量。对dex文件是利用bytecode2vec的方法将每一条字节码转换成向量表示,并把一个安卓应用程序表示成向量序列。

总结评价

这篇论文的主要贡献在:
(1) 提出了一个基于两个深度学习模型的DeepRefiner检测系统,能够完成对恶意软件的检测;
(2) 在特征提取方面,整个过程是自动化完成的,并不需要专业的领域知识和大量的人力;
(3) 在11万应用程序的数据集对DeepRefiner在检测效果、鲁棒性和运行开销方面进行了评估,表明了DeepRefiner检测系统具有不错的性能,能够快速有效地完成对恶意软件的检测。

但是这篇论文也存在一些不足之处
论文使用的是静态分析方法,对动态加载并实现恶意行为的恶意软件无法很好地检测,同时也继承了自动化特征工程的不足之处,特征的可解释性不够好。虽然提出自动化特征工程的方法,但是该方法在抗恶意软件演化方面存在一定的滞后性,首先需要收集一定量演化后的恶意软件,并且需要完成标注,这个过程需要耗费一定的时间和人力,在这个时间窗口上不能很好地检测演化后的恶意软件。


论文学习点: 双层检测模型的设置区别于之前看的其他论文,只用一个模型来处理问题。

补充内容:
1.dex文件:dex是Android平台上(Dalvik虚拟机)的可执行文件, 相当于Windows平台中的exe文件, 每个Apk安装包中都有dex文件, 里面包含了该app的所有源码, 通过反编译工具可以获取到相应的java源码。
为什么需要学习dex文件格式? 最主要的一个原因: 由于通过反编译dex文件可以直接看到java源码, 越来越多的app(包括恶意病毒app)都使用了加固技术以防止app被轻易反编译, 当需要对一个加固的恶意病毒app进行分析或对一个app进行破解时, 就需要了解dex文件格式, 将加固的dex文件还原后(脱壳)再进行反编译获取java源码, 所以要做Android安全方面的深入, dex文件格式是基础中的基础。
2.理解LSTM网络
先贴一篇看论文时找到的文章,以后有时间可以继续研究一下。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值