CN105740712B - 基于贝叶斯网络的Android恶意行为检测方法 - Google Patents

基于贝叶斯网络的Android恶意行为检测方法 Download PDF

Info

Publication number
CN105740712B
CN105740712B CN201610130821.6A CN201610130821A CN105740712B CN 105740712 B CN105740712 B CN 105740712B CN 201610130821 A CN201610130821 A CN 201610130821A CN 105740712 B CN105740712 B CN 105740712B
Authority
CN
China
Prior art keywords
feature
bayesian network
android
classification
application
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
CN201610130821.6A
Other languages
English (en)
Other versions
CN105740712A (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.)
Harbin Engineering University
Original Assignee
Harbin Engineering University
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 Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN201610130821.6A priority Critical patent/CN105740712B/zh
Publication of CN105740712A publication Critical patent/CN105740712A/zh
Application granted granted Critical
Publication of CN105740712B publication Critical patent/CN105740712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于贝叶斯网络的Android恶意行为检测方法。具体过程为:步骤一:对Android应用训练样本进行静态特征提取;步骤二:进行特征预处理,采用卡方统计的特征选择方法,计算特征和类别之间的关联程度;步骤三:构建基于贝叶斯网络分类算法的Android软件恶意行为检测模型;步骤四:将待测APK提取的特征输入到训练好的贝叶斯网络病毒检测模型中,计算出所属类别的后验概率;步骤五:步骤四中得到两个数据,分别为待测APK提取的特征属于病毒类和正常类的后验概率,通过比较选择后验概率大的类别作为该应用的分类结果。本发明能够有效的检测Android恶意应用,同时在一定程度上降低了贝叶斯网络的学习时间。

Description

基于贝叶斯网络的Android恶意行为检测方法
技术领域
本发明属于Android恶意行为检测领域,尤其涉及一种基于贝叶斯网络的Android恶意行为检测方法。
背景技术
近几年移动终端技术发展十分迅速,功能也越来越强大,移动智能终端设备在人们的生活中扮演着越来越重要的角色,各种移动智能终端设备的数量也呈现爆炸式的增长。现在的移动终端主要采用的智能操作系统有Android、IOS、Windows Phone等。由于Android是一个开源系统,所以自推出以来Android系统很快成为各大手机厂商的预装系统。但与此同时,Android系统的恶意软件数量也呈现快速增长的态势,其中恶意扣费、窃取隐私、资源消耗是Android软件的主要恶意行为。现在应用市场每天都有大量的应用需要通过审核上架,但目前仍没有有效的检测方法。
在中国地区,Android恶意软件的传播途径主要通过第三方应用市场、短信、社交网络、系统ROM等方式。而很多应用市场并没有严格的安全标准和检测手段,这便为Androd恶意软件的传播提供了温床。
Android平台病毒程序的检测方法分为两种:静态分析和动态分析,目前常用的恶意行为检测方法有以下几种:
1)特征码扫描法。它是静态分析方法,是目前各大安全厂商采用的恶意行为检测方法,它的主要原理是通过分析病毒的样本,并将提取的病毒样本特征码存入数据库中。在扫描待检测应用时,提取待检测应用的特征码并与病毒库进行对比,如果病毒库中存在待检测应用的特征码,则判断为病毒。
2)基于程序行为特征的检测技术。它是动态分析方法,是一种新型的病毒检测方法,主要通过监控程序运行期间的行为特征来判别恶意程序。通常用来进行主动防御,避免程序运行期间给用户带来损失的先验行为。
3)启发式扫描技术。它是静态方法,通过分析病毒样本获得恶意行为的统计信息等先验知识,并将其用于检测未知恶意程序。恶意程序通常有类似的行为特征,通过分析恶意程序的多种指令序列的组合来识别恶意程序。如果发现应用中包含类似的行为规则,则判断为病毒。
通过对不同检测技术的分析和对比,静态检测技术是指应用程序的静态特征,它在运行期间是不会改变的,同时也能够表达程序在运行期间的行为描述。其中挖掘各种信息之间潜在的关系对检测Android应用的恶意行为有非常重要的意义。机器学习是数据挖局领域的一个重要分支,将机器学习的技术用于Android恶意行为的检测是研究的一个热点问题。
由于目前Android平台的安全局势和日益增长的病毒数量,给用户带来了严重的威胁,研制出一种安全、高效的检测方法是很有必要的。在Android应用上架前对APK进行病毒程序的静态分析,可以有效的阻止Android病毒应用的传播。
发明内容
本发明的目的是提供一种检测率高的,基于贝叶斯网络的Android恶意行为检测方法。
基于贝叶斯网络的Android恶意行为检测方法,包括以下步骤,
步骤一:对Android应用训练样本进行静态特征提取;
步骤二:对步骤一中提取的特征进行特征预处理,采用卡方统计的特征选择方法,计算特征和类别之间的关联程度;
步骤三:构建基于贝叶斯网络分类算法的Android软件恶意行为检测模型;
步骤四:将待测APK提取的特征输入到训练好的贝叶斯网络病毒检测模型中,计算出所属类别的后验概率;
步骤五:步骤四中得到两个数据,分别为待测APK提取的特征属于病毒类和正常类的后验概率,通过比较选择后验概率大的类别作为该应用的分类结果。
本发明基于贝叶斯网络的Android恶意行为检测方法,还可以包括:
1、静态特征提取是指:将apktool作为反编译工具,提取应用申请权限的信息、应用层API调用的信息、组件声明的信息以及应用的字符串信息,特征提取模块使用的编程语言是python。
2、Android软件恶意行为检测模型的构建方法为:
1)首先根据样本获取特征的先验概率,利用改进的关联规则算法MApriori挖掘特征之间的依赖关系;
2)学习贝叶斯网络分类器的模型,基于MApriori算法的贝叶斯网络学习主要分为两个阶段:结构学习和参数学习。
3、关联规则算法MApriori为:
首先计算特征集合的频繁二项集,然后利用频繁二项集获得两个特征之间的关联规则。
4、结构学习为:
首先根据MApriori算法获得了特征之间存在依赖关系的边的集合,通过最好局部优先搜索的策略,进行贝叶斯网络结构的学习。
5、参数学习为:
利用最小描述长度全局打分函数,即利用公式
其中b和n是常数,ki是代表Xi节点的父节点数量,si是Xi的取值数量。
6、贝叶斯网络分类器的模型构建方法为:
1)构造图G(V,E),V=Ω,
2)在R选择一条有向弧且满足:①在图中不产生回路;②在R的所有有向边中使得MDL得最小的打分,将从R中删除,打分值存在变量S中;
3)重复步骤2,直到R为或者打分值S已为最小值;
其中V表示频繁一项集的集合,并将其初始化为所有频繁一项集的集合,E为边的集合,并初始化为空集,R为MApriori算法获得的规则的集合。
有益效果:
在现有关联规则的算法Apriori中,挖掘的频繁项集可能包含多个特征的项,但在贝叶斯网络的构建中,需要表达的是两个特征之间的依赖关系,因此本发明基于Apriori算法提出了MApriori算法。MApriori算法只计算特征集合的频繁二项集,然后利用频繁二项集获得两个特征之间的关联规则。将关联规则应用于贝叶斯网络中,一方面可以根据关联规则去除冗余的特征,另一方面可以根据关联规则获得的频繁项集来预测不同属性组合对分类的影响。
贝叶斯网络以有向无环图的结构来表达特征之间的因果依赖关系,它突破特征之间相互独立的限制,能够使用更加广泛的特征用于网络的构建,因此对于样本中某个特征缺失的情况下仍然能有很好的检测率,对于不确定的问题仍有很好的推理能力。
附图说明
图1为机器学习流程图;
图2为Android应用恶意行为检测流程图;
图3为贝叶斯网络结构图。
具体实施方式
下面将结合附图对本发明做进一步详细说明
本发明使用静态分析的方法对Android平台病毒程序进行检测,静态分析方式主要通过反编译技术获取APK的静态行为特征,并不实际的运行应用程序。本发明将通过静态分析的方法提取Android软件训练样本的特征,然后通过数据挖掘技术挖掘各种信息之间潜在的关系,通过对样本数据的分析,自动发现样本数据中存在的规律,利用学习到的规律对未知的数据进行预测。机器学习是数据挖局领域的一个重要分支,机器学习的目的就是根据已有的样本数据建立一个具有较好的检测病毒程序的模型。本发明的目的就是建立好的Android恶意应用的分类模型,尽可能的提高Android恶意程序的检测率,降低恶意程序的漏报率和误报率。
机器学习的步骤主要包括特征的提取、特征的预处理、分类器的训练、结果预测等步骤,机器学习流程图如附图1所示。而贝叶斯分类器就属于机器学习的一种,且具有良好的数学理论基础。所以本发明将贝叶斯分类器应用于Android病毒程序的检测中。
检测Android未知软件的方法流程如附图2所示。从附图2可以看出,基于机器学习的Android未知软件的检测主要包括三个模块:静态行为特征的获取、特征的预处理和分类器模型的构建。本发明重点对分类器模型的构建进行了改进,将特征预处理阶段输出的特征向量输入到基于贝叶斯定理的贝叶斯分类器中,预测应用所属的类别并输出分类的结果。
贝叶斯分类的基本原理是利用样本的先验信息估计它的后验概率。贝叶斯定理中的先验概率是通过分析样本的数据而得出的某个事件发生的概率。后验概率是给定一个待测样本,且这个待测样本属于某一个类别的概率。在本发明中此处指的某一类别分为两类:病毒类和正常类。
本发明针对贝叶斯网络分类算法进行改进的原因如下:
1)贝叶斯网络以有向无环的图形的结构来表达特征之间的因果依赖关系,既考虑了特征之间的独立关系,也考虑了特征之间的因果关系,更加全面的表现了特征之间的联系,同时利用条件概率表进行定量的分析,能够根据给出的特征进行有效的因果推理。
2)贝叶斯网络分类算法突破特征之间相互独立的限制,能够使用更加广泛的特征用于网络的构建,因此对于样本中某个特征缺失的情况下仍然能有很好的检测率,对于不确定的问题仍有很好的推理能力。
3)贝叶斯网络的结构和条件概率表都是通过样本的先验知识获得的,先验的知识对与未知类型的应用有很好的预测能力,贝叶斯网络能够充分的利用先验的知识用于未知类型的预测。
附图3为常见的贝叶斯网络结构图,其中的Xi代表特征节点,C代表类别节点,特征之间没有边相连接,代表特征之间是条件独立的。对于图中的任意节点Xi,当Xi的父节点集合一定时,Xi与它的所有非子孙节点条件独立。贝叶斯网络分类器利用联合概率进行分类,能够充分的利用特征之间存在的依赖关系,从而在一定程度上提高了分类器的分类准确度。
贝叶斯网络模型的训练需要具有完备的样本集合,它的主要步骤如下:
步骤一:根据样本获取特征的先验概率;
步骤二:学习贝叶斯网络分类器的模型;
步骤三:通过将待测APK提取的特征输入到训练好的贝叶斯网络病毒检测模型中,推理计算出所属类别的后验概率;
步骤四:步骤三中得到两个数据,分别为待测APK提取的特征属于病毒类和正常类的后验概率,通过比较选择后验概率大的类别作为该应用的分类结果。
在本发明中建立的模型检测结果分为两类:病毒类和正常类。
Android平台是最近几年刚出现的移动系统,现已成为市场占有率最高的终端系统,而且它的智能终端功能也与PC越来越接近。但Android平台的病毒检测技术相比于PC还不够成熟,同时由于Android病毒应用的更迭周期较短,传统的特征码检测技术已不能适应移动平台的发展,且该方法对未知类型的病毒和变种程序病毒的检测率较低。本发明正是针对这一问题,研究将机器学习用于检测Android平台的病毒程序。本发明提出了将贝叶斯网络分类算法用于Android软件的恶意行为检测。Android软件恶意行为检测的主要步骤如下:
步骤一:对Android软件训练样本进行静态特征提取;
步骤二:对步骤一中提取的特征进行特征预处理。由于提取的APK文件静态特征数量过多,为了提取有效的特征用于贝叶斯网络(BN)的分类,提高模型的检测率分类影响大的特征,需要进行特征预处理。
步骤三:提取待检测APK特征,输入到本发明提出的基于贝叶斯网络分类算法的Android软件恶意行为检测模型中进行结果预测。它是通过对样本数据的分析,自动发现样本数据中存在的规律,利用学习到的规律对未知的数据进行预测。
由于实现Android应用的恶意行为需要不同的特征组合,而且不同的特征之间存在一定的因果依赖关系,为了充分表达特征之间存在的依赖关系,采用贝叶斯网络分类算法有利于提高Android恶意程序的检测率,本发明将改进的关联规则算法用于贝叶斯网络结构的构建,根据Noisy-OR模型完成条件概率表的学习,最终将模型用于检测Android软件存在的恶意行为。
一种基于贝叶斯网络的Android恶意行为检测方法,主要包括如下几个步骤:
步骤一:对Android应用训练样本进行静态特征提取;
步骤二:对步骤一中提取的特征进行特征预处理,采用卡方统计的特征选择方法,计算特征和类别之间的关联程度;
步骤三:构建基于贝叶斯网络分类算法的Android软件恶意行为检测模型;
步骤四:将待测APK提取的特征输入到训练好的贝叶斯网络病毒检测模型中,计算出所属类别的后验概率;
步骤五:步骤四中得到两个数据,分别为待测APK提取的特征属于病毒类和正常类的后验概率,通过比较选择后验概率大的类别作为该应用的分类结果。
在本发明中建立的模型检测结果分为两类:病毒类和正常类。
步骤一中所述的静态特征提取是指:将apktool作为反编译工具,提取应用申请权限的信息、应用层API调用的信息、组件声明的信息以及应用的字符串信息等,特征提取模块使用的编程语言是python。
步骤三中所述的基于贝叶斯网络分类算法的Android软件恶意行为检测模型构建方法主要步骤为:
1)首先根据样本获取特征的先验概率,利用改进的关联规则算法MApriori挖掘特征之间的依赖关系。
2)学习贝叶斯网络分类器的模型,基于MApriori算法的贝叶斯网络学习主要分为两个阶段:结构学习和参数学习。
将待测APK提取的特征输入到训练好的贝叶斯网络病毒检测模型中,通过对样本数据的分析,自动发现样本数据中存在的规律,利用学习到的规律对未知的数据进行预测。
上述步骤1)中所述的改进的关联规则算法MApriori表述为:首先计算特征集合的频繁二项集,然后利用频繁二项集获得两个特征之间的关联规则。
步骤2)中所述的结构学习表述为:首先根据MApriori算法获得了特征之间存在依赖关系的边的集合,通过最好局部优先搜索的策略,进行贝叶斯网络结构的学习。
步骤2)中所述的参数学习表述为:利用最小描述长度(MDL)全局打分函数,即利用公式(1)进行网络结构的学习,其中公式(1)中b和n是常数,ki是代表Xi节点的父节点数量,si是Xi的取值数量。
步骤2)中所述的贝叶斯网络分类器的模型构建如下,其中V表示频繁一项集的集合,并将其初始化为所有频繁一项集的集合,E为边的集合,并初始化为空集,R为MApriori算法获得的规则的集合。
1)构造图G(V,E),V=Ω,
2)在R选择一条有向弧且满足:①在图中不产生回路;②在R的所有有向边中使得MDL得最小的打分。将从R中删除,打分值存在变量S中。
3)重复步骤2,直到R为或者打分值S已为最小值。
基于机器学习的Android未知软件的检测主要包括三个模块:静态行为特征的获取、特征的预处理和分类器模型的构建。下面对静态行为特征的获取和特征的预处理做简单介绍,着重介绍分类器模型构建的实施步骤。
特征提取模块主要从APK中提取能够代表恶意行为的静态特征,提取的特征送入特征预处理模块,通过特征选择方法从众多的特征选择有代表性的特征,去除不相关的特征从而缩减特征的数量,将经过预处理的特征向量送入构建的贝叶斯网络分类器中,预测应用所属的类别并输出分类的结果。
贝叶斯网络模型的主要步骤如下:
步骤一:根据样本获取特征的先验概率;
步骤二:学习贝叶斯网络分类器的模型;
步骤三:通过将待测APK提取的特征输入到训练好的贝叶斯网络病毒检测模型中,推理计算出所属类别的后验概率;
步骤四:步骤三中得到两个数据,分别为待测APK提取的特征属于病毒类和正常类的后验概率,通过比较选择后验概率大的类别作为该应用的分类结果(病毒类或正常类)。
步骤一的具体实施如下:
步骤一的关键是对Android应用训练样本进行特征提取和特征预处理,然后挖掘特征之间的关联规则,得到在众多的数据特征中特征之间潜在的依赖关系,从无规则的数据中发现有意义的信息。通过样本的数据分析得出某些特征的出现与发生恶意应用软件的对应关系。然后通过分析样本获取这些特征的先验概率来估计出它的后验概率。
本发明利用关联规则算法挖掘的特征之间的依赖关系来表达特征之间的依赖关系。关联规则是形如的蕴含式,其中X是前件,Y是后件。如果存在关联规则则B特征在某种程度上依赖于A特征而存在。
关联规则生成算法MApriori的具体描述如下:
输入:频繁二项集L2最小置信度:Min_conf最小提升度:Min_lift
输出:关联规则集合R
1)输入频繁二项集L2,计算关联规则的提升度,如果的提升度大于Min_lift则执行步骤2,否则执行步骤3;
2)计算的置信度,如果的置信度大于Min_conf,则说明为强关联规则,将其加入到关联规则集合R中,否则执行步骤3;
3)计算关联规则的提升度,如果的提升度大于Min_lift则执行步骤4,否则执行步骤1;
4)计算的置信度,如果的置信度大于Min_conf,则说明为强关联规则,将其加入到关联规则集合R中,否则执行步骤1。
规则的置信度(Confidence)是指在样本集D中,同时包含特征X和Y的样本在只包含X特征的样本中所占的比例,即
规则的提升度(Lift),又称为兴趣度,其计算公式如下所示:
其中P(X)表示发生X事件的概率,P(Y)表示发生Y事件的概率,P(X,Y)表示事件X发生和事件Y发生。在提升度的计算中,如果X和Y是独立的,则的提升度为1,如果不为1,则代表X与Y之间存在依赖性,如果大于1,则表示X的出现导致Y的出现,如果小于1,则表示X的出现导致Y的不出现。
本发明通过关联规则不仅能够预测APK文件特征和类别之间的组合,还能够预测特征之间的关系组合,关联规则主要用于发现项目集合中的频繁项集和关联特性,将关联规则应用于贝叶斯网络中,一方面可以根据关联规则去除冗余的特征,另一方面可以根据关联规则获得的频繁项集来预测不同属性组合对分类的影响。关联规则的目的就是挖掘出样本集合中大于最小提升度和大于最小置信度阀值的关联规则。
步骤二的具体实施如下:
本发明基于MApriori算法的贝叶斯网络学习主要分为两个阶段:结构学习和参数学习。结构的学习形成符合实际逻辑的网络结构,用图形化的方式表达特征之间的依赖关系;参数学习主要是条件概率表的学习,发达特征之间的分布函数。
贝叶斯网络的结构学习在实施时,首先根据关联规则挖掘特征之间的依赖关系,然后根据依赖关系构建贝叶斯分类器的网络结构。在MApriori算法中,获得了特征之间存在依赖关系的边的集合,通过最好局部优先搜索的策略,进行贝叶斯网络结构的学习。
贝叶斯网络的参数学习在实施时,采用最小描述长度(MDL)全局打分函数进行网络结构的学习,对网络结构G的全局打分函数如公式如下所示,MDL打分值越小的网络结构越好。
其中b和n是常数,ki是代表Xi节点的父节点数量,si是Xi的取值数量。
其中V表示频繁一项集的集合,并将其初始化为所有频繁一项集的集合,E为边的集合,并初始化为空集,R为MApriori算法获得的规则的集合。本发明产生贝叶斯网络结构的过程如下:
1)构造图G(V,E),V=Ω,
2)在R选择一条有向弧且满足:①在图中不产生回路;②在R的所有有向边中使得MDL得最小的打分。将从R中删除,打分值存在变量S中。
3)重复步骤2,直到R为或者打分值S已为最小值。
至此贝叶斯网络结构已经构建完成,根据MDL打分函数对贝叶斯分类器的网络结构进行学习,根据先验知识确定存在的弧的数量和方向,得到近似真实的网络结构,同时通过对关联规则置信度的设定,大大的减少了搜索的空间。最后进行贝叶斯网络参数的学习,完成基于贝叶斯网络的恶意行为检测模型的构建。
步骤三的具体实施如下:
贝叶斯概率为后验概率,根据已知的样本统计的数据为先验概率,贝叶斯概率就是根据已有的知识计算后验概率的大小来发现事件发生的可能性。
在Android恶意行为的检测中,利用贝叶斯定理,如果C为类别的集合,在本文中的应用中类别C为{Benign(正常应用),Malware(恶意应用)}两个类别,A为我们提取的特征的向量表示,通过计算P(Benign|A)和P(Malware|A)的大小进行分类,分别代表在特征集合A的条件下,待分类应用属于某一个类别的可能性。将待测应用分类为概率两者中大的的那一个类别,计算公式如下所示:
由公式可知,P(Aj)可根据所搜集的样本的统计数据计算出来,公式中的分母是每个特征在样本空间中出现的概率,在特定的样本中,P(Aj)是根据已有的样本获取的先验知识,而分子的大小是一个全概率的公式,P(Aj|C)为属于类别C时Ai发生的条件概率,通过这个公式求出P(Benign|A)和P(Malware|A)的大小,并选择大的值为分类的结果。
本发明使用的测试环境主要采用Python编程语言实现恶意行为检测的框架,负责特征的提取和预处理。使用weka开源平台提供的接口实现本发明提出的方法并验证的方法效果。
1)试验方法:本次实验从Android Malware Genome Project项目获取1260个恶意样本,并从Android市场下载通过Virustotal检测的1200个正常应用,采用6折交叉验证的方法。本发明提出的构建贝叶斯网络分类器的模型用于区分正常应用和恶意应用,实验效果的评价标准主要有:检测率、误报率和漏报率。检测率是指被正确分类的恶意应用在样本集中恶意应用所占的比例,误报率是指正常的应用被分类为恶意应用的比例,漏报率是指恶意应用被分类为正常应用的比例。
2)实验结果:通过实验验证卡方统计的特征提取方法检测效果最好,所以本发明的实验均采用卡方统计的方法进行选取特征。本发明主要通过提取APK的静态特征检测潜在的恶意行为,从两个方面对本发明提出的方法进行验证:(1)不同特征的数量构建的模型的检测效果,(2)本文提出的恶意行为检测模型对检测恶意行为的有效性。
通过提取Android应用的静态特征,构建检测Android恶意程序的贝叶斯网络分类器,不同数量的特征形成不同的贝叶斯网络,因此分类的效果也不同。实验结果显示基于改进关联构建的贝叶斯网络分类模型能够有效的检测Android恶意应用,同时在一定程度上降低了贝叶斯网络的学习时间。

Claims (3)

1.基于贝叶斯网络的Android恶意行为检测方法,其特征在于:包括以下步骤:
步骤一:对Android应用训练样本进行静态特征提取;
步骤二:对步骤一中提取的特征进行特征预处理,采用卡方统计的特征选择方法,计算特征和类别之间的关联程度;
步骤三:构建基于贝叶斯网络分类算法的Android软件恶意行为检测模型;根据样本获取特征的先验概率,利用改进的关联规则算法MApriori挖掘特征之间的依赖关系;关联规则算法MApriori为,首先计算特征集合的频繁二项集,然后利用频繁二项集获得两个特征之间的关联规则;
步骤四:学习贝叶斯网络分类器的模型,基于MApriori算法的贝叶斯网络学习主要分为两个阶段:结构学习和参数学习;
步骤五:结构学习,首先根据MApriori算法获得了特征之间存在依赖关系的边的集合,通过最好局部优先搜索的策略,进行贝叶斯网络结构的学习;
步骤六:参数学习,利用最小描述长度全局打分函数,进行网络结构的学习;
步骤七:将待测Android应用提取的特征输入到训练好的贝叶斯网络病毒检测模型中,计算出所属类别的后验概率;
步骤八:步骤七中得到两个数据,分别为待测Android应用提取的特征属于病毒类和正常类的后验概率,通过比较选择后验概率大的类别作为该应用的分类结果。
2.根据权利要求1所述的基于贝叶斯网络的Android恶意行为检测方法,其特征在于:所述的静态特征提取是指:将apktool作为反编译工具,提取应用申请权限的信息、应用层API调用的信息、组件声明的信息以及应用的字符串信息,特征提取模块使用的编程语言是python。
3.根据权利要求1所述的基于贝叶斯网络的Android恶意行为检测方法,其特征在于:所述的贝叶斯网络分类器的模型构建方法为:
1)构造图G(V,E),V=Ω,
2)在R选择一条有向弧且满足:①在图中不产生回路;②在R的所有有向边中使得MDL得最小的打分,将从R中删除,打分值存在变量S中;
3)重复步骤2,直到R为或者打分值S已为最小值;
其中V表示频繁一项集的集合,并将其初始化为所有频繁一项集的集合,E为边的集合,并初始化为空集,R为MApriori算法获得的规则的集合。
CN201610130821.6A 2016-03-09 2016-03-09 基于贝叶斯网络的Android恶意行为检测方法 Active CN105740712B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610130821.6A CN105740712B (zh) 2016-03-09 2016-03-09 基于贝叶斯网络的Android恶意行为检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610130821.6A CN105740712B (zh) 2016-03-09 2016-03-09 基于贝叶斯网络的Android恶意行为检测方法

Publications (2)

Publication Number Publication Date
CN105740712A CN105740712A (zh) 2016-07-06
CN105740712B true CN105740712B (zh) 2018-07-24

Family

ID=56249299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610130821.6A Active CN105740712B (zh) 2016-03-09 2016-03-09 基于贝叶斯网络的Android恶意行为检测方法

Country Status (1)

Country Link
CN (1) CN105740712B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106570397A (zh) * 2016-04-19 2017-04-19 哈尔滨安天科技股份有限公司 一种自主学习的测试方法及系统
CN106709349B (zh) * 2016-12-15 2019-10-29 中国人民解放军国防科学技术大学 一种基于多维度行为特征的恶意代码分类方法
CN106685963B (zh) * 2016-12-29 2020-10-30 济南大学 一种恶意网络流量词库的建立方法及建立系统
CN107239387A (zh) * 2017-05-25 2017-10-10 深圳市金立通信设备有限公司 一种数据异常检测方法及终端
CN109389138A (zh) * 2017-08-09 2019-02-26 武汉安天信息技术有限责任公司 一种用户画像方法及装置
CN107463847B (zh) * 2017-09-18 2021-07-13 中国民航大学 一种Android系统下的权限共谋攻击检测方法
CN107506646B (zh) * 2017-09-28 2021-08-10 努比亚技术有限公司 恶意应用的检测方法、装置及计算机可读存储介质
CN107609400A (zh) * 2017-09-28 2018-01-19 深信服科技股份有限公司 计算机病毒分类方法、系统、设备及计算机可读存储介质
CN107888590B (zh) * 2017-11-10 2020-08-28 中孚信息股份有限公司 一种基于gpu与贝叶斯网络推理的未知木马的检测方法
CN108111539B (zh) * 2018-01-29 2021-03-30 华北电力大学 基于贝叶斯分类器的网络逃避行为检测方法
CN108959922B (zh) * 2018-05-31 2021-11-02 北京大学 一种基于贝叶斯网的恶意文档检测方法及装置
CN109344614B (zh) * 2018-07-23 2021-04-20 厦门大学 一种Android恶意应用在线检测方法
CN109542944B (zh) * 2018-09-29 2023-07-25 广东工业大学 基于时序因果关系分析的智能家居用户操控行为推荐方法
CN111105059B (zh) * 2018-10-26 2022-06-03 百度在线网络技术(北京)有限公司 属性冲突发现方法、装置和计算机可读存储介质
CN109657469B (zh) * 2018-12-07 2023-02-24 腾讯科技(深圳)有限公司 一种脚本检测方法及装置
CN109739953B (zh) * 2018-12-30 2021-07-20 广西财经学院 基于卡方分析-置信度框架和后件扩展的文本检索方法
CN109753800B (zh) * 2019-01-02 2023-04-07 重庆邮电大学 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统
CN110008700B (zh) * 2019-03-20 2020-12-22 北京大学 一种基于朴素贝叶斯的安卓恶意应用的检测方法及装置
CN110363003B (zh) * 2019-07-25 2022-08-02 哈尔滨工业大学 一种基于深度学习的Android病毒静态检测方法
CN110502900B (zh) * 2019-08-26 2022-07-05 Oppo广东移动通信有限公司 一种检测方法、终端、服务器及计算机存储介质
CN110990834B (zh) * 2019-11-19 2022-12-27 重庆邮电大学 一种android恶意软件的静态检测方法、系统及介质
CN113627451B (zh) * 2020-05-08 2024-04-19 许继集团有限公司 基于贝叶斯网络的非侵入式家庭用电行为动态监测方法
CN111371812B (zh) * 2020-05-27 2020-09-01 腾讯科技(深圳)有限公司 一种病毒检测方法、装置和介质
CN112632539B (zh) * 2020-12-28 2024-04-09 西北工业大学 一种Android系统恶意软件检测中动静混合特征提取方法
CN116307081A (zh) * 2023-02-03 2023-06-23 中国环境科学研究院 一种基于机器学习算法预测赤潮发生的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346829A (zh) * 2011-09-22 2012-02-08 重庆大学 基于集成分类的病毒检测方法
US8935788B1 (en) * 2008-10-15 2015-01-13 Trend Micro Inc. Two stage virus detection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935788B1 (en) * 2008-10-15 2015-01-13 Trend Micro Inc. Two stage virus detection
CN102346829A (zh) * 2011-09-22 2012-02-08 重庆大学 基于集成分类的病毒检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Android未知恶意软件检测方法的研究;乔静静;《中国优秀硕士学位论文全文数据库信息科技辑》;20140315(第03期);I138-94 *

Also Published As

Publication number Publication date
CN105740712A (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
CN105740712B (zh) 基于贝叶斯网络的Android恶意行为检测方法
Yan et al. Detecting malware with an ensemble method based on deep neural network
CN107885999B (zh) 一种基于深度学习的漏洞检测方法及系统
CN107153789B (zh) 利用随机森林分类器实时检测安卓恶意软件的方法
CN106778268A (zh) 恶意代码检测方法与系统
CN108985061B (zh) 一种基于模型融合的webshell检测方法
CN104598825A (zh) 一种基于改进贝叶斯算法的安卓恶意软件检测方法
CN103177215A (zh) 基于软件控制流特征的计算机恶意软件检测新方法
Qin et al. API call based ransomware dynamic detection approach using textCNN
CN109190371A (zh) 一种基于行为图的Android恶意软件检测方法和技术
CN105072214A (zh) 基于域名特征的c&c域名识别方法
CN109543410B (zh) 一种基于语义映射关联的恶意代码检测方法
CN106096413B (zh) 一种基于多特征融合的恶意代码检测方法及系统
CN105740711B (zh) 一种基于内核对象行为本体的恶意代码检测方法及系统
CN107122659A (zh) 一种快速定位Android应用软件中恶意代码或漏洞的方法
CN113420294A (zh) 基于多尺度卷积神经网络的恶意代码检测方法
CN109657461B (zh) 基于梯度提升算法的rtl硬件木马检测方法
CN113297580B (zh) 基于代码语义分析的电力信息系统安全防护方法及装置
CN106874762B (zh) 基于api依赖关系图的安卓恶意代码检测方法
CN113221109A (zh) 一种基于生成对抗网络的恶意文件智能分析方法
Dewanje et al. A new malware detection model using emerging machine learning algorithms
CN114003910B (zh) 一种基于动态图对比学习的恶意变种实时检测方法
Zhang et al. The classification and detection of malware using soft relevance evaluation
CN113468524B (zh) 基于rasp的机器学习模型安全检测方法
CN117692242A (zh) 一种基于图谱分析的网络攻击路径分析方法

Legal Events

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