CN109657468A - 病毒行为检测方法、装置及计算机可读存储介质 - Google Patents
病毒行为检测方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109657468A CN109657468A CN201811445281.6A CN201811445281A CN109657468A CN 109657468 A CN109657468 A CN 109657468A CN 201811445281 A CN201811445281 A CN 201811445281A CN 109657468 A CN109657468 A CN 109657468A
- Authority
- CN
- China
- Prior art keywords
- behavior
- application program
- virus
- goal
- sequence
- 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
Links
- 241000700605 Viruses Species 0.000 title claims abstract description 253
- 238000001514 detection method Methods 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 94
- 230000008569 process Effects 0.000 claims abstract description 64
- 244000035744 Hura crepitans Species 0.000 claims abstract description 45
- 230000006399 behavior Effects 0.000 claims description 440
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012163 sequencing technique Methods 0.000 claims description 7
- 230000003612 virological effect Effects 0.000 abstract description 27
- 238000003745 diagnosis Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 17
- 238000012549 training Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 101000993976 Sagittaria sagittifolia Proteinase inhibitor A Proteins 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000011230 binding agent Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002574 poison Substances 0.000 description 1
- 231100000614 poison Toxicity 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种病毒行为检测方法、装置及计算机存储介质,所述方法包括:在沙箱环境中运行移动终端中的应用程序,以对所述应用程序进行扫描;根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果;将所述识别结果显示在所移动终端的显示屏上。上述方案中,能够获取更多的应用程序运行过程中的动态行为,使得用于进行病毒检测的行为更加多样化,另外,通过预设的病毒行为识别模型来进行目标行为序列的识别,避免了对人为设定规则的依赖,能够使病毒行为识别更加全面。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种病毒行为检测方法、装置及计算机可读存储介质。
背景技术
随着科学技术的不断发展,移动终端的使用在人们的生活中越来越普遍。由于移动终端,例如手机,存储了用户的很多私人信息,例如账号、密码,如果用户的移动终端中存在病毒程序,在病毒程序运行后会对用户造成极大的损失。
现有技术中,在对移动终端的待检测应用程序进行病毒检测时,通常是采用静态检测方式来实现。静态检测方式是基于待检测应用程序内部文件提取静态特征,并通过检测静态特征是否命中人为设置的病毒特征规律来确定待检测应用程序是否为病毒。由于静态检测依赖于待检测应用程序内部文件,因此提取的特征比较单一,且病毒特征规律是人为设定的,无法覆盖全部的病毒检测范围,容易出现病毒检测的遗漏。
发明内容
本说明书实施例提供及一种病毒行为检测方法、装置及计算机可读存储介质。
第一方面,本说明书实施例提供一种病毒行为检测方法,应用于移动终端,包括:
在沙箱环境中运行所述移动终端中的应用程序,以对所述应用程序进行扫描;
根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列;
在所述移动终端的沙箱环境中运行应用程序;
根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列;
基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果;
将所述识别结果显示在所述移动终端的显示屏上。
可选地,在所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列之前,所述方法还包括:
将所述应用程序的目标信息发送给服务器,以使所述服务器根据所述目标信息查询应用程序的黑白名单数据库,确定所述应用程序是否为正常应用程序;
在接收到所述服务器的反馈结果为所述应用程序为非正常应用程序时,执行所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列的步骤。
可选地,所述在所述移动终端的沙箱环境中运行应用程序之后,所述方法还包括:
在所述应用程序的运行过程中,模拟用户对所述移动终端的操作,以触发所述应用程序的行为。
可选地,所述预设打桩点为通过对所述移动终端的目标系统服务进行打桩处理得到的打桩点。
可选地,所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列,包括:
根据预设打桩点,确定所述应用程序在运行过程中调用的N个系统服务,其中,所述N个系统服务为包含在所述目标系统服务中的服务,N为正整数;
根据所述N个系统服务的调用行为,获取所述目标行为序列。
可选地,所述基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果,包括:
按照预设批次长度,将所述目标行为序列分批次输入至所述预设的病毒行为识别模型进行行为序列识别,获得与多个输入批次对应的多个识别结果;
在所述多个识别结果中存在一个或多个识别结果为病毒行为时,确定所述目标行为序列的识别结果为病毒行为。
可选地,所述基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果,包括:
所述预设的病毒行为识别模型根据预设的病毒特征,过滤掉所述目标行为序列中与所述预设的病毒特征不匹配的数据,获得过滤后的行为序列;
对所述过滤后的行为序列进行识别,获得所述过滤后的行为序列的识别结果,作为所述目标行为序列的识别结果。
可选地,所述预设的病毒行为识别模型通过以下方式获得:
获取多个带有病毒标签的应用程序样本;
逐个提取所述应用程序样本的行为序列;
将每个所述应用程序样本的行为序列输入到病毒行为识别模型中进行训练,得到训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
可选地,所述将所述应用程序样本的行为序列输入到初始的病毒行为识别模型中进行训练,得到训练好的病毒行为识别模型作为所述预设的病毒行为识别模型,包括:
获取所述病毒行为识别模型输出的对每个所述应用程序样本的行为序列的病毒预测结果;
根据所述病毒预测结果以及所述病毒标签,确定所述病毒行为识别模型的预测准确率;
在所述预测准确率大于阈值时,得到所述训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
可选地,在所述获得所述目标行为序列的识别结果之后,所述方法还包括:
对所述沙箱环境进行初始化,以使在所述沙箱环境中需要检测多个应用程序时,每个应用程序的运行环境均相同。
可选地,在所述获得所述目标行为序列的识别结果之后,所述方法还包括:
在所述识别结果为正常行为时,将所述应用程序的目标信息发送至所述服务器,以使所述服务器更新所述应用程序的黑白名单数据库。
第二方面,本说明书实施例提供一种病毒行为检测装置,包括:
扫描模块,用于在沙箱环境中运行移动终端中的应用程序,以对所述应用程序进行扫描;
获取模块,用于根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列;
识别模块,用于基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果;
显示模块,用于将所述识别结果显示在所述移动终端的显示屏上。
可选地,所述装置还包括:
发送模块,用于将所述应用程序的目标信息发送给服务器,以使所述服务器根据所述目标信息以及预设程序信息库,确定所述应用程序是否为正常应用程序;
执行模块,用于在接收到所述服务器的反馈结果为所述应用程序为非正常应用程序时,执行所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列的步骤。
可选地,所述装置还包括:
操作模拟模块,用于在所述应用程序的运行过程中,模拟用户对所述移动终端的操作,以触发所述应用程序的行为。
可选地,所述预设打桩点为通过对所述移动终端的目标系统服务进行打桩处理得到的打桩点。
可选地,所述获取模块,用于:
根据预设打桩点,确定所述应用程序在运行过程中调用的N个系统服务,其中,所述N个系统服务为包含在所述目标系统服务中的服务,N为正整数;
根据所述N个系统服务的调用行为,获取所述目标行为序列。
可选地,所述识别模块,用于:
按照预设批次长度,将所述目标行为序列分批次输入至所述预设的病毒行为识别模型进行行为序列识别,获得与多个输入批次对应的多个识别结果;
在所述多个识别结果中存在一个或多个识别结果为病毒行为时,确定所述目标行为序列的识别结果为病毒行为。
可选地,所述识别模块,用于:
所述预设的病毒行为识别模型根据预设的病毒特征,过滤掉所述目标行为序列中与所述预设的病毒特征不匹配的数据,获得过滤后的行为序列;
对所述过滤后的行为序列进行识别,获得所述过滤后的行为序列的识别结果,作为所述目标行为序列的识别结果。
可选地,所述装置还包括:
模型生成模块,用于获取多个带有病毒标签的应用程序样本;逐个提取所述应用程序样本的行为序列;将每个所述应用程序样本的行为序列输入到病毒行为识别模型中进行训练,得到训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
可选地,所述模型生成模块,用于:
获取所述病毒行为识别模型输出的对每个所述应用程序样本的行为序列的病毒预测结果;
根据所述病毒预测结果以及所述病毒标签,确定所述病毒行为识别模型的预测准确率;
在所述预测准确率大于阈值时,得到所述训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
可选地,所述装置还包括:
初始化模块,用于对所述沙箱环境进行初始化,以使在所述沙箱环境中需要检测多个应用程序时,每个应用程序的运行环境均相同。
可选地,所述发送模块,用于:
在所述识别结果为正常行为时,将所述应用程序的目标信息发送至所述服务器,以使所述服务器更新所述应用程序的黑白名单数据库。
第三方面,本说明书实施例提供一种病毒行为检测装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述任一项所述方法的步骤。
第四方面,本说明书实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法的步骤。
本说明书实施例有益效果如下:
在本说明书实施例提供的病毒行为检测方法中,在所述移动终端的沙箱环境中运行应用程序;根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列;基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果;将所述识别结果显示在所述移动终端的显示屏上。上述方案中,由于目标行为序列是在应用程序在运行过程中采集的,因此能够获取更多的应用程序的动态行为,使得获取到的用于进行病毒检测的行为更加多样化,另外,通过预设的病毒行为识别模型来进行目标行为序列的识别,避免了对人为设定规则的依赖,能够使病毒行为识别更加全面。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本说明书实施例第一方面提供的一种病毒行为检测方法的流程图;
图2为本说明书实施例提供的目标行为序列的获取方法的流程图;
图3为本说明书实施例提供的一种病毒行为检测的流程框图;
图4为本说明书实施例第二方面提供的病毒行为检测装置的示意图;
图5为本说明书实施例第三方面提供的病毒行为检测装置的示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。
第一方面,本说明书实施例提供的一种病毒行为检测方法,应用于移动终端,移动终端可以为手机、平板电脑等移动终端,在本说明书实施例中,以移动终端为手机为例来进行说明。本说明书实施例中,手机中可以安装有沙箱,沙箱环境为一个独立的虚拟环境,不会对手机系统造成影响,因此可以在沙箱环境中测试不受信任的应用程序或其他行为。
本说明书实施例中,移动终端可以和服务器通信连接。服务器可以用来训练病毒行为识别模型,并将训练好的病毒行为识别模型下发给移动终端。在一个实施例中,移动终端可以为安卓系统的手机,服务器上可以运行有安卓模拟器,以模拟手机的安卓系统,通过对获取到的样本数据进行训练,得到训练好的病毒行为识别模型。
如图1所示,为本说明书实施例提供的病毒行为检测方法的流程图,该方法包括以下步骤。
步骤S11:在沙箱环境中运行所述移动终端中的应用程序,以对所述应用程序进行扫描;
本说明书实施例中,移动终端为移动终端,例如手机、平板电脑等,本说明书实施例中以移动终端为安卓系统手机为例来进行说明。手机中安装有沙箱,应用程序可以是手机中的安全情况未知的程序,或者是需要进行病毒检测的程序,在沙箱中进行扫描的应用程序可以是一个,也可以是多个。为了保证手机系统的安全,可以在沙箱环境中对应用程序进行扫描,这样即便应用程序为病毒,也不会对手机系统产生影响。
步骤S12:根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列;
本说明书实施例中,预设打桩点可以通过订制ROM(Read Only Memory,只读存储器)的方式在系统服务中插入打桩点来实现。应理解的是,打桩点可以是根据历史病毒行为检测经验以及程序的行为敏感度来设置的,例如,后台监控访问联系人、后台监控访问短信息等行为为敏感度较高的行为,可以在对应的系统服务中插入打桩点。当然,预设打桩点还可以设置在其他位置,如设置在应用程序的进程中,这里不做限定。
打桩点的设置个数可以根据实际需要来进行设定。在一个实施例中,预设打桩点为200个,如果应用程序在运行过程中触发了这200个打桩点中的任何一个,都会将该行为提取出来,通过提取到的多个行为构成动态的目标行为序列,以反映应用程序在运行过程中的动态行为。
步骤S13:基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果;
本说明书实施例中,预设的病毒行为识别模型可以为服务器下发的病毒行为识别模型,也可以是在移动终端上训练的病毒行为识别模型。在预设的病毒行为识别模型的训练过程中,可以通过获取到的病毒样本来进行模型训练。以在服务器上训练模型为例,服务器上可以使用安卓模拟器来模拟手机的沙箱环境,在安卓模拟器中运行历史采集到的病毒样本,并获取病毒样本运行过程中的行为序列,作为病毒行为识别模型的输入,病毒行为识别模型的输出为行为序列的识别结果,如行为序列为病毒行为,或行为序列为非病毒行为。通过样本的不断训练最终获得预设的病毒行为识别模型。
当采集到目标行为序列后,将目标行为序列作为预设的病毒行为识别模型的输入,预设的病毒行为识别模型输出目标行为序列的识别结果。
步骤S14:将所述识别结果显示在所述移动终端的显示屏上。
本说明书实施例中,在得到目标行为序列的识别结果后,可以将识别结果显示在移动终端的显示屏上以提示用户应用程序是否安全。在一个实施例中,在识别结果表明应用程序为病毒时,还可以弹出窗口以提醒用户是否需要将应用程序进行卸载或删除。应理解的是,识别结果的显示方式可以根据实际需要进行设置,这里不做限定。
可选地,在所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列之前,所述方法还包括:将所述应用程序的目标信息发送给服务器,以使所述服务器根据所述目标信息查询应用程序的黑白名单数据库,确定所述应用程序是否为正常应用程序;在接收到所述服务器的反馈结果为所述应用程序为非正常应用程序时,执行所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列的步骤。
本说明书实施例中,目标信息可以根据实际需要来进行设置,在一个实施例中,以应用程序为apk程序包为例,目标信息可以为apk程序包的文件信息,如apk的配置文件信息、资源文件信息等。应用程序的黑白名单数据库可以是保存在云端服务器上的应用程序信息的黑名单数据库以及应用程序的白名单数据库,其中,黑名单数据库中保存有病毒应用程序的信息,白名单数据库中保存有正常应用程序的信息。
为了提高病毒行为检测的效率,在沙箱中运行应用程序时,可以先将应用程序的目标信息发送给服务器,服务器通过在应用程序的黑白名单数据库中查询目标信息,来确定应用程序的性质。如果目标信息包含在应用程序信息的白名单数据库中,则应用程序为正常应用程序,可以直接告知用户可以正常使用。如果目标信息包含在应用程序信息的黑名单数据库中,则应用程序为病毒程序,可以提醒用户运行该应用程序会存在风险。如果没有在黑白名单数据库中查找到目标信息,则无法判定应用程序是否为病毒,此时可以进一步提取应用程序的目标行为序列,进行目标行为序列的识别过程。在本说明书实施例中,当检测到目标信息为非正常应用程序的信息时,即目标信息为未知的程序信息,或目标信息为病毒程序信息,为了进一步确定应用程序的性质,可以进一步通过病毒行为识别模型来进行识别。
可选地,在所述获得所述目标行为序列的识别结果之后,所述方法还包括:将所述识别结果发送至所述服务器,以使所述服务器根据所述识别结果更新所述应用程序的黑白名单数据库。
本说明书实施例中,在获得了识别结果后,可以将识别结果以及应用程序的目标信息进行关联,并发送给服务器以使服务器对应用程序的黑白名单数据库进行更新。例如,在应用程序的目标信息未在黑白名单数据库找到时,根据病毒行为识别模型获得的识别结果为病毒时,将识别结果发送给服务器,服务器可以将应用程序的目标信息添加至黑名单数据库中。
可选地,所述在所述移动终端的沙箱环境中运行应用程序之后,所述方法还包括:在所述应用程序的运行过程中,模拟用户对所述移动终端的操作,以触发所述应用程序的行为。
应理解的是,由于有些病毒程序需要在某些特定条件下才会触发病毒行为,因此,在本说明书实施例中,在沙箱环境中运行应用程序时,可以通过模拟用户对移动终端的操作来触发这些病毒行为的产生,用户操作可以包括开关机操作、重启操作、锁屏操作、网络切换操作等。
可选地,所述预设打桩点为通过对所述移动终端的目标系统服务进行打桩处理得到的打桩点。本说明书实施例中,预设打桩点可以通过对手机ROM的修改来实现,即对ROM进行订制。应理解的是,系统服务可以包含很多,例如调用摄像头的服务,访问联系人的服务等。目标系统服务可以是在系统服务中挑选出的一个或多个。目标系统服务可以根据实际需要来进行选择,例如,将敏感度较高的系统服务作为目标系统服务,或根据以往经验,将与病毒行为密切相关的系统服务作为目标系统服务。
在确定了目标系统服务之后,可以在系统进程中对目标系统服务进行打桩处理,以实现在目标系统服务中插入打桩点。通常来讲,应用程序调用一个目标系统服务,则返回该目标系统服务的调用结果,在本说明书实施例中,为了获取对目标系统服务的调用行为,可以在目标系统服务对应的代码中插入一段目标代码,即对目标系统服务的代码进行修改,其中,目标代码所执行的步骤可以为:确定应用程序调用了该目标系统服务,将调用该目标系统服务的行为广播出去,最后获取该目标系统服务的调用结果。这样,当应用程序调用目标系统服务时,则会顺序执行插入的目标代码的步骤,并最后返回调用结果。
本说明书实施例中,目标系统服务可以包含多个,需要对这多个目标系统服务的调用进行监控,因此,可以预先在ROM中对这多个目标系统服务的代码进行修改,即在每个目标系统服务的代码中均插入一段目标代码。这样,当其中一个目标系统服务被调用时,就会对该调用行为进行广播,系统可以根据广播将该调用行为进行记录,这样就可以获得应用程序运行过程中对多个目标系统服务的调用行为。
另外,本说明书实施例中移动终端的沙箱是在订制的ROM环境中运行的,因此无需获取手机权限。
应理解的是,除了在系统进程中进行打桩处理,还可以在应用程序的进程中进行打桩处理。在一个实施例中,在沙箱环境中运行应用程序时,监控应用程序的进程,当监控到应用程序的进程中存在对目标系统服务的调用行为时,通过与目标系统服务对应的钩子函数,拦截并获取调用行为,根据调用行为,生成目标行为序列。
进一步的,通过与目标系统服务对应的钩子函数,拦截并获取调用行为,可以包括:根据预先配置的系统服务与钩子函数的对应关系,确定与目标系统服务对应的钩子函数,通过钩子函数在应用程序的进程中执行以下步骤:拦截目标系统服务的调用行为;将调用行为进行广播;获取调用行为的调用结果;根据调用行为的广播,对调用行为进行记录。
本说明书实施例中,采用binder hook的方式来获取对目标系统服务的调用行为。需要说明的是,binder机制是安卓系统里的一个进程间通信机制。hook(钩子)是系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。hook实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,也就是说,钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
本说明书实施例中,对于每个目标系统服务都设置有对应的钩子函数,当出现对目标系统服务的调用行为时,通过钩子函数拦截并获取该调用行为。通过获取应用程序运行过程出现的对目标系统服务的多个调用行为,将多个调用行为作为预设的病毒行为识别模型的输入,以使预设的病毒行为识别模型输出应用程序的识别结果。
在一个实施例中,可以根据预先配置的系统服务与钩子函数的对应关系,确定与所述每个目标系统服务对应的钩子函数。具体来讲,由于与病毒行为相关的系统服务有多个,可以将这些系统服务作为重点监控对象,因此,本实施例中,可以预先配置这些系统服务与钩子函数的对应关系。当检测到应用程序调用了系统服务A后,可以在对应关系中查找是否存在系统服务A,如果存在,则执行对应的钩子函数所包含的步骤,如果对应关系中未查找到系统服务A,则说明系统服务A与病毒行为的相关性较小,可以不做考虑,可以直接返回调用结果。
本说明书实施例中,为了获取对目标系统服务的调用行为,一旦监控到目标系统服务的调用行为时,通过对应的钩子拦截该调用命令,并写入一段目标代码,目标代码所执行的步骤可以为:确定应用程序调用了该目标系统服务,将调用该目标系统服务的行为广播出去,最后获取该目标系统服务的调用结果。这样,当应用程序调用目标系统服务时,则会顺序执行插入的目标代码的步骤,并最后返回调用结果。
在一个实施例中,当监控到应用程序调用了目标系统服务,例如调用API-A,通过对应的钩子拦截该调用命令,并返回一个代理,该代理所执行的流程为:确定应用程序调用了API-A,将该调用行为广播出去,获取API-A的调用结果。在应用程序的调用命令被拦截后,执行代理对应的流程,这样就可以将该调用行为进行广播和记录。
如图2所示,为本说明书实施例提供的目标行为序列的获取方法的流程图,包括以下步骤。
步骤S21:根据预设打桩点,确定所述应用程序在运行过程中调用的N个系统服务,其中,所述N个系统服务为包含在所述目标系统服务中的服务,N为正整数;
步骤S22:根据所述N个系统服务的调用行为,获取所述目标行为序列。
本说明书实施例中,应用程序在进程中会产生许多行为,包括向系统请求调用各类API(Application Programming Interface,应用程序编程接口)的行为。应理解的是,系统服务可以理解为响应API调用的服务,在某一个API被调用后,可以根据对应的系统服务对API的调用请求进行响应,并反馈一个调用结果。由于在目标系统服务中进行了打桩处理,如果调用了目标系统服务对应的API,通过打桩点可以把该调用行为进行提取。
根据N个系统服务的调用行为,获取目标行为序列可以通过多种方式来实现。在一个实施例中,针对每个API的调用行为,可以设置有唯一的编码,编码格式可以根据实际需要进行设定。那么,根据预设打桩点确定了N个系统服务后,可以对应获取这N个系统服务对应的API调用行为的N个编码,利用这N个编码构成目标行为序列,例如将N个编码组合成目标行为序列。在另一实施例中,可以将每个提取到的调用行为根据预设规则转换成向量,N个调用行为对应N组向量,将N组向量构成目标行为序列,输入到预设的病毒行为识别模型中。
可选地,所述基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果,包括:按照预设批次长度,将所述目标行为序列分批次输入至所述预设的病毒行为识别模型进行行为序列识别,获得与多个输入批次对应的多个识别结果;在所述多个识别结果中存在一个或多个识别结果为病毒行为时,确定所述目标行为序列的识别结果为病毒行为。
本说明书实施例中,预设批次长度为预设的病毒行为识别模型的输入长度,由于在应用程序的运行过程中,会持续的提取目标行为序列,在目标行为序列的长度大于模型设定的输入长度时,可以将目标行为序列进行拆分,分批次进行输入。另外,分批次输入除了对输入长度的限定,还可以对输入步长进行设置,步长为相邻批次的起始数据所间隔的长度。例如,模型的输入长度为20,步长为10,那么在目标行为序列输入时,第一批次为目标行为序列中的第1-20个行为组成的序列,第二批次为第11-30个行为组成的序列。
预设的病毒行为识别模型针对每个批次的行为序列进行识别,在多个批次的识别结果中只要存在一个识别结果为病毒行为,则表明应用程序为病毒程序。
可选地,所述基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果,包括:所述预设的病毒行为识别模型根据预设的病毒特征,过滤掉所述目标行为序列中与所述预设的病毒特征不匹配的数据,获得过滤后的行为序列;对所述过滤后的行为序列进行识别,获得所述过滤后的行为序列的识别结果,作为所述目标行为序列的识别结果。
本说明书实施例中,可以根据预先收集的历史病毒数据,提取出病毒特征,在对目标行为序列进行识别之前,可以先根据病毒特征筛除目标行为序列中与病毒特征不匹配的无意义数据,以保留与病毒相关性较强的动态行为数据,减少病毒行为识别模型的计算量,以及提高病毒行为识别模型的识别准确率。
可选地,所述预设的病毒行为识别模型通过以下方式获得:获取多个带有病毒标签的应用程序样本;逐个提取所述应用程序样本的行为序列;将每个所述应用程序样本的行为序列输入到病毒行为识别模型中进行训练,得到训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
可选地,所述将所述应用程序样本的行为序列输入到初始的病毒行为识别模型中进行训练,得到训练好的病毒行为识别模型作为所述预设的病毒行为识别模型,包括:获取所述病毒行为识别模型输出的对每个所述应用程序样本的行为序列的病毒预测结果;根据所述病毒预测结果以及所述病毒标签,确定所述病毒行为识别模型的预测准确率;在所述预测准确率大于阈值时,得到所述训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
本说明书实施例中的预设的病毒行为识别模型可以是在云端服务器上训练的,也可以是在移动终端上训练的。带有病毒标签的应用程序样本可以为海量终端上传到服务器上的样本,应理解的是,用于模型训练的样本可以包含有带有病毒标签的病毒应用程序样本,也可以包含有带有正常标签的正常应用程序样本。将用于训练的应用程序样本的行为序列作为病毒行为模型的输入来进行模型训练。病毒行为识别模型可以根据需要进行设定,如卷积神经网络模型。
通过训练样本来对初始的病毒行为识别模型进行训练,在训练过程中,病毒行为识别模型针对每个输入的样本,都会输出一个预测结果,将预测结果与输入样本对应的真实标签来进行比对,确定模型的识别结果是否正确。在模型的预测准确率大于阈值时,可以认定模型已经训练完成,如果模型的预测准确率未达到阈值,则继续对病毒行为识别模型的参数进行调整,知道模型的预测准确率大于阈值为止。应理解的是,阈值可以根据实际需要进行选择,这里不做限定。
另外,为了能够使病毒行为识别模型能够对最新的病毒应用程序进行识别,可以根据海量终端实时上传的病毒样本对病毒行为识别模型进行更新,即将最新的病毒样本加入到模型训练样本中,对模型进行升级。
可选地,在所述获得所述目标行为序列的识别结果之后,所述方法还包括:对所述沙箱环境进行初始化,以使在所述沙箱环境中需要检测多个应用程序时,每个应用程序的运行环境均相同。
本说明书实施例中,由于应用程序有可能为病毒程序,当病毒程序在运行过程中,有可能会对沙箱环境产生影响,为了保证下一个应用程序的检测环境与当前的检测环境相同,可以在当前的应用程序运行完毕之后,对沙箱环境执行初始化操作。在一个实施例中,可以通过系统快照来进行沙箱环境的恢复,即将沙箱环境中某个状态下的数据记录为一个系统快照,每次运行完一个应用程序,则将沙箱环境的数据恢复到系统快照中记录的数据状态。
为了更好的理解本说明书实施例中的病毒行为检测方法,请参考图3,为本说明书实施例提供的一种病毒行为检测的流程框图。
在该实施例中,待扫描的应用程序为apk,如图3所示,步骤一:在手机的沙箱环境中运行apk。步骤二:将apk信息发送至云端服务器,以使服务器在应用程序黑白名单数据库中对apk信息进行查询,当apk信息包含在白名单数据库中时,可以继续运行应用程序,当apk信息包含在黑名单数据库中时,可以终端应用程序的运行,并通知用户该应用程序为病毒,当未查询到apk信息时,可以继续执行步骤三。步骤三:通过系统级别打桩处理获取apk在运行期间的行为。步骤四:将打桩处理获得的行为进行行为向量序列化,这里实现行为向量序列化的方式可以根据实际需要进行选择,如通过word2vec方式来实现。步骤五:行为向量匹配,即,将行为向量序列与预设的病毒特征进行匹配,过滤掉行为向量序列中与预设的病毒特征不匹配的向量,获得过滤后的行为向量序列。步骤六:将过滤后的行为向量序列输入到预设的病毒行为识别模型中,获得识别结果。
在本说明书实施例中,预设的病毒行为识别模块可以是在服务器上训练的,举例来讲,服务器上可以安装有安卓模拟器来模拟手机的沙箱环境,服务器可以使用历史采集的到病毒样本,并在服务器模拟的纱线环境中运行病毒样本,在运行过程中,通过模拟用户对手机的操作,例如开关机、重启等操作,来触发病毒样本的行为,同时通过对服务器源码的修改来设置打桩点,利用打桩点获取病毒样本在运行过程中的行为序列,将行为序列作为模型的训练数据进行模型训练。
第二方面,基于同一发明构思,本说明书实施例提供一种病毒行为检测装置,请参考图4,包括:
运行模块41,用于在沙箱环境中运行所述移动终端中的应用程序,以对所述应用程序进行扫描;
获取模块42,用于根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列;
识别模块43,用于基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果;
显示模块44,用于将所述识别结果显示在所述移动终端的显示屏上。
在一种可选实现方式中,所述装置还包括:
发送模块,用于将所述应用程序的目标信息发送给服务器,以使所述服务器根据所述目标信息以及预设程序信息库,确定所述应用程序是否为正常应用程序;
执行模块,用于在接收到所述服务器的反馈结果为所述应用程序为非正常应用程序时,执行所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列的步骤。
在一种可选实现方式中,所述装置还包括:
操作模拟模块,用于在所述应用程序的运行过程中,模拟用户对所述移动终端的操作,以触发所述应用程序的行为。
在一种可选实现方式中,所述预设打桩点为通过对所述移动终端的目标系统服务进行打桩处理得到的打桩点。
在一种可选实现方式中,获取模块42,用于:
根据预设打桩点,确定所述应用程序在运行过程中调用的N个系统服务,其中,所述N个系统服务为包含在所述目标系统服务中的服务,N为正整数;
根据所述N个系统服务的调用行为,获取所述目标行为序列。
在一种可选实现方式中,识别模块43,用于:
按照预设批次长度,将所述目标行为序列分批次输入至所述预设的病毒行为识别模型进行行为序列识别,获得与多个输入批次对应的多个识别结果;
在所述多个识别结果中存在一个或多个识别结果为病毒行为时,确定所述目标行为序列的识别结果为病毒行为。
在一种可选实现方式中,识别模块43,用于:
所述预设的病毒行为识别模型根据预设的病毒特征,过滤掉所述目标行为序列中与所述预设的病毒特征不匹配的数据,获得过滤后的行为序列;
对所述过滤后的行为序列进行识别,获得所述过滤后的行为序列的识别结果,作为所述目标行为序列的识别结果。
在一种可选实现方式中,所述装置还包括:
模型生成模块,用于获取多个带有病毒标签的应用程序样本;逐个提取所述应用程序样本的行为序列;将每个所述应用程序样本的行为序列输入到病毒行为识别模型中进行训练,得到训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
在一种可选实现方式中,所述模型生成模块,用于:
获取所述病毒行为识别模型输出的对每个所述应用程序样本的行为序列的病毒预测结果;
根据所述病毒预测结果以及所述病毒标签,确定所述病毒行为识别模型的预测准确率;
在所述预测准确率大于阈值时,得到所述训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
在一种可选实现方式中,所述装置还包括:
初始化模块,用于对所述沙箱环境进行初始化,以使在所述沙箱环境中需要检测多个应用程序时,每个应用程序的运行环境均相同。
在一种可选实现方式中,所述发送模块,用于:
在所述识别结果为正常行为时,将所述应用程序的目标信息发送至所述服务器,以使所述服务器更新所述应用程序的黑白名单数据库。
关于上述装置,其中各个模块的具体功能已经在本发明实施例提供的病毒行为检测方法的实施例中进行了详细描述,此处将不做详细阐述说明。
第三方面,基于与前述实施例中病毒行为检测方法同样的发明构思,本发明还提供一种病毒行为检测装置,如图5所示,包括存储器504、处理器502及存储在存储器504上并可在处理器502上运行的计算机程序,所述处理器502执行所述程序时实现前文所述病毒行为检测方法的任一方法的步骤。
其中,在图5中,总线架构(用总线500来代表),总线500可以包括任意数量的互联的总线和桥,总线500将包括由处理器502代表的一个或多个处理器和存储器504代表的存储器的各种电路链接在一起。总线500还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口506在总线500和接收器501和发送器503之间提供接口。接收器501和发送器503可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器502负责管理总线500和通常的处理,而存储器504可以被用于存储处理器502在执行操作时所使用的数据。
第四方面,基于与前述实施例中基于病毒行为检测方法的发明构思,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前文所述基于病毒行为检测方法的任一方法的步骤。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
本发明还公开A1,一种病毒行为检测方法,应用于移动终端,所述方法包括:
在沙箱环境中运行所述移动终端中的应用程序,以对所述应用程序进行扫描;
根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列;
基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果;
将所述识别结果显示在所述移动终端的显示屏上。
A2、根据A1所述的病毒行为检测方法,在所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列之前,所述方法还包括:
将所述应用程序的目标信息发送给服务器,以使所述服务器根据所述目标信息查询应用程序的黑白名单数据库,确定所述应用程序是否为正常应用程序;
在接收到所述服务器的反馈结果为所述应用程序为非正常应用程序时,执行所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列的步骤。
A3、根据A1所述的病毒行为检测方法,所述在所述移动终端的沙箱环境中运行应用程序之后,所述方法还包括:
在所述应用程序的运行过程中,模拟用户对所述移动终端的操作,以触发所述应用程序的行为。
A4、根据A1所述的病毒行为检测方法,所述预设打桩点为通过对所述移动终端的目标系统服务进行打桩处理得到的打桩点。
A5、根据A4所述的病毒行为检测方法,所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列,包括:
根据预设打桩点,确定所述应用程序在运行过程中调用的N个系统服务,其中,所述N个系统服务为包含在所述目标系统服务中的服务,N为正整数;
根据所述N个系统服务的调用行为,获取所述目标行为序列。
A6、根据A1所述的病毒行为检测方法,所述基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果,包括:
按照预设批次长度,将所述目标行为序列分批次输入至所述预设的病毒行为识别模型进行行为序列识别,获得与多个输入批次对应的多个识别结果;
在所述多个识别结果中存在一个或多个识别结果为病毒行为时,确定所述目标行为序列的识别结果为病毒行为。
A7、根据A1所述的病毒行为检测方法,所述基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果,包括:
所述预设的病毒行为识别模型根据预设的病毒特征,过滤掉所述目标行为序列中与所述预设的病毒特征不匹配的数据,获得过滤后的行为序列;
对所述过滤后的行为序列进行识别,获得所述过滤后的行为序列的识别结果,作为所述目标行为序列的识别结果。
A8、根据A1所述的病毒行为检测方法,所述预设的病毒行为识别模型通过以下方式获得:
获取多个带有病毒标签的应用程序样本;
逐个提取所述应用程序样本的行为序列;
将每个所述应用程序样本的行为序列输入到病毒行为识别模型中进行训练,得到训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
A9、根据A8所述的病毒行为检测方法,所述将所述应用程序样本的行为序列输入到初始的病毒行为识别模型中进行训练,得到训练好的病毒行为识别模型作为所述预设的病毒行为识别模型,包括:
获取所述病毒行为识别模型输出的对每个所述应用程序样本的行为序列的病毒预测结果;
根据所述病毒预测结果以及所述病毒标签,确定所述病毒行为识别模型的预测准确率;
在所述预测准确率大于阈值时,得到所述训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
A10、根据A1所述的病毒行为检测方法,在所述获得所述目标行为序列的识别结果之后,所述方法还包括:
对所述沙箱环境进行初始化,以使在所述沙箱环境中需要检测多个应用程序时,每个应用程序的运行环境均相同。
A11、根据A2所述的病毒行为检测方法,在所述获得所述目标行为序列的识别结果之后,所述方法还包括:
在所述识别结果为正常行为时,将所述应用程序的目标信息发送至所述服务器,以使所述服务器更新所述应用程序的黑白名单数据库。
B12、一种病毒行为检测装置,所述装置包括:
扫描模块,用于在沙箱环境中运行移动终端中的应用程序,以对所述应用程序进行扫描;
获取模块,用于根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列;
识别模块,用于基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果;
显示模块,用于将所述识别结果显示在所述移动终端的显示屏上。
B13、根据B12所述的病毒行为检测装置,所述装置还包括:
发送模块,用于将所述应用程序的目标信息发送给服务器,以使所述服务器根据所述目标信息以及预设程序信息库,确定所述应用程序是否为正常应用程序;
执行模块,用于在接收到所述服务器的反馈结果为所述应用程序为非正常应用程序时,执行所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列的步骤。
B14、根据B12所述的病毒行为检测装置,所述装置还包括:
操作模拟模块,用于在所述应用程序的运行过程中,模拟用户对所述移动终端的操作,以触发所述应用程序的行为。
B15、根据B12所述的病毒行为检测装置,所述预设打桩点为通过对所述移动终端的目标系统服务进行打桩处理得到的打桩点。
B16、根据B15所述的病毒行为检测装置,所述获取模块,用于:
根据预设打桩点,确定所述应用程序在运行过程中调用的N个系统服务,其中,所述N个系统服务为包含在所述目标系统服务中的服务,N为正整数;
根据所述N个系统服务的调用行为,获取所述目标行为序列。
B17、根据B12所述的病毒行为检测装置,所述识别模块,用于:
按照预设批次长度,将所述目标行为序列分批次输入至所述预设的病毒行为识别模型进行行为序列识别,获得与多个输入批次对应的多个识别结果;
在所述多个识别结果中存在一个或多个识别结果为病毒行为时,确定所述目标行为序列的识别结果为病毒行为。
B18、根据B12所述的病毒行为检测装置,所述识别模块,用于:
所述预设的病毒行为识别模型根据预设的病毒特征,过滤掉所述目标行为序列中与所述预设的病毒特征不匹配的数据,获得过滤后的行为序列;
对所述过滤后的行为序列进行识别,获得所述过滤后的行为序列的识别结果,作为所述目标行为序列的识别结果。
B19、根据B12所述的病毒行为检测装置,所述装置还包括:
模型生成模块,用于获取多个带有病毒标签的应用程序样本;逐个提取所述应用程序样本的行为序列;将每个所述应用程序样本的行为序列输入到病毒行为识别模型中进行训练,得到训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
B20、根据B19所述的病毒行为检测装置,所述模型生成模块,用于:
获取所述病毒行为识别模型输出的对每个所述应用程序样本的行为序列的病毒预测结果;
根据所述病毒预测结果以及所述病毒标签,确定所述病毒行为识别模型的预测准确率;
在所述预测准确率大于阈值时,得到所述训练好的病毒行为识别模型作为所述预设的病毒行为识别模型。
B21、根据B12所述的病毒行为检测装置,所述装置还包括:
初始化模块,用于对所述沙箱环境进行初始化,以使在所述沙箱环境中需要检测多个应用程序时,每个应用程序的运行环境均相同。
B22、根据B13所述的病毒行为检测装置,所述发送模块,用于:
在所述识别结果为正常行为时,将所述应用程序的目标信息发送至所述服务器,以使所述服务器更新所述应用程序的黑白名单数据库。
C23、一种病毒行为检测装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现A1-A11任一项所述方法的步骤。
D24、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现A1-A11任一项所述方法的步骤。
Claims (10)
1.一种病毒行为检测方法,应用于移动终端,其特征在于,所述方法包括:
在沙箱环境中运行所述移动终端中的应用程序,以对所述应用程序进行扫描;
根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列;
基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果;
将所述识别结果显示在所述移动终端的显示屏上。
2.根据权利要求1所述的病毒行为检测方法,其特征在于,在所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列之前,所述方法还包括:
将所述应用程序的目标信息发送给服务器,以使所述服务器根据所述目标信息查询应用程序的黑白名单数据库,确定所述应用程序是否为正常应用程序;
在接收到所述服务器的反馈结果为所述应用程序为非正常应用程序时,执行所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列的步骤。
3.根据权利要求1所述的病毒行为检测方法,其特征在于,所述在所述移动终端的沙箱环境中运行应用程序之后,所述方法还包括:
在所述应用程序的运行过程中,模拟用户对所述移动终端的操作,以触发所述应用程序的行为。
4.根据权利要求1所述的病毒行为检测方法,其特征在于,所述预设打桩点为通过对所述移动终端的目标系统服务进行打桩处理得到的打桩点。
5.根据权利要求4所述的病毒行为检测方法,其特征在于,所述根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列,包括:
根据预设打桩点,确定所述应用程序在运行过程中调用的N个系统服务,其中,所述N个系统服务为包含在所述目标系统服务中的服务,N为正整数;
根据所述N个系统服务的调用行为,获取所述目标行为序列。
6.根据权利要求1所述的病毒行为检测方法,其特征在于,所述基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果,包括:
按照预设批次长度,将所述目标行为序列分批次输入至所述预设的病毒行为识别模型进行行为序列识别,获得与多个输入批次对应的多个识别结果;
在所述多个识别结果中存在一个或多个识别结果为病毒行为时,确定所述目标行为序列的识别结果为病毒行为。
7.根据权利要求1所述的病毒行为检测方法,其特征在于,所述基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果,包括:
所述预设的病毒行为识别模型根据预设的病毒特征,过滤掉所述目标行为序列中与所述预设的病毒特征不匹配的数据,获得过滤后的行为序列;
对所述过滤后的行为序列进行识别,获得所述过滤后的行为序列的识别结果,作为所述目标行为序列的识别结果。
8.一种病毒行为检测装置,其特征在于,所述装置包括:
扫描模块,用于在沙箱环境中运行移动终端中的应用程序,以对所述应用程序进行扫描;
获取模块,用于根据预设打桩点,获取所述应用程序在运行过程中的目标行为序列;
识别模块,用于基于预设的病毒行为识别模型,对所述目标行为序列进行识别,获得所述目标行为序列的识别结果;
显示模块,用于将所述识别结果显示在所述移动终端的显示屏上。
9.一种病毒行为检测装置,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811445281.6A CN109657468B (zh) | 2018-11-29 | 2018-11-29 | 病毒行为检测方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811445281.6A CN109657468B (zh) | 2018-11-29 | 2018-11-29 | 病毒行为检测方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109657468A true CN109657468A (zh) | 2019-04-19 |
CN109657468B CN109657468B (zh) | 2024-06-18 |
Family
ID=66111046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811445281.6A Active CN109657468B (zh) | 2018-11-29 | 2018-11-29 | 病毒行为检测方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109657468B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110135160A (zh) * | 2019-04-29 | 2019-08-16 | 北京邮电大学 | 软件检测的方法、装置及系统 |
CN110322254A (zh) * | 2019-07-04 | 2019-10-11 | 同盾控股有限公司 | 在线欺诈识别方法、装置、介质及电子设备 |
CN111859370A (zh) * | 2020-06-30 | 2020-10-30 | 百度在线网络技术(北京)有限公司 | 识别服务的方法、装置、电子设备和计算机可读存储介质 |
CN112632540A (zh) * | 2020-12-29 | 2021-04-09 | 南方电网数字电网研究院有限公司 | 一种基于深度学习的移动端病毒检测方法、装置和系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973577B1 (en) * | 2000-05-26 | 2005-12-06 | Mcafee, Inc. | System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state |
JP2010182287A (ja) * | 2008-07-17 | 2010-08-19 | Steven C Kays | 適応型インテリジェント・デザイン |
CN102693395A (zh) * | 2012-06-07 | 2012-09-26 | 奇智软件(北京)有限公司 | 一种用于拦截应用程序对服务的调用的方法和装置 |
CN103425926A (zh) * | 2012-05-14 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 应用程序启动方法、配置列表的方法、终端和服务器 |
CN104820801A (zh) * | 2011-01-04 | 2015-08-05 | 北京奇虎科技有限公司 | 一种保护指定应用程序的方法及装置 |
US9294492B1 (en) * | 2015-03-10 | 2016-03-22 | Iboss, Inc. | Software program identification based on program behavior |
CN105787365A (zh) * | 2014-12-24 | 2016-07-20 | Tcl集团股份有限公司 | 一种恶意应用程序的检测方法及装置 |
CN106778243A (zh) * | 2016-11-28 | 2017-05-31 | 北京奇虎科技有限公司 | 基于虚拟机的内核漏洞检测文件保护方法及装置 |
WO2017190620A1 (zh) * | 2016-05-04 | 2017-11-09 | 腾讯科技(深圳)有限公司 | 一种病毒检测方法、终端及服务器 |
CN108009424A (zh) * | 2017-11-22 | 2018-05-08 | 北京奇虎科技有限公司 | 病毒行为检测方法、装置及系统 |
CN108038374A (zh) * | 2017-12-26 | 2018-05-15 | 郑州云海信息技术有限公司 | 一种检测实时威胁的方法 |
CN108595953A (zh) * | 2018-04-04 | 2018-09-28 | 厦门雷德蒙软件开发有限公司 | 对手机应用进行风险评估的方法 |
CN108614970A (zh) * | 2018-04-03 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 病毒程序的检测方法、模型训练方法、装置及设备 |
-
2018
- 2018-11-29 CN CN201811445281.6A patent/CN109657468B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973577B1 (en) * | 2000-05-26 | 2005-12-06 | Mcafee, Inc. | System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state |
JP2010182287A (ja) * | 2008-07-17 | 2010-08-19 | Steven C Kays | 適応型インテリジェント・デザイン |
CN104820801A (zh) * | 2011-01-04 | 2015-08-05 | 北京奇虎科技有限公司 | 一种保护指定应用程序的方法及装置 |
CN103425926A (zh) * | 2012-05-14 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 应用程序启动方法、配置列表的方法、终端和服务器 |
CN102693395A (zh) * | 2012-06-07 | 2012-09-26 | 奇智软件(北京)有限公司 | 一种用于拦截应用程序对服务的调用的方法和装置 |
CN105787365A (zh) * | 2014-12-24 | 2016-07-20 | Tcl集团股份有限公司 | 一种恶意应用程序的检测方法及装置 |
US9294492B1 (en) * | 2015-03-10 | 2016-03-22 | Iboss, Inc. | Software program identification based on program behavior |
WO2017190620A1 (zh) * | 2016-05-04 | 2017-11-09 | 腾讯科技(深圳)有限公司 | 一种病毒检测方法、终端及服务器 |
CN106778243A (zh) * | 2016-11-28 | 2017-05-31 | 北京奇虎科技有限公司 | 基于虚拟机的内核漏洞检测文件保护方法及装置 |
CN108009424A (zh) * | 2017-11-22 | 2018-05-08 | 北京奇虎科技有限公司 | 病毒行为检测方法、装置及系统 |
CN108038374A (zh) * | 2017-12-26 | 2018-05-15 | 郑州云海信息技术有限公司 | 一种检测实时威胁的方法 |
CN108614970A (zh) * | 2018-04-03 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 病毒程序的检测方法、模型训练方法、装置及设备 |
CN108595953A (zh) * | 2018-04-04 | 2018-09-28 | 厦门雷德蒙软件开发有限公司 | 对手机应用进行风险评估的方法 |
Non-Patent Citations (8)
Title |
---|
MICHAEL I. GORDON 等: "Information-Flow Analysis of Android Applications in DroidSafe", NDSS ’15, 8-11 FEBRUARY 2015, SAN DIEGO, CA, USA, 11 February 2015 (2015-02-11) * |
周余阳;程光;郭春生;戴冕;: "移动目标防御的攻击面动态转移技术研究综述", 软件学报, no. 09, 7 June 2018 (2018-06-07), pages 259 - 280 * |
张然, 钱德沛, 张文杰, 刘轶, 栾钟治: "入侵检测技术研究综述", 小型微型计算机系统, no. 07, 21 July 2003 (2003-07-21) * |
李晓勇;韩臻;沈昌祥;: "Windows环境下信任链传递及其性能分析", 计算机研究与发展, no. 11, 15 November 2007 (2007-11-15), pages 83 - 89 * |
赵洋;胡龙;熊虎;秦志光;: "基于沙盒的Android恶意软件动态分析方案", 信息网络安全, no. 12, pages 1 * |
陈建民;: "基于行为的移动应用程序安全检测方法研究", 计算机工程与设计, no. 12, pages 64 - 69 * |
陈雅娴;袁津生;郭敏哲;: "基于行为异常的Symbian蠕虫病毒检测方法", 计算机系统应用, no. 11, pages 51 - 54 * |
齐法制;孙智慧;: "基于特征阈值的恶意代码快速分析方法", 计算机科学, no. 2, 15 November 2016 (2016-11-15), pages 351 - 354 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110135160A (zh) * | 2019-04-29 | 2019-08-16 | 北京邮电大学 | 软件检测的方法、装置及系统 |
CN110135160B (zh) * | 2019-04-29 | 2021-11-30 | 北京邮电大学 | 软件检测的方法、装置及系统 |
CN110322254A (zh) * | 2019-07-04 | 2019-10-11 | 同盾控股有限公司 | 在线欺诈识别方法、装置、介质及电子设备 |
CN110322254B (zh) * | 2019-07-04 | 2022-12-16 | 同盾控股有限公司 | 在线欺诈识别方法、装置、介质及电子设备 |
CN111859370A (zh) * | 2020-06-30 | 2020-10-30 | 百度在线网络技术(北京)有限公司 | 识别服务的方法、装置、电子设备和计算机可读存储介质 |
CN111859370B (zh) * | 2020-06-30 | 2024-05-17 | 百度在线网络技术(北京)有限公司 | 识别服务的方法、装置、电子设备和计算机可读存储介质 |
CN112632540A (zh) * | 2020-12-29 | 2021-04-09 | 南方电网数字电网研究院有限公司 | 一种基于深度学习的移动端病毒检测方法、装置和系统 |
CN112632540B (zh) * | 2020-12-29 | 2022-03-18 | 南方电网数字电网研究院有限公司 | 一种基于深度学习的移动端病毒检测方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109657468B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635523A (zh) | 应用程序检测方法、装置及计算机可读存储介质 | |
CN109657468A (zh) | 病毒行为检测方法、装置及计算机可读存储介质 | |
CN107566358B (zh) | 一种风险预警提示方法、装置、介质及设备 | |
CN109117250B (zh) | 一种模拟器识别方法、识别设备及计算机可读介质 | |
CN111931166B (zh) | 基于代码注入和行为分析的应用程序防攻击方法和系统 | |
CN105825129B (zh) | 一种融合通信中恶意软件鉴别方法和系统 | |
KR101908944B1 (ko) | 데이터 분석 시스템에서 맬웨어를 분석하기 위한 장치 및 방법 | |
CN108009424A (zh) | 病毒行为检测方法、装置及系统 | |
CN104021141B (zh) | 数据处理和云服务的方法、装置及系统 | |
WO2018216000A1 (en) | A system and method for on-premise cyber training | |
CN110336815A (zh) | 基于区块链的攻击防御方法、装置、设备及可读存储介质 | |
CN112035303B (zh) | 一种数据测试方法、装置、计算机及可读存储介质 | |
CN113079151B (zh) | 一种异常处理方法、装置、电子设备及可读存储介质 | |
US11838311B2 (en) | Systems and methods for automated quantitative risk and threat calculation and remediation | |
CN112395597A (zh) | 网站应用漏洞攻击的检测方法及装置、存储介质 | |
CN107220169B (zh) | 一种模拟服务器返回定制化数据的方法和设备 | |
CN108123961A (zh) | 信息处理方法、装置及系统 | |
CN115733646A (zh) | 网络安全威胁评估方法、装置、设备及可读存储介质 | |
CN111901790A (zh) | 电信诈骗的识别方法、装置、电子装置和存储介质 | |
CN112307464A (zh) | 诈骗识别方法、装置及电子设备 | |
CN110033016A (zh) | 数字键盘识别模型的训练方法、数字键盘识别方法及系统 | |
CN110688319B (zh) | 应用保活能力测试方法及相关装置 | |
CN112347457A (zh) | 异常账户检测方法、装置、计算机设备和存储介质 | |
CN116610503A (zh) | 部件检测方法及装置 | |
CN107194253A (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 |