深度安卓恶意软件检测系统:用卷积神经网络保护你的手机
2017-06-29 07:12
696 查看
转自: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 上,可以快速扫描大量文件。
如果你使用此代码,请引用以下论文:
将数据集分割为训练集和留存的测试集
训练神经网络
在测试集上对训练后的网络进行测试
本神经网络需要格式正确的操作码序列文件,并且数据集目录中需要包含恶意和良性的操作码序列文件的子目录。
在 ./dataset 中提供了一个数据目录示例。该数据集目录必须包含以下结构:
必须要有一个叫做「Benign」的目录,其中包含了非恶意的操作码序列文件。
其它目录可以随意命名,其中包含了恶意的操作码序列文件。
设置
本神经网络的代码是使用 Torch 实现的。推荐使用 GPU 来实现测试和训练加速。有关 Torch 安装的更多详情,请参阅:http://torch.ch/
其中操作码序列创建工具需要 APKTool:https://ibotpeaches.github.io/Apktool/
恶意软件可以说是我们现代生活的一大威胁,为了保护我们电子设备中的财产和资料安全,我们往往需要寻求安全软件的帮助。前段时间,来自贝尔法斯特女王大学和亚利桑那州立大学的研究者提出并开源了一种使用神经网络来帮助检测安卓(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 上得到有效的执行,从而可以快速扫描大量文件。相关文章推荐
- 安卓手机系统可删除的自带软件大集合
- 十大恶意软件让安卓手机成为噩梦,移动代码签名证书重要性大增
- 十大恶意软件让安卓手机成为噩梦,移动代码签名证书重要性大增
- 在Symbian操作系统上开发的手机程序必须进行数字签名,才能在手机终端上安装成功。数字签名机制能够有效阻止恶意手机程序的传播,并保护软件开发商和手机用户的合法权益。那么,如何进行Symbian数字签
- Google为macOS量身打造的恶意软件检测系统“Santa”已开源
- 汉邦高科硬盘录像机手机远程客户端软件 安卓系统
- 软件运行时候自动下载木马,恶意扣费,篡改手机系统,怎么实现?
- Microsoft恶意软件保护引擎漏洞将允许拒绝服务
- 验机软件大集合(CPU、硬盘、显卡、系统检测类有更新)[转自it168]
- 怎样在命令行下检测和清除恶意软件 推荐
- 怎样在命令行下检测和清除恶意软件
- CSDN视频频道检测到恶意软件!
- 阻击恶意软件--清除和保护你的网站的小技巧
- Route66,GPS道路导航系统,我所用过的最大块头的手机软件
- 2月第3周安全回顾 隐私保护成热点 恶意软件攻击本地化
- 2008国内智能手机恶意软件排行榜
- 6月第2周安全回顾 合法网站提供恶意软件 智能手机威胁大 推荐
- 智方3000系快餐店管理系统 手机软件下载
- [转载]诺基亚Symbian系统S60V3智能手机安装软件出现错误提示及解决方法
- 阻击恶意软件 — 清除和保护你的网站的小技巧 ZT