CN107153789B - 利用随机森林分类器实时检测安卓恶意软件的方法 - Google Patents
利用随机森林分类器实时检测安卓恶意软件的方法 Download PDFInfo
- Publication number
- CN107153789B CN107153789B CN201710269007.7A CN201710269007A CN107153789B CN 107153789 B CN107153789 B CN 107153789B CN 201710269007 A CN201710269007 A CN 201710269007A CN 107153789 B CN107153789 B CN 107153789B
- Authority
- CN
- China
- Prior art keywords
- feature
- sample
- programming interfaces
- application programming
- data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种利用随机森林分类器实时检测安卓恶意软件的方法,包括(1)收集网络数据;(2)应用程序接口调用数据流分组;(3)提取数据流最小单元;(4)提取调用序列特征;(5)训练隐马尔科夫模型;(6)训练随机森林模型;(7)提取待检测样本的应用程序接口数据流特征;(8)将待检测样本的特征向量输入随机森林检测模型,判断字段网络特征检测模型的输出是否为恶意软件类别;(9)输出待检测样本对应的恶意软件类别。本发明能够实时检测恶意软件以及对网络中传输的软件进行检测具有良好的检测准确率。
Description
技术领域
本发明属于通信技术领域,更进一步涉及网络安全技术领域中的一种利用随机森林分类器实时检测安卓恶意软件的方法。本发明可用于实时检测安卓软件中是否存在恶意软件,以便其他网络安全技术对安卓软件中所存在的恶意软件进行处理,从而保障安卓软件的信息安全。
背景技术
安卓恶意软件检测技术用于发现移动设备上存在的恶意软件,以便于其他网络安全技术阻止恶意软件对移动设备的危害活动。利用随机森林分类器的安卓恶意软件检测技术在近些年受到了学者的关注,这种方法通常是对应用程序产生的特征数据进行分析,从中提取出能够区分正常软件和恶意软件的特征,作为恶意软件的检测依据。目前基于分类器分析的安卓恶意软件检测技术有:
董航在其发表的博士论文“移动应用程序检测与防护技术研究”(北京邮电大学,中国知网)中提出一种基于HMMs-SVM模型的移动恶意行为动态分析方法。该方法分两个阶段,首先,通过将所有应用程序按照功能分类,分别运行各个分类中的所有学习样本,对其运行时行为进行捕获,对捕获的运行时行为数据进行预处理和特征提取,作为隐马尔可夫模型的观测值输入,使用Baum-Welch算法进行训练建模,得到每一类应用的隐马尔可夫模型,并将HMM的输出结果组成最大似然向量;然后,将最大似然向量作为最终决策分类的依据,输入SVM,学习得到训练好的SVM,建立HMMS-SVM分类器检测模型的训练过程;最后,使用建立的分类器模型进行恶意软件的检测。该方法存在的不足之处是:该方法以支持向量机作为最后检测依据,这种处理方式使得非常多的参数需要调整,导致调整周期长,如选择最合适的核函数,正则惩罚等。
电子科技大学在其拥有的专利技术“基于随机森林分类方法的Android平台恶意应用检测方法”(申请号CN 201510969901.6公开号CN 105550583A)中提出了一种利用随机森林分类方法来检测Android平台恶意软件行为的方法。该方法针对Android应用样本的多类特征,设计相应的随机森林决分类器,包括以下几种:Android应用样本的静态特征、权限集和API集构建样本库。该检测方法存在的不足之处是:该方法设计的随机森林分类器所有提取的特征均来自样本的静态特征,并不能检测Android应用样本在运行时数据。该方法对于所有Android应用程序进行特征提取,降低了安卓恶意检测成功率,不能充分利用随机森林分类器对特征进行分类。现阶段的一些基于分类器的安卓恶意软件检测方法存在以下不足之处:第一,现有的基于分类器的安卓恶意软件检测方法通常是对不同Android样本分类之后进行分析,或者是对样本逐个进行静态分析的处理方式使得恶意软件检测的实时性不能得到保障;第二,现有的基于应用程序接口数据流分析的安卓恶意软件检测方法使用的调用序列特征比较单一,没有充分利用应用程序接口数据流的各种类型的特征,使得恶意软件检测的检测准确率不能得到保障;第三,现有的基于应用程序接口数据流分析的安卓恶意软件检测方法中使用的应用程序接口数据流调用序列特征,通常现有的基于聚类算法的安卓恶意软件检测方法是对具有相同家族安卓样本进行分析,或者是对样本逐个进行静态分析的处理方式使得恶意软件检测的样本之间的内在关联性不能得到保障;第四,现有的基于随机森林分类器分析的安卓恶意软件检测方法中使用的静态特征,通常是Android应用标识符、申请权限、所调用的API等特征,在面对使用安卓应用样本进行运行时数据分析之时便不能有效进行检测;第五,现有的基于分类器的安卓恶意软件检测方法使用的运行时数据特征比较单一,没有充分利用Android应用样本运行时的各种类型的特征,降低了恶意软件检测的准确率。
发明内容
本发明的目的是克服上述现有技术的不足,提出一种利用随机森林分类器实时检测安卓恶意软件的方法,在隐马尔科夫模型之上加入随机森林决策树模型,进一步加强和巩固程序的安全性评估。
实现本发明的具体思路是:本发明提出的方法包括模型建立阶段和实时检测阶段,其中模型建立阶段,对所有已经下载的Android应用软件样本通过运行,提取出运行时数据特征,然后使用隐马尔可夫模型对不同类型的数据特征建立隐马尔科夫模型,将隐马尔科夫模型的各个观测单元的最大似然输出组成最大似然向量,作为随机森林分类器的观测值输入,完成HMM-RF检测模型的训练过程;实时检测阶段,是使用模型训练阶段建立的恶意软件检测模型,对待检测软件样本进行实时检测,输出检测结果。
实现本发明目的的具体步骤如下:
(1)收集网络数据:
使用数据包捕获工具,分别收集正常软件样本和恶意软件样本所产生的运行时应用程序接口调用数据流,将收集到的运行时应用程序接口调用数据流作为训练恶意软件检测模型的初始数据集;
(2)应用程序接口调用数据流分组:
根据应用程序接口数据流的分组规则,对初始应用程序接口调用数据集进行分组,得到多个不同应用程序接口数据流类型的分组;
(3)提取数据流最小单元:
根据应用程序接口数据流最小单元的分组规则,提取不同应用程序接口数据流类型的分组,从运行时trace文件生成的应用程序接口数据流调用关系树中,提取应用程序接口数据流最小单元;
(4)提取调用序列特征:
(4a)根据运行时trace文件对应的应用程序接口数据流最小单元,分别从每个应用程序接口数据流最小单元的头部字段调用信息中,提取多种网络行为特征序列;
(4b)将提取到的多种网络行为特征中每一项网络行为特征作为对应向量的每一列特征元素,组成字段网络特征向量;
(5)训练隐马尔科夫模型:
(5a)分别将每个字段网络特征向量标记为与该特征向量对应的软件样本类别,将所有标记后的字段网络特征向量组成隐马尔科夫模型的训练样本集;
(5b)利用Baum-Welch算法,对训练样本集进行训练,得到隐马尔科夫模型;
(5c)利用最大似然推导公式,计算在Baum-Welch算法下得到的隐马尔科夫模型的最大似然输出,将多个类型的最大似然输出组成最大似然向量;
(6)训练随机森林模型:
(6a)将最大似然向量作为随机森林模型的观测值训练样本集;
(6b)利用随机森林算法,对训练样本集进行训练,得到随机森林分类器检测模型;
(7)提取待检测样本的应用程序接口数据流特征:
(7a)利用网络数据包捕获工具,实时捕获待检测样本的应用程序接口数据流特征;
(7b)根据各类数据流的分组定义规则,得到待检测样本的应用程序接口数据流分组;
(7c)根据数据流最小单元的定义规则,从待检测样本的应用程序接口数据流分组中提取应用程序接口数据流最小单元;
(7d)提取到网络行为特征作为向量的元素,组成字段网络特征向量;
(8)将待检测样本的特征向量输入随机森林检测模型,判断特征检测模型的输出是否为恶意软件类别,若是,则执行步骤(9),否则,执行步骤(10);
(9)将待检测样本标记为恶意软件,输出待检测样本对应的恶意软件类别;
(10)将待检测样本标记为正常软件,输出待检测样本对应的正常软件类别。
本发明与现有技术相比具有如下优点:
第一,由于本发明在数据流分组中,根据应用程序接口数据流的分组规则,对初始应用程序接口调用数据集进行分组,得到多个不同应用程序接口数据流类型的分组;在提取数据流最小单元中,根据应用程序接口数据流最小单元的分组规则,提取不同应用程序接口数据流类型的分组,克服了现有技术通常对相似数据流进行分析,或者是对数据流逐个进行分析的处理方式使得恶意软件检测的实时性不能得到保障的缺点,使得本发明的方法具有能够实时检测恶意软件的优点。
第二,由于本发明通过对应用程序接口数据流进行分析,提取调用序列特征,克服了现有的基于应用程序接口数据流分析的安卓恶意软件检测方法使用的调用序列特征比较单一,没有充分利用应用程序接口数据流的各种类型的特征的缺点,使得本发明的方法具有良好的检测准确率。
第三,由于本发明通过训练隐马尔科夫检测模型,克服了现有的基于应用程序接口数据流分析的安卓恶意软件检测方法中使用的应用程序接口数据流调用序列特征,通常现有的基于聚类算法的安卓恶意软件检测方法是对具有相同家族安卓样本进行分析,或者是对样本逐个进行静态分析的处理方式使得恶意软件检测的样本之间的内在关联性不能得到保障的缺点,使得本发明具有更好的内在关联性。
第四,由于本发明通过训练随机森林检测模型,克服了现有的基于随机森林分类器分析的安卓恶意软件检测方法中使用的静态特征,通常是Android应用标识符、申请权限、所调用的API等特征,在面对使用安卓应用样本进行运行时数据分析之时便不能有效进行检测的缺点,使得本发明具有更好的实时检测性。
第五,由于本发明实现了隐马尔科夫与随机森林决策树的双重恶意软件检测,克服了现有的基于分类器的安卓恶意软件检测方法使用的运行时数据特征比较单一,没有充分利用安卓应用样本运行时的各种类型的特征,使得恶意软件检测的准确率降低的缺点,使得本发明进一步增大了恶意软件检测准确率。
附图说明
图1为本发明方法的流程图;
图2为使用隐马尔可夫检测模型步骤的流程图;
图3为使用随机森林分类器检测模型步骤的流程图。
具体实施方式
本发明提出了一种利用随机森林分类器实时检测安卓恶意软件的方法,该方法基于隐马尔科夫模型,可以通过内在的相似性来判断应用程序与各个类别的相似度;在此基础之上引入更适合处理分类问题的随机森林模型,在一定程度上反映出不同类别、相似行为的差异,即利用随机森林分类器模型对相似的行为序列进行识别。
参照图1,本发明的双重安全认证过程如下:
步骤1,收集网络数据。
使用数据包捕获工具,分别收集正常软件样本和恶意软件样本所产生的运行时应用程序接口调用数据流,将收集到的运行时应用程序接口调用数据流作为训练恶意软件检测模型的初始数据集;
步骤2,应用程序接口调用数据流分组。
根据应用程序接口数据流的分组规则,对初始应用程序接口调用数据集进行分组,得到多个不同应用程序接口数据流类型的分组。
所述的应用程序接口数据流的分组规则是指,对于初始数据集中的应用程序接口数据流,按照数据流的时间顺序,将两个数据流时间间隔小于4.5秒的相邻应用程序接口数据流,划分为一个数据流分组。
步骤3,提取数据流最小单元。
根据应用程序接口数据流最小单元的分组规则,提取不同应用程序接口数据流类型的分组,从运行时trace文件生成的应用程序接口数据流调用关系树中,提取应用程序接口数据流最小单元;
所述的应用程序接口数据流最小单元的分组规则是指,对于每一个应用程序接口数据流分组内的数据包,按照数据包的时间顺序,将具有相同的应用程序接口数据包,划分成一个应用程序数据流最小单元,7<Count<256,其中,Count为应用程序数据流最小单元中数据包的总数。
步骤4,提取调用序列特征。
根据运行时trace文件对应的应用程序接口数据流最小单元,分别从每个应用程序接口数据流最小单元的头部字段调用信息中,提取多种网络行为特征序列;
将提取到的多种网络行为特征中每一项网络行为特征作为对应向量的每一列特征元素,组成字段网络特征向量;
所述的网络特征向量包括,硬件访问、隐私信息获取、网络请求、网络数据传输、频繁文件读写、系统资源高负载、空闲状态字段。
步骤5,训练隐马尔科夫模型。
分别将每个字段网络特征向量标记为与该特征向量对应的软件样本类别,将所有标记后的字段网络特征向量组成隐马尔科夫模型的训练样本集;
利用Baum-Welch算法,对训练样本集进行训练,得到隐马尔科夫模型;
利用最大似然推导公式,计算在Baum-Welch算法下得到的隐马尔科夫模型的最大似然输出,将多个类型的最大似然输出组成最大似然向量;
所述的软件样本类别包括,正常软件样本和恶意软件样本两种类别。
参照附图2,对使用Baum-Welch算法训练隐马尔科夫模型模型的步骤做进一步的描述。
所述的Baum-Welch算法的具体步骤如下。
第1步,将字段特征向量作为训练样本集,其中每个字段特征向量的所有字段特征组成特征集合;
第2步,创建一个树节点;
第3步,判断训练样本集中的样本是否全属于同一类别,若是,则执行第4步,否则,执行第5步;
第4步,将树节点标记为该类叶子结点,执行第13步;
第5步,判断特征集合中的候选特征是否不为空,若是,则执行第7步,否则,执行第6步;
第6步,将树节点标记为训练样本集中样本数最多的软件样本类别,执行第13步;
第7步,按照下式,计算训练样本集的信息熵:
其中,H(D)表示训练样本集D的信息熵,Σ表示求和操作,V表示当前字段特征向量中向量元素的总数,pj表示到达第j个字段特征的概率的总和,*表示相乘操作,log2表示以2为底的自然对数操作;
第8步,按照下式,计算特征集合中每个字段特征的信息增益率:
其中,Ii表示特征集合中第i个字段特征的信息增益率,|·|表示取绝对值操作,Dj表示所有训练样本中特征值均相等为数值j的训练样本集;
第9步,从特征集合所有字段特征的信息增益率中,选择信息增益率最大的字段特征,作为树节点的最优特征;
第10步,将训练样本集代入树节点的最优特征的信息增益率公式中,得到训练样本集的不同取值,将训练样本集以取值相同为依据划分为不同的训练样本子集;
第11步,判断每个训练样本子集是否不为空,若是,则执行第12步,否则,生成一个子节点,执行第13步;
第12步,将训练样本子集作为训练样本集,从特征集合中去掉当前最优特征,继续递归执行第2步;
第13步,将当前分支结点标记为叶子结点,类别标记为训练样本集中样本最多的类别,循环结束,将每一个子节点依次串联生成Baum-Welch模型,执行第14步;
第14步,将Baum-Welch模型作为隐马尔科夫模型。
所述的最大似然推导公式如下:
第1步,按照下式,计算特征集合的转移概率:
其中,aij表示状态特征qi转移到状态特征qj的转移概率,T表示当前字段特征向量中向量元素的总数,δ(qi,qj)表示状态特征qi与状态特征qj的克罗奈可值,当状态特征qi与状态特征qj相等时,δ(qi,qj)等于1,当状态特征qi与状态特征qj不相等时,δ(qi,qj)等于0,qt表示特征集合中第t个字段特征,qi表示特征集合中第i个字段特征,qt+1表示特征集合中第t+1个字段特征,qj表示特征集合中第j个字段特征;
第2步,按照下式,计算特征集合的发散概率:
其中,bj(k)表示从特征集合中的状态特征qj至下一个状态特征qk的发散概率;
第3步,将状态特征qi与状态特征qj的转移概率和发散概率作为特征集合的最大似然输出。
步骤6,训练随机森林模型。
将最大似然向量作为随机森林模型的观测值训练样本集;
利用随机森林算法,对训练样本集进行训练,得到随机森林分类器检测模型;
利用随机森林算法,对训练样本集进行训练,得到统计特征检测模型。
参照附图2,对使用随机森林算法训练统计特征检测模型的步骤做进一步的描述。
所述的随机森林算法的具体步骤如下。
第1步,在[100,200]的范围内任意选取一个数,将其设定为随机森林中的基分类器的总数;
第2步,使用自助采样法,对应用程序数据流特征向量组成的训练样本集进行采样,得到基分类器的训练样本集;
第3步,从基分类器的训练样本集的统计特征集合中,随机选取m个特征,组成特征子集,m=log2M,其中M表示统计特征集合中的特征总数;
第4步,使用基分类器的训练样本集和特征子集对一棵决策树模型进行训练,将训练后的决策树模型存入到基分类器集合中;
第5步,判断基分类器集合中的决策树模型总数是否等于设定的基分类器的总数,若是,则执行第6步,否则,执行第2步;
第6步,将基分类器集合中的所有决策树模型组成随机森林,作为统计特征检测模型。
步骤7,提取待检测样本的应用程序接口数据流特征。
利用网络数据包捕获工具,实时捕获待检测样本的应用程序接口数据流特征;
根据各类数据流的分组定义规则,得到待检测样本的应用程序接口数据流分组;
根据数据流最小单元的定义规则,从待检测样本的应用程序接口数据流分组中提取应用程序接口数据流最小单元;
提取到网络行为特征作为向量的元素,组成字段网络特征向量;
步骤8,将待检测样本的特征向量输入随机森林检测模型,判断字段网络特征检测模型的输出是否为恶意软件类别,若是,则执行步骤(9),否则,执行步骤(10);
步骤9,将待检测样本标记为恶意软件,输出待检测样本对应的恶意软件类别。
步骤10,将待检测样本标记为正常软件,输出待检测样本对应的正常软件类别。
Claims (5)
1.一种利用随机森林分类器实时检测安卓恶意软件的方法,包括以下步骤:
(1)收集网络数据:
使用数据包捕获工具,分别收集正常软件样本和恶意软件样本所产生的运行时应用程序接口调用数据流,将收集到的运行时应用程序接口调用数据流作为训练恶意软件检测模型的初始数据集;
(2)应用程序接口调用数据流分组:
应用程序接口利用数据流的分组规则,对初始应用程序接口调用数据集进行分组,得到多个不同应用程序接口数据流类型的分组;
所述的数据流的分组规则是指,对于初始数据集中的应用程序接口数据流,按照数据流的时间顺序,将两个数据流时间间隔小于4.5秒的相邻应用程序接口数据流,划分为一个数据流分组;
(3)提取数据流最小单元:
应用程序接口利用数据流最小单元的分组规则,提取不同应用程序接口数据流类型的分组,从运行时trace文件生成的应用程序接口数据流调用关系树中,提取应用程序接口数据流最小单元;
所述的应用程序接口数据流最小单元的分组规则是指,对于每一个应用程序接口数据流分组内的数据包,按照数据包的时间顺序,将具有相同的应用程序接口数据包,划分成一个应用程序数据流最小单元,7<Count<256,其中,Count为应用程序数据流最小单元中数据包的总数;
(4)提取调用序列特征:
(4a)根据运行时trace文件对应的应用程序接口数据流最小单元,分别从每个应用程序接口数据流最小单元的头部字段调用信息中,提取多种网络行为特征序列;
(4b)将提取到的多种网络行为特征中每一项网络行为特征作为对应向量的每一列特征元素,组成字段网络特征向量;
(5)训练隐马尔科夫模型:
(5a)分别将每个字段网络特征向量标记为与该特征向量对应的软件样本类别,将所有标记后的字段网络特征向量组成隐马尔科夫模型的训练样本集;
(5b)利用Baum-Welch算法,对训练样本集进行训练,得到隐马尔科夫模型;
(5c)利用最大似然推导公式,计算在Baum-Welch算法下得到的隐马尔科夫模型的最大似然输出,将多个类型的最大似然输出组成最大似然向量;
所述的最大似然推导公式如下:
第1步,按照下式,计算特征集合中状态特征的转移概率:
其中,akj表示状态特征qk转移到状态特征qj的转移概率,T表示当前字段特征向量中向量元素的总数,δ(qk,qj)表示状态特征qk与状态特征qj的克罗奈可值,当状态特征qk与状态特征qj相等时,δ(qk,qj)等于1,当状态特征qk与状态特征qj不相等时,δ(qk,qj)等于0,qt表示特征集合中第t个状态特征,qk表示特征集合中第k个状态特征,qt+1表示特征集合中第t+1个状态特征,qj表示特征集合中第j个状态特征;
第2步,按照下式,计算特征集合的发散概率:
其中,bj(l)表示从特征集合中的状态特征qj至下一个状态特征ql的发散概率,ql表示特征集合中第l个状态特征;
第3步,将状态特征qi与状态特征qj的转移概率和发散概率作为特征集合的最大似然输出;
(6)训练随机森林模型:
(6a)将最大似然向量作为随机森林模型的观测值训练样本集;
(6b)利用随机森林算法,对训练样本集进行训练,得到随机森林分类器检测模型;
(7)提取待检测样本的应用程序接口数据流特征:
(7a)利用网络数据包捕获工具,实时捕获待检测样本的应用程序接口数据流特征;
(7b)根据数据流的分组规则,得到待检测样本的应用程序接口数据流分组;
所述的数据流的分组规则是指,对于初始数据集中的应用程序接口数据流,按照数据流的时间顺序,将两个数据流时间间隔小于4.5秒的相邻应用程序接口数据流,划分为一个数据流分组;
(7c)根据数据流最小单元的分组规则,从待检测样本的应用程序接口数据流分组中提取应用程序接口数据流最小单元;
所述的应用程序接口数据流最小单元的分组规则是指,对于每一个应用程序接口数据流分组内的数据包,按照数据包的时间顺序,将具有相同的应用程序接口数据包,划分成一个应用程序数据流最小单元,7<Count<256,其中,Count为应用程序数据流最小单元中数据包的总数;
(7d)提取到网络行为特征作为向量的元素,组成字段网络特征向量;
(8)将待检测样本的特征向量输入随机森林检测模型,判断特征检测模型的输出是否为恶意软件类别,若是,则执行步骤(9),否则,执行步骤(10);
(9)将待检测样本标记为恶意软件,输出待检测样本对应的恶意软件类别;
(10)将待检测样本标记为正常软件,输出待检测样本对应的正常软件类别。
2.根据权利要求1所述的利用随机森林分类器实时检测安卓恶意软件的方法,其特征在于,步骤(4a)中所述的多种网络行为特征序列包括:硬件访问、隐私信息获取、网络请求、网络数据传输、频繁文件读写、系统资源高负载、空闲状态字段。
3.根据权利要求1所述的利用随机森林分类器实时检测安卓恶意软件的方法,其特征在于,步骤(5a)中所述的软件样本类别包括,正常软件样本和恶意软件样本两种类别。
4.根据权利要求1所述的利用随机森林分类器实时检测安卓恶意软件的方法,其特征在于,步骤(5b)所述Baum-Welch算法的具体步骤如下:
第1步,将字段特征向量作为训练样本集,其中每个字段特征向量的所有字段特征组成特征集合;
第2步,创建一个树节点;
第3步,判断训练样本集中的样本是否全属于同一类别,若是,则执行第4步,否则,执行第5步;
第4步,将树节点标记为该类叶子结点,执行第13步;
第5步,判断特征集合中的候选特征是否不为空,若是,则执行第7步,否则,执行第6步;
第6步,将树节点标记为训练样本集中样本数最多的软件样本类别,执行第13步;
第7步,按照下式,计算训练样本集的信息熵:
其中,H(D)表示训练样本集D的信息熵,∑表示求和操作,V表示当前字段特征向量中向量元素的总数,pj表示到达第j个字段特征的概率的总和,*表示相乘操作,log2表示以2为底的自然对数操作;
第8步,按照下式,计算特征集合中每个字段特征的信息增益率:
其中,Ii表示特征集合中第i个字段特征的信息增益率,|·|表示取绝对值操作,Dj表示所有训练样本中特征值均为数值j的训练样本集;
第9步,从特征集合所有字段特征的信息增益率中,选择信息增益率最大的字段特征,作为树节点的最优特征;
第10步,将训练样本集代入树节点最优字段特征的信息增益率中,得到训练样本集的不同取值,将取值相同的训练样本划分为一个训练样本子集,得到取值不同的多个训练样本子集;
第11步,判断每个训练样本子集是否为空,若是,则执行第13步,否则,执行第12步;
第12步,将训练样本子集作为生成子节点的训练样本集,从训练样本集的特征集合中去掉当前最优特征,继续递归执行第2步;
第13步,将当前训练样本子集标记为叶子结点,类别标记为训练样本集中样本最多的类别,循环结束,将每一个子节点依次串联生成Baum-Welch模型,执行第14步;
第14步,将Baum-Welch模型作为隐马尔科夫模型。
5.根据权利要求1所述的利用随机森林分类器实时检测安卓恶意软件的方法,其特征在于,步骤(6b)中所述的随机森林算法具体步骤如下:
第1步,在[100,200]的范围内任意选取一个数,将其设定为随机森林中的基分类器的总数;
第2步,使用自助采样法,对应用程序数据流特征向量组成的训练样本集进行采样,得到基分类器的训练样本集;
第3步,从基分类器的训练样本集的统计特征集合中,随机选取m个特征,组成特征子集,m=log2M,其中M表示统计特征集合中的特征总数;
第4步,使用基分类器的训练样本集和特征子集对一棵决策树模型进行训练,将训练后的决策树模型存入到基分类器集合中;
第5步,判断基分类器集合中的决策树模型总数是否等于设定的基分类器的总数,若是,则执行第6步,否则,执行第2步;
第6步,将基分类器集合中的所有决策树模型组成随机森林,作为随机森林检测模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710269007.7A CN107153789B (zh) | 2017-04-24 | 2017-04-24 | 利用随机森林分类器实时检测安卓恶意软件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710269007.7A CN107153789B (zh) | 2017-04-24 | 2017-04-24 | 利用随机森林分类器实时检测安卓恶意软件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107153789A CN107153789A (zh) | 2017-09-12 |
CN107153789B true CN107153789B (zh) | 2019-08-13 |
Family
ID=59793988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710269007.7A Active CN107153789B (zh) | 2017-04-24 | 2017-04-24 | 利用随机森林分类器实时检测安卓恶意软件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107153789B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229158B (zh) * | 2018-01-10 | 2019-12-24 | 西安电子科技大学 | 一种Android中存储的用户隐私信息的保护方法 |
CN108762898B (zh) * | 2018-04-09 | 2023-04-25 | 平安科技(深圳)有限公司 | 一种线程接口的管理方法、终端设备及计算机可读存储介质 |
CN110392013A (zh) * | 2018-04-17 | 2019-10-29 | 深圳先进技术研究院 | 一种基于网络流量分类的恶意软件识别方法、系统及电子设备 |
CN108566307B (zh) * | 2018-05-01 | 2021-07-30 | 北京广成同泰科技有限公司 | 一种定量化的网络安全保护强度评估方法及系统 |
CN110611640A (zh) * | 2018-06-15 | 2019-12-24 | 成都蓝盾网信科技有限公司 | 一种基于随机森林的dns协议隐蔽通道检测方法 |
CN109657467A (zh) * | 2018-11-26 | 2019-04-19 | 北京兰云科技有限公司 | 一种网页后门检测方法和装置、计算机可读存储介质 |
CN109657452A (zh) * | 2018-12-20 | 2019-04-19 | 广东电网有限责任公司 | 一种移动应用行为动态可信评估方法及装置 |
RU2724710C1 (ru) * | 2018-12-28 | 2020-06-25 | Акционерное общество "Лаборатория Касперского" | Система и способ классификации объектов вычислительной системы |
US11308210B2 (en) * | 2019-01-22 | 2022-04-19 | International Business Machines Corporation | Automatic malware signature generation for threat detection systems |
CN111666404A (zh) * | 2019-03-05 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 一种文件聚类方法、装置及设备 |
CN110138745B (zh) * | 2019-04-23 | 2021-08-24 | 极客信安(北京)科技有限公司 | 基于数据流序列的异常主机检测方法、装置、设备及介质 |
CN110188834A (zh) * | 2019-06-04 | 2019-08-30 | 广东电网有限责任公司 | 一种电力通信网的故障诊断方法、装置及设备 |
CN110401955B (zh) * | 2019-09-06 | 2023-03-24 | 江门职业技术学院 | 一种移动网络恶意节点检测方法及系统 |
CN111382783A (zh) * | 2020-02-28 | 2020-07-07 | 广州大学 | 恶意软件识别方法、装置及存储介质 |
CN112100621B (zh) * | 2020-09-11 | 2022-05-20 | 哈尔滨工程大学 | 一种基于敏感权限和api的安卓恶意应用检测方法 |
CN112199095B (zh) * | 2020-10-16 | 2022-04-26 | 深圳大学 | 一种加密api使用分析方法及系统 |
CN112488154A (zh) * | 2020-11-06 | 2021-03-12 | 珠海格力电器股份有限公司 | 应用程序分类方法及组态软件服务系统 |
CN112861130B (zh) * | 2021-01-28 | 2022-09-06 | 济南大学 | 从n到n+1的多类转换恶意软件检测方法 |
CN113761912B (zh) * | 2021-08-09 | 2024-04-16 | 国家计算机网络与信息安全管理中心 | 一种对恶意软件归属攻击组织的可解释判定方法及装置 |
CN113704762B (zh) * | 2021-09-02 | 2022-06-21 | 广州大学 | 基于集成学习的恶意软件加密流量检测方法 |
CN113779579B (zh) * | 2021-09-14 | 2024-04-09 | 西安电子科技大学 | 面向安卓应用的多模型联合检测系统和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105184160A (zh) * | 2015-07-24 | 2015-12-23 | 哈尔滨工程大学 | 一种基于API对象调用关系图的Android手机平台应用程序恶意行为检测的方法 |
CN105550583A (zh) * | 2015-12-22 | 2016-05-04 | 电子科技大学 | 基于随机森林分类方法的Android平台恶意应用检测方法 |
-
2017
- 2017-04-24 CN CN201710269007.7A patent/CN107153789B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105184160A (zh) * | 2015-07-24 | 2015-12-23 | 哈尔滨工程大学 | 一种基于API对象调用关系图的Android手机平台应用程序恶意行为检测的方法 |
CN105550583A (zh) * | 2015-12-22 | 2016-05-04 | 电子科技大学 | 基于随机森林分类方法的Android平台恶意应用检测方法 |
Non-Patent Citations (1)
Title |
---|
基于随机森林的恶意移动应用动态检测方法研究;邱佳迪;《中国优秀硕士学位论文全文数据库信息科技辑》;20160415;第2016年卷(第04期);I138-63 |
Also Published As
Publication number | Publication date |
---|---|
CN107153789A (zh) | 2017-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107153789B (zh) | 利用随机森林分类器实时检测安卓恶意软件的方法 | |
Marino et al. | The more you know: Using knowledge graphs for image classification | |
CN109753801B (zh) | 基于系统调用的智能终端恶意软件动态检测方法 | |
CN105740712B (zh) | 基于贝叶斯网络的Android恶意行为检测方法 | |
CN109684840A (zh) | 基于敏感调用路径的Android恶意软件检测方法 | |
CN110245496A (zh) | 一种源代码漏洞检测方法及检测器和其训练方法及系统 | |
CN108376220A (zh) | 一种基于深度学习的恶意样本程序分类方法及系统 | |
CN102938054B (zh) | 基于视觉注意模型的压缩域敏感图像识别方法 | |
CN106960154A (zh) | 一种基于决策树模型的恶意程序动态识别方法 | |
CN105446741B (zh) | 一种基于api比对的移动应用程序辨识方法 | |
CN102571486A (zh) | 一种基于BoW模型和统计特征的流量识别方法 | |
CN106503558A (zh) | 一种基于社团结构分析的Android恶意代码检测方法 | |
CN107360152A (zh) | 一种基于语义分析的Web威胁感知系统 | |
CN107145778B (zh) | 一种入侵检测方法及装置 | |
CN109150873A (zh) | 基于pso_svm优化算法的恶意域名检测系统及方法 | |
CN110210218A (zh) | 一种病毒检测的方法以及相关装置 | |
CN107368856A (zh) | 恶意软件的聚类方法及装置、计算机装置及可读存储介质 | |
CN117081858B (zh) | 一种基于多决策树入侵行为检测方法、系统、设备及介质 | |
CN109190371A (zh) | 一种基于行为图的Android恶意软件检测方法和技术 | |
CN112733146B (zh) | 基于机器学习的渗透测试方法、装置、设备及存储介质 | |
CN110414367A (zh) | 一种基于gan和ssn的时序行为检测方法 | |
CN106685964A (zh) | 基于恶意网络流量词库的恶意软件检测方法及系统 | |
CN106843941A (zh) | 信息处理方法、装置和计算机设备 | |
CN110493262A (zh) | 一种改进分类的网络攻击检测方法及系统 | |
CN108229170A (zh) | 利用大数据和神经网络的软件分析方法和装置 |
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 |