基于大数据&机器学习的Android病毒软件检测SVM模型研究

2020-06-22 13:11冯志峰
科技创新与应用 2020年18期
关键词:机器学习大数据

冯志峰

摘  要:Android作为当今最流行的操作系统,已经被世界上成千上万的使用者所使用,但是正是基于Android天生开源的特性,让很多开发者在开发app的过程中,可以利用系统或者是手机自身的权限申请以及目前市面上还不健全的应用商店审核机制,开发恶意软件从而危害到用户的手机内的个人资料和隐私。在此篇论文中,我们提供了一种能够检测恶意软件的机制并加以实践,通过提取Android APK的权限[1]申请作为特征点,通过已经使用大量提取的数据训练完的SVM模型对软件做检测,根据实验结果,我们的模型对于恶意软件的检测率高达89%-92%之间,符合研究预期。

关键词:大数据;机器学习;病毒软件检测;SVM模型

中图分类号:TP3 文献标志码:A         文章编号:2095-2945(2020)18-0018-03

Abstract: Android, as the most popular operating system, has been used by thousands of users in the world, but it is based on the natural open source feature of Andoird that many developers can make use of the permission application of the system or mobile phone and the imperfect application store audit mechanism in the market to develop malicious software to endanger the personal data and privacy of users in the process of developing app. In this paper, we provide a mechanism that can detect malicious software and put it into practice. By extracting the permission of Android APK[1] as a feature point, we use the SVM model trained with a large number of extracted data to detect the software. According to the experimental results, the detection rate of our model for malicious software is as high as 89%, which is in line with the research expectations.

Keywords: big data; machine learning; virus software detection; SVM model

1 概述

目前對于Android应用程序的相关研究有相当多的技术方向,随着机器学习以及大数据分析的趋势越来越火,从早期的Android应用程序单一的解包分析到现在多维度人工智能分析,这些技术的核心就是通过检测以及修补Android应用程序的在手机中运行整个周期中所存在的设计缺陷和漏洞,代码的书写错误,运行异常等,主要可以分为三类方向:(1)静态代码分析;(2)动态代码分析[2];(3)运行大数据机器学习的方法[3]进行分析。根据我们的调查和了解,支持向量机(Support vector machine)作为目前机器学习中最为常用而且有用的手段,提供了良好的分类性能,与其他机器学习的方法相比,应用到Android安全检的工程当中更具有它的优势,本文就是通过分析并且提取Android 软件中的权限列表作为特征点,因为这些特征点可以比较形象地告诉我们这款app之后可能潜在的行为,所以通过我们对于这些行为的分析,可以比较准确地判断这款app是否为恶意软件的可能性。

2 研究步骤

2.1 选择特征点

如果我们要对每一个app检测判断它们是否是恶意的软件,第一步就是对app进行分析。经过我们对大量已经存在的恶意软件进行解包分析之后,我们发现大多数的恶意软件都是通过访问用户的敏感数据,窃取用户的隐私和拒绝访问设备的功能来危害用户。许多的Android恶意软件在用户程序退到后台之后,偷偷在后台运行,根据应用的不同,大致上可以分为三类,第一类恶意软件的作答基本上都是通过调用后台系统中拨打电话的api从而来实现拨打电话发送服务注册的简讯,拦截服务确认的简讯,以及自动联网下载强制推送广告。第二类的恶意软件通常都是在用户给予apk权限之后,默默在后台手机用户的地理位置讯息,联系人列表等敏感信息,从而上传到指定的服务器中。第三类的恶意软件会去获取Android中最高的root权限,从而在未经使用者同意的情况下删除更改用户的数据,以及其他更加危险的行为,因此我们选定使用应用程序中的权限作为特征点。

2.2 提取特征点

在2.1中我们已经确定使用apk中的permission作为特征点,在这一节中我们来介绍如何提取特征点。

我们知道每一款apk档所有的权限申请都在一个名为AndroidManifest.xml档中,所以我们需要处理xml的档同时考虑到在资料收集阶段,我们会收集上万笔apk作为data sample(在3.1中会提到),所以我们需要一个可以批量处理apk档并且获取其中的permission list。我们最终选取使用Androguard 这款开源工具来作为我们的批量处理apk的工具。

猜你喜欢
机器学习大数据
基于词典与机器学习的中文微博情感分析
基于网络搜索数据的平遥旅游客流量预测分析
前缀字母为特征在维吾尔语文本情感分类中的研究
基于支持向量机的金融数据分析研究
大数据环境下基于移动客户端的传统媒体转型思路
基于大数据背景下的智慧城市建设研究
数据+舆情:南方报业创新转型提高服务能力的探索
机器学习理论在高中自主学习中的应用