CN114139154A - 一种恶意代码检测方法、装置、计算机和可读存储介质 - Google Patents
一种恶意代码检测方法、装置、计算机和可读存储介质 Download PDFInfo
- Publication number
- CN114139154A CN114139154A CN202111380960.1A CN202111380960A CN114139154A CN 114139154 A CN114139154 A CN 114139154A CN 202111380960 A CN202111380960 A CN 202111380960A CN 114139154 A CN114139154 A CN 114139154A
- Authority
- CN
- China
- Prior art keywords
- system call
- program
- sequence
- malicious
- abnormal
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 48
- 230000002159 abnormal effect Effects 0.000 claims abstract description 77
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000008569 process Effects 0.000 claims abstract description 54
- 238000012544 monitoring process Methods 0.000 claims abstract description 53
- 230000009471 action Effects 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 10
- 230000006399 behavior Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000011112 process operation Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种恶意代码检测方法、装置、计算机和可读存储介质,该恶意代码检测方法包括:通过监控进程监控从内核态返回用户态的动作,获取引起被监控进程进入内核态执行的***调用指令;判断被监控进程执行的***调用指令所在的模块是否为可信的Windows库;若否,则判断***调用为异常***调用;并记录异常***调用,形成异常***调用序列;将异常***调用序列和恶意程序***调用序列进行对比分析,判断被监控程序是否为恶意代码。通过监控进程中内核态返回用户态的动作,获取相应的***调用信息,将由不可信Windows库执行的***调用记录为异常***调用序列;将异常***调用序列与恶意***调用序列进行比对,以判断程序的行为特征。
Description
技术领域
本申请涉及计算机信息安全领域,特别是涉及一种恶意代码检测方法、装置、计算机和可读存储介质。
背景技术
当前,主流终端安全软件都是通过对程序用户态中的各层级API(包括Win32 API和Native API等)进行劫持挂钩来获取程序执行过程中的API调用序列;将获取的API调用序列信息放入恶意代码检测模型中进行分析;恶意代码检测模型根据API序列及相关参数,结合威胁情报,发现恶意代码行为。
现有针对恶意代码检测的方法或技术通过对程序用户态API进行挂钩来获取程序执行过程中的API调用序列,并进而通过对API调用序列的分析,实现恶意代码检测。但是,在一些APT攻击过程中,恶意软件通过使用直接***调用的方式可以有效地规避终端安防软件对用户态API调用的监控,使得终端安防软件无法获取程序的API调用序列,从而也就无法判断程序的行为特征。
发明内容
本申请实施例提供了一种恶意代码检测方法、装置、计算机和可读存储介质,以至少解决现有技术中终端安防软件无法准确获取程序的API调用序列,从而无法判断程序的行为特征的问题。
第一方面,本申请实施例提供了一种恶意代码检测方法,包括:
通过监控进程监控从内核态返回用户态的动作,获取引起被所述监控进程进入内核态执行的***调用指令;
判断被监控进程执行的***调用指令所在的模块是否为可信的Windows库;若否,则判断所述***调用指令为异常***调用产生;并记录所述异常***调用,形成异常***调用序列;
将所述异常***调用序列和恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。
在其中一些实施例中,所述通过监控进程监控从内核态返回用户态的动作,获取引起被所述监控进程进入内核态执行的***调用指令的步骤包括:
通过设置回调函数,实现对被监控进程从内核态返回用户态的监控;
当发现所述被监控进程从内核态返回用户态时,判断所述被监控进程从用户态进入内核态的操作是否由***调用产生,若是,则记录所述***调用信息。
在其中一些实施例中,所述判断所述被监控进程从用户态进入内核态的操作是否由***调用产生的步骤包括:
对返回地址附近的调用指令进行反汇编分析;
根据所述反汇编分析的结果,判断所述被监控进程从用户态进入内核态的操作是否由***调用产生。
在其中一些实施例中,所述判断被监控进程执行的***调用指令所在的模块是否为可信的Windows库;若否,则判断所述***调用为异常***调用;并记录所述异常***调用,形成异常***调用序列的步骤包括:
根据被监控进程中执行的***调用指令的位置,获取所述***调用指令所在的模块;
判断所述模块是否为可信的Windows库;
若否,则判断所述***调用指令是由用户程序执行***调用产生的,将所述***调用记录到异常***调用序列中。
在其中一些实施例中,所述判断所述模块是否为可信的Windows库的步骤包括:
对所述模块的数字签名进行计算;
根据所述数字签名判断所述模块是否为可信的Windows库。
在其中一些实施例中,所述将所述异常***调用序列和恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码的步骤包括:
根据获取的威胁情报构建恶意程序***调用序列;
将被监控程序的异常***调用序列和所述恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。
第二方面,本申请实施例提供了一种恶意代码检测装置,其特征在于,包括:
监控模块,所述监控模块用于通过监控进程监控从内核态返回用户态的动作,获取引起被所述监控进程进入内核态执行的***调用指令;
处理模块,所述处理模块用于判断被监控进程执行的***调用指令所在的模块是否为可信的Windows库;若否,则判断所述***调用指令为异常***调用产生;并记录所述异常***调用,形成异常***调用序列;
判断模块,所述判断模块用于将所述异常***调用序列和恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。
在其中一些实施例中,所述监控模块包括:
监控单元:所述监控单元用于通过设置回调函数,实现对被监控进程从内核态返回用户态的监控;
记录单元:所述记录单元用于当发现所述被监控进程从内核态返回用户态时,判断所述被监控进程从用户态进入内核态的操作是否由***调用产生,若是,则记录所述***调用信息。
在其中一些实施例中,所述记录单元还用于:
对返回地址附近的调用指令进行反汇编分析;
根据所述反汇编分析的结果,判断所述被监控进程从用户态进入内核态的操作是否由***调用产生。
在其中一些实施例中,所述处理模块包括:
获取单元,所述获取单元用于根据被监控进程中执行的***调用指令的位置,获取所述***调用指令所在的模块;
处理单元,所述处理单元用于判断所述模块是否为可信的Windows库;
若否,则判断所述***调用指令是由用户程序执行***调用产生的,将所述***调用记录到异常***调用序列中。
在其中一些实施例中,所述处理单元还用于:
对所述模块的数字签名进行计算;
根据所述数字签名判断所述模块是否为可信的Windows库。
在其中一些实施例中,所述判断模块包括:
构建单元,所述构建单元用于根据获取的威胁情报构建恶意程序***调用序列;
判断单元,所述判断单元用于将被监控程序的异常***调用序列和所述恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。
第三方面,本申请实施例提供了一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如所述第一方面所述的一种恶意代码检测方法。
第四方面,本申请实施例提供了一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如所述第一方面所述的一种恶意代码检测方法。
相比于相关技术,本申请实施例提供的一种恶意代码检测方法,通过监控进程中监控内核态返回用户态的动作,获取相应的***调用指令信息,并对被监控程序中***调用的来源进行分析,查找由不可信Windows库执行的***调用;获取被监控程序中所有的通过不可信Windows库执行的***调用,形成异常***调用序列;将获取的异常***调用序列放入恶意代码分析模型中进行判断,即将异常***调用序列与恶意***调用序列进行比对,生成恶意代码检测分析结果,以判断程序的行为特征并监控潜在的恶意代码。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请第一实施例中恶意代码检测方法的流程图;
图2是本申请第二实施例中恶意代码检测方法的流程图;
图3是本申请第三实施例中恶意代码检测装置的结构框图;
图4是本申请第四实施例中计算机的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
当前,主流终端安全软件都是通过对程序用户态中的各层级API(包括Win32 API和Native API等)进行劫持挂钩来获取程序执行过程中的API调用序列;将获取的API调用序列信息放入恶意代码检测模型中进行分析;恶意代码检测模型根据API序列及相关参数,结合威胁情报,发现恶意代码行为。
现有针对恶意代码检测的方法或技术通过对程序用户态API进行挂钩来获取程序执行过程中的API调用序列,并进而通过对API调用序列的分析,实现恶意代码检测。但是,在一些APT攻击过程中,恶意软件通过使用直接***调用的方式可以有效地规避终端安防软件对用户态API调用的监控,使得终端安防软件无法获取程序的API调用序列,从而也就无法判断程序的行为特征。
而且,从Windows Vista x64开始,Windows***内核采用Patchguard技术进行防护,使得终端安防软件无法在内核中挂钩SSDT/IDT/GDT等***内核表对程序调用的API进行监控;终端安防软件只能通过对程序进程的Native API进行劫持实现用户层的挂钩,以判断程序的行为特征并监控潜在的恶意代码,而恶意代码开发者通过使用直接***调用的方式可以有效地规避终端安防软件对用户态API调用的监控,可避免恶意代码因为调用部分敏感API序列而被查杀。
此外,便于理解地,上述APT为:某组织对特定对象展开的持续有效的一种高级可持续的威胁攻击活动。这种攻击活动具有极强的隐蔽性和针对性,通常会运用受感染的各种介质、供应链和社会工程学等多种手段实施先进的、持久的且有效的威胁和攻击。
综上所述,本发明的第一实施例提供了一种恶意检测方法。图1是根据本申请实施例的一种恶意代码检测方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,通过监控进程监控从内核态返回用户态的动作,获取引起被所述监控进程进入内核态执行的***调用指令或信息。便于理解地,Windows***调用为:在Windows***中,调用特定的接口(***调用),利用sysenter、syscall或int 2eh指令,可以实现从用户态进入内核态。在本步骤中,通过监控进程中监控由内核态返回用户态的***调用,以此获取引起被监控进程进入内核态执行的***调用指令或信息。
步骤S102,判断被监控进程执行的***调用指令或信息所在的模块是否为可信的Windows库;若否,则判断所述***调用指令或信息为异常***调用产生;并记录所述异常***调用,形成异常***调用序列。具体来说,在本步骤中,上述“可信Windows库”包括经微软数字签名的Windows库,而上述“异常***调用”则包括***调用所在的模块为未经微软数字签名的Windows库,上述“***调用序列”为按照执行顺序被排列的一组***调用。
步骤S103,将所述异常***调用序列和恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。在本步骤中,上述恶意程序***调用序列为预先设置的、可以确认符合恶意行为特征的***调用序列,即根据上述恶意***调用序列形成恶意代码分析模型,将异常***调用序列放入恶意代码分析模型中进行判断,若上述异常程序序列与恶意程序***调用序列符合,则可确定上述被监控程序为恶意代码。
上述步骤S101至步骤S103,通过监控进程中监控内核态返回用户态的动作,获取相应的***调用指令或信息,并对被监控程序中***调用的来源进行分析,查找由不可信Windows库执行的***调用;获取被监控程序中所有的通过不可信Windows库执行的***调用,形成异常***调用序列;将获取的异常***调用序列放入恶意代码分析模型中进行判断,即将异常***调用序列与恶意***调用序列进行比对,生成恶意代码检测分析结果,以判断程序的行为特征并监控潜在的恶意代码。
本申请的第二实施例还提供了一种恶意代码检测方法。图2是根据本申请实施例的另一种恶意代码检测方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,通过设置回调函数,实现对被监控进程从内核态返回用户态的监控。在本步骤中,具体通过设置回调函数,对进程中由内核态返回用户态的动作进行监控,并以此获取引起被监控进程进入内核态执行的***调用指令或信息。
步骤S202,当发现所述被监控进程从内核态返回用户态时,对返回地址附近的调用指令进行反汇编分析;
根据所述反汇编分析的结果,判断所述被监控进程从用户态进入内核态的操作是否由***调用产生,若是,则记录所述***调用信息。在本实施例的一些应用场景中,当发现被监控进程从内核态返回用户态时,通过对返回地址附近的***调用指令进行反汇编分析,判断该进程操作是否由***调用产生,若为***调用产生则对其***调用号进行记录,若否,则忽略该操作且不执行后续步骤。
步骤S203,根据被监控进程中执行的***调用指令的位置,获取所述***调用指令所在的模块。具体来说,在本步骤中,上述模块包括执行上述***调用的软件。
步骤S204,对所述模块的数字签名进行计算;
根据所述数字签名判断所述模块是否为可信的Windows库。具体来说,在本步骤中,上述“可信的Windows库”包括经微软数字签名的Windows库,若该模块为“可信的Windows库”即判断该模块不存在恶意行为,并忽略该操作,且不执行后续步骤。
步骤S205,若否,则判断所述***调用指令是由用户程序执行***调用产生的,将所述***调用记录到异常***调用序列中。具体来说,在本步骤中,若上述模块为“不可信的Windows库”,则说明该模块可能存在恶意行为,并将该***调用记录到异常调用序列中。
步骤S206,根据获取的威胁情报构建恶意程序***调用序列。在本步骤中,上述威胁情报包括已经可判断存在恶意行为的目标特征,并通过上述目标特征构建对应的恶意程序***调用序列。
步骤S207,将被监控程序的异常***调用序列和所述恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。具体来说,在本步骤中,通过将来源为“不可信的Windows库”的***调用与恶意程序***调用序列进行比对分析,若符合上述目标特征,则可判断被监控程序为恶意代码。
上述步骤S201至步骤S207,通过设置回调函数实现对从用户态进入内核态的动作的监控,并通过对***调用指令进行反汇编分析,获取对被监控程序中***调用的来源模块,即查找由不可信Windows库执行的***调用;并获取被监控程序中所有的通过不可信Windows库执行的***调用,形成异常***调用序列;将获取的异常***调用序列放入恶意代码分析模型中进行判断,即将异常***调用序列与恶意***调用序列进行比对,生成恶意代码检测分析结果,以判断程序的行为特征并监控潜在的恶意代码。
本申请的第三实施例还提供了一种恶意代码检测装置,该装置用于实现所述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本申请实施例的恶意代码检测装置的结构框图,如图3所示,该装置包括:监控模块10、处理模块20及判断模块30;其中,
所述监控模块10用于通过监控进程监控从内核态返回用户态的动作,获取引起被所述监控进程进入内核态执行的***调用指令或信息;
所述处理模块20用于判断被监控进程执行的***调用指令或信息所在的模块是否为可信的Windows库;若否,则判断所述***调用为异常***调用;并记录所述异常***调用,形成异常***调用序列;
所述判断模块30用于将所述异常***调用序列和恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。
具体来说,所述监控模块10包括:
监控单元:所述监控单元用于通过设置回调函数,实现对被监控进程从内核态返回用户态的监控;
记录单元:所述记录单元用于当发现所述被监控进程从内核态返回用户态时,判断所述被监控进程从用户态进入内核态的操作是否由***调用产生,若是,则记录所述***调用信息。
具体来说,所述记录单元还用于:
对返回地址附近的调用指令进行反汇编分析;
根据所述反汇编分析的结果,判断所述被监控进程从用户态进入内核态的操作是否由***调用产生。
具体来说,在本实施例中,所述处理模块20包括:
获取单元,所述获取单元用于根据被监控进程中执行***调用指令的位置,获取所述***调用指令所在的模块;
处理单元,所述处理单元用于判断所述模块是否为可信的Windows库;
若否,则判断所述***调用指令或信息是由用户程序执行***调用产生的,将所述***调用记录到异常***调用序列中。
在本实施例中,所述处理单元还用于:
对所述模块的数字签名进行计算;
根据所述数字签名判断所述模块是否为可信的Windows库。
所述判断模块30包括:
构建单元,所述构建单元用于根据获取的威胁情报构建恶意程序***调用序列;
判断单元,所述判断单元用于将被监控程序的异常***调用序列和所述恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。
综上,本实施例中的恶意检测装置,通过监控模块10设置回调函数实现对从用户态进入内核态的动作的监控,并通过处理模块20对***调用指令或信息进行反汇编分析,获取对被监控程序中***调用的来源,即查找由不可信Windows库执行的***调用;并获取被监控程序中所有的通过不可信Windows库执行的***调用,形成异常***调用序列;通过判断模块30将获取的异常***调用序列放入恶意代码分析模型中进行判断,即将异常***调用序列与恶意***调用序列进行比对,生成恶意代码检测分析结果,以判断程序的行为特征并监控潜在的恶意代码。
需要说明的是,所述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,所述各个模块可以位于同一处理器中;或者所述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本申请的第四实施例提供了一种计算机,可以理解地,本实施例中的恶意代码检测装置中提及的原理与本申请第二实施例中的恶意代码检测方法相对应,未见描述的相关原理详见可对应参照第二实施例,在此不多赘述。
该计算机可以包括处理器81以及存储有计算机程序命令的存储器82。
具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器82可以包括用于数据或命令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器82所执行的可能的计算机程序命令。
处理器81通过读取并执行存储器82中存储的计算机程序命令,以实现上述实施例中的任意一种恶意代码检测方法。
在其中一些实施例中,计算机还可包括通信接口83和总线80。其中,如图4所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信接口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线80包括硬件、软件或两者,将计算机的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(ControlBus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(FrontSide Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、***组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的恶意检测方法,本申请的第五实施例提供了一种可读存储介质。该可读存储介质上存储有计算机程序命令;该计算机程序命令被处理器执行时实现上述实施例中的任意一种恶意检测方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对所述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种恶意代码检测方法,其特征在于,包括:
通过监控进程监控从内核态返回用户态的动作,获取引起被所述监控进程进入内核态执行的***调用指令;
判断被监控进程执行的***调用指令所在的模块是否为可信的Windows库;若否,则判断所述***调用指令为异常***调用产生;并记录所述异常***调用,形成异常***调用序列;
将所述异常***调用序列和恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。
2.根据权利要求1所述的恶意代码检测方法,其特征在于,所述通过监控进程监控从内核态返回用户态的动作,获取引起被所述监控进程进入内核态执行的***调用指令的步骤包括:
通过设置回调函数,实现对被监控进程从内核态返回用户态的监控;
当发现所述被监控进程从内核态返回用户态时,判断所述被监控进程从用户态进入内核态的操作是否由***调用产生,若是,则记录所述***调用信息。
3.根据权利要求2所述的恶意代码检测方法,其特征在于,所述判断所述被监控进程从用户态进入内核态的操作是否由***调用产生的步骤包括:
对返回地址附近的调用指令进行反汇编分析;
根据所述反汇编分析的结果,判断所述被监控进程从用户态进入内核态的操作是否由***调用产生。
4.根据权利要求1所述的恶意代码检测方法,其特征在于,所述判断被监控进程执行的***调用指令所在的模块是否为可信的Windows库;若否,则判断所述***调用为异常***调用;并记录所述异常***调用,形成异常***调用序列的步骤包括:
根据被监控进程中执行的***调用指令的位置,获取所述***调用指令所在的模块;
判断所述模块是否为可信的Windows库;
若否,则判断所述***调用指令是由用户程序执行***调用产生的,将所述***调用记录到异常***调用序列中。
5.根据权利要求4所述的恶意代码检测方法,其特征在于,所述判断所述模块是否为可信的Windows库的步骤包括:
对所述模块的数字签名进行计算;
根据所述数字签名判断所述模块是否为可信的Windows库。
6.根据权利要求1所述的恶意代码检测方法,其特征在于,所述将所述异常***调用序列和恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码的步骤包括:
根据获取的威胁情报构建恶意程序***调用序列;
将被监控程序的异常***调用序列和所述恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。
7.一种恶意代码检测装置,其特征在于,包括:
监控模块,所述监控模块用于通过监控进程监控从内核态返回用户态的动作,获取引起被所述监控进程进入内核态执行的***调用指令;
处理模块,所述处理模块用于判断被监控进程执行的***调用指令所在的模块是否为可信的Windows库;若否,则判断所述***调用指令为异常***调用产生;并记录所述异常***调用,形成异常***调用序列;
判断模块,所述判断模块用于将所述异常***调用序列和恶意程序***调用序列进行对比分析,若所述异常***调用序列符合所述恶意程序***调用序列,则判断被监控程序为恶意代码。
8.根据权利要求7所述的一种恶意代码检测装置,其特征在于,所述监控模块包括:
监控单元:所述监控单元用于通过设置回调函数,实现对被监控进程从内核态返回用户态的监控;
记录单元:所述记录单元用于当发现所述被监控进程从内核态返回用户态时,判断所述被监控进程从用户态进入内核态的操作是否由***调用产生,若是,则记录所述***调用信息。
9.一种计算机,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述的恶意代码检测方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6中任一项所述的恶意代码检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111380960.1A CN114139154A (zh) | 2021-11-20 | 2021-11-20 | 一种恶意代码检测方法、装置、计算机和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111380960.1A CN114139154A (zh) | 2021-11-20 | 2021-11-20 | 一种恶意代码检测方法、装置、计算机和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114139154A true CN114139154A (zh) | 2022-03-04 |
Family
ID=80390288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111380960.1A Pending CN114139154A (zh) | 2021-11-20 | 2021-11-20 | 一种恶意代码检测方法、装置、计算机和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114139154A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114640529A (zh) * | 2022-03-24 | 2022-06-17 | 中国工商银行股份有限公司 | 攻击防护方法、装置、设备、存储介质和计算机程序产品 |
CN117235686A (zh) * | 2023-10-30 | 2023-12-15 | 杭州海康威视数字技术股份有限公司 | 数据保护方法、装置及设备 |
-
2021
- 2021-11-20 CN CN202111380960.1A patent/CN114139154A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114640529A (zh) * | 2022-03-24 | 2022-06-17 | 中国工商银行股份有限公司 | 攻击防护方法、装置、设备、存储介质和计算机程序产品 |
CN114640529B (zh) * | 2022-03-24 | 2024-02-02 | 中国工商银行股份有限公司 | 攻击防护方法、装置、设备、存储介质和计算机程序产品 |
CN117235686A (zh) * | 2023-10-30 | 2023-12-15 | 杭州海康威视数字技术股份有限公司 | 数据保护方法、装置及设备 |
CN117235686B (zh) * | 2023-10-30 | 2024-01-30 | 杭州海康威视数字技术股份有限公司 | 数据保护方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8627478B2 (en) | Method and apparatus for inspecting non-portable executable files | |
US9740853B2 (en) | Configuring a sandbox environment for malware testing | |
RU2531861C1 (ru) | Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса | |
US8959641B2 (en) | Foiling a document exploit attack | |
US8151352B1 (en) | Anti-malware emulation systems and methods | |
US20230315863A1 (en) | Asset scoring method and apparatus, computer device, and storage medium | |
JP5265061B1 (ja) | 悪意のあるファイル検査装置及び方法 | |
CN109583202B (zh) | 用于检测进程的地址空间中的恶意代码的***和方法 | |
US11363058B2 (en) | Detecting execution of modified executable code | |
CN106709325B (zh) | 一种监控程序的方法及装置 | |
CN114139154A (zh) | 一种恶意代码检测方法、装置、计算机和可读存储介质 | |
WO2017012241A1 (zh) | 文件的检测方法、装置、设备及非易失性计算机存储介质 | |
US9910983B2 (en) | Malware detection | |
US8646076B1 (en) | Method and apparatus for detecting malicious shell codes using debugging events | |
JPWO2015045043A1 (ja) | プロセス検査装置、プロセス検査プログラムおよびプロセス検査方法 | |
US20190121975A1 (en) | System and method for adapting patterns of malicious program behavior from groups of computer systems | |
US10726129B2 (en) | Persistence probing to detect malware | |
US9787699B2 (en) | Malware detection | |
CN108197475B (zh) | 一种恶意so模块检测方法及相关装置 | |
RU2665910C1 (ru) | Система и способ обнаружения вредоносного кода в адресном пространстве процессов | |
RU2774042C1 (ru) | Система и способ выявления потенциально вредоносных изменений в приложении | |
CN109190366B (zh) | 一种程序处理方法以及相关装置 | |
US20240248990A1 (en) | Machine learning-based malware detection for code reflection | |
KR101726360B1 (ko) | 서픽스 트리 생성 방법 및 서버, 및 상기 서픽스 트리를 이용하는 악성 코드 탐지 방법 및 서버 | |
CN112395595A (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 |