CN110941826B - 恶意安卓软件检测方法及装置 - Google Patents
恶意安卓软件检测方法及装置 Download PDFInfo
- Publication number
- CN110941826B CN110941826B CN201811107253.3A CN201811107253A CN110941826B CN 110941826 B CN110941826 B CN 110941826B CN 201811107253 A CN201811107253 A CN 201811107253A CN 110941826 B CN110941826 B CN 110941826B
- Authority
- CN
- China
- Prior art keywords
- malicious
- android software
- behavior
- fully
- neural network
- 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
Images
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种恶意安卓软件检测方法,包括:确定已知安卓软件训练样本集中每个训练样本包含的行为特征,所述行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息;利用所有训练样本对全连接神经网络进行训练,以获得全连接神经网络检测模型,利用所述全连接神经网络检测模型对未知安卓软件进行恶意检测。本发明考虑到恶意安卓软件与非恶意安卓软件的敏感行为触发时序和频次存在差异,利用已知安卓软件的行为特征训练得到全连接神经网络检测模型,进而根据未知安卓软件的行为特征利用全连接神经网络检测模型对未知安卓软件进行恶意检测,实现了恶意安卓软件与非恶意安卓软件的行为种类并没有明显时的恶意安卓软件检测。
Description
技术领域
本发明实施例涉及移动信息安全技术领域,尤其涉及一种恶意安卓软件检测方法及装置。
背景技术
恶意安卓软件为在用户不知情的情况下安装于用户的安卓平台移动终端上的应用程序。恶意安卓软件的运行通常会导致恶意扣费、盗取用户账号密码或远程控制用户的安卓平台移动终端等严重危害安卓平台移动终端用户利益的后果。因此,检测出恶意安卓软件对于维护安卓平台移动终端用户的利益具有重要作用。
恶意安卓软件的传统检测方法之一是行为检测法。行为检测法是一种利用恶意安卓软件的特有行为进行恶意安卓软件检测的方法。恶意安卓软件的特有行为指与非恶意安卓软件的行为有明显差异的行为(在非恶意安卓软件中较为罕见),是许多恶意安卓软件的共同行为。行为检测法的检测方法为:当待检测软件运行时,监视其行为,一旦发现恶意安卓软件的特有行为,即判定待检测软件为恶意安卓软件。
但若恶意安卓软件与非恶意安卓软件的行为种类并没有明显的差异,此时现有行为检测法很难检测出恶意安卓软件。
发明内容
本发明实施例提供一种恶意安卓软件检测方法及装置,用以解决许多恶意安卓软件的行为与非恶意安卓软件的行为并没有明显的差异,仅各种行为的执行时序和频次存在差异时,现有技术难以检测恶意安卓软件的问题。
本发明实施例提供一种恶意安卓软件检测方法,包括:确定已知安卓软件训练样本集中每个训练样本包含的行为特征,所述行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息;利用所有训练样本对全连接神经网络进行训练,以获得全连接神经网络检测模型,其中,所述全连接神经网络检测模型对应损失函数在已知安卓软件训练样本集上的误差值在允许范围内;利用所述全连接神经网络检测模型对未知安卓软件进行恶意检测。
本发明实施例提供一种恶意安卓软件检测装置,包括:行为特征确定模块,用于确定已知安卓软件训练样本集中每个训练样本包含的行为特征,所述行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息;模型确定模块,用于利用所有训练样本对全连接神经网络进行训练,以获得全连接神经网络检测模型,其中,所述全连接神经网络检测模型对应损失函数在已知安卓软件训练样本集上的误差值在允许范围内;检测模块,用于利用所述全连接神经网络检测模型对未知安卓软件进行恶意检测。
本发明实施例提供一种计算机设备,包括:处理器;以及用于存放计算机程序的存储器,所述处理器用于执行所述存储器上所存放的计算机程序,以实现如上所述的恶意安卓软件检测方法。
本发明实施例提供一种计算机存储介质,所述计算机存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的恶意安卓软件检测方法。
本发明实施例提供的恶意安卓软件检测方法及装置,考虑到恶意安卓软件与非恶意安卓软件的敏感行为触发时序和频次存在差异,利用已知安卓软件的行为特征训练得到全连接神经网络检测模型,进而根据未知安卓软件的行为特征利用全连接神经网络检测模型对未知安卓软件进行恶意检测,实现了恶意安卓软件与非恶意安卓软件的行为种类并没有明显时的恶意安卓软件检测。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法实施例一提供的恶意安卓软件检测方法的流程图;
图2为本发明方法实施例二提供的恶意安卓软件检测方法的流程图;
图3为本发明方法实施例三提供的恶意安卓软件检测方法的流程图;
图4为本发明方法实施例四提供的恶意安卓软件检测方法的流程图;
图5为本发明方法实施例五提供的恶意安卓软件检测方法的流程图;
图6为本发明方法实施例六提供的恶意安卓软件检测方法的流程图;
图7为本发明装置实施例一提供的恶意安卓软件检测装置的示意图;
图8为本发明装置实施例二提供的恶意安卓软件检测装置的示意图;
图9为本发明装置实施例三提供的恶意安卓软件检测装置的示意图;
图10为本发明装置实施例四提供的恶意安卓软件检测装置的示意图;
图11为本发明装置实施例五提供的恶意安卓软件检测装置的示意图;
图12为本发明装置实施例六提供的恶意安卓软件检测装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
恶意安卓软件为在用户不知情的情况下安装于用户的安卓系统移动终端上的应用程序。恶意安卓软件的运行通常会导致恶意扣费、盗取用户账号密码或远程控制用户的安卓系统移动终端等严重危害安卓系统移动终端用户利益的后果。通过对安卓软件进行检测,可以发现恶意安卓软件,进而对恶意安卓软件进行处理以避免安卓系统移动终端用户的利益受损。因此,恶意安卓软件检测具有重要意义。
图1为本发明方法实施例一提供的一种恶意安卓软件检测方法的流程图。如图1所示,在本实施例中,该方法包括:
步骤S101、确定已知安卓软件训练样本集中每个训练样本包含的行为特征,行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息;
在本实施例中,已知安卓软件训练样本集包含若干训练样本,每个训练样本包括一个已知安卓软件的行为特征和真实标签。其中,行为特征包含该已知安卓软件触发敏感行为的时序和频次信息,真实标签代表已知安卓软件真实的恶意状态,例如:已知安卓软件是恶意的,真实标签可以为0,已知安卓软件非恶意,真实标签可以为1。敏感行为指需要通过调用安卓系统上API接口来实现的行为。每个已知安卓软件触发敏感行为的时序和频次信息可以根据该已知安卓软件在不同时段内调用各API接口的频次获得。
非恶意安卓软件和恶意安卓软件为了完成任务,会触发各种敏感行为。考虑到非恶意安卓软件和恶意安卓软件触发各种敏感行为的时序和频次不同,确定包含一个已知安卓软件触发敏感行为的时序和频次信息的行为特征,用于后续训练出可根据未知安卓软件的行为特征进行恶意检测的模型。
步骤S102、利用所有训练样本对全连接神经网络进行训练,以获得全连接神经网络检测模型,其中,全连接神经网络检测模型对应损失函数在已知安卓软件训练样本集上的误差值在允许范围内;
在本实施例中,全连接神经网络中,对于第n-1层全连接层和第n层全连接层,第n-1层全连接层的任意一个节点,均与第n层全连接层的每个节点连接。即第n层全连接层的每个节点为第n-1层全连接层所有节点的加权。全连接神经网络适合做数据的回归,能够通过学习较好地对数据间没有相关性的行为特征矩阵进行类别判定。因此,基于全连接神经网络获取全连接神经网络检测模型以用于对待检测安卓应用进行检测。
训练中,全连接神经网络的输入为每个训练样本的行为特征,输出为该训练样本的输出标签。已知安卓软件的真实标签可以人工标注,还可以根据已知安卓软件的MD5查询对已知安卓软件进行恶意与否标注的数据库得到。输出标签代表全连接神经网络为该训练样本判定的恶意状态。
具体训练过程为:针对已知安卓软件构成的训练样本集中每个训练样本,先将该训练样本的行为特征输入至全连接神经网络的输入层,根据第一隐层的权值、偏置值和激活函数对输入层的数据进行计算得到第一隐层的输出数据,按照第二隐层至最后一个隐层的顺序,依次根据各隐层的权值、偏置值和激活函数对前一隐层的输出数据进行计算得到本隐层的输出数据。其中,各隐层的权值初始值和偏置值初始值为随机值,隐层的层数可根据实际情况设置,最后一个隐层输出数据为一个值。再根据输出层的激活函数对最后一个隐层输出数据进行映射得到输出标签。基于所有训练样本的输出标签和真实标签,利用全连接神经网络的损失函数计算训练样本集的误差值,若误差值大于预设阈值,根据误差值,通过反向传播算法利用梯度下降调整全连接神经网络各隐层的权值和偏置值,再次将每个训练样本的行为特征输入权值调整后的全连接神经网络,获取输出标签,并再次计算训练样本集的误差值,进一步根据误差值进行权值和偏置值调整,直至训练样本集的误差值小于预设阈值。最后得到其中,通过反向传播算法利用梯度下降调整全连接神经网络各隐层的权值为现有方法,可以参见https://blog.csdn.net/kebu12345678/article/details/54915395。
接下来,对全连接神经网络检测模型进行测试:将已知安卓软件测试样本集中每个测试样本的行为矩阵输入全连接神经网络检测模型,得到输出标签;将所有测试样本的输出标签和真实标签进行比对,获取全连接神经网络检测模型的检测准确率。若准确率小于预设阈值,调整隐层层数、调整训练样本的数量、优化训练样本,再对全连接神经网络进行训练直至全连接神经网络检测模型的检测准确率大于或等于预设阈值,得到最终的全连接神经网络检测模型用于对待检测安卓软件进行检测;若准确率大于或等于预设阈值,将全连接神经网络检测模型直接用于对待检测安卓软件进行检测。
全连接神经网络检测模型对应任一训练样本的输出标签与真实标签之间的误差值在允许范围内,以保证全连接神经网络检测模型的检测准确度。
步骤S103、利用全连接神经网络检测模型对未知安卓软件进行恶意检测。
确定未知安卓软件的行为特征,输入全连接神经网络检测模型,得到输出标签,根据输出标签确定未知安卓软件是否为恶意安卓软件,例如,若标签为0,未知安卓软件是恶意安卓软件;若标签为1,未知安卓软件是非恶意安卓软件。
本发明方法实施例一,考虑到恶意安卓软件与非恶意安卓软件的敏感行为触发时序和频次存在差异,利用已知安卓软件的行为特征训练得到全连接神经网络检测模型,进而根据未知安卓软件的行为特征利用全连接神经网络检测模型对未知安卓软件进行恶意检测,实现了恶意安卓软件与非恶意安卓软件的行为种类并没有明显时的恶意安卓软件检测。
图2为本发明方法实施例二提供的一种恶意安卓软件检测方法的流程图。如图2所示,在本实施例中,在方法实施例一的基础上,步骤S101包括:
步骤S201-1、获取每个已知安卓软件在若干时间段内调用敏感行为对应API接口的标识信息和调用时间信息;
在本实施例中,若干时间段为等时间间隔的多个时间段,优选为一大段时间等间隔划分而得的多个时间段。在若干时段内,对敏感行为对应API接口进行监控,一旦某个敏感行为对应API接口被调用,获取该API接口的调用日志,调用日志包括调用该API接口的已知安卓软件的标识信息、被调用API接口的标识信息和调用时间信息。其中,为避免监控时长过短,已知安卓软件未触发敏感行为,不调用敏感行为对应的API接口,导致无法获取相关信息。每个时段均不宜过短,例如可以为2小时,具体根据实际情况设置。进而根据每个时段内获取的调用日志,获取调用敏感行为对应API接口的每个已知安卓软件在该时段内所调用敏感行为对应API接口的标识信息和调用时间信息。
每个已知安卓软件所调用敏感行为对应API接口的标识信息和调用时间信息表明了已知安卓软件在什么时间触发了哪种敏感行为。获取每个已知安卓软件在各个时间段内调用敏感行为对应API接口的标识信息和调用时间信息,可统计出每个已知安卓软件在各个时间段内所触发各种敏感行为的频次。而不同的时间段存在一定的时序关系。因而,获取每个已知安卓软件在各个时间段内调用敏感行为对应API接口的标识信息和调用时间信息,可用于后续确定该已知安卓软件的行为特征。
步骤S201-2、将每个训练样本的行为特征矩阵确定为每个训练样本的行为特征,行为特征矩阵中的每个元素表示对应的已知安卓软件在某时间段内调用某个API的次数。
在本实施例中,根据每个已知安卓软件在每个时间段内所调用敏感行为对应API接口的标识信息和调用时间信息,可以统计得到该已知安卓软件在该时间段内调用每个API接口的次数。进而可构建出该已知安卓软件在该时间段的行为特征向量,构建方式例如可以为one-hot编码方式。行为特征向量中每个元素表示该已知安卓软件在该时间段内调用某个API的次数。将该已知安卓软件在各时间段的行为特征向量合并得到该已知安卓软件的行为特征矩阵。例如:获取到某个已知安卓软件,在第一时间段内,t11和t12时刻调用了API1,t13、t14、t15和t16时刻调用了API2,t17、t18、t19、t110、t111和t112时刻调用了API3;在第二时间段内,t21时刻调用了API1,t22、t23和t24时刻调用了API2,t25、t26、t27、t28和t29时刻调用了API3;在第三时间段内,t31时刻调用了API1,t32和t33时刻调用了API2,t34、t35、t37和t38时刻调用了API3。统计可得,该已知安卓软件在第一时间段内,调用API12次、调用API24次以及调用API36次,则该已知安卓软件在第一时间段内的行为特征向量为[2,4,6];该已知安卓软件在第二时间段内,调用API11次、调用API23次以及调用API35次,则该已知安卓软件在第二时间段内的行为特征向量为[1,3,5];该已知安卓软件在第三时间段内,调用API11次、调用API22次以及调用API34次,则该已知安卓软件在第三时间段内的行为特征向量为[1,2,4]。将该已知安卓软件在三个时间段的行为特征向量合并得到行为特征矩阵:
本发明方法实施例二通过获取每个已知安卓软件在若干时间段内所调用敏感行为对应API接口的标识信息和调用时间信息,可统计获得能够体现每个已知安卓软件触发敏感行为的时序和频次信息的行为特征矩阵,进而能够确定每个已知安卓软件的行为特征。
图3为本发明方法实施例三提供的一种恶意安卓软件检测方法的流程图。如图3所示,在本实施例中,在方法实施例一的基础上,步骤S101具体包括:
步骤S301、确定已知安卓软件训练样本集中每个训练样本包含的行为特征,行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息,敏感行为包括仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为和恶意安卓软件以及非恶意安卓软件均常触发的敏感行为中至少一种。
在本实施例中,已知安卓软件可能触发的敏感行为众多。其中,有些敏感行为对判断已知安卓软件是否为恶意安卓软件具有决定作用,例如,仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为以及恶意安卓软件和非恶意安卓软件均常触发的敏感行为;另外一些敏感行为对判断已知安卓软件是否为恶意安卓软件没有太大影响,例如,恶意安卓软件和非恶意安卓软件均很少触发的敏感行为。因此,在本实施例中,行为特征包含每个已知安卓软件触发对判断已知安卓软件是否为恶意安卓软件具有决定作用的敏感行为的时序和频次信息。其中,通过对大量恶意安卓软件和非恶意安卓软件历史运行过程进行分析统计,确定仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为以及恶意安卓软件和非恶意安卓软件均常触发的敏感行为。同时,在确定行为特征时,仅考虑对判断已知安卓软件是否为恶意安卓软件具有决定作用的敏感行为,可以减少行为特征包含的信息量,降低训练及检测过程中的计算量。
此外,在方法实施例二的基础上,步骤S101具体包括步骤S301形成的方法实施例也在本发明保护范围内。
图4为本发明方法实施例四提供的一种恶意安卓软件检测方法的流程图。如图4所示,在本实施例中,在方法实施例二的基础上,步骤S201-1具体包括:
步骤S401-1、获取每个已知安卓软件在若干时间段内调用敏感行为对应API接口的标识信息和调用时间信息,敏感行为包括仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为以及恶意安卓软件和非恶意安卓软件均常触发的敏感行为;
步骤S102具体包括:
步骤S402-1、将每个训练样本的行为特征输入全连接神经网络,利用所述第一隐层中分割算子,在每个行为特征矩阵中提取出恶意行为特征向量、非恶意行为特征向量以及复杂行为特征向量;
步骤S402-2、利用所述第一隐层中拼接算子,分别将各恶意行为特征向量、各非恶意行为特征向量以及各复杂行为特征向量进行拼接,得到恶意行为特征矩阵、非恶意行为特征矩阵以及复杂行为特征矩阵;
步骤S402-3、利用所述第一隐层中三个全连接层分别对所述恶意行为特征矩阵、所述非恶意行为特征矩阵以及所述复杂行为特征矩阵进行计算得到三个输出向量,并利用所述拼接算子将三个所述输出向量拼接得到中间矩阵以作为所述全连接网络的第二隐层的输入;
步骤S402-4、各隐层依次根据输入计算得到输出作为下一隐层的输入,直至输出层根据最后一个隐层的输出计算得到训练样本的输出标签;
步骤S402-5、根据所有训练样本的输出标签和真实标签计算所述损失函数的值,并根据所述损失函数的值对所述全连接网络中各隐层的权值和偏置值进行调整,以获得全连接神经网络检测模型,其中,对所述第一隐层中三个全连接层的权值和偏置值均进行调整,所述全连接神经网络检测模型对应损失函数在所述已知安卓软件训练样本集上的误差值在允许范围内。
在本实施例中,将每个训练样本的行为特征输入全连接神经网络,利用所述第一隐层中分割算子,根据仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为以及恶意安卓软件和非恶意安卓软件均常触发的敏感行为,在每个行为特征矩阵中提取出恶意行为特征向量、非恶意行为特征向量以及复杂行为特征向量。利用所述第一隐层中拼接算子,将各恶意行为特征向量拼接得到恶意行为特征矩阵,将各非恶意行为特征向量拼接得到非恶意行为特征矩阵,将各复杂行为特征向量拼接得到复杂行为特征矩阵。
在本实施例中,行为特征矩阵中包含仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为以及恶意安卓软件和非恶意安卓软件均常触发的敏感行为各自对应的数据,这三类敏感行为对应的数据具有不同特点。
当行为特征矩阵输入全连接网络后不进行分割,而直接进行计算时,用于对行为特征矩阵进行计算的第一隐层仅需包含一个全连接层,且该全连接层中每个权值和偏置值均会参与三种不同敏感行为对应数据的计算。因而,在根据误差值,通过反向传播算法利用梯度下降调整全连接神经网络中第一隐层的权值和偏置值时,需同时考虑权值和偏置值对三类敏感行为对应数据的影响。这使得根据第一隐层的权值和偏置值对行为特征矩阵进行计算得到的第一隐层的输出数据很难对三类敏感行为分别进行准确的描述,进而会使得全连接神经网络检测模型的检测准确度受到影响。
在本实施例中,在全连接神经网络中,用于对行为特征矩阵进行计算的第一隐层包括分割算子、拼接算子和三个全连接层。其中,分割算子,例如:slice算子,用于分别根据仅恶意安卓软件常触发的各敏感行为各自对应的API接口、仅非恶意安卓软件常触发的各敏感行为各自对应的API接口以及恶意安卓软件和非恶意安卓软件均常触发的各敏感行为各自对应的API接口,在每个训练样本的行为特征矩阵中提取出恶意行为特征向量、非恶意行为特征向量以及复杂行为特征向量,其中,每个向量表示在各段时间内调用对应API接口的次数;拼接算子,例如:concat算子,用于将各恶意行为特征向量拼接得到恶意行为特征矩阵,同理,得到非恶意行为特征矩阵和复杂行为特征矩阵;三个全连接层分别用于对恶意行为特征矩阵、非恶意行为特征矩阵以及复杂行为特征矩阵进行计算,拼接算子还用于将三个全连接层的输出向量拼接得到中间矩阵以作为第二隐层的输入。由于第一隐层中包含三个全连接层,每个全连接层仅对一类敏感行为对应的矩阵进行计算。因而,在根据误差值,通过反向传播算法利用梯度下降调整全连接神经网络中第一隐层中三个全连接层的权值和偏置值时,仅考虑每个全连接层的权值和偏置值对一类敏感行为对应矩阵的影响即可,即三个全连接层的权值和偏置值调整相互独立。从而利用三个全连接网络层分别对恶意行为特征矩阵、复杂行为特征矩阵和非恶意行为特征矩阵进行计算得到的三个向量中每个向量均能对对应类敏感行为进行准确的描述。进而使得全连接神经网络检测模型具有较好的检测准确度。
在本发明方法实施例四中,全连接网络的第一隐层包括分割算子、拼接算子和三个全连接层,可将行为特征矩阵分割为恶意行为特征矩阵、复杂行为特征矩阵和非恶意行为特征矩阵,且分别采用不同的全连接层进行计算,使得第一隐层中每个全连接层的权值和偏置值的调整仅需考虑对应矩阵即可,不受另外两个矩阵影响,从而每个全连接层可准确描述对应类敏感行为,进而提高了全连接网络监测模型的检测准确度。
图5为本发明方法实施例五提供的一种恶意安卓软件检测方法的流程图。如图5所示,在本实施例中,在方法实施例一的基础上,步骤S103之前还包括:
步骤S503-1、在待检测安卓软件所在安卓系统移动终端上设置监控程序和全连接神经网络检测模型;
步骤S503-2、利用监控程序监控敏感行为对应的API接口,获取待检测安卓软件的行为特征。
在本实施例中,在待检测安卓软件所在安卓系统移动终端上,在敏感行为对应的API接口处打桩设置监控程序。当API接口被调用时,会触发监控程序中的回调函数获取API接口的调用信息。根据API接口的调用信息获取待检测安卓软件的行为特征确定与已知安卓软件的行为特征类似,在次不再复述。将待检测安卓软件的行为特征输入全连接神经网络检测模型获取描述待检测安卓软件是否恶意的输出标签,实现检测。
本发明方法实施例五通过在待检测安卓软件所在安卓系统移动终端上设置监控程序和全连接神经网络检测模型,可以实现对待检测安卓软件的实时检测。
此外,在上述除方法实施例一以外的每个方法实施例的基础上,步骤S103之前还包括步骤S503-1和步骤S503-2分别形成的方法实施例也在本发明的保护范围内。
图6为本发明方法实施例六提供的一种恶意安卓软件检测方法的流程图。如图6所示,在本实施例中,在方法实施例一的基础上,步骤S101具体包括:
步骤S601、确定已知安卓软件训练样本集中每个训练样本包含的行为特征,行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息,已知安卓软件为同类应用场景下的恶意与否已知的安卓软件。
在本实施例中,同类应用场景可以为通讯、购物或打车等应用场景。采用同类应用场景下的恶意与否已知的安卓软件作为训练样本训练得到的全连接神经网络检测模型,对该类应用场景下的恶意安卓软件识别能力突出,检测准确率较高,可以有针对性地用于对该类应用场景下的待检测安卓软件进行检测。
此外,在上述除方法实施例一以外的每个方法实施例中,已知安卓软件也可以为同类应用场景下的恶意与否已知的安卓软件。
图7为本发明装置实施例一提供的一种恶意安卓软件检测装置的示意图。如图7所示,在本实施例中,该装置包括:
行为特征确定模块101,用于确定已知安卓软件训练样本集中每个训练样本包含的行为特征,行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息;
模型确定模块102,用于利用所有训练样本对全连接神经网络进行训练,以获得全连接神经网络检测模型,其中,全连接神经网络检测模型对应损失函数在已知安卓软件训练样本集上的误差值在允许范围内;
检测模块103,用于利用全连接神经网络检测模型对未知安卓软件进行恶意检测。
本发明装置实施例一考虑到恶意安卓软件与非恶意安卓软件的敏感行为触发时序和频次存在差异,利用已知安卓软件的行为特征训练得到全连接神经网络检测模型,进而根据未知安卓软件的行为特征利用全连接神经网络检测模型对未知安卓软件进行恶意检测,实现了恶意安卓软件与非恶意安卓软件的行为种类并没有明显时的恶意安卓软件检测。
图8为本发明装置实施例二提供的一种恶意安卓软件检测装置的示意图。如图8所示,在本实施例中,在装置实施例一的基础上,行为特征确定模块101具体包括:
获取模块201-1,用于获取每个已知安卓软件在若干时间段内调用敏感行为对应API接口的标识信息和调用时间信息;
确定模块202-2,用于将每个训练样本的行为特征矩阵确定为每个训练样本的行为特征,行为特征矩阵中的每个元素表示对应的已知安卓软件在某时间段内调用某个API的次数。
本发明装置实施例二通过获取每个已知安卓软件在若干时间段内所调用敏感行为对应API接口的标识信息和调用时间信息,可统计获得能够体现每个已知安卓软件触发敏感行为的时序和频次信息的行为特征矩阵,进而能够确定每个已知安卓软件的行为特征。
图9为本发明装置实施例三提供的一种恶意安卓软件检测装置的示意图。如图9所示,在本实施例中,在装置实施例一的基础上,行为特征确定模块101具体包括:
行为特征确定模块301,用于确定已知安卓软件训练样本集中每个训练样本包含的行为特征,行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息,敏感行为包括仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为和恶意安卓软件以及非恶意安卓软件均常触发的敏感行为所组成的集合中至少一种。
本发明装置实施例三通过将敏感行为限定为对判断已知安卓软件是否为恶意安卓软件具有决定作用的敏感行为中仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为和恶意安卓软件和非恶意安卓软件均常触发的敏感行为所组成的集合中的一个或多个,即可保证检测准确度,又可以减少行为特征包含的信息量,降低训练及检测过程中的计算量。
此外,在装置实施例二的基础上,行为特征确定模块101具体包括行为特征确定模块301形成的装置实施例也在本发明保护范围内。
图10为本发明装置实施例四提供的一种恶意安卓软件检测装置的示意图。如图10所示,在本实施例中,在装置实施例二的基础上,获取模块201-1具体包括:
获取模块401-1,用于获取每个已知安卓软件在若干时间段内调用敏感行为对应API接口的标识信息和调用时间信息,敏感行为包括仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为以及恶意安卓软件和非恶意安卓软件均常触发的敏感行为;
模型确定模块102具体包括:
提取模块402-1,用于将每个训练样本的行为特征输入全连接神经网络,利用所述第一隐层中分割算子,在每个行为特征矩阵中提取出恶意行为特征向量、非恶意行为特征向量以及复杂行为特征向量;
拼接模块402-2,用于利用所述第一隐层中拼接算子,分别将各恶意行为特征向量、各非恶意行为特征向量以及各复杂行为特征向量进行拼接,得到恶意行为特征矩阵、非恶意行为特征矩阵以及复杂行为特征矩阵;
计算模块402-3,用于利用所述第一隐层中三个全连接层分别对所述恶意行为特征矩阵、所述非恶意行为特征矩阵以及所述复杂行为特征矩阵进行计算得到三个输出向量,并利用所述拼接算子将三个所述输出向量拼接得到中间矩阵以作为所述全连接网络的第二隐层的输入;
输出标签获取模块402-4,用于各隐层依次根据输入计算得到输出作为下一隐层的输入,直至输出层根据最后一个隐层的输出计算得到训练样本的输出标签;
调整模块402-5,用于根据所有训练样本的输出标签和真实标签计算所述损失函数的值,并根据所述损失函数的值对所述全连接网络中各隐层的权值和偏置值进行调整,以获得全连接神经网络检测模型,其中,对所述第一隐层中三个全连接层的权值和偏置值均进行调整,所述全连接神经网络检测模型对应损失函数在所述已知安卓软件训练样本集上的误差值在允许范围内。
在本实施例中,将每个训练样本的行为特征输入全连接神经网络,利用所述第一隐层中分割算子,根据仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为以及恶意安卓软件和非恶意安卓软件均常触发的敏感行为,在每个行为特征矩阵中提取出恶意行为特征向量、非恶意行为特征向量以及复杂行为特征向量。利用所述第一隐层中拼接算子,将各恶意行为特征向量拼接得到恶意行为特征矩阵,将各非恶意行为特征向量拼接得到非恶意行为特征矩阵,将各复杂行为特征向量拼接得到复杂行为特征矩阵。
本发明装置实施例四中,全连接网络的第一隐层包括分割算子、拼接算子和三个全连接层,可将行为特征矩阵分割为恶意行为特征矩阵、复杂行为特征矩阵和非恶意行为特征矩阵,且分别采用不同的全连接层进行计算,使得第一隐层中每个全连接层的权值和偏置值的调整仅需考虑对应矩阵即可,不受另外两个矩阵影响,从而每个全连接层可准确描述对应类敏感行为,进而提高了全连接网络监测模型的检测准确度。
图11为本发明装置实施例五提供的一种恶意安卓软件检测装置的示意图。如图11所示,在本实施例中,在装置实施例一的基础上,该装置还包括:
设置模块503-1,用于在待检测安卓软件所在安卓系统移动终端上设置监控程序和全连接神经网络检测模型;
监控模块501-2,用于利用监控程序监控敏感行为对应的API接口,获取待检测安卓软件的行为特征。
本发明装置实施例五通过在待检测安卓软件所在安卓系统移动终端上设置监控程序和全连接神经网络检测模型,可以实现对待检测安卓软件的实时检测。
此外,在上述除装置实施例一意外的每个装置实施例的基础上,还包括设置模块503-1和监控模块501-2分别形成的装置实施例也在本发明的保护范围内。
图12为本发明装置实施例六提供的一种恶意安卓软件检测装置的示意图。如图12所示,在本实施例中,在装置实施例一的基础上,行为特征确定模块101具体包括:
行为特征确定模块601,用于确定已知安卓软件训练样本集中每个训练样本包含的行为特征,行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息,已知安卓软件为同类应用场景下的恶意与否已知的安卓软件。
本发明装置实施例六采用同类应用场景下的恶意与否已知的安卓软件作为训练样本训练得到的全连接神经网络检测模型,对该类应用场景下的恶意安卓软件识别能力突出,检测准确率较高,可以有针对性地用于对该类应用场景下的待检测安卓软件进行检测。
此外,在上述除装置实施例一以外的每个装置实施例中,行为特征确定模块101具体包括行为特征确定模块601,分别形成的装置实施例也在本发明的保护范围内。
本发明实施例提供一种计算机设备,包括:处理器以及用于存放计算机程序的存储器,所述处理器用于执行所述存储器上所存放的计算机程序,以实现上述各方法实施例所述的方法。
本发明实施例提供一种计算机存储介质,所述计算机存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述各方法实施例所述的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种恶意安卓软件检测方法,其特征在于,包括:
确定已知安卓软件训练样本集中每个训练样本包含的行为特征,所述行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息;
利用所有训练样本对全连接神经网络进行训练,以获得全连接神经网络检测模型,其中,所述全连接神经网络检测模型对应损失函数在已知安卓软件训练样本集上的误差值在允许范围内;
利用所述全连接神经网络检测模型对未知安卓软件进行恶意检测;
其中,所述敏感行为包括仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为以及恶意安卓软件和非恶意安卓软件均常触发的敏感行为时,所述全连接神经网络的第一隐层包括分割算子、拼接算子和三个全连接层;
相应地,所述利用所有训练样本对全连接神经网络进行训练,具体包括:
将每个训练样本的行为特征输入全连接神经网络,利用所述第一隐层中分割算子,在每个行为特征矩阵中提取出恶意行为特征向量、非恶意行为特征向量以及复杂行为特征向量;
利用所述第一隐层中拼接算子,分别将各恶意行为特征向量、各非恶意行为特征向量以及各复杂行为特征向量进行拼接,得到恶意行为特征矩阵、非恶意行为特征矩阵以及复杂行为特征矩阵;
利用所述第一隐层中三个全连接层分别对所述恶意行为特征矩阵、所述非恶意行为特征矩阵以及所述复杂行为特征矩阵进行计算得到三个输出向量,并利用所述拼接算子将三个所述输出向量拼接得到中间矩阵以作为所述全连接神经网络的第二隐层的输入;
各隐层依次根据输入计算得到输出作为下一隐层的输入,直至输出层根据最后一个隐层的输出计算得到训练样本的输出标签;
根据所有训练样本的输出标签和真实标签计算所述损失函数的值,并根据所述损失函数的值对所述全连接神经网络中各隐层的权值和偏置值进行调整;其中,对所述第一隐层中三个全连接层的权值和偏置值均进行调整。
2.根据权利要求1所述的恶意安卓软件检测方法,其特征在于,确定每个训练样本的行为特征,包括:
获取每个已知安卓软件在若干时间段内所调用敏感行为对应API接口的标识信息和调用时间信息;
将所述每个训练样本的行为特征矩阵确定为所述每个训练样本的行为特征,所述行为特征矩阵中的每个元素表示对应的已知安卓软件在某时间段内调用某个API的次数。
3.根据权利要求2所述的恶意安卓软件检测方法,其特征在于,所述敏感行为包括仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为和恶意安卓软件和非恶意安卓软件均常触发的敏感行为中至少一种。
4.根据权利要求1所述的恶意安卓软件检测方法,其特征在于,所述利用所述全连接神经网络检测模型对未知安卓软件进行恶意检测之前还包括:
在待检测安卓软件所在安卓系统移动终端上设置监控程序和所述全连接神经网络检测模型;
利用监控程序监控所述敏感行为对应的API接口,获取所述待检测安卓软件的行为特征。
5.根据权利要求1-4中任一项权利要求所述的恶意安卓软件检测方法,其特征在于,所述已知安卓软件为同类应用场景下的已知恶意状态的安卓软件。
6.一种恶意安卓软件检测装置,其特征在于,包括:
行为特征确定模块,用于确定已知安卓软件训练样本集中每个训练样本包含的行为特征,所述行为特征包含一个已知安卓软件触发敏感行为的时序和频次信息;
模型确定模块,用于利用所有训练样本对全连接神经网络进行训练,以获得全连接神经网络检测模型,其中,所述全连接神经网络检测模型对应损失函数在已知安卓软件训练样本集上的误差值在允许范围内;
检测模块,用于利用所述全连接神经网络检测模型对未知安卓软件进行恶意检测;
其中,所述敏感行为包括仅恶意安卓软件常触发的敏感行为、仅非恶意安卓软件常触发的敏感行为以及恶意安卓软件和非恶意安卓软件均常触发的敏感行为时,所述全连接神经网络的第一隐层包括分割算子、拼接算子和三个全连接层;
相应地,所述利用所有训练样本对全连接神经网络进行训练,具体包括:
将每个训练样本的行为特征输入全连接神经网络,利用所述第一隐层中分割算子,在每个行为特征矩阵中提取出恶意行为特征向量、非恶意行为特征向量以及复杂行为特征向量;
利用所述第一隐层中拼接算子,分别将各恶意行为特征向量、各非恶意行为特征向量以及各复杂行为特征向量进行拼接,得到恶意行为特征矩阵、非恶意行为特征矩阵以及复杂行为特征矩阵;
利用所述第一隐层中三个全连接层分别对所述恶意行为特征矩阵、所述非恶意行为特征矩阵以及所述复杂行为特征矩阵进行计算得到三个输出向量,并利用所述拼接算子将三个所述输出向量拼接得到中间矩阵以作为所述全连接神经网络的第二隐层的输入;
各隐层依次根据输入计算得到输出作为下一隐层的输入,直至输出层根据最后一个隐层的输出计算得到训练样本的输出标签;
根据所有训练样本的输出标签和真实标签计算所述损失函数的值,并根据所述损失函数的值对所述全连接神经网络中各隐层的权值和偏置值进行调整;其中,对所述第一隐层中三个全连接层的权值和偏置值均进行调整。
7.一种计算机设备,包括:
处理器;以及
用于存放计算机程序的存储器,
其特征在于,所述处理器用于执行所述存储器上所存放的计算机程序,以实现权利要求1至5中任一权利要求所述的恶意安卓软件检测方法。
8.一种计算机存储介质,其特征在于,所述计算机存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至5中任一权利要求所述的恶意安卓软件检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811107253.3A CN110941826B (zh) | 2018-09-21 | 2018-09-21 | 恶意安卓软件检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811107253.3A CN110941826B (zh) | 2018-09-21 | 2018-09-21 | 恶意安卓软件检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110941826A CN110941826A (zh) | 2020-03-31 |
CN110941826B true CN110941826B (zh) | 2022-08-09 |
Family
ID=69904497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811107253.3A Active CN110941826B (zh) | 2018-09-21 | 2018-09-21 | 恶意安卓软件检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110941826B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672908B (zh) * | 2021-07-31 | 2022-09-13 | 北京荣耀终端有限公司 | 定点插桩方法、相关装置及系统 |
CN114491529B (zh) * | 2021-12-20 | 2024-05-17 | 西安电子科技大学 | 基于多模态神经网络的安卓恶意应用程序识别方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1879124A1 (en) * | 2006-06-15 | 2008-01-16 | Deutsche Telekom AG | Improved method and system for detecting malicious behavioral patterns in a computer, using machine leaning |
CN102930210B (zh) * | 2012-10-14 | 2015-11-25 | 江苏金陵科技集团有限公司 | 恶意程序行为自动化分析、检测与分类系统及方法 |
CN105426760B (zh) * | 2015-11-05 | 2018-04-06 | 工业和信息化部电信研究院 | 一种安卓恶意应用的检测方法及装置 |
CN107463878A (zh) * | 2017-07-05 | 2017-12-12 | 成都数联铭品科技有限公司 | 基于深度学习的人体行为识别系统 |
CN108171276B (zh) * | 2018-01-17 | 2019-07-23 | 百度在线网络技术(北京)有限公司 | 用于生成信息的方法和装置 |
-
2018
- 2018-09-21 CN CN201811107253.3A patent/CN110941826B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110941826A (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566358B (zh) | 一种风险预警提示方法、装置、介质及设备 | |
CN109684118B (zh) | 异常数据的检测方法、装置、设备及计算机可读存储介质 | |
CN110489964A (zh) | 账号检测方法、装置、服务器及存储介质 | |
JP6355683B2 (ja) | リスク早期警報方法、装置、記憶媒体およびコンピュータプログラム | |
US11163877B2 (en) | Method, server, and computer storage medium for identifying virus-containing files | |
CN108229262B (zh) | 一种色情视频检测方法及装置 | |
CN109194689B (zh) | 异常行为识别方法、装置、服务器及存储介质 | |
CN110941826B (zh) | 恶意安卓软件检测方法及装置 | |
CN110351299B (zh) | 一种网络连接检测方法和装置 | |
US11847216B2 (en) | Analysis device, analysis method and computer-readable recording medium | |
CN113660196A (zh) | 一种基于深度学习的网络流量入侵检测方法及装置 | |
CN110210218A (zh) | 一种病毒检测的方法以及相关装置 | |
WO2020125477A1 (zh) | 一种提升爬虫识别召回率的方法、装置、介质及设备 | |
CN109241739B (zh) | 基于api的安卓恶意程序检测方法、装置及存储介质 | |
CN110210215B (zh) | 一种病毒检测的方法以及相关装置 | |
US10984105B2 (en) | Using a machine learning model in quantized steps for malware detection | |
CN107506124B (zh) | 视频交友方法及系统 | |
CN116208513A (zh) | 网关的健康度预测方法及装置 | |
CN112468452A (zh) | 流量检测方法及装置、电子设备、计算机可读存储介质 | |
CN114676428A (zh) | 基于动态特征的应用程序恶意行为检测方法及设备 | |
CN110765303A (zh) | 一种更新数据库的方法及系统 | |
CN110460569A (zh) | 在线访问的检测方法及检测装置 | |
CN110197066A (zh) | 一种云计算环境下的虚拟机监控方法及监控系统 | |
CN113946703B (zh) | 一种图片漏检处理方法及其相关装置 | |
CN113449304B (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 |