CN112580041B - 恶意程序检测方法及装置、存储介质、计算机设备 - Google Patents
恶意程序检测方法及装置、存储介质、计算机设备 Download PDFInfo
- Publication number
- CN112580041B CN112580041B CN201910945355.0A CN201910945355A CN112580041B CN 112580041 B CN112580041 B CN 112580041B CN 201910945355 A CN201910945355 A CN 201910945355A CN 112580041 B CN112580041 B CN 112580041B
- Authority
- CN
- China
- Prior art keywords
- program
- target program
- api
- execution sequence
- malicious
- 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
- 241000700605 Viruses Species 0.000 claims abstract description 121
- 238000001514 detection method Methods 0.000 claims abstract description 54
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 10
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 114
- 230000008569 process Effects 0.000 description 8
- 231100000331 toxic Toxicity 0.000 description 5
- 230000002588 toxic effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000007123 defense Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种恶意程序检测方法及装置、存储介质、计算机设备,该方法包括:将目标程序分配至相应的虚拟机中,以使所述目标程序在所述虚拟机上运行;获取所述目标程序在所述虚拟机上的运行记录;依据所述运行记录,分析所述目标程序是否为恶意程序。本申请利用虚拟机技术,不仅可以有效的获取到目标程序在虚拟机中执行时的运行记录,而且不会对真实计算机环境造成影响保护了计算机的安全,同时,基于目标程序的运行记录进行启发式病毒检测,有助于提高对新型病毒、变种病毒等未知病毒的检测率。
Description
技术领域
本申请涉及计算机安全技术领域,尤其是涉及到一种恶意程序检测方法及装置、存储介质、计算机设备。
背景技术
随着计算机技术的不断发展,现在,无论是在日常生活中还是在工作中,计算机都已经成为人们不可或缺的伙伴,为人们的工作和生活带来了很多的便利,但是在这之中有一个不和谐的因素,那就是计算机病毒。
针对由计算机病毒带来的计算机安全方面的问题,现在几乎任何企业或个人都会使用杀毒软件,但是现在的杀毒软件大多是基于病毒库中包括的病毒特征进行病毒查杀,即若计算机中的某个程序命中了病毒库中的病毒特征,则判定该程序为病毒程序,很显然,若出现新型病毒或变种病毒,利用病毒库将难以应对。
如何提高对新型病毒或变种病毒的病毒查杀率,成为了计算机安全领域中的重要问题。
发明内容
有鉴于此,本申请提供了一种恶意程序检测方法及装置、存储介质、计算机设备。
根据本申请的一个方面,提供了一种恶意程序检测方法,包括:
将目标程序分配至相应的虚拟机中,以使所述目标程序在所述虚拟机上运行;
获取所述目标程序在所述虚拟机上的运行记录;
依据所述运行记录,分析所述目标程序是否为恶意程序。
具体地,所述运行记录包括所述目标程序对应的API调用函数以及所述API调用函数的调用时间信息。
具体地,所述获取所述目标程序在所述虚拟机上的运行记录之后,所述方法还包括:
根据所述运行记录中的所述API调用函数的调用时间信息,按照对所述API调用函数的调用先后顺序排列所述API调用函数,得到所述目标程序对应的API执行序列。
具体地,所述依据所述运行记录,分析所述目标程序是否为恶意程序,具体包括:
获取预设API执行序列名单,其中,所述预设API执行序列名单包括预设API执行序列黑名单;
若所述目标程序对应的API执行序列与所述预设API执行序列黑名单中包含的恶意API执行序列一致,则确定所述目标程序是恶意程序。
具体地,所述预设API执行序列名单包括预设API执行序列白名单,所述方法还包括:
若所述目标程序对应的API执行序列与所述预设API执行序列白名单中包含的安全API执行序列一致,则确定所述目标程序是安全程序。
具体地,所述方法还包括:
若所述目标程序对应的API执行序列与所述恶意API执行序列以及所述安全API执行序列均不一致,则确定所述目标程序为可疑程序,并将所述可疑程序对应的API执行序列发送至恶意程序管理系统,以利用所述恶意程序管理系统分析所述可疑程序是否为恶意程序。
具体地,所述运行记录还包括与所述API调用函数相应的调用参数。
根据本申请的另一方面,提供了一种恶意程序检测装置,包括:
目标程序执行模块,用于将目标程序分配至相应的虚拟机中,以使所述目标程序在所述虚拟机上运行;
运行记录获取模块,用于获取所述目标程序在所述虚拟机上的运行记录;
恶意程序分析模块,用于依据所述运行记录,分析所述目标程序是否为恶意程序。
具体地,所述运行记录包括所述目标程序对应的API调用函数以及所述API调用函数的调用时间信息。
具体地,所述装置还包括:
执行序列获取模块,用于获取所述目标程序在所述虚拟机上的运行记录之后,根据所述运行记录中的所述API调用函数的调用时间信息,按照对所述API调用函数的调用先后顺序排列所述API调用函数,得到所述目标程序对应的API执行序列。
具体地,所述恶意程序分析模块,具体包括:
名单获取单元,用于获取预设API执行序列名单,其中,所述预设API执行序列名单包括预设API执行序列黑名单;
恶意程序判定单元,用于若所述目标程序对应的API执行序列与所述预设API执行序列黑名单中包含的恶意API执行序列一致,则确定所述目标程序是恶意程序。
具体地,所述预设API执行序列名单包括预设API执行序列白名单,所述恶意程序分析模块还包括:
安全程序判定单元,用于若所述目标程序对应的API执行序列与所述预设API执行序列白名单中包含的安全API执行序列一致,则确定所述目标程序是安全程序。
具体地,所述恶意程序分析模块还包括:
可疑程序判定单元,用于若所述目标程序对应的API执行序列与所述恶意API执行序列以及所述安全API执行序列均不一致,则确定所述目标程序为可疑程序,并将所述可疑程序对应的API执行序列发送至恶意程序管理系统,以利用所述恶意程序管理系统分析所述可疑程序是否为恶意程序。
具体地,所述运行记录还包括与所述API调用函数相应的调用参数。
依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述恶意程序检测方法。
依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述恶意程序检测方法。
借由上述技术方案,本申请提供的一种恶意程序检测方法及装置、存储介质、计算机设备,利用虚拟机技术提取需要进行病毒检测的目标程序在执行过程中显现出的执行特征,而后根据提取出的目标程序的执行特征进行启发式病毒查杀,检测目标程序是否为带毒程序。本申请利用虚拟机技术,不仅可以有效的获取到目标程序在虚拟机中执行时的运行记录,而且不会对真实计算机环境造成影响保护了计算机的安全,同时,基于目标程序的运行记录进行启发式病毒检测,有助于提高对新型病毒、变种病毒等未知病毒的检测率。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种恶意程序检测方法的流程示意图;
图2示出了本申请实施例提供的另一种恶意程序检测方法的流程示意图;
图3示出了本申请实施例提供的一种恶意程序检测装置的结构示意图;
图4示出了本申请实施例提供的另一种恶意程序检测装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中提供了一种恶意程序检测方法,如图1所示,该方法包括:
步骤101,将目标程序分配至相应的虚拟机中,以使目标程序在虚拟机上运行;
步骤102,获取目标程序在虚拟机上的运行记录;
步骤103,依据运行记录,分析目标程序是否为恶意程序。
在现有技术中,通常是利用预先建立好的病毒库,依据病毒库中保存的病毒程序本身所包含的病毒特征,对待检测程序的特征进行病毒特征匹配,若待检测程序的特征命中病毒库则说明该程序为带毒程序。如果出现新型病毒或者变种病毒,利用原来的病毒库很难准确检测出来,无法实现对未知病毒的防御。
为了解决现有技术的上述缺陷,本申请实施例中采用启发式病毒查杀,启发式病毒查杀指的是利用待检测的程序在执行过程中显现出的执行特征判断该程序是否为带毒程序。具体来说,分析病毒程序的执行行为的通用特征,而后根据病毒程序的通用执行特征进行病毒检测。比如,病毒程序往系统目录写入文件、读写引导区、写注册表启动项、打开其它进程、读写其它进程、动态加载DLL、动态获取API地址等操作,对于家族类的病毒,可能存在引用相同的库函数,使用相同的图标,使用比较独特的导入模块等等的一系列执行特征。
另外,在现有的获取目标程序执行特征的方法中,通常采用向目标进程注入DLL,在DLL中对调用函数进行API hook的方式进行监控,这种方式主要存在下述两种缺陷,其一,目标进程可能存在防注入、防API hook等的对抗手段,阻止执行序列被获取,其二,会对真实的计算机环境产生影响,在发现病毒的同时,可能病毒已经感染了计算机系统。
为了克服上述执行特征获取的缺陷,本申请实施例利用虚拟机技术,将需要进行病毒检测的目标程序放在虚拟机中执行,由于虚拟机是对真实计算机的模拟,若目标程序在真实计算机中执行时调用某函数,则在虚拟机中执行时就会调用与该函数对应的桩函数,因此,通过目标程序在虚拟机中执行时的运行记录即可反应出目标程序在真实计算机中执行时的运行记录。不仅可以有效的获取到目标程序执行时虚拟机的运行记录,而且不会对真实计算机环境造成影响保护了计算机的安全。
结合上述说明,在步骤101至步骤103中,首先,将可执行的目标程序分配到虚拟机中,虚拟机加载并运行该目标程序,同时,将目标程序的运行记录保存下来;然后,根据目标程序的运行记录显现出的特征,来判断目标程序是否属于包含病毒的恶意程序,以实现基于虚拟机的病毒检测。
通过应用本实施例的技术方案,利用虚拟机技术提取需要进行病毒检测的目标程序在执行过程中显现出的执行特征,而后根据提取出的目标程序的执行特征进行启发式病毒查杀,检测目标程序是否为带毒程序。本申请利用虚拟机技术,不仅可以有效的获取到目标程序在虚拟机中执行时的运行记录,而且不会对真实计算机环境造成影响保护了计算机的安全,同时,基于目标程序的运行记录进行启发式病毒检测,有助于提高对新型病毒、变种病毒等未知病毒的检测率。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种恶意程序检测方法,如图2所示,该方法包括:
步骤201,将目标程序分配至相应的虚拟机中,以使目标程序在虚拟机上运行;
步骤202,获取目标程序在虚拟机上的运行记录;
步骤203,根据运行记录中的API调用函数的调用时间信息,按照对API调用函数的调用先后顺序排列API调用函数,得到目标程序对应的API执行序列。
在上述实施例中,步骤201至步骤203中限定了获取目标程序的API执行序列的具体方式。具体地,运行记录包括目标程序对应的API调用函数以及API调用函数的调用时间信息。当目标程序在虚拟机中执行时,记录目标程序在虚拟机中的运行记录,其中,目标程序通过调用虚拟机中的API实现相应的任务,按照运行记录中的目标程序对各个API的调用时间,对目标程序的API调用函数进行排列,形成目标程序的API执行序列,从而为恶意程序的分析提供依据。
需要说明的是,除了直接利用API执行序列进行恶意程序分析外,本申请还可以将目标程序的API执行序列“翻译”成相应的特征,即,根据目标程序的API执行序列,解析目标程序的执行特征,例如将一系列的API执行序列代码翻译成流程说明的形式,用目标程序的执行特征作为恶意程序检测的依据。
步骤204,获取预设API执行序列名单,其中,预设API执行序列名单包括预设API执行序列黑名单;
步骤205,若目标程序对应的API执行序列与预设API执行序列黑名单中包含的恶意API执行序列一致,则确定目标程序是恶意程序;
步骤206,若目标程序对应的API执行序列与预设API执行序列白名单中包含的安全API执行序列一致,则确定目标程序是安全程序;
步骤207,若目标程序对应的API执行序列与恶意API执行序列以及安全API执行序列均不一致,则确定目标程序为可疑程序,并将可疑程序对应的API执行序列发送至恶意程序管理系统,以利用恶意程序管理系统分析可疑程序是否为恶意程序。
在上述步骤204至步骤207中,限定了如何检测目标程序中是否包含病毒的恶意程序。具体来说,利用预设API执行序列名单对目标程序是否带毒进行判定,预设API执行序列名单包括黑名单和白名单,黑名单中预先存储了病毒程序对应的恶意API执行序列名单,白名单中预先存储了安全程序对应的安全API执行序列名单。从而根据目标程序的API执行序列名单是否能够命中黑名单或白名单判定该目标程序是否为带毒程序,若命中黑名单,则为带毒程序,若命中白名单,则为安全程序,而若目标程序的API执行序列名单即没有命中黑名单也没有命中白名单,则判断该程序为可疑程序,并将可疑程序上报至恶意程序管理系统进一步对该程序进行判定,恶意程序管理系统具体可以为专家系统。
另外,为了提高病毒检测准确率和效率,还可以对预设执行特征的黑名单和白名单进行更新,更新方式之一可以为依据恶意程序管理系统的分析结果进行名单更新,若恶意程序管理系统判断某个目标程序包含病毒,则将该目标程序的API执行序列加入到黑名单中,以便下次直接根据该API执行序列检测到病毒,相似的,若恶意程序管理系统判断某个目标程序不包含病毒,则将该目标程序的API执行序列加入到白名单中。
需要说明的是,若对目标程序的API执行序列对应的执行特征进行提取,则可以利用目标程序的执行特征对目标程序进行病毒检测。本申请实施例提供的第二种病毒检测方法具体可以包括:
步骤A1,获取预设执行特征名单,其中,预设执行特征名单包括预设执行特征黑名单;
步骤A2,查询目标程序的执行特征是否属于预设执行特征黑名单中包含的恶意执行特征;
步骤A3,若目标程序的执行特征属于恶意执行特征,则确定目标程序包含病毒。
步骤A4,若目标程序的执行特征不属于恶意执行特征,则查询目标程序的执行特征是否属于预设执行特征白名单中包含的安全执行特征;
步骤A5,若目标程序的执行特征属于安全执行特征,则确定目标程序不含病毒。
步骤A6,若目标程序的执行特征不属于安全执行特征,则将目标程序标记为可疑程序,并将可疑程序对应的执行特征上报至病毒管理系统,以利用病毒管理系统分析可疑程序是否包含病毒。
在上述步骤A1至步骤A6中,限定了如何检测目标程序中是否包含病毒。具体来说,利用预设执行特征名单对目标程序是否带毒进行判定,预设执行特征名单包括黑名单和白名单,黑名单中预先存储了病毒程序对应的恶意执行特征,白名单中预先存储了安全程序对应的安全执行特征。从而根据目标程序的执行特征是否能够命中黑名单或白名单判定该目标程序是否为带毒程序,若命中黑名单,则为带毒程序,若命中白名单,则为安全程序,而若目标程序的执行特征即没有命中黑名单也没有命中白名单,则判断该程序为可疑程序,并将可疑程序上报至病毒管理系统进一步对该程序进行判定,病毒管理系统具体可以为专家系统。
另外,除了利用目标特征的API执行序列以及执行特征进行病毒检测外,本申请实施例还提供了第三种病毒检测方法,具体为:
步骤B1,根据目标程序的执行特征以及预设执行特征报毒经验值,计算目标程序的报毒检测值,其中,目标程序的报毒检测值为目标程序的执行特征对应的预设执行特征报毒经验值之和;
步骤B2,按照目标程序的报毒检测值与预设病毒经验值的关系,确定目标程序是否包含病毒。
下面对上述实施例进行举例说明,假设目标程序的执行特征包括A、B、C、D,预设执行特征报毒经验值分别为0、1、2、3,那么该目标程序的报毒检测值为0+1+2+3=6,预设病毒经验值为[5,+∞),该程序的报毒检测值在病毒经验值区间内,可以判断该程序包含病毒。
在此基础上,还可以进一步判定目标程序是否安全程序或可疑程序,具体来说,还可以限定安全程序的预设经验值和/或可疑程序的预设经验值,具体步骤B2可以为:按照目标程序的报毒检测值与预设病毒经验值、预设安全经验值以及预设可疑经验值的关系,对目标程序进行安全检测。
在该步骤中,根据目标程序的报毒检测值所处的经验值区间,判定目标程序是病毒程序、安全程序还是可疑程序。
另外,如果为可疑程序还可以上报恶意程序管理系统,从而利用恶意程序管理系统来判断目标程序是否带毒,并根据恶意程序管理系统的判断结果,对各个预设经验值进行适应性的调整,以提高病毒检测的准确率和效率。
在本申请任一实施例中,具体地,运行记录还包括与API调用函数相应的调用参数。
在上述实施例中,在进行病毒检测时,除了考虑目标程序调用API时显现出的特征外,还可以对目标程序对API调用的具体参数加以结合,例如安全程序对某API调用时API调用参数在一定范围内,而恶意程序对该API调用时调用参数会超出该范围,那么就可以针对该特性,结合API调用参数进行目标程序的病毒检测。
进一步的,作为图1方法的具体实现,本申请实施例提供了一种恶意程序检测装置,如图3所示,该装置包括:目标程序执行模块31、运行记录获取模块32、恶意程序分析模块33。
目标程序执行模块31,用于将目标程序分配至相应的虚拟机中,以使目标程序在虚拟机上运行;
运行记录获取模块32,用于获取目标程序在虚拟机上的运行记录;
恶意程序分析模块33,用于依据运行记录,分析目标程序是否为恶意程序。
在具体的应用场景中,运行记录包括目标程序对应的API调用函数以及API调用函数的调用时间信息。
在具体的应用场景中,如图4所示,该装置还包括:执行序列获取模块34。
执行序列获取模块34,用于获取目标程序在虚拟机上的运行记录之后,根据运行记录中的API调用函数的调用时间信息,按照对API调用函数的调用先后顺序排列API调用函数,得到目标程序对应的API执行序列。
在具体的应用场景中,如图4所示,恶意程序分析模块33,具体包括:名单获取单元331、恶意程序判定单元332。
名单获取单元331,用于获取预设API执行序列名单,其中,预设API执行序列名单包括预设API执行序列黑名单;
恶意程序判定单元332,用于若目标程序对应的API执行序列与预设API执行序列黑名单中包含的恶意API执行序列一致,则确定目标程序是恶意程序。
在具体的应用场景中,如图4所示,预设API执行序列名单包括预设API执行序列白名单,恶意程序分析模块33还包括:安全程序判定单元333。
安全程序判定单元333,用于若目标程序对应的API执行序列与预设API执行序列白名单中包含的安全API执行序列一致,则确定目标程序是安全程序。
可疑程序判定单元334,用于若目标程序对应的API执行序列与恶意API执行序列以及安全API执行序列均不一致,则确定目标程序为可疑程序,并将可疑程序对应的API执行序列发送至恶意程序管理系统,以利用恶意程序管理系统分析可疑程序是否为恶意程序。
在具体的应用场景中,运行记录还包括与API调用函数相应的调用参数。
需要说明的是,若对目标程序的API执行序列对应的执行特征进行提取,则可以利用目标程序的执行特征对目标程序进行病毒检测。本申请实施例提供的第二种病毒检测方法对应的恶意程序分析模块33,具体包括:
特征名单获取单元335,用于获取预设执行特征名单,其中,预设执行特征名单包括预设执行特征黑名单;
黑名单查询单元336,用于查询目标程序的执行特征是否属于预设执行特征黑名单中包含的恶意执行特征;
病毒程序判定单元337,用于若目标程序的执行特征属于恶意执行特征,则确定目标程序包含病毒。
白名单查询单元338,用于若目标程序的执行特征不属于恶意执行特征,则查询目标程序的执行特征是否属于预设执行特征白名单中包含的安全执行特征;
安全程序判定单元339,用于若目标程序的执行特征属于安全执行特征,则确定目标程序不含病毒。
可疑程序判定单元330,用于若目标程序的执行特征不属于安全执行特征,则将目标程序标记为可疑程序,并将可疑程序对应的执行特征上报至病毒管理系统,以利用病毒管理系统分析可疑程序是否包含病毒。
在上述模块中,能够实现检测目标程序中是否包含病毒。具体来说,利用预设执行特征名单对目标程序是否带毒进行判定,预设执行特征名单包括黑名单和白名单,黑名单中预先存储了病毒程序对应的恶意执行特征,白名单中预先存储了安全程序对应的安全执行特征。从而根据目标程序的执行特征是否能够命中黑名单或白名单判定该目标程序是否为带毒程序,若命中黑名单,则为带毒程序,若命中白名单,则为安全程序,而若目标程序的执行特征即没有命中黑名单也没有命中白名单,则判断该程序为可疑程序,并将可疑程序上报至病毒管理系统进一步对该程序进行判定,病毒管理系统具体可以为专家系统。
另外,除了利用目标特征的API执行序列以及执行特征进行病毒检测外,本申请实施例还提供了第三种病毒检测方法,该装置具体还包括:
报毒检测值计算模块35,用于根据目标程序的执行特征以及预设执行特征报毒经验值,计算目标程序的报毒检测值,其中,目标程序的报毒检测值为目标程序的执行特征对应的预设执行特征报毒经验值之和;
病毒检测模块36,用于按照目标程序的报毒检测值与预设病毒经验值的关系,确定目标程序是否包含病毒。
下面对上述实施例进行举例说明,假设目标程序的执行特征包括A、B、C、D,预设执行特征报毒经验值分别为0、1、2、3,那么该目标程序的报毒检测值为0+1+2+3=6,预设病毒经验值为[5,+∞),该程序的报毒检测值在病毒经验值区间内,可以判断该程序包含病毒。
在此基础上,还可以进一步判定目标程序是否安全程序或可疑程序,具体来说,还可以限定安全程序的预设经验值和/或可疑程序的预设经验值,病毒检测模块36,具体用于:按照目标程序的报毒检测值与预设病毒经验值、预设安全经验值以及预设可疑经验值的关系,对目标程序进行安全检测。
在该模块中,根据目标程序的报毒检测值所处的经验值区间,判定目标程序是病毒程序、安全程序还是可疑程序。
另外,如果为可疑程序还可以上报恶意程序管理系统,从而利用恶意程序管理系统来判断目标程序是否带毒,并根据恶意程序管理系统的判断结果,对各个预设经验值进行适应性的调整,以提高病毒检测的准确率和效率。
需要说明的是,本申请实施例提供的一种恶意程序检测装置所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。
基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的恶意程序检测方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图1、图2所示的方法,以及图3、图4所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的恶意程序检测方法。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现利用虚拟机技术提取需要进行病毒检测的目标程序在执行过程中显现出的执行特征,而后根据提取出的目标程序的执行特征进行启发式病毒查杀,检测目标程序是否为带毒程序。本申请利用虚拟机技术,不仅可以有效的获取到目标程序在虚拟机中执行时的运行记录,而且不会对真实计算机环境造成影响保护了计算机的安全,同时,基于目标程序的运行记录进行启发式病毒检测,有助于提高对新型病毒、变种病毒等未知病毒的检测率。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (10)
1.一种恶意程序检测方法,其特征在于,包括:
将目标程序分配至相应的虚拟机中,以使所述目标程序在所述虚拟机上运行;
获取所述目标程序在所述虚拟机上的运行记录;
依据所述运行记录,分析所述目标程序是否为恶意程序;
所述运行记录包括所述目标程序对应的API调用函数、所述API调用函数的调用时间信息,以及与所述API调用函数相应的调用参数;
所述获取所述目标程序在所述虚拟机上的运行记录之后,所述方法还包括:
根据所述运行记录中的所述API调用函数的调用时间信息,按照对所述API调用函数的调用先后顺序排列所述API调用函数,得到所述目标程序对应的API执行序列;
所述依据所述运行记录,分析所述目标程序是否为恶意程序,具体包括:
对所述目标程序对应的API执行序列对应的执行特征进行提取;
根据所述目标程序的执行特征以及预设执行特征报毒经验值,计算所述目标程序的报毒检测值,其中,所述目标程序的报毒检测值为所述目标程序的执行特征对应的预设执行特征报毒经验值之和;
按照所述目标程序的报毒检测值与预设病毒经验值、预设安全经验值以及预设可疑经验值的关系,对所述目标程序进行安全检测。
2.根据权利要求1所述的方法,其特征在于,所述依据所述运行记录,分析所述目标程序是否为恶意程序,具体包括:
获取预设API执行序列名单,其中,所述预设API执行序列名单包括预设API执行序列黑名单;
若所述目标程序对应的API执行序列与所述预设API执行序列黑名单中包含的恶意API执行序列一致,则确定所述目标程序是恶意程序。
3.根据权利要求2所述的方法,其特征在于,所述预设API执行序列名单包括预设API执行序列白名单,所述方法还包括:
若所述目标程序对应的API执行序列与所述预设API执行序列白名单中包含的安全API执行序列一致,则确定所述目标程序是安全程序。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述目标程序对应的API执行序列与所述恶意API执行序列以及所述安全API执行序列均不一致,则确定所述目标程序为可疑程序,并将所述可疑程序对应的API执行序列发送至恶意程序管理系统,以利用所述恶意程序管理系统分析所述可疑程序是否为恶意程序。
5.一种恶意程序检测装置,其特征在于,包括:
目标程序执行模块,用于将目标程序分配至相应的虚拟机中,以使所述目标程序在所述虚拟机上运行;
运行记录获取模块,用于获取所述目标程序在所述虚拟机上的运行记录;
恶意程序分析模块,用于依据所述运行记录,分析所述目标程序是否为恶意程序;
所述运行记录包括所述目标程序对应的API调用函数、所述API调用函数的调用时间信息,以及与所述API调用函数相应的调用参数;
所述装置还包括:
执行序列获取模块,用于获取所述目标程序在所述虚拟机上的运行记录之后,根据所述运行记录中的所述API调用函数的调用时间信息,按照对所述API调用函数的调用先后顺序排列所述API调用函数,得到所述目标程序对应的API执行序列;
所述恶意程序分析模块,用于对所述目标程序对应的API执行序列对应的执行特征进行提取;
报毒检测值计算模块,用于根据所述目标程序的执行特征以及预设执行特征报毒经验值,计算所述目标程序的报毒检测值,其中,所述目标程序的报毒检测值为所述目标程序的执行特征对应的预设执行特征报毒经验值之和;
病毒检测模块,用于按照所述目标程序的报毒检测值与预设病毒经验值、预设安全经验值以及预设可疑经验值的关系,对所述目标程序进行安全检测。
6.根据权利要求5所述的装置,其特征在于,所述恶意程序分析模块,具体包括:
名单获取单元,用于获取预设API执行序列名单,其中,所述预设API执行序列名单包括预设API执行序列黑名单;
恶意程序判定单元,用于若所述目标程序对应的API执行序列与所述预设API执行序列黑名单中包含的恶意API执行序列一致,则确定所述目标程序是恶意程序。
7.根据权利要求6所述的装置,其特征在于,所述预设API执行序列名单包括预设API执行序列白名单,所述恶意程序分析模块还包括:
安全程序判定单元,用于若所述目标程序对应的API执行序列与所述预设API执行序列白名单中包含的安全API执行序列一致,则确定所述目标程序是安全程序。
8.根据权利要求7所述的装置,其特征在于,所述恶意程序分析模块还包括:
可疑程序判定单元,用于若所述目标程序对应的API执行序列与所述恶意API执行序列以及所述安全API执行序列均不一致,则确定所述目标程序为可疑程序,并将所述可疑程序对应的API执行序列发送至恶意程序管理系统,以利用所述恶意程序管理系统分析所述可疑程序是否为恶意程序。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至4中任一项所述的恶意程序检测方法。
10.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4中任一项所述的恶意程序检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910945355.0A CN112580041B (zh) | 2019-09-30 | 2019-09-30 | 恶意程序检测方法及装置、存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910945355.0A CN112580041B (zh) | 2019-09-30 | 2019-09-30 | 恶意程序检测方法及装置、存储介质、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112580041A CN112580041A (zh) | 2021-03-30 |
CN112580041B true CN112580041B (zh) | 2023-07-07 |
Family
ID=75117007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910945355.0A Active CN112580041B (zh) | 2019-09-30 | 2019-09-30 | 恶意程序检测方法及装置、存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112580041B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672917A (zh) * | 2021-08-04 | 2021-11-19 | 安天科技集团股份有限公司 | 恶意代码检测方法、装置、存储介质及电子设备 |
CN115544504B (zh) * | 2022-09-23 | 2023-12-29 | 国网山西省电力公司 | 一种检测恶意代码的方法和装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017142744A (ja) * | 2016-02-12 | 2017-08-17 | 日本電気株式会社 | 情報処理装置、ウィルス検出方法及びプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103839003B (zh) * | 2012-11-22 | 2018-01-30 | 腾讯科技(深圳)有限公司 | 恶意文件检测方法及装置 |
CN105989283B (zh) * | 2015-02-06 | 2019-08-09 | 阿里巴巴集团控股有限公司 | 一种识别病毒变种的方法及装置 |
CN105550581B (zh) * | 2015-12-10 | 2018-09-25 | 北京奇虎科技有限公司 | 一种恶意代码检测方法及装置 |
CN110210219B (zh) * | 2018-05-30 | 2023-04-18 | 腾讯科技(深圳)有限公司 | 病毒文件的识别方法、装置、设备及存储介质 |
-
2019
- 2019-09-30 CN CN201910945355.0A patent/CN112580041B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017142744A (ja) * | 2016-02-12 | 2017-08-17 | 日本電気株式会社 | 情報処理装置、ウィルス検出方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN112580041A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106709325B (zh) | 一种监控程序的方法及装置 | |
US9348998B2 (en) | System and methods for detecting harmful files of different formats in virtual environments | |
EP3079094A1 (en) | Detecting a malicious file infection via sandboxing | |
US20080141376A1 (en) | Determining maliciousness of software | |
US20190147163A1 (en) | Inferential exploit attempt detection | |
JP2018524756A (ja) | 複数のソフトウェアエンティティにわたって悪意あるビヘイビアを追跡するためのシステムおよび方法 | |
CN112580041B (zh) | 恶意程序检测方法及装置、存储介质、计算机设备 | |
CN109600387B (zh) | 攻击事件的追溯方法及装置、存储介质、计算机设备 | |
GB2470928A (en) | False alarm identification for malware using clean scanning | |
Alrawi et al. | Forecasting malware capabilities from cyber attack memory images | |
CN105095759A (zh) | 文件的检测方法及装置 | |
Dai et al. | Behavior-based malware detection on mobile phone | |
CN108182364B (zh) | 一种基于调用依赖关系识别攻击同源的方法及系统 | |
KR20120136126A (ko) | 휴대단말에서 악성행위 처리 방법 및 장치 | |
CN110866248B (zh) | 一种勒索病毒识别方法、装置、电子设备及存储介质 | |
CN112580025A (zh) | 基于虚拟机的报毒方法及装置、存储介质、计算机设备 | |
Ramachandran et al. | Android anti-virus analysis | |
CN112580043B (zh) | 基于虚拟机的杀毒方法及装置、存储介质、计算机设备 | |
Dam et al. | Learning android malware | |
CN112580024B (zh) | 虚拟机的模拟方法及装置、存储介质、计算机设备 | |
CN111062035A (zh) | 一种勒索软件检测方法、装置、电子设备及存储介质 | |
CN112395637A (zh) | 数据库防护方法及装置、存储介质、计算机设备 | |
CN112580035B (zh) | 程序脱壳方法及装置、存储介质、计算机设备 | |
CN113646763B (zh) | shellcode的检测方法及装置 | |
CN109800580B (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 |