题目: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. Word通配符

    通配符模式下: ^13表示回车,^32表示空格 第一步,使用通配符替换掉无关文本 M?G-C??[A-Z]{1,20}_[A-Z]{1,20}_201?????_?? VirtualTrial[0-9 ...

  2. python3操作excel02(对excel的基础操作,进行简单的封装)3

    #!/usr/bin/env python# -*- coding:UTF-8 -*- import requestsfrom bs4 import BeautifulSoupfrom bs4 imp ...

  3. python之元组,列表和字典的区别

    Python语言包含6种内建的序列,其中,有两种主要的类型:列表和元组. 列表是可以修改的,而元组不可以,如果要添加或者删除某些元素,就只能用列表,为了限制某些元素,就会用到元组.一般来说,列表可以替 ...

  4. 洛谷 P2323 [HNOI2006]公路修建问题

    题目描述 输入输出格式 输入格式: 在实际评测时,将只会有m-1行公路 输出格式: 输入输出样例 输入样例#1: 4 2 5 1 2 6 5 1 3 3 1 2 3 9 4 2 4 6 1 3 4 4 ...

  5. [VC]ocx控件怎么屏蔽backspace的后退键

    <script Language=javascript> function   document.onkeydown()   {   if(window.event.keyCode   = ...

  6. UVA 1152 4 Values Whose Sum is Zero 和为0的4个值 (中途相遇)

    摘要:中途相遇.对比map,快排+二分查找,Hash效率. n是4000的级别,直接O(n^4)肯定超,所以中途相遇法,O(n^2)的时间枚举其中两个的和,O(n^2)的时间枚举其他两个的和的相反数, ...

  7. python3从尾到头打印链表

    题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 方法一:通过栈实现 # -*- coding:utf-8 -*- # class ListNode: # def __ini ...

  8. NFS缓存IO机制

    NFS的缓存IO机制<一> async 参数模式下分析 NFS 默认的mount参数为async,async 参数表示内核不会透传程序的IO请求给sever,对于写IO会延迟执行,积累一定 ...

  9. GC执行finalize的过程以及对象的一次自我拯救

    参考资料:深入理解java虚拟机 /** * 此代码演示了两点: * 1.对象可以在被GC时自我拯救 * 2.这种自救的机会只有一次,因为一个对象的finalize()方法只会被系统自动调一次 */ ...

  10. javaweb基础(17)_jsp九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...