安卓恶意软件检测:系统调用日志+机器学习算法

本文内容源自Sanya Chaba等人的学术论文《Malware Detection Approach for Android systems Using System Call Logs》。

基于签名的静态检测技术广泛应用于安卓平台的恶意应用检测。该方法主要是提取签名数据并与病毒等恶意软件样本的签名进行比对,这种方法不能检测出未知的恶意应用。研究人员提出一种新的基于系统调用日志+机器学习算法的方法进行安卓恶意软件检测。

背景

恶意软件的分类主要有:病毒、蠕虫、木马、广告软件、犯罪软件、攻击工具等。

研究人员已经建立了两种恶意软件检测的方法。

一是静态分析,研究人员在不运行恶意软件的情况下执行恶意软件。静态分析中用到的技术包括反编译、模式识别、解密等。因为未知的恶意应用因为使用混淆、加密等技术会使签名不同,所以静态分析方法不能识别未知的恶意软件。

二是动态分析,动态分析方法可以检测应用的行为,比如网络访问、运行时发送短信和打电话等。动态分析是在沙箱环境下运行的,这样可以防止恶意软件感染真实的运行环境。

恶意软件检测

因为安卓本身加入了一些新的特性,加上手机本身的一些限制,用传统方法进行手机恶意软件检测很难保证成功率和效率。

研究人员提出一种使用系统调用日志进行恶意软件检测的方法。该方法一共分为三步,

1. 生成系统调用日志。2. 卡方 (Chi-square)过滤,并生成数据集。3. 利用机器学习算法进行检测。

研究人员手机了66个应用的系统调用个日志信息,生成的系统调用日志数据集中记录了每个应用的19个特征。多特征融合能增加检测的精确度。研究人员使用的机器学习算法有朴素贝叶斯算法、随机森林算法和随机下降梯度算法(Stochastic Descent Gradient Algorithm)。机器学习的结果会输出到Weka软件中进行分析。

注:Weka(Waikato Environment for Knowledge Analysis)是来之新西兰怀卡托大学的一款开源软件,主要是数据挖掘方面的一些算法的集合。

系统调用日志生成

首先,要安装沙箱模拟器Genymotion来运行每个应用,每个应用运行5分钟左右来观察应用想行为。系统生成系统调用日志的命令是strace,Python脚本的运行流程图为:

应用卡方 (Chi-square)过滤算法

用每个应用的系统调用日志创建数据集,数据集包含系统调用信息,有没有系统调用有1/0来表示。算法1如下图所示,算法复杂度为O(n)。

数据集创建后,为了改善检测的精确度,需要对提取的特征进行过滤,过滤的算法使用的卡方Chi square算法。算法2就是用来实现卡方过滤机制的算法。

研究人员从结果中挑选了18个特征,并加入到恶意软件检测的特征中。

机器学习算法

创建的数据集作为3个机器学习算法的输入。机器学习算法有朴素贝叶斯算法、随机森林算法和随机下降梯度算法(Stochastic Descent Gradient Algorithm)

下图是朴素贝叶斯分类的事件流。

输入到随机森林算法中后,数据集会被划分为随机的子集,然后每个子集会有一个决策树。根据这些结果,把决策树聚合在一起。这样就可以检测未知或恶意的应用样本的了。

实验结果

机器学习算法的结果会输出到Weka中进行分析,分析结果如图所示,朴素贝叶斯分类算法的正确率为93.75%,随机森林分类算法的正确率为93.84%,SGD算法正确率为95.5%。

结论

文章提出了一种利用系统调用日志进行恶意软件检测的方法,在生成了应用的系统调用日志之后,使用了卡方算法对特征进行过滤,然后使用朴素贝叶斯、随机森林、随机下降梯度算法三种机器学习算法进行检测。实验结果说明,检测的正确率很高,SDG算法的检测正确率大于95%。

本文来自企鹅号 - 嘶吼RoarTalk媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

【学术】无人零售背后的秘密:使用Tensorflow目标检测API实现更智能的零售结账

我一直在使用Tensorflow目标检测API,并对这些模型的强大程度感到惊讶。我想要分享一些API实际使用案例的性能。 Tensorflow目标检测API地址...

3889
来自专栏腾讯大数据的专栏

深度神经网络DNN的多GPU数据并行框架 及其在语音识别的应用

深度神经网络(Deep Neural Networks, 简称DNN)是近年来机器学习领域中的研究热点,产生了广泛的应用。DNN具有深层结构、数千万参数需要学...

2637
来自专栏PaddlePaddle

PaddlePaddle 版本1.1.0发布啦!

PaddlePaddle在基础框架、模型建设、分布式训练、预测引擎各个方向上完成多项更新。OP进行了全面完善和优化,模型库新增了自然语言处理、视觉和推荐等领域的...

1864
来自专栏量子位

自动机器学习工具全景图:精选22种框架,解放炼丹师

收集原始数据、合并数据源、清洗数据、特征工程、模型构建、超参数调优、模型验证和设备部署。

1444
来自专栏目标检测和深度学习

资源 | DLL:一个炙手可热的快速深度神经网络库

781
来自专栏新智元

DeepMind 提出分层强化学习新模型 FuN,超越 LSTM

【新智元导读】在用强化学习玩游戏的路上越走越远的 DeepMind,今天发表在 arxiv上的最新论文《分层强化学习的 FeUdal 网络》引起热议。简称 Fu...

48512
来自专栏机器之心

教程 |「世界模型」实现,一步步让机器掌握赛车和躲避火球的技能

1525
来自专栏腾讯云服务器团队的专栏

基于混合集成学习算法的热迁移超时预测模型

在云计算资源管理中,热迁移是实现资源配置的重要手段,常常会因为多种场景需要发起热迁移:例如资源调配,母机负载均衡以及运维人工热迁移等场景。

5323
来自专栏机器学习算法与Python学习

10月机器学习开源项目Top10

过去一个月里,我们对近 250 个机器学习开源项目进行了排名,并挑选出热度前 10 的项目。这份清单的平均 github star 数量高达 1345,涵盖了包...

1013
来自专栏AI研习社

问答 | 迁移学习有哪些入门建议?

1233

扫码关注云+社区

领取腾讯云代金券