题目: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小结的更多相关文章

  1. 【论文笔记】Malware Detection with Deep Neural Network Using Process Behavior

    [论文笔记]Malware Detection with Deep Neural Network Using Process Behavior 论文基本信息 会议: IEEE(2016 IEEE 40 ...

  2. 【论文笔记】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 ...

  3. cdmc2016数据挖掘竞赛题目Android Malware Classification

    http://www.csmining.org/cdmc2016/ Data Mining Tasks Description Task 1: 2016 e-News categorisation F ...

  4. Android Camera 使用小结。两种方法:一是调用系统camera app,二是自己写camera程序。

    源文链接:http://www.cnblogs.com/franksunny/archive/2011/11/17/2252926.html Android Camera 使用小结 Android手机 ...

  5. 论文阅读计划2(Deep Joint Rain Detection and Removal from a Single Image)

    Deep Joint Rain Detection and Removal from a Single Image[1] 简介:多任务全卷积从单张图片中去除雨迹.本文在现有的模型上,开发了一种多任务深 ...

  6. Android Camera 使用小结

    Android手机关于Camera的使用,一是拍照,二是摄像,由于Android提供了强大的组件功能,为此对于在Android手机系统上进行Camera的开发,我们可以使用两类方法:一是借助Inten ...

  7. Android:Sqlitedatabase学习小结

    今天刚刚学习完Sqlite数据库的基础知识,随即把学到的东西记录下来,以便随后查阅,以下是自己对Sqlite数据库的小结:1.Sqlite简介       Sqlite是一款轻型的数据库,它包含在一个 ...

  8. android: Android 权限管理小结

    一. 概述 感谢郭神,自从Android6.0发布以来,在权限上做出了很大的变动,不再是之前的只要在manifest设置就可以任意获取权限,而是更加的注重用户的隐私和体验,不会再强迫用户因拒绝不该拥有 ...

  9. Android事件分发小结

      ******** ******** 第一部分: 介绍说明 ******** ********        个人感觉在做交互的时候, 对于Android的按键分发的理解还是比较重要的. 这些内容在 ...

随机推荐

  1. ios uilabel 根据文字 计算宽度 高度

    //根据宽度求高度        + (CGFloat)getLabelHeightWithText:(NSString *)text width:(CGFloat)width font: (CGFl ...

  2. ArcServer10.1系列产品之ArcGIS Web Adaptor (IIS)

    1.关于 ArcGIS Web Adaptor 通过 ArcGIS Web Adaptor,可以将 ArcGIS for Server 与您现有的 Web 服务器进行集成.ArcGIS Web Ada ...

  3. ComboBox控件“设置 DataSource 属性后无法修改项集合”的解决【转】

    编写Winform程序,遇到comboBox的绑定事件和索引项变更事件的冲突问题,就是“设置 DataSource 属性后无法修改项集合”的错误问题,网上查了很多,大多说在索引项变更是进行非空判断,还 ...

  4. 【Python图像特征的音乐序列生成】使用Python生成简单的MIDI文件

    这个全新的Python音乐创作系列,将会不定期更新.写作这个系列的初衷,是为了做一个项目<基于图像特征的音乐序列生成模型>,实时地提取照片特征,进行神经网络处理,生成一段音乐. 千里之行, ...

  5. 使用Java connector消费ABAP系统的函数

    Java Connector(JCO)环境的搭建:Step by step to download and configure JCO in your laptop 我的ABAP系统有个函数名叫ZDI ...

  6. 2018.3.26 Linux下学习命令

    Linux下的终端文件颜色说明 ---color[=WHEN] 用色彩辨别文件类型 WHEN 可以是'never'.'always'或'auto'其中之一 白色:表示普通文件 蓝色:表示目录 绿色:表 ...

  7. Win10激活方法(企业版)

    Win10激活 注意:以管理员身份运行,需要电脑有网(亲测激活企业版没问题) 然后一条一条复制执行 slmgr /ipk NPPR9-FWDCX-D2C8J-H872K-2YT43 slmgr /sk ...

  8. linux readahead

    blockdev --getra /dev/sda blockdev --setra 2048 /dev/sda 必须将其写入配置文件/etc/rc.local,否则重启就会失效.[root@loca ...

  9. java基础—配置环境变量

    前言 学习java的第一步就要搭建java的学习环境,首先是要安装JDK,JDK安装好之后,还需要在电脑上配置"JAVA_HOME”."path”."classpath& ...

  10. MVCPager学习小记

    1.PageIndexParameterName怎么关联? 答:其实就是Action里面的pageindex参数 例子: @Html.Pager(Model, new PagerOptions { P ...