CN113496034A - Vba脚本混淆检测方法、装置、设备及可读存储介质 - Google Patents

Vba脚本混淆检测方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN113496034A
CN113496034A CN202010191108.9A CN202010191108A CN113496034A CN 113496034 A CN113496034 A CN 113496034A CN 202010191108 A CN202010191108 A CN 202010191108A CN 113496034 A CN113496034 A CN 113496034A
Authority
CN
China
Prior art keywords
vba
classifier
confusion
script
vba script
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
CN202010191108.9A
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 CN202010191108.9A priority Critical patent/CN113496034A/zh
Publication of CN113496034A publication Critical patent/CN113496034A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种VBA脚本混淆检测方法、装置、设备及可读存储介质,该方法包括以下步骤:对待进行检测的Office文件进行解析,获取VBA脚本;在各个指定维度上提取VBA脚本的特征信息;利用各个特征信息,生成特征向量组;将特征向量组输入至分类器中进行分类处理,得到Office文件中是否具有混淆VBA脚本的检测结果;其中,分类器为利用原始有标签样本和无标签样本迭代训练获得的。在本方法考虑到实际应用环境,并针对VBA语言精细化特征提取,能够检测出Office文件中是否具有混淆VBA脚本,能够为进一步进行病毒检测提供重要参考依据。

Description

VBA脚本混淆检测方法、装置、设备及可读存储介质
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种VBA脚本混淆检测方法、装置、设备及可读存储介质。
背景技术
对于Office宏病毒,一般通过静态扫描文件并匹配病毒的广谱特征码的方式查杀病毒。随着反病毒软件的发展,病毒文件也演进出代码混淆这种逃逸技术,对抗和绕过反病毒软件的查杀。由于混淆后的代码c’在功能上和混淆前的代码c相同,而反病毒软件的病毒特征库中能够匹配c的广谱特征码无法匹配c’。因此,通过混淆能够对抗传统反病毒软件。另外,Office文件中VBA脚本的混淆成本较低,因而非常流行。
因而识别Office文件中的VBA脚本是否为混淆代码是准确判定该Office文件是否为病毒的重要环节。即,如何准确检测出Office文件中的VBA脚本是否为混淆代码等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种VBA脚本混淆检测方法、装置、设备及可读存储介质,准确检测出Office文件中的VBA脚本是否为混淆代码,为进一步判断Office文件是否为病毒提供了重要依据。
为解决上述技术问题,本发明提供如下技术方案:
一种VBA混淆检测方法,包括:
对待进行检测的Office文件进行解析,获取VBA脚本;
在各个指定维度上提取所述VBA脚本的特征信息;
利用各个所述特征信息,生成特征向量组;
将所述特征向量组输入至分类器中进行分类处理,得到所述Office文件中是否具有混淆VBA脚本的检测结果;
其中,所述分类器为利用原始有标签样本和无标签样本迭代训练获得的。
优选地,训练所述分类器的过程,包括:
利用所述原始有标签样本训练机器学习分类器,获得初始分类器;
利用所述初始分类器确定所述无标签样本是否具有混淆VBA脚本;
如果是,则利用第一强规则分类器筛选出具有混淆VBA脚本的无标签样本,并添加混淆标签,以获得有混淆样本;
如果否,则利用第二强规则分类器筛选出非混淆VBA脚本的无标签样本,并添加非混淆标签,以获得非混淆样本;
利用所述非混淆样本和所述混淆样本对所述初始分类器进行下一轮迭代训练,直到测试集对应的分类结果收敛后,结束训练。
优选地,训练所述分类器的过程,包括:
利用所述原始有标签样本训练机器学习分类器,获得初始分类器;
利用所述初始分类器对所述无标签样本是否具有混淆VBA脚本进行分类判断,获得第一分类结果;
利用强规则三分类器对所述无标签样本进行分类,获得第二分类结果;
利用所述第二分类结果和所述第一分类结果对所述无标签样本添加标签,以生成新的有标签样本;所述有标签样本包括有混淆样本和非混淆样本;
利用所述有标签样本对所述初始分类器进行下一轮迭代训练,直到测试集对应的分类结果收敛后,结束训练。
优选地,利用所述第二分类结果和所述第一分类结果对所述无标签样本添加标签,以生成新的有标签样本,包括:
判断所述无标签样本对应的所述第一分类结果和所述第二分类结果是否一致;
如果是,为所述无标签样本添加对应标签,获得所述有标签样本。
优选地,还包括:
从非混淆Office文件中抽取VBA函数,并作为种子函数;
对所述种子函数进行随机组合,生成变异后的非混淆Office文件并作为所述非混淆样本。
优选地,所述在各个指定维度上提取所述VBA脚本的特征信息,包括:
在词法元素维度、敏感字符串维度、敏感函数维度、整数常量维度、超长字符串维度、标识符维度、元数据维度和信息熵维度上提取所述VBA脚本的特征信息。
优选地,每个所述指定维度的特征信息与所述特征向量组中一个或多个元素对应。
优选地,还包括:
利用所述检测结果确定所述Office文件是否为病毒文件;
如果是,则输出报警提示。
一种VBA脚本混淆检测装置,包括:
VBA脚本获取模块,用于对待进行检测的Office文件进行解析,获取VBA脚本;
特征信息提取模块,用于在各个指定维度上提取所述VBA脚本的特征信息;
特征向量组生成模块,用于利用各个所述特征信息,生成特征向量组;
混淆检测模块,用于将所述特征向量组输入至分类器中进行分类处理,得到所述Office文件中是否具有混淆VBA脚本的检测结果;其中,所述分类器为利用原始有标签样本和无标签样本迭代训练获得的。
一种VBA脚本混淆检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述VBA脚本混淆检测方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述VBA脚本混淆检测方法的步骤。
应用本发明实施例所提供的方法,对待进行检测的Office文件进行解析,获取VBA脚本;在各个指定维度上提取VBA脚本的特征信息;利用各个特征信息,生成特征向量组;将特征向量组输入至分类器中进行分类处理,得到Office文件中是否具有混淆VBA脚本的检测结果;其中,分类器为利用原始有标签样本和无标签样本迭代训练获得的。
在本方法中,首先对待进行检测的Office文件进行解析,得到其中的VBA脚本。然后从各个指定维度上对VBA脚本进行特征提取,得到特征信息。生成所提取的特征信息对应的特征向量组。将特征向量组输入至分类器中,进行分类处理,基于分类结果便可确定出该Office文件中是否具有混淆VBA脚本。特别的,在提取特征时,从多个维度进行特征提取,即在特征工程方面做了精细化的调优,能够使得特征向量组更加的精准、全面。由于分类器的分类训练所用样本包括有标签样本和无标签样本,降低了对有标签样本数量的需求,能够降低训练难度,能够适应工业级生产环境中不具备大量有标签样本的情况。也就是说,在本方法考虑到实际应用环境,并针对VBA语言精细化特征提取,能够检测出Office文件中是否具有混淆VBA脚本,能够为进一步进行病毒检测提供重要参考依据。
相应地,本发明实施例还提供了与上述VBA脚本混淆检测方法相对应的VBA脚本混淆检测装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种VBA脚本混淆检测方法的实施流程图;
图2为本发明实施例中一种分类器训练流程示意图;
图3为本发明实施例中另一种分类器训练流程示意图;
图4为本发明实施例中一种VBA脚本混淆检测装置的结构示意图;
图5为本发明实施例中一种VBA脚本混淆检测设备的结构示意图;
图6为本发明实施例中一种VBA脚本混淆检测设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
VBA(Visual Basic for Application)是Visual Basic的一种宏语言,主要嵌入在微软公司的Office文件中。
宏病毒(Macro virus),广义上的宏病毒是指在任意应用软件的相应应用文件内嵌入的恶意宏代码,狭义上的宏病毒,指微软公司的各种Office文件中嵌入的恶意VBA代码,即Office宏病毒。恶意用户(如黑客)通过向微软Office文件中植入恶意VBA代码并欺骗用户运行VBA,非法地夺取计算机的控制权,进行盗取机密信息、破坏文件系统和操作系统、以勒索为目的加密用户文件等恶意行为。其中,代码混淆(Obfuscation)是一种典型的逃逸技术。代码混淆,简称混淆,是一种代码变换的技术,通过混淆,代码变换为难于被人或计算机理解的形式,但在功能上保持与混淆前等价。而目前常见的混淆手段包括:将变量名和函数名等标识符更改为无意义的字符串、增加垃圾代码、对字符串进行分割、对字符进行数字转换、打乱代码缩进和格式和执行字符串内容等。
请参考图1,图1为本发明实施例中一种VBA脚本混淆检测方法的流程图,该方法包括以下步骤:
S101、对待进行检测的Office文件进行解析,获取VBA脚本。
其中,待进行检测的Office文件可直接从存储软件中读取,也可通过与其他设备进行通信,而获得。
可根据Office文件格式标准解析Office文件,获得其中的VBA脚本。对于一个Office文件中,可包括一个或多个VBA脚本。其中,VBA脚本即为采用VBA语言编写的脚本,能够使得Office文件的功能得到扩展。
S102、在各个指定维度上提取VBA脚本的特征信息。
在本实施例中,可预先设置多个指定维度,然后在获得VBA脚本之后,便可在各个指定维度上分析统计VBA脚本,以得到各个指定维度对应的特征信息。
具体的,在各个指定维度上分析统计VBA脚本,以获取各个指定维度对应的特征信息,包括:在词法元素维度、敏感字符串维度、敏感函数维度、整数常量维度、超长字符串维度、标识符维度、元数据维度和信息熵维度上提取VBA脚本的特征信息。
需要说明的是,对于一个指定维度,可从VBA脚本中提取出一种或多种具体的特征信息。举例说明:
在词法元素维度上,所提取获得的特征信息包括:各个词法元素出现的次数和频率。具体的,可对VBA脚本采用标准的编译器技术进行词法分析,生成词法tokens(即各个词法元素出现的次数和频率)。
在敏感字符串维度,所提取获得的特征信息包括:各个敏感字符串出现的次数和频率。其中,敏感字符串指类似于“powershell”、“exe”和“download”等潜在恶意代码片段。
在敏感函数维度,所提取获得的特征信息包括:各个敏感函数出现的次数和频率。其中,敏感函数是指“autoopen”、“urldownloadtofile”和“shell”等恶意代码常用的函数以及“strreverse”和“chr”等混淆VBA脚本常用的函数。
在整数常识维度,所提取获得的特征信息包括:整数常量出现的次数和频率。
在超长字符串维度,所提取获得的特征信息包括:在超长字符串出现的次数和频率。
在标识符维度,所提取获得的特征信息包括:标识符中大写字母、数字和元音字母的平均比率,标识符的平均长度。
在元数据维度,所提取获得的特征信息包括:元数据信息,主要可包括文件大小、VBA脚本长度、VBA中标识符的数量、VBA行数和文件的结构等。
在信息熵维度,所提取获得的特征信息包括:信息熵。
S103、利用各个特征信息,生成特征向量组。
将每一种具体的特征信息作为特征向量组中的一个元素,进而生成特征向量组。
由于,指定维度的特征信息的种类可为一种或多种,因此,每个指定维度的特征信息与特征向量组中一个或多个元素对应。
S104、将特征向量组输入至分类器中进行分类处理,得到Office文件中是否具有混淆VBA脚本的检测结果。
其中,分类器为利用原始有标签样本和无标签样本迭代训练获得的。其中,原始有标签样本即为在训练之前即具有标签,包括有混淆样本和无混淆样本。
在本发明实施例中,在获得特征向量组之后,便可将特征向量组输入值分类器中进行分类处理。分类器对于特征向量组进行分类,得到分类结果。基于该分类结果即可确定Office文件中是否具有混淆VBA脚本的检测结果。
该分类器的训练方式包括但不限于以下两种方式:
方式1,结合两个强规则分类器对机器学习分类学习器进行迭代交叉验证训练,具体训练过程,包括:
步骤一、利用原始有标签样本训练机器学习分类器,获得初始分类器;
步骤二、利用初始分类器确定无标签样本是否具有混淆VBA脚本;
步骤三、如果是,则利用第一强规则分类器筛选出具有混淆VBA脚本的无标签样本,并添加混淆标签,以获得有混淆样本;
步骤四、如果否,则利用第二强规则分类器筛选出非混淆VBA脚本的无标签样本,并添加非混淆标签,以获得非混淆样本;
步骤五、利用非混淆样本和混淆样本对初始分类器进行下一轮迭代训练,直到测试集对应的分类结果收敛后,结束训练。
为便于描述,下面将上述五个步骤结合起来进行说明。
由于真实场景中的样本一般不带有区分混淆和非混淆VBA的标签。为了解决这一问题,提出了一种自动化打标签的技术迭代地完善样本集,从而实现强化训练的目的。具体过程如图2所示。首先获取原始有标签样本,例如可手工分类小部分有混淆样本和非混淆样本。然后训练一个分类器作为第1次迭代使用的初始分类器。得到初始分类器之后,便可以不带标签的Office样本(即无标签样本)为输入,通过前一轮迭代产生的机器学习分类器预测文件是否含混淆VBA。若含混淆VBA,则使用一个强规则分类器进一步判断,若混淆,则为文件加标签为混淆,即为有混淆样本,而后放入有标签样本集中,否则丢弃,或仍然作为无标签样本进行训练;若机器学习分类器判定不含混淆VBA,则利用另一个强规则分类器进一步判断,若判定结果为非混淆,则加入非混淆标签后放入有标签样本集中,否则丢弃,或仍然作为无标签样本进行训练。
完成上述判定之后,继续使用有标签样本集,训练得到下一轮的机器学习分类器,完成本轮次迭代。其中,强规则分类器指通过程序硬编码的方式基于经验规则的分类器,嵌入了例如“整数常量必须超过100个,并且大写字母在标识符中占比超过40%则被认定为混淆”等规则的分类器。两个强规则分类器中的分类规则可各种具有偏向,即第一个强规则分类器中的规则重点在于确定有混淆判定,而第二个强规则分类器中的规则重点在于确定非混淆判定。通过多轮次迭代,机器学习在测试集上的分类结果收敛,则迭代停止。
方式2、结合一个强规则三分类器对机器学习分类学习器进行迭代交叉验证训练,具体训练过程,包括:
步骤一、利用原始有标签样本训练机器学习分类器,获得初始分类器;
步骤二、利用初始分类器对无标签样本是否具有混淆VBA脚本进行分类判断,获得第一分类结果;
步骤三、利用强规则三分类器对无标签样本进行分类,获得第二分类结果;
步骤四、利用第二分类结果和第一分类结果对无标签样本添加标签,以生成新的有标签样本;有标签样本包括有混淆样本和非混淆样本;
步骤五、利用有标签样本对初始分类器进行下一轮迭代训练,直到测试集对应的分类结果收敛后,结束训练。
为便于描述,下面将上述五个步骤结合起来进行说明。
请参考图3,在本方式中,可参照上述方式1,得到一个初始分类器,然后利用初始分类器对无标签样本进行分类判断,得到第一分类结果。第一分类结果可具体包括每个无标签样本是否具有混淆VBA脚本。强规则三分类器即能够对于输入进行分类,得到有混淆、非混淆或不清楚的分类结果的分类器。强规则的设定可针对这三种不同的分类结果进行设定。
添加标签的过程可具体包括:判断无标签样本对应的第一分类结果和第二分类结果是否一致;如果是,为无标签样本添加对应标签,获得有标签样本。也就是说,对于同一个无标签样本,仅在第一分类结果和第二分类结果相同时,为其添加响应的标签。即仅在机器学习分类器和强规则三分类器的输出结果为非混淆时,为该无标签样本添加非混淆标签,获得新的非混淆样本;仅在机器学习分类器和强规则分类器的输出结果为混淆时,为该无标签样本添加有混淆标签,新获得有新的混淆样本;而对于其他情况可舍弃,也可继续将样本作为无标签样本,进入下一轮训练。通过多轮次迭代,机器学习在测试集上的分类结果收敛,则迭代停止。
优选地,为进一步降误报,还可自动生成非混淆样本。向样本集中补充大量非混淆样本,达到增强分类器对非混淆样本敏感度的目的。具体的实现过程包括:
步骤一、从非混淆Office文件中抽取VBA函数,并作为种子函数;
步骤二、对种子函数进行随机组合,生成变异后的非混淆Office文件并作为非混淆样本。
具体的,可从非混淆的Office文件中抽取VBA的函数作为种子函数;然后,对种子函数进行随机组合(如增、删、改),生成变异后的非混淆Office文件。变异的粒度是函数级别。
在基于训练得到的分类器进行检测,得到检测结果之后,还包括:利用检测结果确定Office文件是否为病毒文件;如果是,则输出报警提示。具体的,当前需要进行病毒检测时,首先从大量Office文件中检测出有混淆VBA脚本的文件,进一步再对有混淆VBA脚本的文件进行病毒检测,以提高检测准确率和效率。
应用本发明实施例所提供的方法,对待进行检测的Office文件进行解析,获取VBA脚本;在各个指定维度上提取VBA脚本的特征信息;利用各个特征信息,生成特征向量组;将特征向量组输入至分类器中进行分类处理,得到Office文件中是否具有混淆VBA脚本的检测结果;其中,分类器为利用原始有标签样本和无标签样本迭代训练获得的。
在本方法中,首先对待进行检测的Office文件进行解析,得到其中的VBA脚本。然后从各个指定维度上对VBA脚本进行特征提取,得到特征信息。生成所提取的特征信息对应的特征向量组。将特征向量组输入至分类器中,进行分类处理,基于分类结果便可确定出该Office文件中是否具有混淆VBA脚本。特别的,在提取特征时,从多个维度进行特征提取,即在特征工程方面做了精细化的调优,能够使得特征向量组更加的精准、全面。由于分类器的分类训练所用样本包括有标签样本和无标签样本,降低了对有标签样本数量的需求,能够降低训练难度,能够适应工业级生产环境中不具备大量有标签样本的情况。也就是说,在本方法考虑到实际应用环境,并针对VBA语言精细化特征提取,能够检测出Office文件中是否具有混淆VBA脚本,能够为进一步进行病毒检测提供重要参考依据。
相应于上面的方法实施例,本发明实施例还提供了一种VBA脚本混淆检测装置,下文描述的VBA脚本混淆检测装置与上文描述的VBA脚本混淆检测方法可相互对应参照。
参见图4所示,该装置包括以下模块:
VBA脚本获取模块101,用于对待进行检测的Office文件进行解析,获取VBA脚本;
特征信息提取模块102,用于在各个指定维度上提取VBA脚本的特征信息;
特征向量组生成模块103,用于利用各个特征信息,生成特征向量组;
混淆检测模块104,用于将特征向量组输入至分类器中进行分类处理,得到Office文件中是否具有混淆VBA脚本的检测结果;其中,分类器为利用原始有标签样本和无标签样本迭代训练获得的。
应用本发明实施例所提供的装置,对待进行检测的Office文件进行解析,获取VBA脚本;在各个指定维度上提取VBA脚本的特征信息;利用各个特征信息,生成特征向量组;将特征向量组输入至分类器中进行分类处理,得到Office文件中是否具有混淆VBA脚本的检测结果;其中,分类器为利用原始有标签样本和无标签样本迭代训练获得的。
在本装置中,首先对待进行检测的Office文件进行解析,得到其中的VBA脚本。然后从各个指定维度上对VBA脚本进行特征提取,得到特征信息。生成所提取的特征信息对应的特征向量组。将特征向量组输入至分类器中,进行分类处理,基于分类结果便可确定出该Office文件中是否具有混淆VBA脚本。特别的,在提取特征时,从多个维度进行特征提取,即在特征工程方面做了精细化的调优,能够使得特征向量组更加的精准、全面。由于分类器的分类训练所用样本包括有标签样本和无标签样本,降低了对有标签样本数量的需求,能够降低训练难度,能够适应工业级生产环境中不具备大量有标签样本的情况。也就是说,在本装置考虑到实际应用环境,并针对VBA语言精细化特征提取,能够检测出Office文件中是否具有混淆VBA脚本,能够为进一步进行病毒检测提供重要参考依据。
在本发明的一种具体实施方式中,包括第一分类器训练模块,用于利用原始有标签样本训练机器学习分类器,获得初始分类器;利用初始分类器确定无标签样本是否具有混淆VBA脚本;如果是,则利用第一强规则分类器筛选出具有混淆VBA脚本的无标签样本,并添加混淆标签,以获得有混淆样本;如果否,则利用第二强规则分类器筛选出非混淆VBA脚本的无标签样本,并添加非混淆标签,以获得非混淆样本;利用非混淆样本和混淆样本对初始分类器进行下一轮迭代训练,直到测试集对应的分类结果收敛后,结束训练。
在本发明的一种具体实施方式中,包括第二分类器训练模块,用于利用原始有标签样本训练机器学习分类器,获得初始分类器;利用初始分类器对无标签样本是否具有混淆VBA脚本进行分类判断,获得第一分类结果;利用强规则三分类器对无标签样本进行分类,获得第二分类结果;利用第二分类结果和第一分类结果对无标签样本添加标签,以生成新的有标签样本;有标签样本包括有混淆样本和非混淆样本;利用有标签样本对初始分类器进行下一轮迭代训练,直到测试集对应的分类结果收敛后,结束训练。
在本发明的一种具体实施方式中,第二分类器训练模块,具体用于判断无标签样本对应的第一分类结果和第二分类结果是否一致;如果是,为无标签样本添加对应标签,获得有标签样本。
在本发明的一种具体实施方式中,还包括:
非混淆样本生成模块,用于从非混淆Office文件中抽取VBA函数,并作为种子函数;对种子函数进行随机组合,生成变异后的非混淆Office文件并作为非混淆样本。
在本发明的一种具体实施方式中,特征信息提取模块,具体用于在词法元素维度、敏感字符串维度、敏感函数维度、整数常量维度、超长字符串维度、标识符维度、元数据维度和信息熵维度上提取VBA脚本的特征信息。
在本发明的一种具体实施方式中,每个指定维度的特征信息与特征向量组中一个或多个元素对应。
在本发明的一种具体实施方式中,还包括:
病毒检测模块,用于利用检测结果确定Office文件是否为病毒文件;如果是,则输出报警提示。
相应于上面的方法实施例,本发明实施例还提供了一种VBA脚本混淆检测设备,下文描述的一种VBA脚本混淆检测设备与上文描述的一种VBA脚本混淆检测方法可相互对应参照。
参见图5所示,该VBA脚本混淆检测设备包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例的VBA脚本混淆检测方法的步骤。
具体的,请参考图6,为本实施例提供的一种VBA脚本混淆检测设备的具体结构示意图,该VBA脚本混淆检测设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在VBA脚本混淆检测设备301上执行存储介质330中的一系列指令操作。
VBA脚本混淆检测设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
上文所描述的VBA脚本混淆检测方法中的步骤可以由VBA脚本混淆检测设备的结构实现。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种VBA脚本混淆检测方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的VBA脚本混淆检测方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

Claims (11)

1.一种VBA脚本混淆检测方法,其特征在于,包括:
对待进行检测的Office文件进行解析,获取VBA脚本;
在各个指定维度上提取所述VBA脚本的特征信息;
利用各个所述特征信息,生成特征向量组;
将所述特征向量组输入至分类器中进行分类处理,得到所述Office文件中是否具有混淆VBA脚本的检测结果;
其中,所述分类器为利用原始有标签样本和无标签样本迭代训练获得的。
2.根据权利要求1所述的VBA脚本混淆检测方法,其特征在于,训练所述分类器的过程,包括:
利用所述原始有标签样本训练机器学习分类器,获得初始分类器;
利用所述初始分类器确定所述无标签样本是否具有混淆VBA脚本;
如果是,则利用第一强规则分类器筛选出具有混淆VBA脚本的无标签样本,并添加混淆标签,以获得有混淆样本;
如果否,则利用第二强规则分类器筛选出非混淆VBA脚本的无标签样本,并添加非混淆标签,以获得非混淆样本;
利用所述非混淆样本和所述混淆样本对所述初始分类器进行下一轮迭代训练,直到测试集对应的分类结果收敛后,结束训练。
3.根据权利要求1所述的VBA脚本混淆检测方法,其特征在于,训练所述分类器的过程,包括:
利用所述原始有标签样本训练机器学习分类器,获得初始分类器;
利用所述初始分类器对所述无标签样本是否具有混淆VBA脚本进行分类判断,获得第一分类结果;
利用强规则三分类器对所述无标签样本进行分类,获得第二分类结果;
利用所述第二分类结果和所述第一分类结果对所述无标签样本添加标签,以生成新的有标签样本;所述有标签样本包括有混淆样本和非混淆样本;
利用所述有标签样本对所述初始分类器进行下一轮迭代训练,直到测试集对应的分类结果收敛后,结束训练。
4.根据权利要求3所述的VBA脚本混淆检测方法,其特征在于,利用所述第二分类结果和所述第一分类结果对所述无标签样本添加标签,以生成新的有标签样本,包括:
判断所述无标签样本对应的所述第一分类结果和所述第二分类结果是否一致;
如果是,为所述无标签样本添加对应标签,获得所述有标签样本。
5.根据权利要求2至4任一项所述的VBA脚本混淆检测方法,其特征在于,还包括:
从非混淆Office文件中抽取VBA函数,并作为种子函数;
对所述种子函数进行随机组合,生成变异后的非混淆Office文件并作为所述非混淆样本。
6.根据权利要求1所述的VBA脚本混淆检测方法,其特征在于,所述在各个指定维度上提取所述VBA脚本的特征信息,包括:
在词法元素维度、敏感字符串维度、敏感函数维度、整数常量维度、超长字符串维度、标识符维度、元数据维度和信息熵维度上提取所述VBA脚本的特征信息。
7.根据权利要求6所述的VBA脚本混淆检测方法,其特征在于,每个所述指定维度的特征信息与所述特征向量组中一个或多个元素对应。
8.根据权利要求1所述的VBA脚本混淆检测方法,其特征在于,还包括:
利用所述检测结果确定所述Office文件是否为病毒文件;
如果是,则输出报警提示。
9.一种VBA脚本混淆检测装置,其特征在于,包括:
VBA脚本获取模块,用于对待进行检测的Office文件进行解析,获取VBA脚本;
特征信息提取模块,用于在各个指定维度上提取所述VBA脚本的特征信息;
特征向量组生成模块,用于利用各个所述特征信息,生成特征向量组;
混淆检测模块,用于将所述特征向量组输入至分类器中进行分类处理,得到所述Office文件中是否具有混淆VBA脚本的检测结果;其中,所述分类器为利用原始有标签样本和无标签样本迭代训练获得的。
10.一种VBA脚本混淆检测设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至8任一项所述VBA脚本混淆检测方法的步骤。
11.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述VBA脚本混淆检测方法的步骤。
CN202010191108.9A 2020-03-18 2020-03-18 Vba脚本混淆检测方法、装置、设备及可读存储介质 Pending CN113496034A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010191108.9A CN113496034A (zh) 2020-03-18 2020-03-18 Vba脚本混淆检测方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010191108.9A CN113496034A (zh) 2020-03-18 2020-03-18 Vba脚本混淆检测方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN113496034A true CN113496034A (zh) 2021-10-12

Family

ID=77992984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010191108.9A Pending CN113496034A (zh) 2020-03-18 2020-03-18 Vba脚本混淆检测方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113496034A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120216280A1 (en) * 2011-02-18 2012-08-23 Microsoft Corporation Detection of code-based malware
US8489689B1 (en) * 2006-05-31 2013-07-16 Proofpoint, Inc. Apparatus and method for obfuscation detection within a spam filtering model
CN107978373A (zh) * 2017-11-23 2018-05-01 吉林大学 一种基于共训练的半监督生物医学事件抽取方法
US10521587B1 (en) * 2017-07-31 2019-12-31 EMC IP Holding Company LLC Detecting code obfuscation using recurrent neural networks
CN110807194A (zh) * 2019-10-17 2020-02-18 新华三信息安全技术有限公司 一种webshell检测方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489689B1 (en) * 2006-05-31 2013-07-16 Proofpoint, Inc. Apparatus and method for obfuscation detection within a spam filtering model
US20120216280A1 (en) * 2011-02-18 2012-08-23 Microsoft Corporation Detection of code-based malware
US10521587B1 (en) * 2017-07-31 2019-12-31 EMC IP Holding Company LLC Detecting code obfuscation using recurrent neural networks
CN107978373A (zh) * 2017-11-23 2018-05-01 吉林大学 一种基于共训练的半监督生物医学事件抽取方法
CN110807194A (zh) * 2019-10-17 2020-02-18 新华三信息安全技术有限公司 一种webshell检测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
曲文鹏: "混淆恶意JavaScript代码的多特征检测识别与分析", 《智能计算机与应用》, pages 42 - 47 *

Similar Documents

Publication Publication Date Title
Yakura et al. Malware analysis of imaged binary samples by convolutional neural network with attention mechanism
CN109271788B (zh) 一种基于深度学习的Android恶意软件检测方法
Devesa et al. Automatic behaviour-based analysis and classification system for malware detection
CN110795732A (zh) 基于SVM的Android移动网络终端恶意代码的动静结合检测方法
Sethi et al. A novel malware analysis framework for malware detection and classification using machine learning approach
CN104123493A (zh) 应用程序的安全性检测方法和装置
US10650145B2 (en) Method for testing computer program product
CN109255241B (zh) 基于机器学习的Android权限提升漏洞检测方法及系统
CN105718795B (zh) Linux下基于特征码的恶意代码取证方法及系统
KR20200076426A (ko) 이종 정보 네트워크 기반 악성 코드 탐지 방법 및 장치
CN112688966A (zh) webshell检测方法、装置、介质和设备
CN113468524A (zh) 基于rasp的机器学习模型安全检测方法
CN108959922B (zh) 一种基于贝叶斯网的恶意文档检测方法及装置
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
CN113971284B (zh) 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质
Han et al. IMShell-Dec: Pay more attention to external links in powershell
CN114792006B (zh) 基于lstm的安卓跨应用程序共谋安全分析方法及系统
CN114143074B (zh) webshell攻击识别装置及方法
CN112163217B (zh) 恶意软件变种识别方法、装置、设备及计算机存储介质
EP3964986B1 (en) Extraction device, extraction method, and extraction program
CN113496034A (zh) Vba脚本混淆检测方法、装置、设备及可读存储介质
CN111552970B (zh) 基于三位一体综合画像的恶意代码检测及恶意性定位方法
US12079285B2 (en) Training device, determination device, training method, determination method, training method, and determination program
KR102662965B1 (ko) 구조화 문서에 대한 인공지능 기반의 악성코드 탐지 장치 및 방법
CN116578979B (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