CN111191233B - 一种宏病毒处理方法、装置和存储介质 - Google Patents

一种宏病毒处理方法、装置和存储介质 Download PDF

Info

Publication number
CN111191233B
CN111191233B CN201910699264.3A CN201910699264A CN111191233B CN 111191233 B CN111191233 B CN 111191233B CN 201910699264 A CN201910699264 A CN 201910699264A CN 111191233 B CN111191233 B CN 111191233B
Authority
CN
China
Prior art keywords
macro
code
codes
duty ratio
preset
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
Application number
CN201910699264.3A
Other languages
English (en)
Other versions
CN111191233A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910699264.3A priority Critical patent/CN111191233B/zh
Publication of CN111191233A publication Critical patent/CN111191233A/zh
Application granted granted Critical
Publication of CN111191233B publication Critical patent/CN111191233B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种宏病毒处理方法、装置和存储介质;本发明实施例在获取待处理宏病毒,对所述待处理宏病毒中的宏代码进行识别,根据识别结果确定所述宏代码中的特征码,根据所述宏代码中的特征码生成宏病毒特征,基于所述宏病毒特征生成宏病毒特征库,对所述待处理宏病毒进行查杀。由于该方案在宏病毒收集、分类、提取特征码和生成通杀特征等方面都采用了自动化方法,提高了宏病毒的处理效率。

Description

一种宏病毒处理方法、装置和存储介质
技术领域
本发明涉及通信技术领域,具体涉及一种宏病毒处理方法、装置和存储介质。
背景技术
随着计算机的普及和移动互联网的发展,网络信息时代已经来临。病毒作为信息的一种形式,具有繁殖、感染、破坏等特性,威胁着用户的信息安全。计算机文档,即WORD,EXCEL等文字编辑软件产生的文件,被人们广泛使用,而宏病毒作为专用于破坏计算机文档信息安全的新型病毒,逐渐走进人们的视线。其中,使用宏语言编写的宏病毒主要作用于计算机文档的宏代码中,威胁着计算机文档的安全。现有技术主要通过人工分析所收集到的宏病毒样本,得到宏病毒样本的特征码,进而生成病毒库,完成宏病毒的查杀。
在对现有技术的研究和实践过程中,本发明的发明人发现,对宏病毒样本采用人工分析的过程,对宏病毒人工添加特征码的时候,依赖人工经验,导致宏病毒处理效率低。
发明内容
本发明实施例提供一种宏病毒处理方法、装置和存储介质,可以提高宏病毒的处理效率。
一种宏病毒处理方法,包括:
获取待处理宏病毒;
对所述待处理宏病毒中的宏代码进行识别;
根据识别结果确定所述宏代码中的特征码;
根据所述宏代码中的特征码生成宏病毒特征;
基于所述宏病毒特征生成宏病毒特征库,对所述待处理宏病毒进行查杀。
相应的,本发明实施例提供一种宏病毒处理装置,包括:
获取单元,用于获取待处理宏病毒;
识别单元,用于对所述待处理宏病毒中的宏代码进行识别;
确定单元,用于根据识别结果确定所述宏代码中的特征码;
生成单元,用于根据所述宏代码中的特征码生成宏病毒特征;
查杀单元,用户基于所述宏病毒特征生成宏病毒特征库,对所述待处理宏病毒进行查杀。
可选的,在一些实施例中,所述识别单元,具体用于对所述宏代码按预设策略进行计算;当所述计算结果超过预设阈值时,确定所述宏代码为第一代码;当所述计算结果未超过预设阈值时,确定所述宏代码为第二代码。
可选的,在一些实施例中,所述识别单元,具体用于计算所述宏代码中垃圾代码占比,得到第一占比值;计算所述宏代码中复杂型变量名占比,得到第二占比值;计算所述宏代码中字符串与数字串的混合运算比,得到第三占比值,获取所述第一占比值对应的预设第一阈值、所述第二占比值对应预设第二阈值和所述第三占比值对应预设第三阈值;分别将所述第一占比值与预设第一阈值、所述第二占比值与预设第二阈值和所述第三占比值与预设第三阈值进行对比,当所述第一占比值、所述第二占比值和所述第三占比值中至少存在一个占比值高于对应的预设阈值时,则所述宏代码为第一代码;当所述第一占比值、所述第二占比值和所述第三占比值都未超过对应的预设阈值时,则所述宏代码为第二代码。
可选的,在一些实施例中,所述确定单元,具体可用于当所述宏代码为第一代码时,在所述宏代码中提取混淆串,基于所述混淆串,生成第一特征码;当所述宏代码为第二代码时,对所述宏代码进行聚类,在聚类得到的各个类别的宏代码中提取恶意黑串,基于所述恶意黑串,生成第二特征码。
可选的,在一些实施例中,所述生成单元,具体用于采用训练后识别模型分别对所述第一特征码和所述第二特征码进行识别;根据识别结果,生成待处理宏病毒特征。
可选的,在一些实施例中,所述宏病毒处理装置,还包括:采集单元、统计单元和第二确定单元;
采集单元,用于采集多个宏代码样本,所述宏代码样本包括已确定的多个第一代码和第二代码;
统计单元,用于基于所述多个宏代码样本,统计各个第一代码和所述各个第二代码中的字符串与数字的混淆运算的变量占比值、复杂型变量名占比和垃圾代码占比值,得到各个所述第一代码的第一占比值集和所述第二代码的第二占比值集;
第二确定单元,用于基于所述第一占比值集和所述第二占比值集中的各个占比值,确定所述预设第一阈值、所述预设第二阈值和所述预设第三阈值。
在一些实施例中,所述第二确定单元,具体用于在所述第一占比值集中筛选字符串与数字的混淆运算占比值、复杂型变量名占比值和垃圾代码占比值对应的最小值;在所述第二占比值集中筛选字符串与数字的混淆运算占比值、复杂型变量名占比值和垃圾代码占比值对应的最小值;将所述第一占比值集和所述第二占比值集中的字符串与数字的混淆运算占比值的、复杂型变量名占比值和垃圾代码占比值对应的最小值进行对比;当所述第一占比值集中的字符串与数字的混淆运算占比值的、复杂型变量名占比值和垃圾代码占比值对应的最小值分别小于第二占比值集中的字符串与数字的混淆运算占比值的、复杂型变量名占比值和垃圾代码占比值对应的最小值,把第一占比值集中的垃圾代码占比值的最小值作为所述预设第一阈值,把第一占比值集中的复杂型变量名占比值的最小值作为预设第二阈值,把第一占比值集中的混淆运算占比值的最小值作为预设第三阈值。
此外,本发明实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序实现本发明实施例提供的宏病毒处理方法。
此外,本发明实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例所提供的任一种宏病毒处理方法中的步骤。
本发明实施例在获取待处理宏病毒后,对该待处理宏病毒中的宏代码进行识别,根据识别结果确定宏代码中的特征码,然后,根据宏代码中的特征码生成宏病毒特征,基于该宏病毒特征生成宏病毒特征库,对待处理宏病毒进行查杀,由于该方案在宏病毒收集、分类、提取特征码和生成通杀特征等方面都采用了自动化方法,提高了宏病毒的处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的宏病毒处理方法的场景示意图;
图2是本发明实施例提供的宏病毒处理方法的流程示意图;
图3是本发明实施例提供的训练后密集连接卷积网络的结构示意图;
图4是本发明实施例提供的宏病毒处理方法的另一流程示意图;
图5是本发明实施例提供的宏代码识别过程的流程示意图;
图6是本发明实施例提供的宏病毒处理装置的结构示意图;
图7是本发明实施例提供的宏病毒处理装置的识别单元的结构示意图;
图8是本发明实施例提供的宏病毒处理装置的另一结构示意图;
图9是本发明实施例提供的宏病毒处理装置的另一结构示意图;
图10是本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种宏病毒处理方法、装置和存储介质。其中,该宏病毒处理装置可以集成在电子设备中,该电子设备可以是电子设备,也可以是终端等设备。
例如,如图1所示,以该宏病毒处理装置集成在电子设备中为例,该电子设备在获取到待处理宏病毒后,对该待处理宏病毒中的宏代码进行识别,可以根据识别结果,确定该宏代码中的特征码,然后,根据该宏代码中的特征码生成宏病毒特征,基于该宏病毒特征生成宏病毒特征库,对该待处理宏病毒进行查杀。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本实施例将从宏病毒处理装置的角度进行描述,该宏病毒处理装置具体可以集成在电子设备中,该电子设备可以是服务器,也可以是终端等设备;其中,该终端可以包括平板电脑、笔记本电脑、以及个人计算(PC,Personal Computer)等设备。
一种宏病毒处理方法,包括:获取待处理宏病毒,对待处理宏病毒中的宏代码进行识别,然后,根据识别结果确定该宏代码中的特征码,根据该宏代码中的特征码生成宏病毒特征,然后,基于该宏病毒特征生成宏病毒特征库,对待处理宏病毒进行查杀。
如图2所示,该宏病毒处理方法的具体流程如下:
101、获取待处理宏病毒。
其中,所谓宏病毒,指的是一种寄存在文档或者模板的宏中的计算机病毒,一旦用户打开含有宏病毒的文档或者模板,其中的宏病毒会被激活,转移到计算机上,并驻留在用于任何文档类型的共用模板(Normal模板)上,之后所有自动保存的文档都会感染上该宏病毒。
例如,获取待处理宏病毒的方式可以包括直接从存储宏病毒样本的服务器中直接获取,比如,可以从杀毒软件后台的存储宏病毒样本的服务器中直接提取或者调用,该服务器中的宏病毒样本可以由用户发现疑似存在宏病毒的文件后上传至服务器,服务器从该文件中分析和提取而得到,该服务器中的宏病毒样本也可以从用户的本地文件中获取,比如,杀毒软件通过对用户的本地文件进行扫描的过程中,针对疑似存在宏病毒的文件进行分析,若该文件中存在宏病毒,则提取出该文件中的宏病毒,并上传至服务器的宏病毒样本库中;该服务器中的宏病毒样本还可以从互联网中获取,比如,在网络上搜索宏病毒,将搜索到的宏病毒存储到宏病毒样本库中。其中存储宏病毒样本的样本库中的宏病毒是在不断更新。
例如,获取待处理宏病毒的方式还可以包括用户直接上传疑似存在宏病毒的文件,对该文件进行分析,如果存在宏病毒,则将该文件中的宏病毒进行提取,得到待处理的宏病毒。比如,用户发现自己的文档出现疑似中宏病毒的情况,直接将该文档上传,接收到用户上传的疑似中宏病毒文档,对该文档进行分析,如果该文档确定存在宏病毒,则将该文档中的宏病毒提取,得到待处理的宏病毒。
102、对待处理宏病毒中的宏代码进行识别。
其中,宏代码就是计算机的一种编程语言,把复杂的源文件变成简单、精短的代码,在本实施例中即为实现宏的代码。
所谓宏指的是计算机科学中的宏,是一种批量批处理的称谓。一般说来,宏是一种规则或模式,或称语法替换,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。
所谓代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。比如,常见的宏代码中的设置密码窗口的代码可以如下:
例如,对处理宏病毒中宏代码进行识别,首先需要获取宏病毒中的宏代码,其次,将获取到的宏代码进行处理,最后对处理过的宏代码进行识别。具体过程如下所示:
(1)获取宏病毒中的宏代码;
例如,可以利用宏代码编辑工具对宏病毒中的宏代码进行读取,比如,可以利用office(一种办公软件)在宏病毒寄存的文档中,利用宏编辑器对宏病毒中的宏代码进行读取,得到宏病毒中的宏代码。
(2)对宏代码进行关键字识别和去除;
其中,宏代码的关键字可以包括可视化BASIC脚本语言(VBS,Microsoft VisualBasic Script Edition)中使用的一些关键词/代码,比如,Dim、if、for和loop之类的字符,还可以包括应用程序接口名称(API,Application Programming Interface)、系统文件名和进程名等字符,比如,syswow64、AMD64、public和/或GetObject等。
例如,对得到的宏代码中的关键字进行识别,比如,对宏代码中的字符或代码进行筛选,筛选出VBS代码中使用的关键词/代码、API、系统文件名和/或进程名,将筛选出的宏代码中的关键字进行去除,得到去除关键字后的宏代码。比如,获取到的宏代码部分如下所示:
对该宏代码的关键词进行识别,识别出该宏代码中的关键字GetObject,对关键字进行去除,得到去除关键字后的宏代码,如下所示:
(3)对去除关键字的宏代码进行识别;
例如,对去除关键字的宏代码进行识别,判断该宏代码是否为第一代码。识别过程可以包括对宏代码按预设策略进行计算,将计算结果与预设阈值进行对比,当计算结果超过预设阈值时,则该宏代码为第一代码,否则,该宏代码为第二代码。具体识别过程如下:
A1、计算宏代码中的垃圾代码占比,得到第一占比值。
其中,垃圾代码可以包括已经定义了的变量或子函数,在定义之后未被调用,这些变量或子函数对整体代码的运行没有贡献,将其删除也不会影响整体代码的运行结果。
其中,垃圾代码占比指的是垃圾代码占去除关键字的宏代码总量的比值,比如,垃圾代码量为500,宏代码总量为10000,则垃圾代码占比的第一占比值为0.05。
例如,在去除关键字的宏代码中筛选出垃圾代码,统计出筛选的垃圾代码的代码量,将垃圾代码的代码量与去除关键字的宏代码总量进行对比,得到宏代码中的垃圾代码的第一占比值。
A2、计算去除关键字的宏代码中复杂型变量名占比,得到第二占比值。
其中,复杂性变量名可以包括设置的比较长、或者是由大写字符、小写字符、数字、特殊字符相结合而组成的复杂型变量名。
其中,复杂型变量名占比指的是复杂性变量名占去除关键字的宏代码总量的比值,比如,复杂性变量名的代码量为100,宏代码总量为10000,则复杂型变量名的第二占比值为0.01。
例如,在去除关键字的宏代码中筛选出复杂型变量名,统计出筛选出的复杂型变量名的代码量,将复杂型变量名的代码量与去除关键字的宏代码总量进行对比,得到宏代码中的复杂型变量名的第二占比值。
A3、计算宏代码中字符串与数字串的混合运算占比,得到第三占比值。
其中,字符串与数字串的混合运算可以包括通过复杂的、多次的字符串和数字的混合运算得到的变量值,比如,通过将字符串总的代码变成不常见的复杂代码与数字串进行混合计算得到的变量值,又比如,将字符串与数字进过二次及以上的计算而得到的变量值,而常见的变量值是直接进行赋值得到的。
其中,字符串与数字串的混合运算占比指的是通过比较复杂的、多次的字符串和数字的混合运算得到的变量占去除关键字的宏代码总量的比值,比如,字符串与数字串的混合运算得到的变量的代码量为200,去除关键字的宏代码总量为10000,则字符串与数字串混合运算的第三占比值为0.02。
例如,在去除关键字的宏代码中筛选通过字符串与数字串混合运算得到的变量,统计出该类变量的代码量,将通过字符串与数字串混合运算得到的变量的代码量与去除关键字的宏代码总量进行对比,得到字符串与数字串混合运算的变量的第三占比值。
A4、将第一占比值、第二占比值和第三占比值与预设阈值进行对比,当第一占比值、第二占比值和第三占比值中至少存在一个占比值超过预设阈值时,确定该宏代码为第一代码,当第一占比值、第二占比值和第三占比值都未超过对应的预设阈值时,确定该宏代码为第二代码。
其中,预设阈值可以包括第一占比值对应的预设第一阈值、第二占比值对应的预设第二占比值和第三占比值对应的预设第三阈值,预设第一阈值、预设第二阈值和预设第三阈值可以相同,也可以不相同。
例如,将计算得到的第一占比值、第二占比值和第三占比值分别于对应的预设第一阈值、预设第二阈值和预设第三阈值进行对比,根据对比结果,当第一占比值、第二占比值和第三占比值中至少存在一个占比值超多对应的预设阈值时,则说明该宏代码为第一代码,当第一占比值、第二占比值和第三占比值都未超过对应的预设阈值时,说明该宏代码为第二代码。
可选的,该预设第一阈值、预设第二阈值和预设第三阈值可以除了由运维人员预先设置,也可以由该宏病毒处理装置自行计算来得到。即步骤“将计算结果与预设阈值进行对比,当所述计算结果超过预设阈值时,则所述宏代码为第一代码,否则,所述宏代码为第二代码”之前,该宏病毒处理方法还可以包括:
S1、采集多个宏代码样本,该宏代码样本包括已确定的多个第一代码和第二代码。
其中,已确定的第一代码和第二代码可以为宏病毒中已确定代码类型的第一代码和第二代码。
例如,具体可以采集多个第一代码样本和第二代码样本,比如从数据库或网络等获取海量的已知宏代码类型的第一代码和第二代码。
S2、基于采集到的多个第一代码样本和第二代码样本,统计各个第一代码样本和各个第二代码样本中字符串与数字串的混合运算占比、复杂型变量名占比和垃圾代码占比,得到第一代码样本的第一占比值集和第二代码样本的第二占比值集。
例如,在采集到的多个第一代码样本中,筛选出通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码,统计筛选出的通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码对应的代码量,根据统计出的代码量,计算通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码对应的代码量分别与第一代码样本的代码总量的比值,得到各个第一代码样本对应的第一占比值、第二占比值和第三占比值,汇总计算出的各个第一代码的第一占比值、第二占比值和第三占比值,得到第一代码样本的第一占比值集,其中第一占比值集包括多个第一占比值、第二占比值和第三占比值。
例如,针对多个第二代码样本,与第一代码样本的处理方式相同,筛选出通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码,统计筛选出的通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码对应的代码量,根据统计出的代码量,计算通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码对应的代码量分别与第二代码样本的代码总量的比值,得到各个第二代码样本对应的第一占比值、第二占比值和第三占比值,汇总计算出的各个第二代码的第一占比值、第二占比值和第三占比值,得到第二代码样本的第二占比值集,其中第二占比值集包括多个第一占比值、第二占比值和第三占比值。
S3、基于第一占比值集合第二占比值集中的各个占比值,确定预设第一阈值、预设第二阈值和预设第三阈值。
例如,在第一占比值集中筛选出最小的第一占比值、最小的第二占比值和最小的第三占比值。在第二占比集中筛选出对应的最小的第一占比值、最小的第二占比值和最小的第三占比值。将第一占比值集中的最小第一占比值、最小第二占比值和最小第三占比值分别与第二占比值集中对应的最小第一占比值、最小第二占比值和最小第三占比值进行对比。
当第一占比值集中最小第一占比值、最小第二占比值和最小第三占比值分别都小于第二占比值集中对应的最小第一占比值、最小第二占比值和最小第三占比值时,则将第一占比值集中的最小第一占比值、最小第二占比值和最小第三占比值分别作为预设第一阈值、预设第二阈值和预设第三阈值。
当第一占比值集中最小第一占比值、最小第二占比值和最小第三占比值存在至少一个最小占比值大于第二占比值集中对应的最小占比值时,对第一代码样本进行更新,更新的方式可以包括从电子设备或者网络中获取新的已知的第一代码。在更新后的第一代码样本被中重新筛选出大于第二占比值集中最小占比值的最小占比值。如果更新后的第一代码样本中的最小占比值仍然大于第二代码样本中对应的最小占比值时,将第二代码样本的第二占比值集中的对应的最小占比值确定为对应的预设阈值。
其中,随着服务器或网络上已知的第一代码和第二代码的不断增多,第一代码样本和第二代码样本也在不断增加和更新,随着第一代码和第二代码样本的增加和更新,相应的预设阈值也会发生变化。
103、根据识别结果确定宏代码中的特征码。
其中,特征码可以为生成宏病毒特征的特定代码。
例如,当识别出的宏代码为第一代码时,在该宏代码中提取各种混淆串,将提取到的各种混淆串代码为第一特征码。
其中,混淆串可以包括难以被理解的变量名和字符串,还可以包括经过一连串的运算的变量名和字符串。比如,常见的混淆串代码如下:
例如,当宏代码为第二代码时,对宏代码进行聚类,比如,可以采用层次聚类的合并算法对宏代码进行聚类,按类别在各个宏代码中提取恶意黑串为第二特征码。
其中,恶意黑串可以包括到指定url下载恶意木马、隐藏执行特殊命令和/或设置浏览器的起始页的代码。比如常见的恶意黑串如下所示:
其中,层次聚类的合并算法可以为通过计算两类数据点间的相似性,对所有数据点中最为相似的两个数据点进行组合,并反复迭代这一过程。简单来说层次聚类的合并算法是通过计算每一个类别的数据点与所有数据点之间的距离来确定它们之间的相似性,距离越小,相似度越高。并将距离最近的两个数据点或类别进行组合,生成聚类树,进而完成数据的分类。比如,在对宏代码进行聚类的过程中,通过计算两类宏代码中数据间的相似性,对所有代码中最为相似的两个代码数据进行组合,并反复迭代这一过程,最后将第二代码分为两类或者多类,按聚类结果,对各个类别的第二代码中的恶意黑串代码进行提取,将提取到的一个或多个恶意黑串作为第二特征码。
其中,需要说明的是第一特征码和第二特征码中可以包含一个或多个特征码。
104、根据宏代码中的特征码,生成待处理宏病毒特征。
其中,宏病毒特征可以包括宏病毒的特定标识,该特定标识可以被杀毒引擎识别,并应用于宏病毒的查杀,通俗来说,宏病毒特征就是宏病毒的样貌特征,该样貌特征可以被杀毒引擎识别。
例如,采用训练后识别模型对宏代码中的特征码进行识别,根据识别结果,生成待处理宏病毒特征。识别宏代码中的特征码的方式有多种,比如,为了提高识别的准确性,可以采用深度神经网络来识别。例如,可以采用训练后密集连接卷积网络(DenseNet)对该宏代码中的特征码进行识别,得到识别结果,如图3。具体可以如下:
比如,可以通过卷积层对该特征码进行卷积处理,并经由池化层对卷积处理结果进行最大池化处理后,依次采用不同的密集块对该最大池化层结果进行处理,最后由分类层对密集块的输出结果进行分类识别,即可得到识别结果。其中,不同的密集块之间可以通过过渡层连接,该过渡层用于将当前密集块的输出数据调整为符合下一个密集块输入需求的数据。
其中,该训练后密集连接卷积网络的网络参数可以根据实际应用的需求进行设置。
另外,需要说明的是,该训练后密集连接卷积网络可以由维护人员预先进行设置,也可以由该宏病毒处理装置自行进行训练。例如,采集多个特征码样本,特征码样本包括已知宏病毒特征真实值的第一特征码和第二特征码,采用预设识别模型对特征码样本进行预测,得到宏病毒特征的预测值,根宏病毒特征的预测值与宏病毒特征的真实值对预设识别模型进行收敛,得到训练后识别模型。
例如,采用训练后识别模型对第一特征码和第二特征码进行识别,得到识别结果,其中识别结果可以为一个特征码对应一个特征,也可以为多个特征码对应一个或多个特征。比如,第一特征码中的第一特征码A1的识别结果为特征B1对应的特征码,第二特征码中的第二特征码C1的识别结果为特征D1对应的特征码,此时,基于识别结果,生成宏病毒的特征为特征B1和特征D1。
105、基于宏病毒特征生成宏病毒特征库,对待处理宏病毒进行查杀。
其中,宏病毒特征库可以包括该待处理宏病毒对应的所有特征的数据库,该宏病毒特征库中记录中该宏病毒的种种“相貌特征”,以便杀毒引擎及时发现,查杀该宏病毒,宏病毒库也需要时常更新。
例如,汇总第一特征码和第二特征码生成的一个或多个待处理宏病毒特征,将汇总后的待处理宏病毒特征存储到数据库中,基于该数据库生成待处理宏病毒特征库。杀毒引擎利用该宏病毒特征库中的一个或多个宏病毒特征,对本地数据或者网络上的该待处理宏病毒进行查杀,也可以在以后检测到该类型宏病毒时进行查杀。
由以上可知,本实施例在获取待处理宏病毒后,对该待处理宏病毒中的宏代码进行识别,根据识别结果确定该宏代码中的特征码,根据该宏代码中的特征码生成宏病毒特征,基于该宏病毒特征生成宏病毒特征库,对待处理宏病毒进行查杀。由于该方案在宏病毒收集、分类、提取特征码和生成通杀特征等方面都采用了自动化方法,提高了宏病毒的处理效率。
根据上一个实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该宏病毒处理装置具体集成在电子设备,第一代码为混淆代码,第二代码为非混淆代码为例进行说明。
如图4所述,一种宏病毒处理方法,具体流程可以如下:
201、电子设备获取待处理宏病毒。
例如,电子设备获取待处理宏病毒的方式可以包括直接从存储宏病毒样本的电子设备中直接获取,比如,电子设备可以从杀毒软件后台的存储宏病毒样本的电子设备中直接提取或者调用,该电子设备中的宏病毒样本可以由用户发现疑似存在宏病毒的文件后上传至电子设备,电子设备从该文件中分析和提取而得到,该电子设备中的宏病毒样本也可以从用户的本地文件中获取,比如,杀毒软件通过对用户的本地文件进行扫描的过程中,针对疑似存在宏病毒的文件进行分析,若该文件中存在宏病毒,则提取出该文件中的宏病毒,并上传至电子设备的宏病毒样本库中;该电子设备中的宏病毒样本还可以从互联网中获取,比如,在网络上搜索宏病毒,将搜索到的宏病毒存储到宏病毒样本库中。其中存储宏病毒样本的样本库中的宏病毒是在不断更新。
例如,电子设备获取待处理宏病毒的方式还可以包括用户直接上传疑似存在宏病毒的文件,电子设备对该文件进行分析,如果存在宏病毒,则将该文件中的宏病毒进行提取,得到待处理的宏病毒。比如,用户发现自己的文档出现疑似中宏病毒的情况,直接将该文档上传,电子设备接收到用户上传的疑似中宏病毒文档,对该文档进行分析,如果该文档确定存在宏病毒,则将该文档中的宏病毒提取,得到待处理的宏病毒。
202、电子设备对待处理宏病毒中的宏代码中关键字进行处理。
例如,电子设备对处理宏病毒中宏代码中的关键字进行处理,首先需要获取宏病毒中的宏代码,然后,对获取到的宏代码中的关键字进行识别,最后识别出的宏代码中的关键字进行去除。具体过程如下所示:
(1)电子设备获取宏病毒中的宏代码;
例如,电子设备可以利用宏代码编辑工具对宏病毒中的宏代码进行读取,比如,可以利用office(一种办公软件)在宏病毒寄存的文档中,利用宏编辑器对宏病毒中的宏代码进行读取,得到宏病毒中的宏代码。
(2)电子设备对宏代码进行关键字识别和去除;
其中,宏代码的关键字可以包括可视化BASIC脚本语言(VBS,Microsoft VisualBasic Script Edition)中使用的一些关键词/代码,比如,Dim、if、for和loop之类的字符,还可以包括应用程序接口名称(API,Application Programming Interface)、系统文件名和进程名等字符,比如,syswow64、AMD64、public和/或Get0bject等。
例如,电子设备对得到的宏代码中的关键字进行识别,比如,电子设备对宏代码中的字符或代码进行筛选,筛选出VBS代码中使用的关键词/代码、API、系统文件名和/或进程名,将筛选出的宏代码中的关键字进行去除,得到去除关键字后的宏代码。比如,获取到的宏代码部分如下所示:
电子设备对该宏代码的关键词进行识别,识别出该宏代码中的关键字Get0bject,对关键字进行去除,得到去除关键字后的宏代码,如下所示:
203、电子设备对去除关键字的宏代码进行识别。
例如,电子设备对去除关键字的宏代码进行识别,判断该宏代码是否为混淆代码。识别过程可以包括电子设备对宏代码按预设策略进行计算,将计算结果与预设阈值进行对比,当计算结果超过预设阈值时,则该宏代码为混淆代码,否则,该宏代码为非混淆代码。如图5所示,具体识别过程如下:
B1、电子设备计算宏代码中的垃圾代码占比,得到第一占比值。
其中,垃圾代码占比指的是垃圾代码占去除关键字的宏代码总量的比值,比如,垃圾代码量为500,宏代码总量为10000,则垃圾代码占比的第一占比值为0.05。
例如,电子设备在去除关键字的宏代码中筛选出垃圾代码,统计出筛选的垃圾代码的代码量,将垃圾代码的代码量与去除关键字的宏代码总量进行对比,得到宏代码中的垃圾代码的第一占比值。
B2、电子设备计算去除关键字的宏代码中复杂型变量名占比,得到第二占比值。
其中,复杂型变量名占比指的是复杂性变量名占去除关键字的宏代码总量的比值,比如,复杂性变量名的代码量为100,宏代码总量为10000,则复杂型变量名的第二占比值为0.01。
例如,电子设备在去除关键字的宏代码中筛选出复杂型变量名,统计出筛选出的复杂型变量名的代码量,将复杂型变量名的代码量与去除关键字的宏代码总量进行对比,得到宏代码中的复杂型变量名的第二占比值。
B3、电子设备计算宏代码中字符串与数字串的混合运算占比,得到第三占比值。
其中,字符串与数字串的混合运算占比指的是通过比较复杂的、多次的字符串和数字的混合运算得到的变量占去除关键字的宏代码总量的比值,比如,字符串与数字串的混合运算得到的变量的代码量为200,去除关键字的宏代码总量为10000,则字符串与数字串混合运算的第三占比值为0.02。
例如,电子设备在去除关键字的宏代码中筛选通过字符串与数字串混合运算得到的变量,统计出该类变量的代码量,将通过字符串与数字串混合运算得到的变量的代码量与去除关键字的宏代码总量进行对比,得到字符串与数字串混合运算的变量的第三占比值。
B4、电子设备将各个占比值与预设阈值进行对比,当各个占比值中中至少存在一个占比值超过预设阈值时,则该宏代码为混淆代码,当各个占比值都未超过对应的预设阈值时,则该宏代码为非混淆代码。
其中,预设阈值可以包括第一占比值对应的预设第一阈值、第二占比值对应的预设第二占比值和第三占比值对应的预设第三阈值,预设第一阈值、预设第二阈值和预设第三阈值可以相同,也可以不相同。
例如,电子设备将计算得到的第一占比值、第二占比值和第三占比值分别于对应的预设第一阈值、预设第二阈值和预设第三阈值进行对比,根据对比结果,当第一占比值、第二占比值和第三占比值中至少存在一个占比值超多对应的预设阈值时,则说明该宏代码为混淆代码,当第一占比值、第二占比值和第三占比值都未超过对应的预设阈值时,该代码就为非混淆代码。比如,第一占比值为0.005,第二占比值为0.004,第三占比值为0.002,预设第一阈值为0.006,预设第二阈值为0.005,预设第三阈值为0.004,将第一占比值、第二占比值和第三占比值分别与对应的预设第一阈值、预设第二阈值和预设第三阈值进行对比,对比结果为第一占比值、第二占比值和第三占比值都比对应的预设阈值要小,则说明该宏代码为非混淆代码,假设,预设第一阈值为0.004,预设第二阈值为0.005,预设第三阈值为0.004,将第一占比值、第二占比值和第三占比值分别与对应的预设第一阈值、预设第二阈值和预设第三阈值进行对比,对比结果为第一占比值超过预设第一阈值,而其他占比值分别小于对应的预设阈值,则此时,该宏代码为混淆代码。假设,预设第一阈值为0.004,预设第二阈值为0.003,预设第三阈值为0.004,将第一占比值、第二占比值和第三占比值分别与对应的预设第一阈值、预设第二阈值和预设第三阈值进行对比,对比结果为第一占比值和第二占比值分别超过预设第一阈值和预设第二阈值,则此时,该宏代码为混淆代码。当第一占比值、第二占比值和第三占比值分别都超过对应的预设第一阈值、预设第二阈值和预设第三阈值时,该宏代码也为混淆代码。
可选的,该预设第一阈值、预设第二阈值和预设第三阈值可以除了由运维人员预先设置,也可以由该宏病毒处理装置自行计算来得到。即步骤“电子设备将计算结果与预设阈值进行对比,当该计算结果超过预设阈值时,则该宏代码为混淆代码,否则,所述宏代码为非混淆代码”之前,该宏病毒处理方法还可以包括:
C1、电子设备采集多个宏代码样本,该宏代码样本包括已确定的混淆代码和非混淆代码。
其中,已确定的混淆代码和非混淆代码可以为宏病毒中已确定代码类型的混淆代码和非混淆代码。
例如,具体可以为电子设备采集多个混淆代码样本和非混淆代码样本,比如从数据库或网络等获取海量的已知宏代码类型的混淆代码和非混淆代码。
C2、基于采集到的多个混淆代码样本和非混淆代码样本,电子设备统计各个混淆代码样本和各个非混淆代码样本中字符串与数字串的混合运算占比、复杂型变量名占比和垃圾代码占比,得到混淆代码样本的第一占比值集和非混淆代码样本的第二占比值集。
例如,在采集到的多个混淆代码样本中,电子设备筛选出通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码,统计筛选出的通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码对应的代码量,根据统计出的代码量,计算通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码对应的代码量分别与混淆代码样本的代码总量的比值,得到各个混淆代码样本对应的第一占比值、第二占比值和第三占比值,汇总计算出的各个混淆代码的第一占比值、第二占比值和第三占比值,得到混淆代码样本的第一占比值集,其中第一占比值集包括多个第一占比值、第二占比值和第三占比值。
例如,针对多个非混淆代码样本,与混淆代码样本的处理方式相同,电子设备筛选出通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码,统计筛选出的通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码对应的代码量,根据统计出的代码量,计算通过字符串与数字串的混合运算得到的变量、复杂型变量名和垃圾代码对应的代码量分别与非混淆代码样本的代码总量的比值,得到各个非混淆代码样本对应的第一占比值、第二占比值和第三占比值,汇总计算出的各个非混淆代码的第一占比值、第二占比值和第三占比值,得到非混淆代码样本的第二占比值集,其中第二占比值集包括多个第一占比值、第二占比值和第三占比值。
C3、基于第一占比值集合第二占比值集中的各个占比值,电子设备确定预设第一阈值、预设第二阈值和预设第三阈值。
例如,电子设备在第一占比值集中筛选出最小的第一占比值、最小的第二占比值和最小的第三占比值。在第二占比集中筛选出对应的最小的第一占比值、最小的第二占比值和最小的第三占比值。将第一占比值集中的最小第一占比值、最小第二占比值和最小第三占比值分别与第二占比值集中对应的最小第一占比值、最小第二占比值和最小第三占比值进行对比。
当第一占比值集中最小第一占比值、最小第二占比值和最小第三占比值分别都小于第二占比值集中对应的最小第一占比值、最小第二占比值和最小第三占比值时,则将第一占比值集中的最小第一占比值、最小第二占比值和最小第三占比值分别作为预设第一阈值、预设第二阈值和预设第三阈值。比如,第一占比值集中的最小第一占比值为0.004,最小第二占比值为0.003,最小第三占比值为0.002,第二占比值集中的最小第一占比值为0.005,最小第二占比值为0.004,最小第三占比值为0.003。将第一占比值集中的最小第一占比值、最小第二占比值和最小第三占比值分别与第二占比值集中对应的最小第一占比值、最小第二占比值和最小第三占比值进行对比,可以发现,对比结果为第一占比值集中的各个最小占比值都小于第二占比值集中对应的各个最小占比值,此时,将第一占比值集中的最小第一占比值作为预设第一阈值,将第一占比值集中的最小第二占比值作为预设第二阈值,将第一占比值集中的最小第三占比值作为预设第三阈值。
当第一占比值集中最小第一占比值、最小第二占比值和最小第三占比值存在至少一个最小占比值大于第二占比值集中对应的最小占比值时,对混淆代码样本进行更新,更新的方式可以包括从电子设备或者网络中获取新的已知的混淆代码。在更新后的混淆代码样本被中重新筛选出大于第二占比值集中最小占比值的最小占比值。如果更新后的混淆代码样本中的最小占比值仍然大于第二代码样本中对应的最小占比值时,将非混淆代码样本的第二占比值集中的对应的最小占比值确定为对应的预设阈值。比如,第一占比值集中的最小第一占比值为0.004,最小第二占比值为0.003,最小第三占比值为0.002,第二占比值集中的最小第一占比值为0.003,最小第二占比值为0.002,最小第三占比值为0.001。此时,第一占比值集中的最小第一占比值大于第二占比值集中的最小第一占比值,对混淆代码样本进行更新,对更新的混淆代码样本重新确定最小第一占比值,假设重新确定的混淆代码样本中的最小第一占比值为0.002,则预设第一阈值为0.002,如果重新确定的混淆代码样本中的最小第一占比值为0.0035,更新后的混淆代码样本中的最小第一占比值仍然大于非混淆代码样本的第二占比值集中的最小第一占比值还大,则将非混淆代码样本的第二占比值集中的最小第一占比值作为预设第一阈值,即预设第一阈值为0.003。
其中,随着电子设备或网络上已知的混淆代码和非混淆代码的不断增多,混淆代码样本和非混淆代码样本也在不断增加和更新,随着混淆代码和非混淆代码样本的增加和更新,相应的预设阈值也会发生变化。
204、电子设备根据识别结果确定宏代码中的特征码。
其中,特征码可以为生成宏病毒特征的特定代码。
例如,当识别出的宏代码为混淆代码时,电子设备在该宏代码中提取各种混淆串,将提取到的各种混淆串代码为第一特征码。
例如,当宏代码为非混淆代码时,电子设备对宏代码进行聚类,比如,可以采用层次聚类的合并算法对宏代码进行聚类,按类别在各个宏代码中提取恶意黑串为第二特征码。
其中,层次聚类的合并算法可以为通过计算两类数据点间的相似性,对所有数据点中最为相似的两个数据点进行组合,并反复迭代这一过程。简单来说层次聚类的合并算法是通过计算每一个类别的数据点与所有数据点之间的距离来确定它们之间的相似性,距离越小,相似度越高。并将距离最近的两个数据点或类别进行组合,生成聚类树,进而完成数据的分类。比如,在对宏代码进行聚类的过程中,电子设备通过计算两类宏代码中数据间的相似性,对所有代码中最为相似的两个代码数据进行组合,并反复迭代这一过程,最后将第二代码分为两类或者多类,按聚类结果,对各个类别的第二代码中的恶意黑串代码进行提取,将提取到的一个或多个恶意黑串作为第二特征码。
其中,需要说明的是第一特征码和第二特征码中可以包含一个或多个特征码。
205、根据宏代码中的特征码,电子设备生成待处理宏病毒特征。
例如,电子设备采用训练后识别模型对宏代码中的特征码进行识别,根据识别结果,电子设备生成待处理宏病毒特征。识别宏代码中的特征码的方式有多种,比如,为了提高识别的准确性,可以采用深度神经网络来识别。例如,可以采用训练后密集连接卷积网络(DenseNet)对该宏代码中的特征码进行识别,得到识别结果,如图3。具体可以如下:
比如,可以通过卷积层对该特征码进行卷积处理,并经由池化层对卷积处理结果进行最大池化处理后,依次采用不同的密集块对该最大池化层结果进行处理,最后由分类层对密集块的输出结果进行分类识别,即可得到识别结果。其中,不同的密集块之间可以通过过渡层连接,该过渡层用于将当前密集块的输出数据调整为符合下一个密集块输入需求的数据。
其中,该训练后密集连接卷积网络的网络参数可以根据实际应用的需求进行设置。
另外,需要说明的是,该训练后密集连接卷积网络可以由维护人员预先进行设置,也可以由该宏病毒处理装置自行进行训练。例如,网络设备采集多个特征码样本,特征码样本包括已知宏病毒特征真实值的第一特征码和第二特征码,采用预设识别模型对特征码样本进行预测,得到宏病毒特征的预测值,根宏病毒特征的预测值与宏病毒特征的真实值对预设识别模型进行收敛,得到训练后识别模型。
例如,采用训练后识别模型对第一特征码和第二特征码进行识别,得到识别结果,其中识别结果可以为一个特征码对应一个特征,也可以为多个特征码对应一个或多个特征。比如,第一特征码中的第一特征码A1的识别结果为特征B1对应的特征码,第二特征码中的第二特征码C1的识别结果为特征D1对应的特征码,此时,基于识别结果,生成宏病毒的特征为特征B1和特征D1。
206、基于宏病毒特征生成宏病毒特征库,电子设备对待处理宏病毒进行查杀。
例如,电子设备汇总第一特征码和第二特征码生成的一个或多个待处理宏病毒特征,将汇总后的待处理宏病毒特征存储到数据库中,基于该数据库生成待处理宏病毒特征库。杀毒引擎利用该宏病毒特征库中的一个或多个宏病毒特征,对本地数据或者网络上的该待处理宏病毒进行查杀,也可以在以后检测到该类型宏病毒时进行查杀。
由以上可知,本实施例在电子设备获取待处理宏病毒后,对该待处理宏病毒中的宏代码进行识别,根据识别结果确定该宏代码中的特征码,然后,根据该宏代码中的特征码生成宏病毒特征,基于该宏病毒特征生成宏病毒特征库,对待处理宏病毒进行查杀。由于该方案在宏病毒收集、分类、提取特征码和生成通杀特征等方面都采用了自动化方法,提高了宏病毒的处理效率。
为了更好的实施以上方法,本发明实施例还提供一种宏病毒处理装置,该宏病毒处理装置可以集成在电子设备中,该电子设备可以包括服务器和终端等设备。
例如,参考图6,该宏病毒处理装置可以包括获取单元301、识别单元302、确定单元303、生成单元304和查杀单元305,如下:
(1)获取单元301;
获取单元301,用于获取待处理宏病毒;
例如,获取单元301,具体可以用于从杀毒软件后台的存储宏病毒样本的电子设备中直接提取或者调用。还可以同于基于用户直接上传疑似存在宏病毒的文件,对该文件进行分析,如果存在宏病毒,则将该文件中的宏病毒进行提取,得到待处理的宏病毒。
(2)识别单元302;
识别单元302,用于对待处理宏病毒中的宏代码进行识别;
其中,识别单元302可以包括获取子单元3021、去除子单元3022和识别子单元3023,如图7所示,具体如下:
获取子单元3021,用于获取宏病毒中的宏代码。
去除子单元3022,用于对得到的宏代码中的关键字进行识别,筛选出VBS代码中使用的关键词/代码、API、系统文件名和/或进程名,将筛选出的宏代码中的关键字进行去除,得到去除关键字后的宏代码。
识别子单元3023,用于对去除关键字的宏代码进行识别,判断该宏代码是否为第一代码。
例如,获取子单元3021获取宏病毒中的宏代码,去除子单元3022在获取到的宏代码中对关键字进行识别,根据识别结果,筛选出VBS代码中使用的关键词/代码、API、系统文件名和/或进程名,将筛选出的宏代码中的关键字进行去除,得到去除关键字后的宏代码,识别子单元3023对去除关键字后的宏代码进行识别,判断该宏代码是否为第一代码。
(3)确定单元303;
确定单元303,用于根据识别结果确定宏代码中的特征码;
例如,确定单元303,具体可用于当识别出的宏代码为第一代码时,电子设备在该宏代码中提取各种混淆串,将提取到的各种混淆串代码为第一特征码;当宏代码为第二代码时,对宏代码进行聚类,按类别在各个宏代码中提取恶意黑串为第二特征码。
(4)生成单元304;
生成单元304,用于根据宏代码中的特征码生成宏病毒特征;
例如,生成单元304,具体用于采用训练后识别模型对宏代码中的特征码进行识别,根据识别结果,生成待处理宏病毒特征。
(5)查杀单元305;
查杀单元305,用于基于宏病毒特征生成宏病毒特征库,对待处理宏病毒进行查杀;
例如,查杀单元305,具体用于汇总第一特征码和第二特征码生成的一个或多个待处理宏病毒特征,将汇总后的待处理宏病毒特征存储到数据库中,基于该数据库生成待处理宏病毒特征库。杀毒引擎利用该宏病毒特征库中的一个或多个宏病毒特征,对本地数据或者网络上的该待处理宏病毒进行查杀。
在一实施例中,参考图8和图9,该宏病毒处理装置还可以包括确定阈值确定单元306和训练单元307,如下:
(1)阈值确定单元306;
阈值确定单元306,用于确定预设第一阈值、预设第二阈值和预设第三阈值;
其中阈值确定单元可以包括采集子单元3061、统计子单元3062和确定子单元3063,
采集子单元3061,用于采集多个宏代码样本,该宏代码样本包括已确定的第一代码和第二代码;
统计子单元3062,用于基于采集到的多个第一代码样本和第二代码样本,统计各个第一代码样本和各个第二代码样本中字符串与数字串的混合运算占比、复杂型变量名占比和垃圾代码占比,得到第一代码样本的第一占比值集和第二代码样本的第二占比值集;
确定子单元3063,用于基于第一占比值集合第二占比值集中的各个占比值,确定预设第一阈值、预设第二阈值和预设第三阈值。
例如,采集子单元3061采集多个宏代码样本,该宏代码样本包括已确定的第一代码和第二代码,基于采集到的多个第一代码样本和第二代码样本,统计子单元3062统计各个第一代码样本和各个第二代码样本中字符串与数字串的混合运算占比、复杂型变量名占比和垃圾代码占比,得到第一代码样本的第一占比值集和第二代码样本的第二占比值集,基于第一占比值集合第二占比值集中的各个占比值,确定子单元3063确定预设第一阈值、预设第二阈值和预设第三阈值。
(2)训练单元307;
训练单元307,用于对预设识别模型进行训练,得到训练后识别模型。
训练单元307,具体可以用于采集多个特征码样本,所述特征码样本包括第一特征码、第二特征码和对应的宏病毒特征,采用预设识别模型对所述特征码样本进行预测,得到预测宏病毒特征,根据所述预测宏病毒特征与特征码对应的真实的所述宏病毒特征对所述预设识别模型进行收敛,得到训练后识别模型。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不作赘述。
由以上可知,本实施例的宏病毒处理装置由获取单元301获取待处理宏病毒,可以由识别单元302对待处理宏病毒中的宏代码进行识别,然后,根据识别结果,确定单元303确定待处理宏代码中的特征码,然后,根据宏代码中的宏代码,生成单元304生成宏病毒特征,查杀单元305基于生成的待处理宏病毒特征生成宏病毒特征库,对待处理宏病毒进行查杀。其中,在识别单元302对待处理宏病毒中的宏代码进行识别之前,还可以由阈值确定单元306确定预设第一阈值、预设第二阈值和预设第三阈值。在生成单元304生成待处理宏病毒特征之前,还可以由训练单元307对预设识别模型进行训练,得到训练后识别模型。由于该方案在宏病毒收集、分类、提取特征码和生成通杀特征等方面都采用了自动化方法,提高了宏病毒的处理效率。
本发明实施例还提供一种电子设备,如图10所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体检测。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取待处理宏病毒,对待处理宏病毒中的宏代码进行识别,根据识别结果确定该宏代码中的特征码,根据该宏代码中的特征码,生成宏病毒特征,基于该宏病毒特征生成宏病毒特征库,对待处理宏病毒进行查杀。
例如,具体可以从杀毒软件后台的存储宏病毒样本的服务器中直接提取或者调用待处理宏病毒,利用宏代码编辑工具对宏病毒中的宏代码进行读取,对读取到的宏代码中的关键字进行识别,筛选出VBS代码中使用的关键词/代码、API、系统文件名和/或进程名,将筛选出的宏代码中的关键字进行去除,得到去除关键字后的宏代码,然后,对去除关键字后的宏代码按预设策略进行计算,将计算结果与预设阈值进行对比,当计算结果超过预设阈值时,则该宏代码为第一代码,否则,该宏代码为第二代码。当识别出的宏代码为第一代码时,在该宏代码中提取各种混淆串,将提取到的各种混淆串代码为第一特征码;当宏代码为第二代码时,对宏代码进行聚类,在聚类得到的各个宏代码中提取恶意黑串为第二特征码。然后,采用训练后识别模型对宏代码中的第一特征码和第二特征码进行识别,根据识别结果生成宏病毒特征。然后,汇总第一特征码和第二特征码生成的一个或多个宏病毒特征,将汇总后的宏病毒特征存储到数据库中,基于该数据库生成宏病毒特征库。杀毒引擎利用该宏病毒特征库中的一个或多个宏病毒特征,对本地数据或者网络上的该待处理宏病毒进行查杀。
以上各个操作的具体实施可参见前面的实施例,在此不做赘述。
由以上可知,本实施例的电子设备获取待处理宏病毒,对待处理宏病毒中的宏代码进行识别,根据识别结果确定该宏代码中的特征码,根据该宏代码中的特征码生成宏病毒特征,基于该宏病毒特征生成宏病毒特征库,对待处理宏病毒进行查杀。由于该方案在宏病毒收集、分类、提取特征码和生成通杀特征等方面都采用了自动化方法,提高了宏病毒的处理效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种宏病毒处理方法的步骤。例如,该指令可以执行如下步骤:
获取待处理宏病毒,对待处理宏病毒中的宏代码进行识别,根据识别结果确定该宏代码中的特征码,根据该宏代码中的特征码,生成宏病毒特征,基于该宏病毒特征生成宏病毒特征库,对待处理宏病毒进行查杀。
例如,具体可以从杀毒软件后台的存储宏病毒样本的服务器中直接提取或者调用待处理宏病毒,利用宏代码编辑工具对宏病毒中的宏代码进行读取,对读取到的宏代码中的关键字进行识别,筛选出VBS代码中使用的关键词/代码、API、系统文件名和/或进程名,将筛选出的宏代码中的关键字进行去除,得到去除关键字后的宏代码,然后,对去除关键字后的宏代码按预设策略进行计算,将计算结果与预设阈值进行对比,当计算结果超过预设阈值时,则该宏代码为第一代码,否则,该宏代码为第二代码。当识别出的宏代码为第一代码时,在该宏代码中提取各种混淆串,将提取到的各种混淆串代码为第一特征码;当宏代码为第二代码时,对宏代码进行聚类,在聚类得到的各个宏代码中提取恶意黑串为第二特征码。然后,采用训练后识别模型对宏代码中的第一特征码和第二特征码进行识别,根据识别结果生成宏病毒特征。然后,汇总第一特征码和第二特征码生成的一个或多个宏病毒特征,将汇总后的宏病毒特征存储到数据库中,基于该数据库生成宏病毒特征库。杀毒引擎利用该宏病毒特征库中的一个或多个宏病毒特征,对本地数据或者网络上的该待处理宏病毒进行查杀。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种宏病毒处理方法中的步骤,因此,可以实现本发明实施例所提供的任一种宏病毒处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种宏病毒处理方法、装置和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种宏病毒处理方法,其特征在于,包括:
获取待处理宏病毒;
对所述待处理宏病毒中的宏代码按预设策略进行计算,包括:识别所述宏代码中的关键字,在所述宏代码中去除所述关键字,得到处理后的宏代码,计算所述处理后的宏代码中垃圾代码占比,得到第一占比值,计算所述处理后的宏代码中复杂型变量名占比,得到第二占比值,计算所述处理后的宏代码中字符串与数字串的混合运算的变量占比,得到第三占比值;
将计算结果与预设阈值进行对比;
当所述计算结果超过预设阈值时,确定所述宏代码为第一代码;
当所述计算结果未超过预设阈值时,确定所述宏代码为第二代码;
根据识别结果确定所述宏代码中的特征码,包括:当所述宏代码为所述第一代码时,在所述宏代码中提取混淆串,基于所述混淆串,生成第一特征码,当所述宏代码为所述第二代码时,对所述宏代码进行聚类,在聚类得到的各个类别的宏代码中提取恶意黑串,基于所述恶意黑串,生成第二特征码;
根据所述宏代码中的特征码生成宏病毒特征,包括:采用训练后识别模型分别对所述第一特征码和所述第二特征码进行识别,根据识别结果,生成待处理宏病毒特征;
基于所述宏病毒特征生成宏病毒特征库,并基于所述宏病毒特征库对所述待处理宏病毒进行查杀。
2.根据权利要求1所述的宏病毒处理方法,其特征在于,当所述计算结果超过预设阈值时,确定所述宏代码为第一代码,包括:
获取所述第一占比值对应的预设第一阈值、所述第二占比值对应预设第二阈值和所述第三占比值对应预设第三阈值;
分别将所述第一占比值与预设第一阈值、所述第二占比值与预设第二阈值和所述第三占比值与预设第三阈值进行对比,当所述第一占比值、所述第二占比值和所述第三占比值中至少存在一个占比值高于对应的预设阈值时,则所述宏代码为第一代码;
当所述计算结果未超过预设阈值时,确定所述宏代码为第二代码,包括:当所述第一占比值、所述第二占比值和所述第三占比值都未超过对应的预设阈值时,则所述宏代码为第二代码。
3.根据权利要求1所述的宏病毒处理方法,其特征在于,采用训练后识别模型分别对所述第一特征码和所述第二特征码进行识别之前,还包括:
采集多个特征码样本,所述特征码样本包括已知宏病毒特征真实值的第一特征码和第二特征码;
采用预设识别模型对所述特征码样本进行预测,得到宏病毒特征的预测值;
根据所述宏病毒特征的预测值与宏病毒特征的真实值对所述预设识别模型进行收敛,得到训练后识别模型。
4.根据权利要求1所述的宏病毒处理方法,其特征在于,还包括:
采集多个宏代码样本,所述宏代码样本包括已确定的多个第一代码和第二代码;
基于所述多个宏代码样本,统计各个第一代码和各个第二代码中的字符串与数字的混淆运算的变量占比值、复杂型变量名占比和垃圾代码占比值,得到各个所述第一代码的第一占比值集和所述第二代码的第二占比值集;
基于所述第一占比值集和所述第二占比值集中的各个占比值,确定预设第一阈值、预设第二阈值和预设第三阈值。
5.根据权利要求4所述的宏病毒处理方法,其特征在于,基于所述第一占比值集和所述第二占比值集中的各个占比值,确定所述预设第一阈值、所述预设第二阈值和所述预设第三阈值,包括:
在所述第一占比值集中筛选字符串与数字的混淆运算占比值、复杂型变量名占比值和垃圾代码占比值对应的最小值;
在所述第二占比值集中筛选字符串与数字的混淆运算占比值、复杂型变量名占比值和垃圾代码占比值对应的最小值;
将所述第一占比值集和所述第二占比值集中的字符串与数字的混淆运算占比值、复杂型变量名占比值和垃圾代码占比值对应的最小值进行对比;
当所述第一占比值集中的字符串与数字的混淆运算占比值的、复杂型变量名占比值和垃圾代码占比值对应的最小值分别小于第二占比值集中的字符串与数字的混淆运算占比值的、复杂型变量名占比值和垃圾代码占比值对应的最小值,把第一占比值集中的垃圾代码占比值的最小值作为所述预设第一阈值,把第一占比值集中的复杂型变量名占比值的最小值作为预设第二阈值,把第一占比值集中的混淆运算占比值的最小值作为预设第三阈值。
6.一种宏病毒处理装置,其特征在于,包括:
获取单元,用于获取待处理宏病毒;
识别单元,用于对所述待处理宏病毒中的宏代码按预设策略进行计算,包括:识别所述宏代码中的关键字,在所述宏代码中去除所述关键字,得到处理后的宏代码,计算所述处理后的宏代码中垃圾代码占比,得到第一占比值,计算所述处理后的宏代码中复杂型变量名占比,得到第二占比值,计算所述处理后的宏代码中字符串与数字串的混合运算的变量占比,得到第三占比值;
将计算结果与预设阈值进行对比;
当所述计算结果超过预设阈值时,确定所述宏代码为第一代码;
当所述计算结果未超过预设阈值时,确定所述宏代码为第二代码;
确定单元,用于根据识别结果确定所述宏代码中的特征码,包括:当所述宏代码为所述第一代码时,在所述宏代码中提取混淆串,基于所述混淆串,生成第一特征码,当所述宏代码为所述第二代码时,对所述宏代码进行聚类,在聚类得到的各个类别的宏代码中提取恶意黑串,基于所述恶意黑串,生成第二特征码;
生成单元,用于根据所述宏代码中的特征码生成宏病毒特征,包括:采用训练后识别模型分别对所述第一特征码和所述第二特征码进行识别,根据识别结果,生成待处理宏病毒特征;
查杀单元,用户基于所述宏病毒特征生成宏病毒特征库,并基于所述宏病毒特征库对所述待处理宏病毒进行查杀。
7.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至5任一项所述的宏病毒处理方法中的步骤。
8.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至5任一项所述的宏病毒处理方法中的步骤。
CN201910699264.3A 2019-07-31 2019-07-31 一种宏病毒处理方法、装置和存储介质 Active CN111191233B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910699264.3A CN111191233B (zh) 2019-07-31 2019-07-31 一种宏病毒处理方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910699264.3A CN111191233B (zh) 2019-07-31 2019-07-31 一种宏病毒处理方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN111191233A CN111191233A (zh) 2020-05-22
CN111191233B true CN111191233B (zh) 2024-05-24

Family

ID=70710722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910699264.3A Active CN111191233B (zh) 2019-07-31 2019-07-31 一种宏病毒处理方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN111191233B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114238969A (zh) * 2021-12-03 2022-03-25 安天科技集团股份有限公司 一种宏病毒的检测方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801033A (zh) * 2005-11-17 2006-07-12 珠海金山软件股份有限公司 一种基于数据流的计算机病毒查杀方法
CN103246847A (zh) * 2013-05-13 2013-08-14 腾讯科技(深圳)有限公司 一种宏病毒查杀的方法和装置
WO2014206183A1 (zh) * 2013-06-28 2014-12-31 北京奇虎科技有限公司 宏病毒查杀方法及系统
CN109063482A (zh) * 2018-08-09 2018-12-21 博彦科技股份有限公司 宏病毒识别方法、装置、存储介质及处理器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801033A (zh) * 2005-11-17 2006-07-12 珠海金山软件股份有限公司 一种基于数据流的计算机病毒查杀方法
CN103246847A (zh) * 2013-05-13 2013-08-14 腾讯科技(深圳)有限公司 一种宏病毒查杀的方法和装置
WO2014206183A1 (zh) * 2013-06-28 2014-12-31 北京奇虎科技有限公司 宏病毒查杀方法及系统
CN109063482A (zh) * 2018-08-09 2018-12-21 博彦科技股份有限公司 宏病毒识别方法、装置、存储介质及处理器

Also Published As

Publication number Publication date
CN111191233A (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN109241740B (zh) 恶意软件基准测试集生成方法及装置
CN111614599B (zh) 基于人工智能的webshell检测方法和装置
US20190311114A1 (en) Man-machine identification method and device for captcha
CN110929145A (zh) 舆情分析方法、装置、计算机装置及存储介质
CN111581956B (zh) 基于bert模型和k近邻的敏感信息识别方法及系统
CN113360912A (zh) 恶意软件检测方法、装置、设备及存储介质
CN110572393A (zh) 一种基于卷积神经网络的恶意软件流量分类方法
CN111428236A (zh) 一种恶意软件的检测方法、装置、设备及可读介质
Thiyagarajan et al. Improved real‐time permission based malware detection and clustering approach using model independent pruning
Assefa et al. Intelligent phishing website detection using deep learning
CN108647497A (zh) 一种基于特征提取的api密钥自动识别系统
CN111191233B (zh) 一种宏病毒处理方法、装置和存储介质
CN114676279A (zh) 图像检索方法、装置、设备及计算机可读存储介质
CN105468972B (zh) 一种移动终端文件检测方法
CN108875050B (zh) 面向文本的数字取证分析方法、装置和计算机可读介质
CN112579781B (zh) 文本归类方法、装置、电子设备及介质
CN113886821A (zh) 基于孪生网络的恶意进程识别方法、装置、电子设备及存储介质
CN114356744A (zh) 基于机器学习的应用程序界面遍历方法及设备
WO2023125336A1 (en) Methods and devices for generating sensitive text detectors
CN111797997A (zh) 网络入侵检测方法、模型构建方法、装置及电子设备
CN114817925B (zh) 基于多模态图特征的安卓恶意软件检测方法及系统
CN113312619B (zh) 基于小样本学习的恶意进程检测方法、装置、电子设备及存储介质
CN112149121A (zh) 一种恶意文件识别方法、装置、设备及存储介质
CN109922444A (zh) 一种垃圾短信识别方法及装置
CN115842645A (zh) 基于umap-rf的网络攻击流量检测方法、装置及可读存储介质

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
TG01 Patent term adjustment