CN110866256A - 一种宏代码检测方法、装置、设备及存储介质 - Google Patents

一种宏代码检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110866256A
CN110866256A CN201911102899.7A CN201911102899A CN110866256A CN 110866256 A CN110866256 A CN 110866256A CN 201911102899 A CN201911102899 A CN 201911102899A CN 110866256 A CN110866256 A CN 110866256A
Authority
CN
China
Prior art keywords
macro code
code
macro
abnormal
detection
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
Application number
CN201911102899.7A
Other languages
English (en)
Inventor
廖国辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201911102899.7A priority Critical patent/CN110866256A/zh
Publication of CN110866256A publication Critical patent/CN110866256A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis

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

本申请公开了一种宏代码检测方法、装置、设备及存储介质,该方法的步骤包括:获取宏代码;搜索宏代码中的调用对象;执行调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。本方法是在宏代码中搜索并获取到其运行时需要调用的对象内容,即调用对象,并通过执行调用对象的方式模拟调用对象被宏代码调用执行的场景,进而根据检测规则对调用对象执行过程中的执行特征对宏代码是否异常进行判定,生成相应的检测结果,实现了对于恶意宏代码的检测,从而确保了用户操作***的安全性。此外,本申请还提供一种宏代码检测装置、设备及存储介质,有益效果同上所述。

Description

一种宏代码检测方法、装置、设备及存储介质
技术领域
本申请涉及数据检测领域,特别是涉及一种宏代码检测方法、装置、设备及存储介质。
背景技术
计算机科学里的宏是一种抽象的概念,它根据一系列预定义的规则替换一定的文本模式,目的是将一些命令组织在一起,作为一个单独命令完成一个特定任务。
当前的文档编辑软件中往往设计有宏功能,目的是让用户文档中的一些任务自动化,由于文件中的宏具有自动执行任务的特点,因此也可以被作为宏病毒以用于自动执行恶意行为。
宏病毒是一种寄存在文档中的恶意宏代码,在携带有宏病毒的文档被打开时,病毒指令就随着宏代码的自动执行而会被执行,从而将对用户操作***的安全性造成影响。
由此可见,提供一种宏代码检测方法,以实现对于恶意宏代码的检测,从而确保用户操作***的安全性,是本领域技术人员需要解决的问题。
发明内容
本申请的目的是提供一种宏代码检测方法、装置、设备及存储介质,以实现对于恶意宏代码的检测,从而确保用户操作***的安全性。
为解决上述技术问题,本申请提供一种宏代码检测方法,包括:
获取宏代码;
搜索宏代码中的调用对象;
执行调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。
优选地,搜索宏代码中的调用对象之前还包括,包括:
判断宏代码中是否包含入口函数;
如果宏代码中包含入口函数,则基于入口函数执行搜索宏代码中的调用对象的步骤;
如果宏代码中包未含入口函数,则将宏代码设置为非异常代码。
优选地,执行特征包括行为操作,根据检测规则对调用对象的执行特征进行检测以生成检测结果包括:
根据行为操作生成行为评分,行为评分与行为操作的异常概率成正比;
判断行为评分是否达到异常阈值;
如果行为评分达到异常阈值时,将宏代码设置为异常代码;
如果行为评分未达到异常阈值时,将宏代码设置为非异常代码。
优选地,执行特征包括执行结果,根据检测规则对调用对象的执行特征进行检测以生成检测结果包括:
获取异常特征,异常特征为调用对象在异常宏代码中的执行结果特征;
判断执行结果的特征与异常特征是否匹配;
如果执行结果的特征与异常特征匹配,则将宏代码设置为异常代码;
如果执行结果的特征未与异常特征匹配,将宏代码设置为非异常代码。
优选地,执行特征包括行为操作和执行结果,根据检测规则对调用对象的执行特征进行检测以生成检测结果包括:
根据行为操作生成行为评分,行为评分与行为操作的异常概率成正比;
获取异常特征,异常特征为调用对象在异常宏代码中的执行结果特征;
当执行结果的特征与异常特征相匹配和行为评分均达到异常阈值时,将宏代码设置为异常代码;
否则,将宏代码设置为非异常代码。
优选地,搜索宏代码中的调用对象包括:
搜索宏代码中的所有函数,将所有函数中的预定函数作为调用对象。
优选地,预定函数包括与字符串处理相关的函数。
优选地,搜索宏代码中的调用对象包括:
搜索宏代码中调用的所有脚本,将所有脚本作为调用对象。
此外,本申请还提供一种宏代码检测装置,包括:
代码提取模块,用于获取宏代码;
对象搜索模块,用于搜索宏代码中的调用对象;
执行检测模块,用于执行调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。
此外,本申请还提供一种宏代码检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的宏代码检测方法的步骤。
此外,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的宏代码检测方法的步骤。
本申请所提供的宏代码检测方法,首先获取宏代码,进一步搜索宏代码中的调用对象,进而执行宏代码中的调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。本方法是在宏代码中搜索并获取到其运行时需要调用的对象内容,即调用对象,并通过执行调用对象的方式模拟调用对象被宏代码调用执行的场景,进而根据检测规则对调用对象执行过程中的执行特征对宏代码是否异常进行判定,生成相应的检测结果,实现了对于恶意宏代码的检测,从而确保了用户操作***的安全性。此外,本申请还提供一种宏代码检测装置、设备及存储介质,有益效果同上所述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请公开的一种宏代码检测方法的流程图;
图2为本申请公开的一种具体的宏代码检测方法的流程图;
图3为本申请公开的一种具体的宏代码检测方法的流程图;
图4为本申请公开的一种具体的宏代码检测方法的流程图;
图5为本申请公开的一种具体的宏代码检测方法的流程图;
图6为本申请公开的一种具体的宏代码检测方法的流程图;
图7为本申请公开的一种宏代码检测装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
当前的文档编辑软件中往往设计有宏功能,目的是让用户文档中的一些任务自动化,由于文件中的宏具有自动执行任务的特点,因此也可以被作为宏病毒以用于自动执行恶意行为。
宏病毒是一种寄存在文档中的恶意宏代码,在携带有宏病毒的文档被打开时,病毒指令就随着宏代码的自动执行而会被执行,从而将对用户操作***的安全性造成影响。
为此,本申请的核心是提供一种宏代码检测方法,以实现对于恶意宏代码的检测,从而确保用户操作***的安全性。
请参见图1所示,本申请实施例公开了一种宏代码检测方法,包括:
步骤S10:获取宏代码。
需要说明的是,本步骤中的宏代码可以具体在待测文档的底层代码中获取,宏代码往往被记录于待测文档源代码中的特定位置,或具有表征宏代码身份的标记,以此在待测文档的底层代码中获取宏代码时,可以根据实际情况在待测文档底层代码的特定位置获取到宏代码,或通过在待测文档底层代码中检索宏代码标记,并将具有宏代码标记的代码段作为宏代码进行提取。
另外,获取宏代码的途径也可以不仅限于待测文档的底层代码,也可以具体是获取已经过静态特征检测,并且检测结果非异常的宏代码,此处的静态特征检测,指的是对宏代码的静态特征进行规则匹配,根据匹配结果判断文档是否带有宏病毒,也就是获取代码中的字符串内容,并判断字符串内容是否与异常宏代码中的字符串具有相同特征,如果字符串内容与异常宏代码中的字符串具有相同特征,则判定该宏代码异常,否则,判定该宏代码正常。
步骤S11:搜索宏代码中的调用对象。
在获取到宏代码后,本步骤进一步搜索宏代码中的调用对象,调用对象是由宏代码调用的可执行对象,由于宏代码在执行过程中往往需要实现一定的代码功能,通过调用可执行对象以进行对***的相应操作。
步骤S12:执行调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。
本步骤的重点在于获取宏代码中的调用对象后,进一步执行调用对象,由于调用对象能够受宏代码的调用并执行以生成相应的执行结果或执行相应的操作行为,因此本步骤在不触发宏代码执行的基础上,仅执行宏代码中的调用对象,进而根据检测规则对调用对象的执行时的执行特征进行检测,以此生成检测结果,也就是说,本方法的重点是将调用对象执行过程所动态产生的结果作为宏代码的特征,对宏代码是否异常进行检测。
本申请所提供的宏代码检测方法,首先获取宏代码,进一步搜索宏代码中的调用对象,进而执行宏代码中的调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。本方法是在宏代码中搜索并获取到其运行时需要调用的对象内容,即调用对象,并通过执行调用对象的方式模拟调用对象被宏代码调用执行的场景,进而根据检测规则对调用对象执行过程中的执行特征对宏代码是否异常进行判定,生成相应的检测结果,实现了对于恶意宏代码的检测,从而确保了用户操作***的安全性。
参见图2所示,本申请实施例公开了一种宏代码检测方法,包括:
步骤S20:获取宏代码。
步骤S21:判断宏代码中是否包含入口函数,如果是,则执行步骤S22至S23,否则,执行步骤S24。
步骤S22:基于入口函数搜索宏代码中的调用对象。
步骤S23:执行调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。
步骤S24:将宏代码设置为非异常代码。
需要说明的是,本实施例中的入口函数也可以理解为是宏代码中的主函数,宏代码从入口函数开始执行,进而在执行入口函数的过程中,进一步调用执行入口函数中嵌套的调用对象,因此宏代码中存在入口函数,表示宏代码能够自动执行,进而宏代码才有执行异常操作的可能,因此本步骤在获取宏代码后,进一步判断宏代码中是否包含入口函数,只有当宏代码中存在入口函数,即宏代码能够自动执行时,才进一步执行搜索宏代码中的调用对象并根据调用对象检测宏代码是否异常的相关操作。本实施例仅搜索可执行的宏代码中的调用对象,相当于仅对可能存在异常的宏代码进行调用对象的搜索以及检测,避免了宏代码检测的过程对***资源造成浪费。同理的,当宏代码中未包含有入口函数时,则说明该宏代码不具有自动执行的能力,因此不具有作为执行恶意操作的代码的基础,进而本实施例的重点在于当判断宏代码中是否包含入口函数的结果为宏代码中未包含入口函数时,将宏代码设置为非异常代码,以此作为检测结果结束对于宏代码的检测。本实施例相对确保了在对宏代码进行检测时,提高了根据入口函数判定宏代码是否异常的过程完整性,进一步确保了宏代码检测的准确性。
另外,由于宏代码从入口函数开始执行,并在执行入口函数过程中调用入口函数中的调用对象,进而可能在执行入口函数的调用对象过程中执行该调用对象进一步包含的调用对象,因此调用对象之间往往是具有嵌套关系的,进而本实施方式基于入口函数搜索宏代码中的调用对象,能够相对确保获取到的调用对象的全面性,以及调用对象执行结果的准确性,以此进一步确保了宏代码检测的准确性。
参见图3所示,本申请实施例公开了一种宏代码检测方法,包括:
步骤S30:获取宏代码。
步骤S31:搜索宏代码中的调用对象。
步骤S32:执行调用对象,并根据检测规则对调用对象的行为操作和/或执行结果进行检测以生成检测结果。
需要说明的是,本实施例的重点在于根据检测规则对调用对象进行检测时,具体是基于调用对象的行为操作以及执行结果的单独某一方面进行检测或综合两方面进行检测,其中,行为操作指的是调用对象在执行过程中对***执行的操作行为,操作行为可以是对***文件的读写操作,包括但不限于修改***的注册表或对***运行参数进行写操作等;执行结果指的是调用对象在执行完成后返回的处理结果。由于调用对象的行为操作能够体现调用对象的行为意图,而调用对象的执行结果也将影响与其相关的调用对象的行为操作,因此本实施例根据检测规则对调用对象的行为操作以及执行结果这两个维度对调用对象进行检测,能够相对全面的基于调用对象执行时产生的特征实现对宏代码进行检测,进一步确保了检测结果的准确性。
在上述实施例的基础上,当执行特征同时包括行为操作和执行结果时,本申请还提供如下实施例。参见图4所示,本申请实施例公开了一种宏代码检测方法,包括:
步骤S40:获取宏代码。
步骤S41:搜索宏代码中的调用对象。
步骤S42:执行调用对象,并根据行为操作生成行为评分,行为评分与行为操作的异常概率成正比。
需要说明的是,本步骤中行为评分是根据调用对象过程中执行的行为操作而生成的,行为操作的敏感程度越高,即行为操作可能为异常操作的概率越高,则行为评分越高,因此需要预先根据不同的行为操作的敏感程度设置相应的分数,行为评分与行为操作的异常概率成正比,也就是说,调用对象所执行的行为操作越敏感或执行的敏感操作越多,则根据调用对象的行为操作生成的行为评分则越高。
在实际的宏代码检测场景中,预先对每一类行为操作设置相应的分数值,分数值可以规定设置的区间,例如区间为0~99,行为操作的敏感程度与其对应的分数值成正比,此处所指的敏感程度是行为操作可能对***的稳定性造成影响的可能性以及程度,技术人员预先自定义行为操作的分数值,例如对***文件进行与写相关的行为操作对应的分数值为99分,对普通文件进行与读相关的行为操作对应的分数值为0分等,以此生成行为操作与分数值之间的对应关系,由于调用对象往往执行有多个行为操作,这多个行为操作共同作用于***,从而可能导致***的稳定性发生改变,因而在调用对象执行过程中,统计该调用对象执行的全部目标行为操作,进而在对应关系中匹配目标行为操作对应的分数值,并对分数值进行累计计算产生行为评分,行为评分即受调用对象中单独的行为操作影响,也受整体行为操作的共同影响。
步骤S43:获取异常特征,异常特征为调用对象在异常宏代码中的执行结果特征。
需要说明的是,本步骤中获取的异常特征指的是调用对象在已知的异常宏代码中执行后产生的结果所具有的特征,即执行结果特征,本实施例将异常特征作为判断当前的调用对象的执行结果是否异常的依据。
步骤S44:判断是否满足执行结果的特征与异常特征相匹配且行为评分均达到异常阈值的条件,如果是,则执行步骤S45,否则,执行步骤S46。
步骤S45:将宏代码设置为异常代码。
步骤S46:将宏代码设置为非异常代码。
可以理解的是,当执行结果的特征与异常特征相匹配时,则说明当前待测的调用对象的执行结果与该调用对象在已知的异常宏代码中的执行结果所具有相同的特征,因此在此情况下认为宏代码为异常代码;另外,当行为评分达到异常阈值时,则说明调用对象在执行过程中执行的敏感行为操作的数量达到一定数量,或执行的行为操作达到一定的敏感程度,因此在此情况下认为宏代码为异常代码。本步骤中的异常阈值应根据实际宏代码测试场景的严格程度而定,在此不做具体限定。本步骤在当满足执行结果的特征与异常特征相匹配以及行为评分达到异常阈值中的任意一项条件时,均认为宏代码为异常代码,进而当执行结果的特征与异常特征相匹配和/或行为评分达到异常阈值时,将宏代码设置为异常代码。
可以理解的是,本实施例在当执行结果以及行为操作两个维度均未满足相应的异常标准时,则认为宏代码不存在异常,即当执行结果的特征与异常特征未匹配且行为评分未达到异常阈值时,将宏代码设置为非异常代码。
因此本实施例对根据检测规则对调用对象的行为操作以及执行结果这两个维度对调用对象进行检测的过程做了进一步细化,进一步确保了检测结果的准确性。
另外,当执行特征仅包括行为操作时,本申请还提供如下实施例。
参见图5所示,本申请实施例公开了一种宏代码检测方法,包括:
步骤S50:获取宏代码。
步骤S51:搜索宏代码中的调用对象。
步骤S52:执行调用对象,并根据行为操作生成行为评分,行为评分与行为操作的异常概率成正比。
步骤S53:判断行为评分是否达到异常阈值,如果是,则执行步骤S54,否则,执行步骤S55。
步骤S54:将宏代码设置为异常代码。
步骤S55:将宏代码设置为非异常代码。
需要说明的是,本实施例中的行为评分是根据调用对象过程中执行的行为操作而生成的,行为操作的敏感程度越高,即行为操作可能为异常操作的概率越高,则行为评分越高,因此需要预先根据不同的行为操作的敏感程度设置相应的分数,行为评分与行为操作的异常概率成正比,也就是说,调用对象所执行的行为操作越敏感或执行的敏感操作越多,则根据调用对象的行为操作生成的行为评分则越高。当行为评分达到异常阈值时,则说明调用对象在执行过程中执行的敏感行为操作的数量达到一定数量,或执行的行为操作达到一定的敏感程度,因此在此情况下认为宏代码为异常代码。
本实施例对根据检测规则对调用对象的行为操作这一单一的维度对调用对象进行检测的过程做了进一步细化,进一步确保了检测结果的准确性。
另外,当执行特征仅包括执行结果时,本申请还提供如下实施例。
参见图6所示,本申请实施例公开了一种宏代码检测方法,包括:
步骤S60:获取宏代码。
步骤S61:搜索宏代码中的调用对象。
步骤S62:执行调用对象,并获取异常特征,异常特征为调用对象在异常宏代码中的执行结果特征。
步骤S63:判断执行结果的特征与异常特征是否匹配,如果是,则执行步骤S64,否则,执行步骤S65。
步骤S64:将宏代码设置为异常代码。
步骤S65:将宏代码设置为非异常代码。
本实施例中获取的异常特征指的是调用对象在已知的异常宏代码中执行后产生的结果所具有的特征,即执行结果特征,本实施例将异常特征作为判断当前的调用对象的执行结果是否异常的依据。可以理解的是,当执行结果的特征与异常特征相匹配时,则说明当前待测的调用对象的执行结果与该调用对象在已知的异常宏代码中的执行结果所具有相同的特征,因此在此情况下认为宏代码为异常代码。
本实施例对根据检测规则对调用对象的执行结果这一单一的维度对调用对象进行检测的过程做了进一步细化,进一步确保了检测结果的准确性。
在上述实施例的基础上,作为一种优选的实施方式,搜索宏代码中的调用对象包括:
搜索宏代码中的所有函数,将所有函数中的预定函数作为调用对象。
由于宏代码在执行过程中往往需要实现一定的代码功能,因此往往需要通过调用方法函数的方式实现对***的操作,进而本实施例中的调用对象具体为宏代码中的函数,因此本实施例中获取调用对象时,首先搜索宏代码中的所有函数,进而在搜索到的函数中进一步将预定函数作为调用对象,预定函数可以是具有特定的类型或特定关键字的函数,本实施例进一步确保对宏代码检测的全面性,进一步确保用户操作***的安全性。
更进一步的,作为一种优选的实施方式,预定函数包括与字符串处理相关的函数。
需要说明的是,由于考虑到异常的宏代码中可能会通过与字符串处理相关的函数对象对宏代码中的字符串进行转化处理,以此混淆宏代码中的字符串的真实内容,进而掩盖宏代码真实的调用对象,因此本实施例为了确保存在宏代码中字符串内容的准确性,当调用对象为函数对象时,搜索宏代码中与字符串处理相关的函数对象,进而相对确保了对于宏代码检测的整体准确性。
另外,作为一种优选的实施方式,搜索宏代码中的调用对象包括:
搜索宏代码中调用的所有脚本,将所有脚本作为调用对象。
由于宏代码在执行过程中往往需要实现一定的代码功能,因此往往需要通过调用外部可执行脚本的方式实现对***的操作,进而本实施例中的调用对象具体为宏代码中的所有脚本,以此通过对宏代码中的全部脚本进行检测进一步确保对宏代码检测的全面性,进一步确保用户操作***的安全性。
为了加深对于本申请技术方案的理解,下面提供一种具体场景下的场景实施例进行进一步说明。
本申请的应用场景是检测带有恶意宏代码的文档文件,过程如下:
1、首先需要从待检测的文档文件中提取出其携带的宏代码文本用于检测。
2、对于提取出来的宏代码文本,使用从已知宏病毒中提取的特征规则检测其是否为恶意,如果检测结果为恶意,直接输出检测结果;而如果不是恶意,则有两种可能:文件本身非恶意或者文件为恶意但因为进行了混淆所以没有匹配到特征规则,需要通过动态模拟执行来进一步检测。
动态模拟执行检测流程如下:
1、搜索宏代码文本中的入口函数字符串如“AutoOpen”,如果能够搜索到,则从该函数处开始模拟执行,否则视为非恶意文件。
2、根据宏代码函数名,调用对应的函数进行模拟执行,并非所有函数都要模拟,只需要模拟用于字符串处理有关的函数如“Chr”。除了对宏代码本身进行模拟,如果宏代码中调用了其他脚本如PowerShell,也用模拟执行的方式对其被混淆的脚本内容进行去混淆,从而识别其包含的恶意内容。
3、对于模拟执行的结果,使用从已知宏病毒中提取的特征规则检测其是否为恶意,如果检测结果为恶意,直接输出检测结果;如果不是恶意且宏代码已经模拟执行结束,则视为非恶意文件,否则继续模拟执行。对于模拟执行结果的检测,采用“规则匹配”与“行为评分”相结合的方式进行判断,其中“规则匹配”需要被检测文件完全满足提前所设定的规则才被认为是恶意;“行为评分”即是对各个敏感行为设置一定分数,当检测到的所有敏感行为分数相加达到一定值时,即认为是恶意。
请参见图7所示,本申请实施例公开了一种宏代码检测装置,包括:
代码提取模块10,用于获取宏代码。
对象搜索模块11,用于搜索宏代码中的调用对象。
执行检测模块12,用于执行调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。
本申请所提供的宏代码检测装置,首先获取宏代码,进一步搜索宏代码中的调用对象,进而执行宏代码中的调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。本装置是在宏代码中搜索并获取到其运行时需要调用的对象内容,即调用对象,并通过执行调用对象的方式模拟调用对象被宏代码调用执行的场景,进而根据检测规则对调用对象执行过程中的执行特征对宏代码是否异常进行判定,生成相应的检测结果,实现了对于恶意宏代码的检测,从而确保了用户操作***的安全性。
在前述实施例的基础上,本申请实施例对宏代码检测装置进行进一步的说明和优化,具体的:
在一种具体实施方式中,对象搜索模块11,包括:
入口搜索模块,用于基于入口函数执行搜索宏代码中的调用对象;
装置还包括:
判断模块,用于判断宏代码中是否包含入口函数,如果是,则调用入口搜索模块,否则,执行异常设置模块;
异常设置模块,用于将宏代码设置为非异常代码。
在一种具体实施方式中,执行特征包括行为操作,执行检测模块12,包括:
评分生成模块,用于根据行为操作生成行为评分,行为评分与行为操作的异常概率成正比;
评分判断模块,用于判断行为评分是否达到异常阈值,如果是,则调用评分异常设置模块,否则,调用评分非异常设置模块;
异常设置模块,用于将宏代码设置为异常代码;
非异常设置模块,用于将宏代码设置为非异常代码。
在一种具体实施方式中,执行特征包括执行结果,执行检测模块12,包括:
特征获取模块,用于获取异常特征,异常特征为调用对象在异常宏代码中的执行结果特征;
特征判断模块,用于判断执行结果的特征与异常特征是否匹配,如果是,则调用特征异常设置模块,否则,调用特征非异常设置模块;
异常设置模块,用于将宏代码设置为异常代码;
非异常设置模块,用于将宏代码设置为非异常代码。
在一种具体实施方式中,执行特征包括行为操作和执行结果,执行检测模块12,包括:
评分生成模块,用于根据行为操作生成行为评分,行为评分与行为操作的异常概率成正比;
特征获取模块,用于获取异常特征,异常特征为调用对象在异常宏代码中的执行结果特征;
综合判断模块,用于判断是否满足执行结果的特征与异常特征相匹配且行为评分均达到异常阈值的条件,如果是,则调用异常设置模块,否则,调用非异常设置模块;
异常设置模块,用于将宏代码设置为异常代码;
非异常设置模块,用于将宏代码设置为非异常代码。
此外,本实施例还公开了一种宏代码检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的宏代码检测方法的步骤。
本申请所提供的宏代码检测设备,首先获取宏代码,进一步搜索宏代码中的调用对象,进而执行宏代码中的调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。本设备是在宏代码中搜索并获取到其运行时需要调用的对象内容,即调用对象,并通过执行调用对象的方式模拟调用对象被宏代码调用执行的场景,进而根据检测规则对调用对象执行过程中的执行特征对宏代码是否异常进行判定,生成相应的检测结果,实现了对于恶意宏代码的检测,从而确保了用户操作***的安全性。
进一步的,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的宏代码检测方法的步骤。
本申请所提供的计算机可读存储介质,首先获取宏代码,进一步搜索宏代码中的调用对象,进而执行宏代码中的调用对象,并根据检测规则对调用对象的执行特征进行检测以生成检测结果。本计算机可读存储介质是在宏代码中搜索并获取到其运行时需要调用的对象内容,即调用对象,并通过执行调用对象的方式模拟调用对象被宏代码调用执行的场景,进而根据检测规则对调用对象执行过程中的执行特征对宏代码是否异常进行判定,生成相应的检测结果,实现了对于恶意宏代码的检测,从而确保了用户操作***的安全性。
以上对本申请所提供的一种宏代码检测方法、装置、设备及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (11)

1.一种宏代码检测方法,其特征在于,包括:
获取宏代码;
搜索所述宏代码中的调用对象;
执行所述调用对象,并根据检测规则对所述调用对象的执行特征进行检测以生成检测结果。
2.根据权利要求1所述的宏代码检测方法,其特征在于,所述搜索所述宏代码中的调用对象之前还包括,包括:
判断所述宏代码中是否包含入口函数;
如果所述宏代码中包含入口函数,则基于所述入口函数执行搜索所述宏代码中的调用对象的步骤;
如果所述宏代码中包未含所述入口函数,则将所述宏代码设置为非异常代码。
3.根据权利要求1所述的宏代码检测方法,其特征在于,所述执行特征包括行为操作,所述根据检测规则对所述调用对象的执行特征进行检测以生成检测结果包括:
根据所述行为操作生成行为评分,所述行为评分与所述行为操作的异常概率成正比;
判断所述行为评分是否达到异常阈值;
如果所述行为评分达到所述异常阈值时,将所述宏代码设置为异常代码;
如果所述行为评分未达到所述异常阈值时,将所述宏代码设置为非异常代码。
4.根据权利要求1所述的宏代码检测方法,其特征在于,所述执行特征包括执行结果,所述根据检测规则对所述调用对象的执行特征进行检测以生成检测结果包括:
获取异常特征,所述异常特征为所述调用对象在异常宏代码中的执行结果特征;
判断所述执行结果的特征与所述异常特征是否匹配;
如果所述执行结果的特征与所述异常特征匹配,则将所述宏代码设置为异常代码;
如果所述执行结果的特征未与所述异常特征匹配,将所述宏代码设置为非异常代码。
5.根据权利要求1所述的宏代码检测方法,其特征在于,所述执行特征包括行为操作和执行结果,所述根据检测规则对所述调用对象的执行特征进行检测以生成检测结果包括:
根据所述行为操作生成行为评分,所述行为评分与所述行为操作的异常概率成正比;
获取异常特征,所述异常特征为所述调用对象在异常宏代码中的执行结果特征;
当所述执行结果的特征与所述异常特征相匹配和所述行为评分均达到异常阈值时,将所述宏代码设置为异常代码;
否则,将所述宏代码设置为非异常代码。
6.根据权利要求1至6任意一项所述的宏代码检测方法,其特征在于,所述搜索所述宏代码中的调用对象包括:
搜索所述宏代码中的所有函数,将所述所有函数中的预定函数作为所述调用对象。
7.根据权利要求6所述的宏代码检测方法,其特征在于,所述预定函数包括与字符串处理相关的函数。
8.根据权利要求1至6任意一项所述的宏代码检测方法,其特征在于,所述搜索所述宏代码中的调用对象包括:
搜索所述宏代码中调用的所有脚本,将所述所有脚本作为所述调用对象。
9.一种宏代码检测装置,其特征在于,包括:
代码提取模块,用于获取宏代码;
对象搜索模块,用于搜索所述宏代码中的调用对象;
执行检测模块,用于执行所述调用对象,并根据检测规则对所述调用对象的执行特征进行检测以生成检测结果。
10.一种宏代码检测设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述的宏代码检测方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的宏代码检测方法的步骤。
CN201911102899.7A 2019-11-12 2019-11-12 一种宏代码检测方法、装置、设备及存储介质 Pending CN110866256A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911102899.7A CN110866256A (zh) 2019-11-12 2019-11-12 一种宏代码检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911102899.7A CN110866256A (zh) 2019-11-12 2019-11-12 一种宏代码检测方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN110866256A true CN110866256A (zh) 2020-03-06

Family

ID=69654103

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911102899.7A Pending CN110866256A (zh) 2019-11-12 2019-11-12 一种宏代码检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110866256A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112818411A (zh) * 2021-01-22 2021-05-18 深圳市今日投资数据科技有限公司 数据检测方法及装置
CN113742475A (zh) * 2021-09-10 2021-12-03 绿盟科技集团股份有限公司 一种office文档检测方法、装置、设备及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737188A (zh) * 2012-06-27 2012-10-17 北京奇虎科技有限公司 检测恶意网页的方法及装置
CN102841999A (zh) * 2012-07-16 2012-12-26 北京奇虎科技有限公司 一种文件宏病毒的检测方法和装置
CN102999726A (zh) * 2012-12-14 2013-03-27 北京奇虎科技有限公司 文件宏病毒免疫方法和装置
CN103500309A (zh) * 2013-09-26 2014-01-08 北京奇虎科技有限公司 一种宏病毒查杀的方法和装置
CN103970574A (zh) * 2014-05-22 2014-08-06 北京奇虎科技有限公司 office程序的运行方法及装置、计算机***
EP2465045B1 (en) * 2009-08-13 2017-04-26 Google, Inc. Shared server-side macros
CN106650451A (zh) * 2016-12-30 2017-05-10 北京启明星辰信息安全技术有限公司 一种检测方法和装置
CN107025407A (zh) * 2017-03-22 2017-08-08 国家计算机网络与信息安全管理中心 一种office文档文件的恶意代码检测方法及***

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2465045B1 (en) * 2009-08-13 2017-04-26 Google, Inc. Shared server-side macros
CN102737188A (zh) * 2012-06-27 2012-10-17 北京奇虎科技有限公司 检测恶意网页的方法及装置
CN102841999A (zh) * 2012-07-16 2012-12-26 北京奇虎科技有限公司 一种文件宏病毒的检测方法和装置
CN102999726A (zh) * 2012-12-14 2013-03-27 北京奇虎科技有限公司 文件宏病毒免疫方法和装置
CN103500309A (zh) * 2013-09-26 2014-01-08 北京奇虎科技有限公司 一种宏病毒查杀的方法和装置
CN103970574A (zh) * 2014-05-22 2014-08-06 北京奇虎科技有限公司 office程序的运行方法及装置、计算机***
CN106650451A (zh) * 2016-12-30 2017-05-10 北京启明星辰信息安全技术有限公司 一种检测方法和装置
CN107025407A (zh) * 2017-03-22 2017-08-08 国家计算机网络与信息安全管理中心 一种office文档文件的恶意代码检测方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孔德光等: "提升多维特征检测迷惑恶意代码", 《万方数据》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112818411A (zh) * 2021-01-22 2021-05-18 深圳市今日投资数据科技有限公司 数据检测方法及装置
CN113742475A (zh) * 2021-09-10 2021-12-03 绿盟科技集团股份有限公司 一种office文档检测方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN107657177B (zh) 一种漏洞检测方法及装置
CN101661543B (zh) 软件源代码安全漏洞的检测方法及检测装置
CN109101815B (zh) 一种恶意软件检测方法及相关设备
US20160359875A1 (en) Apparatus, system and method for detecting and preventing malicious scripts using code pattern-based static analysis and api flow-based dynamic analysis
US20150256552A1 (en) Imalicious code detection apparatus and method
CN108694320B (zh) 一种多安全环境下敏感应用动态度量的方法及***
US10289843B2 (en) Extraction and comparison of hybrid program binary features
CN111368303B (zh) 一种PowerShell恶意脚本的检测方法及装置
JP6282217B2 (ja) 不正プログラム対策システムおよび不正プログラム対策方法
CN110968874B (zh) 一种漏洞检测方法、装置、服务器及存储介质
CN110806980A (zh) 一种检测方法、装置、设备及存储介质
CN115391230A (zh) 一种测试脚本生成、渗透测试方法、装置、设备及介质
CN110866256A (zh) 一种宏代码检测方法、装置、设备及存储介质
WO2018170722A1 (zh) 自动检测控件的方法及装置
CN111291377A (zh) 一种应用漏洞的检测方法及***
CN114328168A (zh) 异常检测方法、装置、计算机设备和存储介质
CN110955894A (zh) 一种恶意内容检测方法、装置、电子设备及可读存储介质
CN113901459B (zh) 固件内部二进制程序脆弱性发现方法及装置
CN112395603A (zh) 基于指令执行序列特征的漏洞攻击识别方法、装置及计算机设备
Yasir et al. Godexpo: an automated god structure detection tool for golang
CN108595328A (zh) 基于JavaScript堆栈信息检测浏览器的方法
JP7331681B2 (ja) テスト実行プログラム、テスト実行方法、およびテスト実行装置
CN111190813B (zh) 基于自动化测试的安卓应用网络行为信息提取***及方法
CN111782220A (zh) 一种文件的检测方法和装置
CN108563577A (zh) 基于JavaScript堆栈信息检测模拟器的方法

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200306

RJ01 Rejection of invention patent application after publication