CN108563950B - 基于SVM的Android恶意软件检测方法 - Google Patents

基于SVM的Android恶意软件检测方法 Download PDF

Info

Publication number
CN108563950B
CN108563950B CN201810227892.7A CN201810227892A CN108563950B CN 108563950 B CN108563950 B CN 108563950B CN 201810227892 A CN201810227892 A CN 201810227892A CN 108563950 B CN108563950 B CN 108563950B
Authority
CN
China
Prior art keywords
system call
svm
detection method
system calls
android
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810227892.7A
Other languages
English (en)
Other versions
CN108563950A (zh
Inventor
宁卓
张佩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing University of Posts and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Posts and Telecommunications filed Critical Nanjing University of Posts and Telecommunications
Priority to CN201810227892.7A priority Critical patent/CN108563950B/zh
Publication of CN108563950A publication Critical patent/CN108563950A/zh
Application granted granted Critical
Publication of CN108563950B publication Critical patent/CN108563950B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Stored Programmes (AREA)

Abstract

本发明揭示了一种对于Android精确的恶意软件检测方法,通过贡献级别分类系统调用。不同于现有的使用全部系统调用构造特征向量来确定应用程序的安全性,首先引入了一个名为贡献的概念来定量评估系统调用与恶意软件标识的相关性。根据贡献水平,可以将系统调用分为两类,即确定的系统调用和正常的系统调用。用去除正常系统调用的策略对提取的特征进行降维处理,减少不确定性数据,并使用支持向量机SVM检测Android恶意软件。本发明该方法的应用,能使得模型训练时间缩短,并且检测未知恶意软件的准确率明显提高。

Description

基于SVM的Android恶意软件检测方法
技术领域
本发明涉及通信领域的软件检测方法,尤其涉及一种针对安卓应用的恶意软件检测方法。
背景技术
近几年以来,Android和iOS系统已占据智能终端的绝大多数市场。尤其是Android系统所占的比例已超过了百分之八十,再加上iOS系统拥有封闭统一的应用程序电子市场,且本身的安全设计较完备,因此应用程序的安全问题也主要存在于已“越狱”的设备中。近几年有关智能终端的安全研究主要针对于Android操作系统,主要存在以下三个方向。第一种方向是,在Android设备加载应用软件之前便对代码中可能存在的恶意行为进行检测。这种检测方法分为静态和动态分析两种方法,主要利用己知恶意软件中的恶意行为或代码等特征对恶意软件可能带来的危害进行分析。静态分析方法是在不安装、运行应用程序的情况下通过逆向工程技术对应用程序进行反编译,并从源代码中提取出相关恶意代码特征;而动态分析方法则是通过让应用程序在沙盒或模拟器环境下安装运行,在运行过程中监测分析各类行为以检测恶意软件。第二种方向则是当应用程序运行在Android设备中时,运用将监控代码插入到关键应用程序接口处的方法修改Android平台的源代码,以此来监听恶意程序的各种行为。第三种方向是在企业安全应用中常被采用的安全隔离技术,主要运用虚拟化技术划分出应用程序的区域等级,以此实现严格的访问控制。
本创作的研究重点是第一种方向—在Android设备加载应用软件之前便对代码中可能存在的恶意行为进行检测,着重分析了静态和动态两种方法。
静态分析通过逆向工程对应用程序进行反编译,提取出关键的特征代码,以此判断有无恶意代码的存在。静态分析能够快速、有效地将己知的恶意软件代码查出,但它的缺点也比较明显。静态分析基于匹配进行分析,一旦恶意软件代码匹配的对象不明确,或者代码经过混淆、加密之后重打包,即使是已知的恶意软件代码也很难被识别出来,且静态分析方法不能用于处理未知恶意软件特征。
动态分析方法是在应用软件运行时对恶意行为进行检测,在模拟的运行环境中触发应用软件的API调用。
支持向量机(以下简称SVM)作为一种代表性的机器学习方法,解决了过学习,非线性,维数灾难和局部极小点等难题,具有良好的分类性能,与机器学习的其它算法相比,应用到Android应用程序的安全检测工作中更有它的优越性,是近年来机器学习方法应用到Android安全检测领域中的一个重要分支,发挥了重要作用,对其进行研究具有前沿性和必要性。
总的来说,恶意代码的检测是定义和分析恶意代码的模式,分析源代码中的关系和概念,侧重于对代码特征和恶意特性的匹配与检测。恶意代码往往也会导致恶意行为,两者有很多的交叉之处,实际的检测中也常常是将两者结合起来分析的。目前,基于SVM的Android应用恶意代码检测主要是提取已知恶意代码的某些二进制编码作为特征码,用数量化的特征向量的形式表示和存储,训练分类模型,从而达到对未知应用样本的预测。将SVM运用于恶意代码的检测工作中是对恶意代码检测技术的有益探索与扩展,力图让检测过程智能化,丰富了对恶意代码的检测手段,取得了很多成果,但仍需要进行更多深入的改进与研究。
发明内容
鉴于此,本发明的目的旨在提出一种基于SVM的Android恶意软件检测方法,解决Android平台下应用软件的恶意代码检测与分析的手段扩展问题。
本发明解决上述问题所采用的技术方案为:基于SVM的Android恶意软件检测方法,其特征在于包括步骤:
获取系统调用序列:在安卓平台上运行程序,向程序发送数量级为千个的伪用户事件,并用strace跟踪获得与伪用户事件相对应的调用序列;
分类系统调用序列:引入贡献度概念,按公式Ci=|(|Bi|\|B|)-(|Mi|\|M|)|计算各系统调用序列中单独的系统调用的贡献值并以降序排列,并基于贡献值设定门槛分类确定的系统调用和正常的系统调用,其中|Bi|代表来自良性应用的系统调用序列si的整体发生时间;|B|是所有来自良性应用的系统调用序列的数量;|Mi|是来自恶意软件的系统调用序列中si的总发生次数;|M|是来自恶意软件的所有系统调用序列的数目;
降维:保留确定的系统调用,并映射到联合向量空间S,样本用向量表示;将样本与联合向量空间S对比得到一个由1、0组成的向量,并用哈希表或布隆过滤器建立并存储向量矩阵;
识别恶意软件:选择径向基函数作为支持向量机的核函数,并确定分类选择的核函数的最佳参数组合,对恶意软件进行分类检测。
进一步地,获取系统调用序列步骤中,向程序发送伪用户事件所采用的是Monkey工具。
进一步地,获取系统调用序列步骤中,向程序发送伪用户事件的数量为1000个。
进一步地,分类系统调用序列步骤中,所述贡献度为评定所述系统调用对恶意软件识别的重要程度。
进一步地,分类系统调用序列步骤中,基于贡献值设定门槛的标准为选择系统全部系统调用的30%作为高频率的系统调用,对贡献值为门槛以上的判定为确定的系统调用,而对贡献度小于门槛的判定为正常的系统调用。
进一步地,降维步骤中在保留确定的系统调用同时,将正常的系统调用舍弃。
进一步地,降维步骤中包括数据集的特征提取,将样本与联合向量空间S对比,一个样本如果存在对应的特征则标记为1、如果不存在对应的特征标记为0,并通过哈希表和布隆过滤器建立并存储向量矩阵。
进一步地,识别恶意软件步骤中支持向量机确定各核函数的最佳参数组合是通过采用网格搜索法和遗传算法组合处理,并利用十折交叉验证得到各组核函数的最高平均分类率,比较各组最高平均分类率得到确定选择的核函数以及参数组合。
更进一步地,所述网格搜索法包括粗选和精选两个从步骤,通过粗选确定参数范围,而后通过精选逐步缩小搜索范围和步长完成处理。
与现有技术相比,本发明具有突出的实质性特点和显著的进步性,其有益效果体现为:系统调用能使得模型训练时间缩短,并且检测未知恶意软件的准确率明显提高。
附图说明
图1是本发明中安卓恶意软件检测方法的流程示意图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,所举实例只用于解释本发明,并非用于限定本发明的范围。
鉴于前述背景技术之不足和安卓应用程序之需求,本发明的设计者籍由从事本专业多年研究之经验,经创造性劳动提出了一种基于SVM的Android恶意软件检测方法,解决Android平台下应用软件的恶意代码检测与分析的手段扩展问题。本申请将SVM作为研究的重点,对其在Android应用程序安全检测方面的研究进行了分析与总结。
从概括性的技术描述来看,该基于SVM的Android恶意软件检测方法的创新特征见于步骤:
获取系统调用序列:在安卓平台上运行程序,向程序发送数量级为千个的伪用户事件,并用strace跟踪获得与伪用户事件相对应的调用序列;
分类系统调用序列:引入贡献度概念,按公式Ci=|(|Bi|\|B|)-(|Mi|\|M|)|计算各系统调用序列中单独的系统调用的贡献值并以降序排列,并基于贡献值设定门槛分类确定的系统调用和正常的系统调用,其中|Bi|代表来自良性应用的系统调用序列si的整体发生时间;|B|是所有来自良性应用的系统调用序列的数量;|Mi|是来自恶意软件的系统调用序列中si的总发生次数;|M|是来自恶意软件的所有系统调用序列的数目;
降维:保留确定的系统调用,并映射到联合向量空间S,样本用向量表示;将样本与联合向量空间S对比得到一个由1、0组成的向量,并用哈希表或布隆过滤器建立并存储向量矩阵;
识别恶意软件:选择径向基函数作为支持向量机的核函数,并确定核函数的最佳参数组合,对恶意软件进行分类检测。
在上述概括方案的基础上,为进一步细化了解其创新含义和可实施性。以下从各步骤展开描述其优选的实施方式。
上述获取系统调用序列步骤中,向程序发送伪用户事件所采用的是Monkey工具,当然也可以是具备相同功能的此类工具。而向程序发送伪用户事件的数量优选为1000个。当然也可以在合适的范围内增减,即500-2500个之间。
上述分类系统调用序列步骤中,其中贡献度为评定所述系统调用对恶意软件识别的重要程度。而基于贡献值设定门槛的标准为选择系统全部系统调用的30%作为高频率的系统调用,对贡献值为门槛以上的判定为确定的系统调用,而对贡献度小于门槛的判定为正常的系统调用。即前k个系统调用的贡献值不小于第k个系统调用,则属于确定的系统调用,而剩下的则归属到正常的系统调用。
上述降维步骤中在保留确定的系统调用同时,将正常的系统调用舍弃。且还包括数据集的特征提取,将样本与联合向量空间S对比,一个样本如果存在对应的特征则标记为1、如果不存在对应的特征标记为0,并通过哈希表和布隆过滤器建立并存储向量矩阵。
上述识别恶意软件步骤中支持向量机确定各核函数的最佳参数组合是通过采用网格搜索法和遗传算法组合处理,并利用十折交叉验证得到各组核函数的最高平均分类率,比较各组最高平均分类率得到确定选择的核函数以及参数组合。常用网格搜索法包括粗选和精选两个从步骤,先通过粗选确定参数范围,而后通过精选逐步缩小搜索范围和步长完成处理。
综上本发明的技术方案及其优选实施例的详细描述可见,本发明具有突出的实质性特点和显著的进步性,其有益效果体现为:系统调用能使得模型训练时间缩短,并且检测未知恶意软件的准确率明显提高。
以上详细描述了本发明的优选实施方式,但是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内进行修改或者等同变换,均应包含在本发明的保护范围之内。

Claims (9)

1.基于SVM的Android恶意软件检测方法,其特征在于包括步骤:
获取系统调用序列:在安卓平台上运行程序,向程序发送数量级为千个的伪用户事件,并用strace跟踪获得与伪用户事件相对应的调用序列;
分类系统调用序列:引入贡献度概念,按公式Ci=|(|Bi|\|B|)-(|Mi|\|M|)|计算各系统调用序列中单独的系统调用的贡献值并以降序排列,并基于贡献值设定门槛分类确定的系统调用和正常的系统调用,其中|Bi|代表来自良性应用的系统调用序列si的整体发生时间;|B|是所有来自良性应用的系统调用序列的数量;|Mi|是来自恶意软件的系统调用序列中si的总发生次数;|M|是来自恶意软件的所有系统调用序列的数目;
降维:保留确定的系统调用,并映射到联合向量空间S,样本用向量表示;将样本与联合向量空间S对比得到一个由1、0组成的向量,并用哈希表或布隆过滤器建立并存储向量矩阵;
识别恶意软件:选择径向基函数作为支持向量机的核函数,并确定分类选择的最佳参数组合,对恶意软件进行分类检测。
2.根据权利要求1所述基于SVM的Android恶意软件检测方法,其特征在于,获取系统调用序列步骤中,向程序发送伪用户事件所采用的是Monkey工具。
3.根据权利要求1所述基于SVM的Android恶意软件检测方法,其特征在于,获取系统调用序列步骤中,向程序发送伪用户事件的数量为1000个。
4.根据权利要求1所述基于SVM的Android恶意软件检测方法,其特征在于,分类系统调用序列步骤中,所述贡献度为评定所述系统调用对恶意软件识别的重要程度。
5.根据权利要求1所述基于SVM的Android恶意软件检测方法,其特征在于,分类系统调用序列步骤中,基于贡献值设定门槛的标准为选择系统全部系统调用的30%作为高频率的系统调用,对贡献值为门槛以上的判定为确定的系统调用,而对贡献度小于门槛的判定为正常的系统调用。
6.根据权利要求1所述基于SVM的Android恶意软件检测方法,其特征在于,降维步骤中在保留确定的系统调用同时,将正常的系统调用舍弃。
7.根据权利要求1所述基于SVM的Android恶意软件检测方法,其特征在于,降维步骤中包括数据集的特征提取,将样本与联合向量空间S对比,一个样本如果存在对应的特征则标记为1、如果不存在对应的特征标记为0,并通过哈希表和布隆过滤器建立并存储向量矩阵。
8.根据权利要求1所述基于SVM的Android恶意软件检测方法,其特征在于,识别恶意软件步骤中支持向量机确定各核函数的最佳参数组合是通过采用网格搜索法和遗传算法组合处理,并利用十折交叉验证得到各组核函数的最高平均分类率,比较各组最高平均分类率得到确定选择的核函数以及参数组合。
9.根据权利要求8所述基于SVM的Android恶意软件检测方法,其特征在于,所述网格搜索法包括粗选和精选两个从步骤,通过粗选确定参数范围,而后通过精选逐步缩小搜索范围和步长完成处理。
CN201810227892.7A 2018-03-20 2018-03-20 基于SVM的Android恶意软件检测方法 Active CN108563950B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810227892.7A CN108563950B (zh) 2018-03-20 2018-03-20 基于SVM的Android恶意软件检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810227892.7A CN108563950B (zh) 2018-03-20 2018-03-20 基于SVM的Android恶意软件检测方法

Publications (2)

Publication Number Publication Date
CN108563950A CN108563950A (zh) 2018-09-21
CN108563950B true CN108563950B (zh) 2022-03-15

Family

ID=63532781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810227892.7A Active CN108563950B (zh) 2018-03-20 2018-03-20 基于SVM的Android恶意软件检测方法

Country Status (1)

Country Link
CN (1) CN108563950B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110198299B (zh) * 2019-03-07 2021-08-17 腾讯科技(深圳)有限公司 一种入侵检测方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617393A (zh) * 2013-11-28 2014-03-05 北京邮电大学 一种基于支持向量机的移动互联网恶意应用软件检测方法
CN105809035A (zh) * 2016-03-07 2016-07-27 南京邮电大学 基于安卓应用实时行为的恶意软件检测方法和系统
CN106778266A (zh) * 2016-11-24 2017-05-31 天津大学 一种基于机器学习的安卓恶意软件动态检测方法
CN107180192A (zh) * 2017-05-09 2017-09-19 北京理工大学 基于多特征融合的安卓恶意应用程序检测方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160057159A1 (en) * 2014-08-22 2016-02-25 Syracuse University Semantics-aware android malware classification

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617393A (zh) * 2013-11-28 2014-03-05 北京邮电大学 一种基于支持向量机的移动互联网恶意应用软件检测方法
CN105809035A (zh) * 2016-03-07 2016-07-27 南京邮电大学 基于安卓应用实时行为的恶意软件检测方法和系统
CN106778266A (zh) * 2016-11-24 2017-05-31 天津大学 一种基于机器学习的安卓恶意软件动态检测方法
CN107180192A (zh) * 2017-05-09 2017-09-19 北京理工大学 基于多特征融合的安卓恶意应用程序检测方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于动态分析的Android应用程序安全研究;宁卓 等;《计算机科学》;20161130;第43卷(第11A期);全文 *

Also Published As

Publication number Publication date
CN108563950A (zh) 2018-09-21

Similar Documents

Publication Publication Date Title
CN107590388B (zh) 恶意代码检测方法和装置
EP3139297B1 (en) Malware determination device, malware determination system, malware determination method, and program
CN109271788B (zh) 一种基于深度学习的Android恶意软件检测方法
CN103106365B (zh) 一种移动终端上的恶意应用软件的检测方法
US20150256552A1 (en) Imalicious code detection apparatus and method
CN111931179B (zh) 基于深度学习的云端恶意程序检测系统及方法
CN113468524B (zh) 基于rasp的机器学习模型安全检测方法
CN112733146B (zh) 基于机器学习的渗透测试方法、装置、设备及存储介质
JP2017004123A (ja) 判定装置、判定方法および判定プログラム
KR102302484B1 (ko) 특성 선택에 기반한 모바일 악성 코드 분류 방법, 이를 수행하기 위한 기록 매체 및 장치
CN110532776B (zh) 基于运行时数据分析的Android恶意软件高效检测方法、系统及介质
CN111338692A (zh) 基于漏洞代码的漏洞分类方法、装置及电子设备
CN110990834B (zh) 一种android恶意软件的静态检测方法、系统及介质
CN112464297B (zh) 硬件木马检测方法、装置及存储介质
CN108563950B (zh) 基于SVM的Android恶意软件检测方法
CN112632538A (zh) 一种基于混合特征的安卓恶意软件检测方法及系统
CN115829712A (zh) 数据信息安全分级方法及装置
CN114065202B (zh) 一种恶意代码检测方法、装置、电子设备及存储介质
US20190156024A1 (en) Method and apparatus for automatically classifying malignant code on basis of malignant behavior information
CN110795705B (zh) 轨迹数据处理方法、装置、设备及存储介质
CN111190813B (zh) 基于自动化测试的安卓应用网络行为信息提取系统及方法
Ban et al. A cross-platform study on IoT malware
Che et al. An efficient intrusion detection approach based on hidden markov model and rough set
KR101907443B1 (ko) 구성 요소 기반 악성 파일 유사성 분석 장치 및 방법
CN112100621A (zh) 一种基于敏感权限和api的安卓恶意应用检测方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant