深度安卓恶意软件检测系统:用卷积神经网络保护你的手机
来源:互联网 发布:android 应用启动优化 编辑:程序博客网 时间:2024/06/10 05:06
转自:https://www.jiqizhixin.com/articles/844355c4-0ff5-4eeb-ae83-391e70adfaf2
恶意软件可以说是我们现代生活的一大威胁,为了保护我们电子设备中的财产和资料安全,我们往往需要寻求安全软件的帮助。前段时间,来自贝尔法斯特女王大学和亚利桑那州立大学的研究者提出并开源了一种使用神经网络来帮助检测安卓(Android)恶意软件的方法。机器之心在本文中对该项目的介绍文档和论文摘要进行了介绍。
- 论文地址:http://dl.acm.org/citation.cfm?id=3029823
- 项目地址:https://github.com/niallmcl/Deep-Android-Malware-Detection
我们使用了一种卷积神经网络(CNN)来进行安卓恶意软件分类。这种恶意软件分类的执行方式是对安卓 APK 进行反汇编,然后对其原始操作码序列(raw opcode sequence)进行静态分析。其中,指示「恶意」的特征是从原始操作码序列中自动学习到,因此无需人工设计恶意特征。该网络运行在 GPU 上,可以快速扫描大量文件。
如果你使用此代码,请引用以下论文:
@inproceedings{mclaughlin2017codaspy,title = "Deep Android Malware Detection",author = "Niall McLaughlin and {Martinez del Rincon}, Jesus and BooJoong Kang and Suleiman Yerima and Paul Miller and Sakir Sezer and Yeganeh Safaeisemnani and Erik Trickel and Ziming Zhao and Adam Doupé and {Joon Ahn}, Gail",year = "2016",month = "12",booktitle = "Proceeding of the ACM Conference on Data and Applications Security and Privacy (CODASPY) 2017",publisher = "Association for Computing Machinery (ACM)",}
如何运行本代码
给定一个已有的数据集目录(详情见下),其中 run.sh 文件将会执行以下内容:
- 将数据集分割为训练集和留存的测试集
- 训练神经网络
- 在测试集上对训练后的网络进行测试
准备工作
数据集结构
数据集所需目录结构的例子可参看 ./dataset
本神经网络需要格式正确的操作码序列文件,并且数据集目录中需要包含恶意和良性的操作码序列文件的子目录。
在 ./dataset 中提供了一个数据目录示例。该数据集目录必须包含以下结构:
- 必须要有一个叫做「Benign」的目录,其中包含了非恶意的操作码序列文件。
- 其它目录可以随意命名,其中包含了恶意的操作码序列文件。
操作码序列文件(Opcode Sequence files)
操作码序列文件可以使用操作码序列创建工具从安卓 APK 中创建。该工具放在 ./opcodeseq_creator 下。请参阅该目录下的 README 文件了解更多。
设置
本神经网络的代码是使用 Torch 实现的。推荐使用 GPU 来实现测试和训练加速。有关 Torch 安装的更多详情,请参阅:http://torch.ch/
其中操作码序列创建工具需要 APKTool:https://ibotpeaches.github.io/Apktool/
论文:深度安卓恶意软件检测(Deep Android Malware Detection)
在这篇论文中,我们提出了一种使用深度卷积神经网络(CNN)的全新安卓恶意软件检测系统。恶意软件分类的执行是基于对反汇编的程序的原始操作码序列进行静态分析。指示恶意软件的特征是从原始操作码序列中自动学习到,因此无需人工设计恶意特征。我们提出的系统的训练流程比已有的基于 n-gram 的恶意软件检测方法要简单得多,因为该网络是端到端地训练来联合学习适当的特征并执行分类,因此无需在训练过程中明确枚举数百万 n-gram。该网络设计还允许使用特征这样的长 n-gram,而已有的方法却无法在计算上做到这一点。训练完成后,该网络可以在一个 GPU 上得到有效的执行,从而可以快速扫描大量文件。
- 深度安卓恶意软件检测系统:用卷积神经网络保护你的手机
- 深度卷积神经网络的行人检测 (pedestrian detection)
- 教你如何解锁被恶意锁定的安卓手机(亲测可用)!
- 阻击恶意软件 — 清除和保护你的网站的小技巧
- 阻击恶意软件--清除和保护你的网站的小技巧
- 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测
- 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测-ECCV 2014
- 深度学习(十九)基于空间金字塔池化的卷积神经网络物体检测-ECCV 2014
- 深度学习---基于空间金字塔池化的卷积神经网络物体检测
- 深度卷积神经网络在目标检测中的进展
- 深度卷积神经网络在目标检测中发展
- 深度卷积神经网络在目标检测中的进展
- 深度卷积神经网络在目标检测中的进展
- 深度卷积神经网络在目标检测中的进展
- 深度卷积神经网络在目标检测中的进展
- 吴恩达深度学习笔记之卷积神经网络(目标检测)
- 更好的理解分析深度卷积神经网络
- 深度解析卷积神经网络的实现细节
- linux之学习live555视频笔记
- 玩转飞思卡尔在线调试工具FreeMaster
- kinetis时钟模块MCG详解
- [解析]BeeGFS将是高性能计算领域的一匹黑马
- 小象学院_Python数据分析_第三讲_Pandas
- 深度安卓恶意软件检测系统:用卷积神经网络保护你的手机
- 如何在STM32F10x_StdPeriph_Template基础上建立自己的MDK工程
- C++知识整理(上)
- Stm32f10x 新建工程详解
- HTML+CSS编写静态网站-20 CSS颜色属性详解
- stm32深入浅出——由GPIO谈谈寄存器配置
- Mysql 增减查询基本语句
- 【ALIENTEK 战舰STM32开发板例程系列连载+教学】第三十章 CAN通信实验
- css的格式与属性