Deep Android Malware Detection小结
题目:Deep Android Malware Detection
作者:Niall McLaughlin, Jesus Martinez del Rincon, BooJoong Kang
年份:2017
会议:CODASPY
2.解决的问题
之前的方法需要对程序进行分析然后提取具有识别能力的特征用于恶意软件的分类。在本文中应用卷积神经网络来对恶意软件进行分类,该方法是受到基于n-gram的恶意软件检测的启发,但不同于基于n-gram的恶意软件检测,对于n个操作数作为卷积神经网络的输入,卷积神经网络会自动的识别恶意软件的特征。
3.研究点
如果构造用于恶意软件分类的卷积神经网络;如何提取卷积神经网络的输入;
4.研究假设
无
5.关键算法
在介绍算法之前需要了解一下什么是n-gram
n-gram是计算机语言学和概率论范畴内的概念,是指给定的一段文本或语音中N个项目(item)的序列。项目(item)可以是音节、字母、单词。通常n-gram取自文本或语料库。举例来说:将"informationretrieal"视为一段文本,它的5-grams的item依次为:
infor,nform,forma,ormat,rmati,matio,ation,tionr,onret,nretr,retri,etrie,triev,rieva,ieval
提取卷积网络的输入
将.apk文件反编译为.smali文件,然后提取操作符。由于在Dalvik中的字节码中定义的操作符有218个,因此将每个操作符映射成一个操作数。为了说明,这里假设提取到的应用的操作数序列为{1,2,3,4,5,6,7,8},N的大小的为4,根据n-gram的定义,输入有{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7},{5,6,7,8}共5组
将每一个操作数表示成one-hot形式(one-hot是一个218维的向量,对应的操作数上置为1,其他置为0)。之所以将操作数表示成one-hot的形式是因为这样可以将one-hot向量映射成一个k维的嵌入空间,这样可以表示不同操作数之间的关系。
构造卷积神经网络
卷积网络的整体结构如下,包括一个Embedding层,两个卷积层,一个池化层,一个全连接层,以及最后的softmax分类层。

用one-hot表示的操作数序列矩阵M(N*218)通过Embedding Layer映射成矩阵P(N*K)。每个卷积层有m个过滤器,每个过滤器为s1*k,这意味着每个过滤器可以检测是s1个序列的操作数,每个过滤器会输出n*1大小的向量,将这些向量叠在一起就得到了矩阵A1(n*m)(注意这里和传统的卷积有所不同),通过第二层卷积以及池化层池,化层的公式如下(注意这里和传统卷积池化层公式有所不同,目的是为了得到一维向量)

得到一个一维向量。得到的一维向量再作为传统神经网络进行分类的训练。
6.数据

7.优点
通过简单的操作数序列可以卷积神经网络可以自动的学习一些比较复杂的特征用于恶意软件的分类。克服了传统的基于n-gram的算法中n不能太大的限制。
8.不足之处
9.可能的后续改进点以及创新点
是否可以其他的深度学习模型用于恶意软件的检测。
Deep Android Malware Detection小结的更多相关文章
- 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior
[论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...
- 【论文笔记】DeepOrigin: End-to-End Deep Learning for Detection of New Malware Families
DeepOrigin: End-to-End Deep Learning for Detection of New Malware Families 标签(空格分隔): 论文 论文基本信息 会议: I ...
- cdmc2016数据挖掘竞赛题目Android Malware Classification
http://www.csmining.org/cdmc2016/ Data Mining Tasks Description Task 1: 2016 e-News categorisation F ...
- Android Camera 使用小结。两种方法:一是调用系统camera app,二是自己写camera程序。
源文链接:http://www.cnblogs.com/franksunny/archive/2011/11/17/2252926.html Android Camera 使用小结 Android手机 ...
- 论文阅读计划2(Deep Joint Rain Detection and Removal from a Single Image)
Deep Joint Rain Detection and Removal from a Single Image[1] 简介:多任务全卷积从单张图片中去除雨迹.本文在现有的模型上,开发了一种多任务深 ...
- Android Camera 使用小结
Android手机关于Camera的使用,一是拍照,二是摄像,由于Android提供了强大的组件功能,为此对于在Android手机系统上进行Camera的开发,我们可以使用两类方法:一是借助Inten ...
- Android:Sqlitedatabase学习小结
今天刚刚学习完Sqlite数据库的基础知识,随即把学到的东西记录下来,以便随后查阅,以下是自己对Sqlite数据库的小结:1.Sqlite简介 Sqlite是一款轻型的数据库,它包含在一个 ...
- android: Android 权限管理小结
一. 概述 感谢郭神,自从Android6.0发布以来,在权限上做出了很大的变动,不再是之前的只要在manifest设置就可以任意获取权限,而是更加的注重用户的隐私和体验,不会再强迫用户因拒绝不该拥有 ...
- Android事件分发小结
******** ******** 第一部分: 介绍说明 ******** ******** 个人感觉在做交互的时候, 对于Android的按键分发的理解还是比较重要的. 这些内容在 ...
随机推荐
- filter和map的使 使得数组对象变数组
let UnitList = this.paytypeData.filter( item => item.CheckBox === true ).map(axis => axis.Unit ...
- Class 类
在javascript 中应用类的概念 // javascript web applications 富应用开发 // 类库:生成类的地方:给所有的构造函数提供基础方法,如 extend, inclu ...
- freebsd新添加磁盘
1.添加硬盘 2.查看现在的硬盘 3.执行sysinstall命令 4. 5. 6.按下enter键 7.A,C,Q 8. 9. 10.C,Q 11.newfs /dev/ad0 12.cd / &a ...
- db2数据库创建索引,删除索引,查看表索引,SQL语句执行计划以及优化建议
1.建立表索引 create index 索引名 on 表名(列名,列名); 2.删除表索引 drop index 索引名 on 表名; 3.查看表索引 select * from sysibm.sy ...
- java面试题(杨晓峰)---第五讲String、StringBuffer、StringBuilder有什么区别?
线程 字符 操作频繁度 1 String (1)String的创建机制 由于String在java世界中使用过于频繁,java为了避免在一个系统中产生大量重复的String对象,引入了字符串常量池,其 ...
- UVA 11997 K Smallest Sums (多路归并)
从包含k个整数的k个数组中各选一个求和,在所有的和中选最小的k个值. 思路是多路归并,对于两个长度为k的有序表按一定顺序选两个数字组成和,(B表已经有序)会形成n个有序表 A1+B1<=A1+B ...
- noip模拟赛#14
#14: T1:f[x]=x-1(x&1)||x/2(x&1=0) 求[n,m]有多少个数可以通过变换得到k.(1e9). =>好像cf上看过类似的题,用二进制的方式来写.不过我 ...
- Android(java)学习笔记120:BroadcastReceiver之 应用程序安装和卸载 的广播接收者
国内的主流网络公司(比如网易.腾讯.百度等等),他们往往采用数据挖掘技术获取用户使用信息,从而采用靶向营销.比如电脑上,我们浏览网页的时候,往往会发现网页上会出现我们之前经常浏览内容的商业广告,这就是 ...
- 2018.3.27 Mac 配置Tomcat
先在官网上下载Tomcat .也可以用这个传送门. https://tomcat.apache.org/download-70.cgi 选择zip文件夹的下载就ok 下载完成之后将该文件夹.(如果是t ...
- Hbase 操作工具类
依赖jar <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-cli ...