CN105426760A - 一种安卓恶意应用的检测方法及装置 - Google Patents

一种安卓恶意应用的检测方法及装置 Download PDF

Info

Publication number
CN105426760A
CN105426760A CN201510745039.0A CN201510745039A CN105426760A CN 105426760 A CN105426760 A CN 105426760A CN 201510745039 A CN201510745039 A CN 201510745039A CN 105426760 A CN105426760 A CN 105426760A
Authority
CN
China
Prior art keywords
android
application
training sample
fusion feature
matrix
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.)
Granted
Application number
CN201510745039.0A
Other languages
English (en)
Other versions
CN105426760B (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.)
China Academy of Information and Communications Technology CAICT
Original Assignee
China Academy of Telecommunications Research CATR
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 China Academy of Telecommunications Research CATR filed Critical China Academy of Telecommunications Research CATR
Priority to CN201510745039.0A priority Critical patent/CN105426760B/zh
Publication of CN105426760A publication Critical patent/CN105426760A/zh
Application granted granted Critical
Publication of CN105426760B publication Critical patent/CN105426760B/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
    • G06F21/563Static detection by source code analysis
    • 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

Abstract

本发明提供了一种安卓恶意应用的检测方法及装置,涉及安卓系统技术领域,方法包括获取由恶意应用样本和正常应用样本组成的训练样本集;对所述训练样本集进行融合特征提取,并通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征;根据所述安卓应用相关融合特征建立基于极限学习机的恶意应用检测模型;根据所述基于极限学习机的恶意应用检测模型对待测试的安卓应用进行检测,确定所述待测试的安卓应用是否为恶意应用。本发明能够解决当前的通过基于特征码、基于静态源码分析或者基于动态行为等检测方法均可能造成安卓恶意应用的检测失败,不能正确确定恶意应用的问题。

Description

一种安卓恶意应用的检测方法及装置
技术领域
本发明涉及安卓系统技术领域,尤其涉及一种安卓恶意应用的检测方法及装置。
背景技术
当前,随着安卓(Android)移动智能终端的迅速普及,安卓应用(APP)的种类、数量也正在呈井喷式增长。然而,随之而来的网络与信息安全问题日益凸显,移动智能终端安全事件层出不穷,移动恶意应用肆意泛滥,个人隐私窃取、资费消耗等安全问题时有发生,严重影响行业的健康发展。而上述这些问题,大多是由移动恶意代码造成的。移动恶意代码通常在APP软件开发或二次打包过程中植入,通过诱骗欺诈、隐私窃取、恶意扣费等方式攫取经济利益或传播垃圾信息。其中恶意应用增长尤其迅猛,给智能终端用户带来了严重的经济损失。
为了避免恶意应用对安卓用户的损害,一般需要对恶意应用进行检测。国内外典型的安卓平台恶意代码检测技术主要有基于特征码、基于静态源码分析或者基于动态行为的检测方法。基于特征码的恶意应用检测方法是基于在被测样本中检测已经定义好的恶意代码的特征码。特征码是恶意代码分析工程师在对恶意应用进行逆向分析后提取出的一段字节序列。利用该字节序列与目标样本文件做比对判断是否包含恶意代码。特征码包含偏移地址和该地址的二进制信息,比如字符串、操作码、资源信息等。特征码往往需要手工处理分析得到,需要花费很长的时间和人力成本。基于静态源码分析是在不运行代码的方式下,通过语法分析、语言结构分析和控制流/数据流分析等技术对程序代码进行扫描分析得到敏感数据以及应用程序编程接口(ApplicationProgrammingInterface,API)调用;最后,根据预先制定的的对敏感数据以及API调用进行分析,确定是否为恶意行为。然而,基于静态源码分析方法无法检测代码混淆或加密的APP。基于动态行为的检测方法主要是分析安卓应用的系统调用、网络访问、文件和内存等方面的信息。将应用置于一个受控的环境中运行,监控应用与外界发生交互,例如调用操作系统API,或者使用通信功能收发数据,这些行为就会立刻被受控环境捕获并记录在案。通过对这些记录进行分析,判断应用中是否存在恶意行为。当然,动态行为监测方法也容易被恶意代码检测和反制。
可见,由于安卓恶意应用的数量和种类越来越多,以及安卓恶意应用反逆向、加固、抗检测技术不断发展增强当前对安卓恶意应用的检测较为困难,通过基于特征码、基于静态源码分析或者基于动态行为等检测方法均可能造成安卓恶意应用的检测失败,不能正确确定恶意应用。
发明内容
本发明的实施例提供一种安卓恶意应用的检测方法及装置,以解决当前的通过基于特征码、基于静态源码分析或者基于动态行为等检测方法均可能造成安卓恶意应用的检测失败,不能正确确定恶意应用的问题。
为达到上述目的,本发明采用如下技术方案:
一种安卓恶意应用的检测方法,包括:
获取由恶意应用样本和正常应用样本组成的训练样本集;
对所述训练样本集进行融合特征提取,并通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征;
根据所述安卓应用相关融合特征建立基于极限学习机的恶意应用检测模型;
根据所述基于极限学习机的恶意应用检测模型对待测试的安卓应用进行检测,确定所述待测试的安卓应用是否为恶意应用。
具体的,对所述训练样本集进行融合特征提取,包括:
对所述训练样本集进行基于静态分析的特征提取,形成所述训练样本集的静态特征;
对所述训练样本集进行基于动态分析的特征提取,形成所述训练样本集的动态特征;
对所述训练样本集进行基于网络流量的特征提取,形成所述训练样本集的网络流量特征;
将所述训练样本集的静态特征、动态特征以及网络流量特征进行融合,形成融合特征。
具体的,对所述训练样本集进行基于静态分析的特征提取,形成所述训练样本集的静态特征,包括:
获取所述训练样本集中各应用调用安卓系统组件的情况数据,并根据所述各应用调用安卓系统组件的情况数据确定第一静态特征向量Xstatic1
获取所述训练样本集中各应用所申请的安卓系统权限和调用API情况的统计数据,并根据所述各应用所申请的安卓系统权限和调用API情况的统计数据确定第二静态特征向量Xstatic2
具体的,对所述训练样本集进行基于动态分析的特征提取,形成所述训练样本集的动态特征,包括:
获取所述训练样本集中各应用调用安卓敏感API的次数;
根据所述各应用调用安卓敏感API的次数确定动态特征向量Xdynamic
具体的,对所述训练样本集进行基于网络流量的特征提取,形成所述训练样本集的网络流量特征,包括:
获取所述训练样本集中各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数;
根据各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数,确定所述训练样本集的网络流量特征向量Xtraffic
具体的,将所述训练样本集的静态特征、动态特征以及网络流量特征进行融合,形成融合特征,包括:
将所述第一静态特征向量Xstatic1、第二静态特征向量Xstatic2、动态特征向量Xdynamic以及网络流量特征向量Xtraffic进行融合叠加,获取得到融合特征X;X=[Xstatic1,Xstatic2,Xdymatic,Xtraffic]。
具体的,通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征,包括:
根据所述融合特征X生成融合特征矩阵A;所述融合特征矩阵A为N×K矩阵,且其中,N为训练样本集中的应用样本数目;K为融合特征矩阵A的维数。
对所述融合特征矩阵A进行归一化处理,得到归一化特征矩阵S;其中,S=(Sij)N×K所述为所述融合特征矩阵A每一列的均值,所述Dj为所述融合特征矩阵A每一列的标准差, D j = 1 N - 1 Σ i = 1 N ( A i j - A ‾ j ) 2 , j = 1 , 2 , ... , K ;
确定所述归一化特征矩阵S的相关系数矩阵Rs;其中,ST为归一化特征矩阵S的转置;
计算相关系数矩阵Rs的特征值的累计贡献率Bt;其中,所述相关系数矩阵Rs的特征值为λi,λi={λ12,...,λK},λ1≥λ2≥...≥λK,所述特征值λi对应的特征向量为E,E={E1,E2,...,EK}; B t = Σ i = 1 t λ i / Σ i = 1 K λ i ; t = 1 , 2 , ... , K ;
根据一预先设置的提取效率p,从特征向量E中选取T个主成分;其中,T=min{t|Bt≥p,t=1,2,…,K};
确定所述归一化特征矩阵S在提取出的T个特征向量E上的投影X’,将所述X’确定为安卓应用相关融合特征;其中,X'=SE。
具体的,根据所述安卓应用相关融合特征建立基于极限学习机的恶意应用检测模型,包括:
获取包含所述安卓应用相关融合特征X’的N个训练样本其中Yi为样本类别标签;Yi∈{-1,1};
获取预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi;其中g(x)为径向基函数;
根据训练样本预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi,计算隐层节点的输出矩阵H;
H ( W 1 , ... , W M , b 1 , ... , b M , X 1 , ... , X N ) = g ( W 1 · X 1 + b 1 ) ... g ( W M · X 1 + b M ) . . . ... . . . g ( W 1 · X N + b 1 ) ... g ( W M · X N + b M ) N × M
根据隐层节点的输出矩阵H和期望输出Y,确定输出权重其中, 为所述隐层节点的输出矩阵H的Moore-Penrose广义逆; Y = Y 1 T . . . Y N T N × M ;
根据隐层节点的输出矩阵H、前馈神经网络的输入权值Wi、偏置bi以及输出权重确定基于极限学习机的恶意应用检测模型:
f(X)=sgn(H(W,b)β)。
具体的,根据所述基于极限学习机的恶意应用检测模型对待测试的安卓应用进行检测,确定所述待测试的安卓应用是否为恶意应用,包括:
获取待测试的安卓应用的安卓应用相关融合特征X”;
根据所述待测试的安卓应用的安卓应用相关融合特征X”以及基于极限学习机的恶意应用检测模型f(X)=sgn(H(W,b)β)确定待测试的安卓应用的输出值;
若所述输出值为1,则确定所述待测试的安卓应用为正常应用;
若所述输出值为-1,则确定所述待测试的安卓应用为恶意应用。
一种安卓恶意应用的检测装置,包括:
训练样本集获取单元,用于获取由恶意应用样本和正常应用样本组成的训练样本集;
特征提取融合单元,用于对所述训练样本集进行融合特征提取,并通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征;
模型建立单元,用于根据所述安卓应用相关融合特征建立基于极限学习机的恶意应用检测模型;
检测单元,用于根据所述基于极限学习机的恶意应用检测模型对待测试的安卓应用进行检测,确定所述待测试的安卓应用是否为恶意应用。
具体的,所述特征提取融合单元,包括:
静态特征提取模块,用于对所述训练样本集进行基于静态分析的特征提取,形成所述训练样本集的静态特征;
动态特征提取模块,用于对所述训练样本集进行基于动态分析的特征提取,形成所述训练样本集的动态特征;
网络流量特征提取模块,用于对所述训练样本集进行基于网络流量的特征提取,形成所述训练样本集的网络流量特征;
融合模块,用于将所述训练样本集的静态特征、动态特征以及网络流量特征进行融合,形成融合特征。
此外,所述静态特征提取模块,具体用于:
获取所述训练样本集中各应用调用安卓系统组件的情况数据,并根据所述各应用调用安卓系统组件的情况数据确定第一静态特征向量Xstatic1
获取所述训练样本集中各应用所申请的安卓系统权限和调用API情况的统计数据,并根据所述各应用所申请的安卓系统权限和调用API情况的统计数据确定第二静态特征向量Xstatic2
此外,所述动态特征提取模块,具体用于:
获取所述训练样本集中各应用调用安卓敏感API的次数;
根据所述各应用调用安卓敏感API的次数确定动态特征向量Xdynamic
另外,所述网络流量特征提取模块,具体用于:
获取所述训练样本集中各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数;
根据各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数,确定所述训练样本集的网络流量特征向量Xtraffic
此外,所述融合模块,具体用于:
将所述第一静态特征向量Xstatic1、第二静态特征向量Xstatic2、动态特征向量Xdynamic以及网络流量特征向量Xtraffic进行融合叠加,获取得到融合特征X;X=[Xstatic1,Xstatic2,Xdymatic,Xtraffic]。
另外,特征提取融合单元,具体用于:
根据所述融合特征X生成融合特征矩阵A;所述融合特征矩阵A为N×K矩阵,且其中,N为训练样本集中的应用样本数目;K为融合特征矩阵A的维数。
对所述融合特征矩阵A进行归一化处理,得到归一化特征矩阵S;其中,S=(Sij)N×K所述为所述融合特征矩阵A每一列的均值,所述Dj为所述融合特征矩阵A每一列的标准差, D j = 1 N - 1 Σ i = 1 N ( A i j - A ‾ j ) 2 , j = 1 , 2 , ... , K ;
确定所述归一化特征矩阵S的相关系数矩阵Rs;其中,ST为归一化特征矩阵S的转置;
计算相关系数矩阵Rs的特征值的累计贡献率Bt;其中,所述相关系数矩阵Rs的特征值为λi,λi={λ12,...,λK},λ1≥λ2≥...≥λK,所述特征值λi对应的特征向量为E,E={E1,E2,...,EK}; B t = Σ i = 1 t λ i / Σ i = 1 K λ i ; t = 1 , 2 , ... , K ;
根据一预先设置的提取效率p,从特征向量E中选取T个主成分;其中,T=min{t|Bt≥p,t=1,2,…,K};
确定所述归一化特征矩阵S在提取出的T个特征向量E上的投影X’,将所述X’确定为安卓应用相关融合特征;其中,X'=SE。
此外,所述模型建立单元,具体用于:
获取包含所述安卓应用相关融合特征X’的N个训练样本其中Yi为样本类别标签;Yi∈{-1,1};
获取预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi;其中g(x)为径向基函数;
根据训练样本预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi,计算隐层节点的输出矩阵H;
H ( W 1 , ... , W M , b 1 , ... , b M , X 1 , ... , X N ) = g ( W 1 · X 1 + b 1 ) ... g ( W M · X 1 + b M ) . . . ... . . . g ( W 1 · X N + b 1 ) ... g ( W M · X N + b M ) N × M
根据隐层节点的输出矩阵H和期望输出Y,确定输出权重其中, 为所述隐层节点的输出矩阵H的Moore-Penrose广义逆; Y = Y 1 T . . . Y N T N × M ;
根据隐层节点的输出矩阵H、前馈神经网络的输入权值Wi、偏置bi以及输出权重确定基于极限学习机的恶意应用检测模型:
f(X)=sgn(H(W,b)β)。
另外,所述检测单元,具体用于:
获取待测试的安卓应用的安卓应用相关融合特征X”;
根据所述待测试的安卓应用的安卓应用相关融合特征X”以及基于极限学习机的恶意应用检测模型f(X)=sgn(H(W,b)β)确定待测试的安卓应用的输出值;
在所述输出值为1时,确定所述待测试的安卓应用为正常应用;
在所述输出值为-1时,确定所述待测试的安卓应用为恶意应用。
本发明实施例提供一种安卓恶意应用的检测方法及装置,通过对已知的训练样本集进行融合特征提取,能够使安卓恶意应用的检测涉及不同类型的特征所起的不同作用。通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征,并建立基于极限学习机的恶意应用检测模型,从而能够根据该模型确定未知的应用是否为恶意应用。避免了当前单一地通过基于特征码分析、基于静态源码分析或者基于动态行为等检测方法均可能造成不能正确确定恶意应用的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供一种安卓恶意应用的检测方法的流程图一;
图2为本发明实施例提供一种安卓恶意应用的检测方法的流程图二;
图3为本发明实施例提供一种安卓恶意应用的检测装置的结构示意图一;
图4为本发明实施例提供一种安卓恶意应用的检测装置的结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种安卓恶意应用的检测方法,如图1所示,包括:
步骤101、获取由恶意应用样本和正常应用样本组成的训练样本集。
步骤102、对所述训练样本集进行融合特征提取,并通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征。
步骤103、根据所述安卓应用相关融合特征建立基于极限学习机的恶意应用检测模型。
步骤104、根据所述基于极限学习机的恶意应用检测模型对待测试的安卓应用进行检测,确定所述待测试的安卓应用是否为恶意应用。
本发明实施例提供一种安卓恶意应用的检测方法,通过对已知的训练样本集进行融合特征提取,能够使安卓恶意应用的检测涉及不同类型的特征所起的不同作用。通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征,并建立基于极限学习机的恶意应用检测模型,从而能够根据该模型确定未知的应用是否为恶意应用。避免了当前单一地通过基于特征码分析、基于静态源码分析或者基于动态行为等检测方法均可能造成不能正确确定恶意应用的问题。
为了使本领域的技术人员更好的了解本发明,下面列举一个更为详细的实施例,如图2所示,本发明实施例提供一种安卓恶意应用的检测方法,包括:
步骤201、获取由恶意应用样本和正常应用样本组成的训练样本集。之后分别执行步骤202至步骤204。
步骤202、对所述训练样本集进行基于静态分析的特征提取,形成所述训练样本集的静态特征。
此处,对所述训练样本集进行基于静态分析的特征提取,形成所述训练样本集的静态特征的过程可以是:获取所述训练样本集中各应用调用安卓系统组件的情况数据,并根据所述各应用调用安卓系统组件的情况数据确定第一静态特征向量Xstatic1。获取所述训练样本集中各应用所申请的安卓系统权限和调用API情况的统计数据,并根据所述各应用所申请的安卓系统权限和调用API情况的统计数据确定第二静态特征向量Xstatic2
此处,对所述训练样本集进行基于静态分析的特征提取,首先可以分析可执行文件特征、权限等静态特征信息。一般情况下恶意应用和正常应用在程序实现上存在较大差异。按API与恶意应用的相关性,将API分为敏感API和普通API,恶意应用和正常应用的差异具体体现在敏感API的调用(如动态加载的API、本地调用的API等),对于恶意应用而言主要是调用敏感API来完成其恶意的行为,敏感API在其整个调用的API中占有很大的比重,而对于正常应用,其中也会有敏感API的调用,但是所占的比重要小。具体的,可通过对安卓应用APK进行反编译,得到安卓Manifest.xml文件,对该文件进行分析,提取各个组件使用个数情况,包括permission、activity、service、receiver和provider。针对每个应用可得到各个组件使用情况的特征向量Xstatic1。如某一应用APK中各个组件使用统计数据:permission为10,activity为20,service为2,receiver和provider都为0,则Xstatic1=[10,20,2,0,0]。
对正常应用和恶意应用两个样本库中所有的安卓程序的安装文件可以用逆向工程工具进行反编译,获取配置文件;对上述配置文件进行解码,扫描源码并提取其中的权限向量,得到每个程序对应的权限集;从安卓程序中筛选出部分敏感权限作为静态特征,如CALL_PHONE、SEND_SMS、GET_ACCOUNTs、GET_LOCATION、READ_PHONE_SMS、READ_CONTACTS、CAMERA、ACCESS_NETWORK_STATE、ACCESS_WIFI_STATE、INTERNET,将这些权限中未使用的置0,使用到的置1,这样每个应用样本生成一个与之对应的二进制特征向量。如某一应用申请了CALL_PHONE、SEND_SMS、GET_ACCOUNTs、READ_CONTACTS、INTERNET权限,则基于权限的特征向量可以为Xstatic2=[1,1,1,0,0,1,0,0,0,1]。
此外,还可以通过控制流分析、数据流分析和语义分析来提取各安卓应用的静态特征。
步骤203、对所述训练样本集进行基于动态分析的特征提取,形成所述训练样本集的动态特征。
此处,对所述训练样本集进行基于动态分析的特征提取,形成所述训练样本集的动态特征,可以是:获取所述训练样本集中各应用调用安卓敏感API的次数;根据所述各应用调用安卓敏感API的次数确定动态特征向量Xdynamic
具体的,对训练样本集进行基于动态分析的特征提取,可以是通过对程序运行状态的动态监控,提取恶意代码的行为特征。安卓恶意代码常见的动态行为特征包括:软件安装恶意插件、未经用户确认强制开机自启、未经用户确认强制联网、卸载不干净、发送恶意扣费短信、读取用户隐私信息、诱导扣费操作、恶意群发短信、阻碍卸载或卸载时有恶意行为。基于动态分析的恶意代码特征提取主要有两种方法。一种是建立系统底层检测模块,使其能够检测、拦截、记录恶意的行为。另一种方法是使用钩子技术,来检测对敏感API的调用行为。建立系统底层模块是指对现有的安卓系统源代码进行改造,加入安全检测模块。检测工具可以对软件运行过程中的发送扣费信息、非法链接、非法内容、盗取用户隐私数据的行为进行检测,记录和处理。在无源码的系统上可使用钩子技术对调用系统敏感API的行为进行检测。通过上述分析,可得到应用的动态特征Xdynamic
正常应用与恶意应用的行为不同点,主要体现在对发送短信、访问通信录等敏感资源访问时API的调用频率不同。对于一个应用程序要完成不同的功能,一般需要访问系统中不同的API,那么它的这一些行为就可以使用一系列的API来表示。在安卓的Service中加入Hook函数,利用Hook函数对调用系统敏感API的行为进行检测,完成对应用程序的行为监控。可将一定时长内系统敏感API调用次数作为应用的动态特征,如系统敏感API包括CALL_PHONE、GET_ACCOUNTs、GET_LOCATION、READ_CONTACTS、CAMERA、INTERNET等在一定时长内被调用的次数分别为5、2、3、1、0、4,则Xdynamic=[5,2,3,1,0,4]。
步骤204、对所述训练样本集进行基于网络流量的特征提取,形成所述训练样本集的网络流量特征。
此处,对所述训练样本集进行基于网络流量的特征提取,形成所述训练样本集的网络流量特征,可以是:获取所述训练样本集中各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数;根据各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数,确定所述训练样本集的网络流量特征向量Xtraffic
步骤205、将所述训练样本集的静态特征、动态特征以及网络流量特征进行融合,形成融合特征。
此处,可以将上述第一静态特征向量Xstatic1、第二静态特征向量Xstatic2、动态特征向量Xdynamic以及网络流量特征向量Xtraffic进行融合叠加,获取得到融合特征X;X=[Xstatic1,Xstatic2,Xdymatic,Xtraffic]。
步骤206、根据所述融合特征X生成融合特征矩阵A,对所述融合特征矩阵A进行归一化处理,得到归一化特征矩阵S。
所述融合特征矩阵A为N×K矩阵,且其中,N为训练样本集中的应用样本数目;K为融合特征矩阵A的维数;上述的归一化特征矩阵S=(Sij)N×K即相当于对融合特征矩阵A的每一列做标准化处理;所述为所述融合特征矩阵A每一列的均值,所述Dj为所述融合特征矩阵A每一列的标准差, D j = 1 N - 1 Σ i = 1 N ( A i j - A ‾ j ) 2 , j = 1 , 2 , ... , K .
步骤207、确定所述归一化特征矩阵S的相关系数矩阵Rs,计算相关系数矩阵Rs的特征值的累计贡献率Bt
其中,ST为归一化特征矩阵S的转置;所述相关系数矩阵Rs的特征值为λi,λi={λ12,...,λK},λ1≥λ2≥...≥λK,所述特征值λi对应的特征向量为E,E={E1,E2,...,EK}; B t = Σ i = 1 t λ i / Σ i = 1 K λ i ; t = 1 , 2 , ... , K .
步骤208、根据一预先设置的提取效率p,从特征向量E中选取T个主成分。
其中,T=min{t|Bt≥p,t=1,2,…,K}。该提取效率p一般可以为0.9。
步骤209、确定所述归一化特征矩阵S在提取出的T个特征向量E上的投影X’,将所述X’确定为安卓应用相关融合特征。
其中,X'=SE。
此处,由于融合特征X的维度较高,而对于安卓恶意应用检测,并非所有的特征信息均需要,在融合特征X中,可能存在无关特征、冗余特征等,因此此处需要进行特征选择,最终形成所需要的X’确定为安卓应用相关融合特征。
步骤210、获取包含所述安卓应用相关融合特征X’的N个训练样本。
具体的,该N个训练样本其中Yi为样本类别标签,Yi∈{-1,1}。
对于N个训练样本其中,Xi=[xi1,xi2,…,xin]T∈Rn,Yi=[yi1,yi2,…,yim]T∈Rm;Rn、Rm代表数据的维数。
步骤211、获取预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi
具体的,一个有M个隐层节点的前馈神经网络的输出可以表示为:
Σ i = 1 M β i g ( W i · X j + b i ) = o j , j = 1 , ... , N
该隐层节点输出函数g(x)可以为径向基函数,例如g(x)=exp((x-μ)/σ)。该输入权值Wi=[wi1,wi2,…,win∈]T。此处,该单层申请网络学习的目标是使输出的误差最小,即相当于:
Σ j = 1 N | | o j - Y j | | = 0
则存在βi,Wi和bi,使得:
Σ i = 1 M β i g ( W i · X j + b i ) = Y j , j = 1 , ... , N
则可写出以下矩阵形式:
Hβ=Y
步骤212、计算隐层节点的输出矩阵H。
此处,具体可以根据训练样本预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi,计算隐层节点的输出矩阵H:
H ( W 1 , ... , W M , b 1 , ... , b M , X 1 , ... , X N ) = g ( W 1 · X 1 + b 1 ) ... g ( W M · X 1 + b M ) . . . ... . . . g ( W 1 · X N + b 1 ) ... g ( W M · X N + b M ) N × M
此处,训练单隐层神经网络希望得到Wi,βi和bi,使得:
| | H ( W ^ i , b ^ i ) β ^ i - Y | | = min W , b , β | | H ( W i , b i ) β i - Y | | , i = 1 , ... , M
步骤213、根据隐层节点的输出矩阵H和期望输出Y,确定输出权重
其中, 为所述隐层节点的输出矩阵H的Moore-Penrose广义逆; Y = Y 1 T . . . Y N T N × M .
步骤214、根据隐层节点的输出矩阵H、前馈神经网络的输入权值Wi、偏置bi以及输出权重确定基于极限学习机的恶意应用检测模型。
该基于极限学习机的恶意应用检测模型表示为:f(X)=sgn(H(W,b)β)。
步骤215、根据所述待测试的安卓应用的安卓应用相关融合特征X”以及基于极限学习机的恶意应用检测模型f(X)=sgn(H(W,b)β)确定待测试的安卓应用的输出值。
步骤216、若所述输出值为1,则确定所述待测试的安卓应用为正常应用。
步骤217、若所述输出值为-1,则确定所述待测试的安卓应用为恶意应用。
本发明实施例提供一种安卓恶意应用的检测方法,通过对已知的训练样本集进行融合特征提取,能够使安卓恶意应用的检测涉及不同类型的特征所起的不同作用。通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征,并建立基于极限学习机的恶意应用检测模型,从而能够根据该模型确定未知的应用是否为恶意应用。避免了当前单一地通过基于特征码分析、基于静态源码分析或者基于动态行为等检测方法均可能造成不能正确确定恶意应用的问题。
对应于上述图1和图2所述的方法实施例,本发明实施例还提供一种安卓恶意应用的检测装置,如图3所示,包括:
训练样本集获取单元31,可以获取由恶意应用样本和正常应用样本组成的训练样本集。
特征提取融合单元32,可以对所述训练样本集进行融合特征提取,并通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征。
模型建立单元33,可以根据所述安卓应用相关融合特征建立基于极限学习机的恶意应用检测模型。
检测单元34,可以根据所述基于极限学习机的恶意应用检测模型对待测试的安卓应用进行检测,确定所述待测试的安卓应用是否为恶意应用。
具体的,如图4所示,该特征提取融合单元32,包括:
静态特征提取模块321,可以对所述训练样本集进行基于静态分析的特征提取,形成所述训练样本集的静态特征。
动态特征提取模块322,可以对所述训练样本集进行基于动态分析的特征提取,形成所述训练样本集的动态特征。
网络流量特征提取模块323,可以对所述训练样本集进行基于网络流量的特征提取,形成所述训练样本集的网络流量特征。
融合模块324,可以将所述训练样本集的静态特征、动态特征以及网络流量特征进行融合,形成融合特征。
此外,所述静态特征提取模块321,具体可以:
获取所述训练样本集中各应用调用安卓系统组件的情况数据,并根据所述各应用调用安卓系统组件的情况数据确定第一静态特征向量Xstatic1
获取所述训练样本集中各应用所申请的安卓系统权限和调用API情况的统计数据,并根据所述各应用所申请的安卓系统权限和调用API情况的统计数据确定第二静态特征向量Xstatic2
此外,所述动态特征提取模块322,具体可以:获取所述训练样本集中各应用调用安卓敏感API的次数;根据所述各应用调用安卓敏感API的次数确定动态特征向量Xdynamic
另外,所述网络流量特征提取模块323,具体可以:获取所述训练样本集中各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数。根据各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数,确定所述训练样本集的网络流量特征向量Xtraffic
此外,所述融合模块324,具体可以:将所述第一静态特征向量Xstatic1、第二静态特征向量Xstatic2、动态特征向量Xdynamic以及网络流量特征向量Xtraffic进行融合叠加,获取得到融合特征X;X=[Xstatic1,Xstatic2,Xdymatic,Xtraffic]。
另外,特征提取融合单元32,具体可以:
根据所述融合特征X生成融合特征矩阵A;所述融合特征矩阵A为N×K矩阵,且其中,N为训练样本集中的应用样本数目;K为融合特征矩阵A的维数。
对所述融合特征矩阵A进行归一化处理,得到归一化特征矩阵S;其中,S=(Sij)N×K所述为所述融合特征矩阵A每一列的均值,所述Dj为所述融合特征矩阵A每一列的标准差, D j = 1 N - 1 Σ i = 1 N ( A i j - A ‾ j ) 2 , j = 1 , 2 , ... , K .
确定所述归一化特征矩阵S的相关系数矩阵Rs;其中,ST为归一化特征矩阵S的转置。
计算相关系数矩阵Rs的特征值的累计贡献率Bt;其中,所述相关系数矩阵Rs的特征值为λi,λi={λ12,...,λK},λ1≥λ2≥...≥λK,所述特征值λi对应的特征向量为E,E={E1,E2,...,EK}; B t = Σ i = 1 t λ i / Σ i = 1 K λ i ; t = 1 , 2 , ... , K .
根据一预先设置的提取效率p,从特征向量E中选取T个主成分;其中,T=min{t|Bt≥p,t=1,2,…,K}。
确定所述归一化特征矩阵S在提取出的T个特征向量E上的投影X’,将所述X’确定为安卓应用相关融合特征。
此外,所述模型建立单元33,具体可以:
获取包含所述安卓应用相关融合特征X’的N个训练样本其中Yi为样本类别标签;Yi∈{-1,1}。
获取预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi;其中g(x)为径向基函数。
根据训练样本预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi,计算隐层节点的输出矩阵H。
H ( W 1 , ... , W M , b 1 , ... , b M , X 1 , ... , X N ) = g ( W 1 · X 1 + b 1 ) ... g ( W M · X 1 + b M ) . . . ... . . . g ( W 1 · X N + b 1 ) ... g ( W M · X N + b M ) N × M
根据隐层节点的输出矩阵H和期望输出Y,确定输出权重其中, 为所述隐层节点的输出矩阵H的Moore-Penrose广义逆; Y = Y 1 T . . . Y N T N × M .
根据隐层节点的输出矩阵H、前馈神经网络的输入权值Wi、偏置bi以及输出权重确定基于极限学习机的恶意应用检测模型:
f(X)=sgn(H(W,b)β)。
另外,所述检测单元34,具体可以:
获取待测试的安卓应用的安卓应用相关融合特征X”。
根据所述待测试的安卓应用的安卓应用相关融合特征X”以及基于极限学习机的恶意应用检测模型f(X)=sgn(H(W,b)β)确定待测试的安卓应用的输出值。
在所述输出值为1时,确定所述待测试的安卓应用为正常应用。
在所述输出值为-1时,确定所述待测试的安卓应用为恶意应用。
值得说明的是,本发明实施例提供的安卓恶意应用的检测装置的具体实现方式可以参见上述图1和图2对应的方法实施例,此处不再赘述。
本发明实施例提供一种安卓恶意应用的检测装置,通过对已知的训练样本集进行融合特征提取,能够使安卓恶意应用的检测涉及不同类型的特征所起的不同作用。通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征,并建立基于极限学习机的恶意应用检测模型,从而能够根据该模型确定未知的应用是否为恶意应用。避免了当前单一地通过基于特征码分析、基于静态源码分析或者基于动态行为等检测方法均可能造成不能正确确定恶意应用的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (18)

1.一种安卓恶意应用的检测方法,其特征在于,包括:
获取由恶意应用样本和正常应用样本组成的训练样本集;
对所述训练样本集进行融合特征提取,并通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征;
根据所述安卓应用相关融合特征建立基于极限学习机的恶意应用检测模型;
根据所述基于极限学习机的恶意应用检测模型对待测试的安卓应用进行检测,确定所述待测试的安卓应用是否为恶意应用。
2.根据权利要求1所述的安卓恶意应用的检测方法,其特征在于,对所述训练样本集进行融合特征提取,包括:
对所述训练样本集进行基于静态分析的特征提取,形成所述训练样本集的静态特征;
对所述训练样本集进行基于动态分析的特征提取,形成所述训练样本集的动态特征;
对所述训练样本集进行基于网络流量的特征提取,形成所述训练样本集的网络流量特征;
将所述训练样本集的静态特征、动态特征以及网络流量特征进行融合,形成融合特征。
3.根据权利要求2所述的安卓恶意应用的检测方法,其特征在于,对所述训练样本集进行基于静态分析的特征提取,形成所述训练样本集的静态特征,包括:
获取所述训练样本集中各应用调用安卓系统组件的情况数据,并根据所述各应用调用安卓系统组件的情况数据确定第一静态特征向量Xstatic1
获取所述训练样本集中各应用所申请的安卓系统权限和调用API情况的统计数据,并根据所述各应用所申请的安卓系统权限和调用API情况的统计数据确定第二静态特征向量Xstatic2
4.根据权利要求3所述的安卓恶意应用的检测方法,其特征在于,对所述训练样本集进行基于动态分析的特征提取,形成所述训练样本集的动态特征,包括:
获取所述训练样本集中各应用调用安卓敏感API的次数;
根据所述各应用调用安卓敏感API的次数确定动态特征向量Xdynamic
5.根据权利要求4所述的安卓恶意应用的检测方法,其特征在于,对所述训练样本集进行基于网络流量的特征提取,形成所述训练样本集的网络流量特征,包括:
获取所述训练样本集中各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数;
根据各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数,确定所述训练样本集的网络流量特征向量Xtraffic
6.根据权利要求5所述的安卓恶意应用的检测方法,其特征在于,将所述训练样本集的静态特征、动态特征以及网络流量特征进行融合,形成融合特征,包括:
将所述第一静态特征向量Xstatic1、第二静态特征向量Xstatic2、动态特征向量Xdynamic以及网络流量特征向量Xtraffic进行融合叠加,获取得到融合特征X;X=[Xstatic1,Xstatic2,Xdymatic,Xtraffic]。
7.根据权利要求6所述的安卓恶意应用的检测方法,其特征在于,通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征,包括:
根据所述融合特征X生成融合特征矩阵A;所述融合特征矩阵A为N×K矩阵,且其中,N为训练样本集中的应用样本数目;K为融合特征矩阵A的维数;
对所述融合特征矩阵A进行归一化处理,得到归一化特征矩阵S;其中,S=(Sij)N×K所述为所述融合特征矩阵A每一列的均值,所述Dj为所述融合特征矩阵A每一列的标准差, D j = 1 N - 1 Σ i = 1 N ( A i j - A ‾ j ) 2 , j=1,2,…,K;
确定所述归一化特征矩阵S的相关系数矩阵Rs;其中,ST为归一化特征矩阵S的转置;
计算相关系数矩阵Rs的特征值的累计贡献率Bt;其中,所述相关系数矩阵Rs的特征值为λi,λi={λ12,...,λK},λ1≥λ2≥...≥λK,所述特征值λi对应的特征向量为E,E={E1,E2,...,EK};t=1,2,…,K;
根据一预先设置的提取效率p,从特征向量E中选取T个主成分;其中,T=min{t|Bt≥p,t=1,2,…,K};
确定所述归一化特征矩阵S在提取出的T个特征向量E上的投影X’,将所述X’确定为安卓应用相关融合特征;其中,X'=SE。
8.根据权利要求7所述的安卓恶意应用的检测方法,其特征在于,根据所述安卓应用相关融合特征建立基于极限学习机的恶意应用检测模型,包括:
获取包含所述安卓应用相关融合特征X’的N个训练样本其中Yi为样本类别标签;Yi∈{-1,1};
获取预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi;其中g(x)为径向基函数;
根据训练样本预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi,计算隐层节点的输出矩阵H;
H ( W 1 , ... , W M , b 1 , ... , b M , X 1 , ... , X N ) = g ( W 1 · X 1 + b 1 ) ... g ( W M · X 1 + b M ) . . . ... . . . g ( W 1 · X N + b 1 ) ... g ( W M · X N + b M ) N × M
根据隐层节点的输出矩阵H和期望输出Y,确定输出权重其中, 为所述隐层节点的输出矩阵H的Moore-Penrose广义逆; Y = Y 1 T . . . Y N T N × M ;
根据隐层节点的输出矩阵H、前馈神经网络的输入权值Wi、偏置bi以及输出权重确定基于极限学习机的恶意应用检测模型:
f(X)=sgn(H(W,b)β)。
9.根据权利要求8所述的安卓恶意应用的检测方法,其特征在于,根据所述基于极限学习机的恶意应用检测模型对待测试的安卓应用进行检测,确定所述待测试的安卓应用是否为恶意应用,包括:
获取待测试的安卓应用的安卓应用相关融合特征X”;
根据所述待测试的安卓应用的安卓应用相关融合特征X”以及基于极限学习机的恶意应用检测模型f(X)=sgn(H(W,b)β)确定待测试的安卓应用的输出值;
若所述输出值为1,则确定所述待测试的安卓应用为正常应用;
若所述输出值为-1,则确定所述待测试的安卓应用为恶意应用。
10.一种安卓恶意应用的检测装置,其特征在于,包括:
训练样本集获取单元,用于获取由恶意应用样本和正常应用样本组成的训练样本集;
特征提取融合单元,用于对所述训练样本集进行融合特征提取,并通过主分量分析法对提取出的融合特征进行选择,获取安卓应用相关融合特征;
模型建立单元,用于根据所述安卓应用相关融合特征建立基于极限学习机的恶意应用检测模型;
检测单元,用于根据所述基于极限学习机的恶意应用检测模型对待测试的安卓应用进行检测,确定所述待测试的安卓应用是否为恶意应用。
11.根据权利要求10所述的安卓恶意应用的检测装置,其特征在于,所述特征提取融合单元,包括:
静态特征提取模块,用于对所述训练样本集进行基于静态分析的特征提取,形成所述训练样本集的静态特征;
动态特征提取模块,用于对所述训练样本集进行基于动态分析的特征提取,形成所述训练样本集的动态特征;
网络流量特征提取模块,用于对所述训练样本集进行基于网络流量的特征提取,形成所述训练样本集的网络流量特征;
融合模块,用于将所述训练样本集的静态特征、动态特征以及网络流量特征进行融合,形成融合特征。
12.根据权利要求11所述的安卓恶意应用的检测装置,其特征在于,所述静态特征提取模块,具体用于:
获取所述训练样本集中各应用调用安卓系统组件的情况数据,并根据所述各应用调用安卓系统组件的情况数据确定第一静态特征向量Xstatic1
获取所述训练样本集中各应用所申请的安卓系统权限和调用API情况的统计数据,并根据所述各应用所申请的安卓系统权限和调用API情况的统计数据确定第二静态特征向量Xstatic2
13.根据权利要求12所述的安卓恶意应用的检测装置,其特征在于,所述动态特征提取模块,具体用于:
获取所述训练样本集中各应用调用安卓敏感API的次数;
根据所述各应用调用安卓敏感API的次数确定动态特征向量Xdynamic
14.根据权利要求13所述的安卓恶意应用的检测装置,其特征在于,所述网络流量特征提取模块,具体用于:
获取所述训练样本集中各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数;
根据各应用所用TCP数据包的数据包大小、数据包数量、平均数据包大小、连接的IP地址数,确定所述训练样本集的网络流量特征向量Xtraffic
15.根据权利要求14所述的安卓恶意应用的检测装置,其特征在于,所述融合模块,具体用于:
将所述第一静态特征向量Xstatic1、第二静态特征向量Xstatic2、动态特征向量Xdynamic以及网络流量特征向量Xtraffic进行融合叠加,获取得到融合特征X;X=[Xstatic1,Xstatic2,Xdymatic,Xtraffic]。
16.根据权利要求15所述的安卓恶意应用的检测装置,其特征在于,特征提取融合单元,具体用于:
根据所述融合特征X生成融合特征矩阵A;所述融合特征矩阵A为N×K矩阵,且其中,N为训练样本集中的应用样本数目;K为融合特征矩阵A的维数;
对所述融合特征矩阵A进行归一化处理,得到归一化特征矩阵S;其中,S=(Sij)N×K所述为所述融合特征矩阵A每一列的均值,所述Dj为所述融合特征矩阵A每一列的标准差, D j = 1 N - 1 Σ i = 1 N ( A i j - A ‾ j ) 2 , j=1,2,…,K;
确定所述归一化特征矩阵S的相关系数矩阵Rs;其中,ST为归一化特征矩阵S的转置;
计算相关系数矩阵Rs的特征值的累计贡献率Bt;其中,所述相关系数矩阵Rs的特征值为λi,λi={λ12,...,λK},λ1≥λ2≥...≥λK,所述特征值λi对应的特征向量为E,E={E1,E2,...,EK};t=1,2,…,K;
根据一预先设置的提取效率p,从特征向量E中选取T个主成分;其中,T=min{t|Bt≥p,t=1,2,…,K};
确定所述归一化特征矩阵S在提取出的T个特征向量E上的投影X’,将所述X’确定为安卓应用相关融合特征;其中,X'=SE。
17.根据权利要求16所述的安卓恶意应用的检测装置,其特征在于,所述模型建立单元,具体用于:
获取包含所述安卓应用相关融合特征X’的N个训练样本其中Yi为样本类别标签;Yi∈{-1,1};
获取预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi;其中g(x)为径向基函数;
根据训练样本预先设置的隐层节点输出函数g(x)、隐层节点M、前馈神经网络的输入权值Wi和偏置bi,计算隐层节点的输出矩阵H;
H ( W 1 , ... , W M , b 1 , ... , b M , X 1 , ... , X N ) = g ( W 1 · X 1 + b 1 ) ... g ( W M · X 1 + b M ) . . . ... . . . g ( W 1 · X N + b 1 ) ... g ( W M · X N + b M ) N × M
根据隐层节点的输出矩阵H和期望输出Y,确定输出权重其中, 为所述隐层节点的输出矩阵H的Moore-Penrose广义逆; Y = Y 1 T . . . Y N T N × M ;
根据隐层节点的输出矩阵H、前馈神经网络的输入权值Wi、偏置bi以及输出权重确定基于极限学习机的恶意应用检测模型:
f(X)=sgn(H(W,b)β)。
18.根据权利要求17所述的安卓恶意应用的检测装置,其特征在于,所述检测单元,具体用于:
获取待测试的安卓应用的安卓应用相关融合特征X”;
根据所述待测试的安卓应用的安卓应用相关融合特征X”以及基于极限学习机的恶意应用检测模型f(X)=sgn(H(W,b)β)确定待测试的安卓应用的输出值;
在所述输出值为1时,确定所述待测试的安卓应用为正常应用;
在所述输出值为-1时,确定所述待测试的安卓应用为恶意应用。
CN201510745039.0A 2015-11-05 2015-11-05 一种安卓恶意应用的检测方法及装置 Active CN105426760B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510745039.0A CN105426760B (zh) 2015-11-05 2015-11-05 一种安卓恶意应用的检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510745039.0A CN105426760B (zh) 2015-11-05 2015-11-05 一种安卓恶意应用的检测方法及装置

Publications (2)

Publication Number Publication Date
CN105426760A true CN105426760A (zh) 2016-03-23
CN105426760B CN105426760B (zh) 2018-04-06

Family

ID=55504964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510745039.0A Active CN105426760B (zh) 2015-11-05 2015-11-05 一种安卓恶意应用的检测方法及装置

Country Status (1)

Country Link
CN (1) CN105426760B (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106203103A (zh) * 2016-06-23 2016-12-07 百度在线网络技术(北京)有限公司 文件的病毒检测方法及装置
CN106339631A (zh) * 2016-08-26 2017-01-18 北京邮电大学 基于Android的恶意积分墙的检测方法及装置
CN106529293A (zh) * 2016-11-09 2017-03-22 东巽科技(北京)有限公司 一种用于恶意软件检测的样本类别判定方法
CN106874761A (zh) * 2016-12-30 2017-06-20 北京邮电大学 一种安卓系统恶意应用检测方法及系统
CN107169351A (zh) * 2017-05-11 2017-09-15 北京理工大学 结合动态行为特征的Android未知恶意软件检测方法
CN107392021A (zh) * 2017-07-20 2017-11-24 中南大学 一种基于多类特征的Android恶意应用检测方法
CN107392025A (zh) * 2017-08-28 2017-11-24 刘龙 基于深度学习的恶意安卓应用程序检测方法
CN107832609A (zh) * 2017-09-25 2018-03-23 暨南大学 基于权限特征的Android恶意软件检测方法及系统
CN107832612A (zh) * 2017-10-26 2018-03-23 北京邮电大学 一种Android应用程序运行时API调用量预估方法
CN107832610A (zh) * 2017-09-25 2018-03-23 暨南大学 基于组合特征模式的Android恶意软件检测方法
CN108376081A (zh) * 2016-11-21 2018-08-07 北京大学(天津滨海)新代信息技术研究院 一种检测移动应用第三方库功能的方法
CN108540472A (zh) * 2018-04-08 2018-09-14 南京邮电大学 Android重打包恶意应用检测装置
CN109391583A (zh) * 2017-08-03 2019-02-26 武汉安天信息技术有限责任公司 一种基于恶意应用的攻击者溯源方法和系统
CN109933984A (zh) * 2019-02-15 2019-06-25 中时瑞安(北京)网络科技有限责任公司 一种最佳聚类结果筛选方法、装置和电子设备
CN110298178A (zh) * 2019-07-05 2019-10-01 北京可信华泰信息技术有限公司 可信策略学习方法及装置、可信安全管理平台
CN110806902A (zh) * 2018-07-18 2020-02-18 马上消费金融股份有限公司 一种数据处理方法、应用画像方法及装置
CN110941826A (zh) * 2018-09-21 2020-03-31 武汉安天信息技术有限责任公司 恶意安卓软件检测方法及装置
CN111181922A (zh) * 2019-12-06 2020-05-19 北京中睿天下信息技术有限公司 一种钓鱼链接检测方法及系统
CN111222136A (zh) * 2018-11-23 2020-06-02 中兴通讯股份有限公司 恶意应用归类方法、装置、设备及计算机可读存储介质
CN111460449A (zh) * 2020-03-10 2020-07-28 北京邮电大学 应用程序识别方法、系统、存储介质以及电子设备
CN111931187A (zh) * 2020-08-13 2020-11-13 深信服科技股份有限公司 一种组件漏洞检测方法、装置、设备及可读存储介质
CN113132346A (zh) * 2021-03-05 2021-07-16 国家计算机网络与信息安全管理中心 一种移动应用信息窃取回传主控地址的检测方法及系统
CN115080974A (zh) * 2022-08-17 2022-09-20 杭州安恒信息技术股份有限公司 一种恶意pe文件检测方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218566A (zh) * 2013-01-25 2013-07-24 江南大学 基于Android平台软件行为检测的主动防御系统
CN104008333A (zh) * 2013-02-21 2014-08-27 腾讯科技(深圳)有限公司 一种安装包的检测方法和设备
CN104519031A (zh) * 2013-09-30 2015-04-15 西门子公司 一种用于恶意网络行为检测的方法和装置
CN104598825A (zh) * 2015-01-30 2015-05-06 南京邮电大学 一种基于改进贝叶斯算法的安卓恶意软件检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218566A (zh) * 2013-01-25 2013-07-24 江南大学 基于Android平台软件行为检测的主动防御系统
CN104008333A (zh) * 2013-02-21 2014-08-27 腾讯科技(深圳)有限公司 一种安装包的检测方法和设备
CN104519031A (zh) * 2013-09-30 2015-04-15 西门子公司 一种用于恶意网络行为检测的方法和装置
CN104598825A (zh) * 2015-01-30 2015-05-06 南京邮电大学 一种基于改进贝叶斯算法的安卓恶意软件检测方法

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106203103A (zh) * 2016-06-23 2016-12-07 百度在线网络技术(北京)有限公司 文件的病毒检测方法及装置
CN106339631A (zh) * 2016-08-26 2017-01-18 北京邮电大学 基于Android的恶意积分墙的检测方法及装置
CN106529293B (zh) * 2016-11-09 2019-11-05 东巽科技(北京)有限公司 一种用于恶意软件检测的样本类别判定方法
CN106529293A (zh) * 2016-11-09 2017-03-22 东巽科技(北京)有限公司 一种用于恶意软件检测的样本类别判定方法
CN108376081A (zh) * 2016-11-21 2018-08-07 北京大学(天津滨海)新代信息技术研究院 一种检测移动应用第三方库功能的方法
CN106874761A (zh) * 2016-12-30 2017-06-20 北京邮电大学 一种安卓系统恶意应用检测方法及系统
CN107169351A (zh) * 2017-05-11 2017-09-15 北京理工大学 结合动态行为特征的Android未知恶意软件检测方法
CN107392021A (zh) * 2017-07-20 2017-11-24 中南大学 一种基于多类特征的Android恶意应用检测方法
CN107392021B (zh) * 2017-07-20 2019-06-07 中南大学 一种基于多类特征的Android恶意应用检测方法
CN109391583B (zh) * 2017-08-03 2021-06-25 武汉安天信息技术有限责任公司 一种基于恶意应用的攻击者溯源方法和系统
CN109391583A (zh) * 2017-08-03 2019-02-26 武汉安天信息技术有限责任公司 一种基于恶意应用的攻击者溯源方法和系统
CN107392025A (zh) * 2017-08-28 2017-11-24 刘龙 基于深度学习的恶意安卓应用程序检测方法
CN107392025B (zh) * 2017-08-28 2020-06-26 刘龙 基于深度学习的恶意安卓应用程序检测方法
CN107832609A (zh) * 2017-09-25 2018-03-23 暨南大学 基于权限特征的Android恶意软件检测方法及系统
CN107832610A (zh) * 2017-09-25 2018-03-23 暨南大学 基于组合特征模式的Android恶意软件检测方法
CN107832609B (zh) * 2017-09-25 2020-11-13 暨南大学 基于权限特征的Android恶意软件检测方法及系统
CN107832612A (zh) * 2017-10-26 2018-03-23 北京邮电大学 一种Android应用程序运行时API调用量预估方法
CN108540472A (zh) * 2018-04-08 2018-09-14 南京邮电大学 Android重打包恶意应用检测装置
CN110806902B (zh) * 2018-07-18 2021-09-03 马上消费金融股份有限公司 一种数据处理方法、应用画像方法及装置
CN110806902A (zh) * 2018-07-18 2020-02-18 马上消费金融股份有限公司 一种数据处理方法、应用画像方法及装置
CN110941826A (zh) * 2018-09-21 2020-03-31 武汉安天信息技术有限责任公司 恶意安卓软件检测方法及装置
CN111222136A (zh) * 2018-11-23 2020-06-02 中兴通讯股份有限公司 恶意应用归类方法、装置、设备及计算机可读存储介质
CN109933984B (zh) * 2019-02-15 2020-10-27 中时瑞安(北京)网络科技有限责任公司 一种最佳聚类结果筛选方法、装置和电子设备
CN109933984A (zh) * 2019-02-15 2019-06-25 中时瑞安(北京)网络科技有限责任公司 一种最佳聚类结果筛选方法、装置和电子设备
CN110298178A (zh) * 2019-07-05 2019-10-01 北京可信华泰信息技术有限公司 可信策略学习方法及装置、可信安全管理平台
CN111181922A (zh) * 2019-12-06 2020-05-19 北京中睿天下信息技术有限公司 一种钓鱼链接检测方法及系统
CN111460449A (zh) * 2020-03-10 2020-07-28 北京邮电大学 应用程序识别方法、系统、存储介质以及电子设备
CN111931187A (zh) * 2020-08-13 2020-11-13 深信服科技股份有限公司 一种组件漏洞检测方法、装置、设备及可读存储介质
CN113132346A (zh) * 2021-03-05 2021-07-16 国家计算机网络与信息安全管理中心 一种移动应用信息窃取回传主控地址的检测方法及系统
CN115080974A (zh) * 2022-08-17 2022-09-20 杭州安恒信息技术股份有限公司 一种恶意pe文件检测方法、装置、设备及介质
CN115080974B (zh) * 2022-08-17 2022-11-08 杭州安恒信息技术股份有限公司 一种恶意pe文件检测方法、装置、设备及介质

Also Published As

Publication number Publication date
CN105426760B (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
CN105426760A (zh) 一种安卓恶意应用的检测方法及装置
CN106055980B (zh) 一种基于规则的JavaScript安全性检测方法
Gupta et al. PHP-sensor: a prototype method to discover workflow violation and XSS vulnerabilities in PHP web applications
CN106203113B (zh) 安卓应用文件的隐私泄露监控方法
CN103996007A (zh) Android应用权限泄露漏洞的测试方法及系统
Sadeghi et al. Analysis of android inter-app security vulnerabilities using covert
US11748487B2 (en) Detecting a potential security leak by a microservice
CN103746992B (zh) 基于逆向的入侵检测系统及其方法
CN104766012A (zh) 基于动态污点追踪的数据安全动态检测方法及系统
US10686821B2 (en) Analysis of mobile applications
CN108712448A (zh) 一种基于动态污点分析的注入式攻击检测模型
CN104901962B (zh) 一种网页攻击数据的检测方法及装置
Bunke et al. An architecture-centric approach to detecting security patterns in software
CN105095753B (zh) 广播安全检测方法、装置
CN114036059A (zh) 面向电网系统的自动化渗透测试系统、方法和计算机设备
US9779239B2 (en) Detection of malicious software behavior using signature-based static analysis
Kandukuru et al. Android malicious application detection using permission vector and network traffic analysis
CN111949992B (zh) Web应用程序的自动化安全监测方法及系统
Pieczul et al. Runtime detection of zero-day vulnerability exploits in contemporary software systems
Ye et al. Towards automated generation of bug benchmark for smart contracts
Malik et al. IoT Testing-as-a-Service: A new dimension of automation
Sun et al. Research towards key issues of api security
Tang et al. Ssldetecter: detecting SSL security vulnerabilities of android applications based on a novel automatic traversal method
CN111241547B (zh) 一种越权漏洞的检测方法、装置及系统
Cagalaban et al. Improving SCADA control systems security with software vulnerability analysis

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
TR01 Transfer of patent right

Effective date of registration: 20211227

Address after: 100191 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee after: CHINA ACADEMY OF INFORMATION AND COMMUNICATIONS

Address before: 100191 No. 52 Garden North Road, Beijing, Haidian District

Patentee before: CHINA ACADEME OF TELECOMMUNICATION RESEARCH OF MIIT

TR01 Transfer of patent right