CN112307478A - 一种脚本病毒检测方法、系统及电子设备和存储介质 - Google Patents

一种脚本病毒检测方法、系统及电子设备和存储介质 Download PDF

Info

Publication number
CN112307478A
CN112307478A CN202011375873.2A CN202011375873A CN112307478A CN 112307478 A CN112307478 A CN 112307478A CN 202011375873 A CN202011375873 A CN 202011375873A CN 112307478 A CN112307478 A CN 112307478A
Authority
CN
China
Prior art keywords
script
virus
file
detected
word sequence
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
CN202011375873.2A
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 CN202011375873.2A priority Critical patent/CN112307478A/zh
Publication of CN112307478A publication Critical patent/CN112307478A/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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种脚本病毒检测方法、系统及电子设备和可读存储介质,该方法包括:获取待检测脚本文件;对待检测脚本文件中执行语句进行词法分析,获得目标单词序列串;在脚本病毒特征库中查询是否存在与目标单词序列串匹配的病毒记录;脚本病毒特征库用于存储已知脚本病毒文件函数调用特征的单词序列串;若查询到与目标单词序列串匹配的病毒记录,则将待检测脚本文件判定为脚本病毒文件。本申请根据函数调用特征构造以序列串形式存储的轻量化病毒特征库,有效降低病毒库的维护成本,在病毒检测时不再采用字符串匹配的方式,主要提取文件中的函数调用特征,降低了病毒误报率,提高了杀毒引擎的效率。

Description

一种脚本病毒检测方法、系统及电子设备和存储介质
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种脚本病毒检测方法、系统及一种电子设备和一种计算机可读存储介质。
背景技术
脚本语言是为了缩短传统的编写-编译-链接-运行过程而创建的计算机编程语言。早期的脚本语言经常被称为批量处理语言或工作控制语言。脚本语言语法、词法规则简单,具有明确的界定符。
脚本病毒是主要采用脚本语言设计的计算机病毒。由于脚本语言的易用性,且脚本文件在当前应用系统尤其是Internet应用中占据了重要地位,脚本病毒逐渐成为互联网病毒中危害最大、最为广泛的网络病毒,尤其是当其与一些传统的进行恶性破坏的病毒如CIH相结合时,其危害就变得更为严重。
业界针对脚本病毒的检测方案主要采用字符串匹配的方式,即通过提取已有病毒的字符串,构造相应的病毒库。在检测时,在脚本文件中进行字符串匹配,若匹配成功则为病毒文件。然而,这种方式需要手动去除文件中无关因素的干扰,且若匹配较大的文本文件,往往需要较大的时间和空间代价。另外,由于字符串匹配方式不能有效排除字符串中大小写、变量名替换等因素的干扰,若同种病毒采用修改字符串大小写、更换变量名的操作,都会造成漏报,对于同类型病毒的变种识别能力弱。而为了降低漏报率,需要在病毒库中增加漏报文件的特征字符串记录,对于变种数量较多的病毒种类,不能有效合并记录,导致病毒库记录数量快速增长,增加了病毒库的维护成本,同时降低了杀毒引擎的效率。
因此,如何解决上述问题是本领域技术人员需要重点关注的。
发明内容
本申请的目的在于提供一种脚本病毒检测方法、系统及一种电子设备和一种计算机可读存储介质,有效降低了病毒库的维护成本和病毒误报率,提高了杀毒引擎的查杀效率。
为实现上述目的,本申请提供了一种脚本病毒检测方法,包括:
获取待检测脚本文件;
对所述待检测脚本文件中的执行语句进行词法分析,获得目标单词序列串;
在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录;其中,所述脚本病毒特征库用于存储预先收集的已知脚本病毒文件函数调用特征的单词序列串;
若在所述脚本病毒特征库中查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件判定为脚本病毒文件。
可选的,所述对所述待检测脚本文件中的执行语句进行词法分析,获得目标单词序列串,包括:
对所述待检测脚本文件中的每一条执行语句进行词法分析,以获得所述待检测脚本文件中的函数调用特征;
根据所述函数调用特征生成目标单词序列串。
可选的,所述在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录,包括:
通过提取内容关键字和/或识别文件后缀名的方式,确定所述待检测脚本文件对应的当前文件类型;
在所述脚本病毒特征库中查找与所述当前文件类型对应的病毒特征记录表,并在所述病毒特征记录表中查询是否存在与所述目标单词序列串匹配的病毒记录。
可选的,所述将所述待检测脚本文件判定为脚本病毒文件之后,还包括:
获取系统预先设置的针对脚本病毒文件的处理方式;
若所述处理方式为自动处理,则直接对所述脚本病毒文件进行默认查杀;
若所述处理方式为自定义处理,则在用户终端显示选择界面,以接收所述用户终端下发的针对是否查杀的选择指令。
可选的,所述将所述待检测脚本文件判定为脚本病毒文件之后,还包括:
直接对所述脚本病毒文件进行查杀。
可选的,所述获取待检测脚本文件,包括:
获取通过外部存储设备拷贝上传的所述待检测脚本文件;
或,获取系统内部程序在检测到未知脚本文件之后自动导入的所述待检测脚本文件。
可选的,所述对所述待检测脚本文件中的每一条执行语句进行词法分析,以提取所述待检测脚本文件中的函数调用特征之前,还包括:
对所述待检测脚本文件进行预处理,以滤除所述待检测脚本文件中的无效信息,所述无效信息包括空格、注释信息和换行符。
可选的,所述在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录之后,还包括:
若在所述脚本病毒特征库中未能查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件保存至用于存储未知脚本文件的目标位置;
当接收到将所述未知脚本文件判定为脚本病毒文件的判定结果后,将所述未知脚本文件对应的目标单词序列串添加至所述脚本病毒特征库中。
可选的,所述将所述未知脚本文件对应的目标单词序列串添加至所述脚本病毒特征库中,包括:
确定所述未知脚本文件对应的目标文件类型;
判断所述脚本病毒特征库中是否存在与所述目标文件类型对应的目标病毒特征记录表;
如果是,则直接将所述未知脚本文件对应的目标单词序列串添加至所述目标病毒特征记录表中;
如果否,则创建所述目标文件类型对应的目标病毒特征记录表,并在创建完成后将所述目标单词序列串添加至所述目标病毒特征记录表中。
为实现上述目的,本申请提供了一种脚本病毒检测系统,包括:
获取模块,用于获取待检测脚本文件;
生成模块,用于对所述待检测脚本文件中的执行语句进行词法分析,获得目标单词序列串;
匹配模块,用于在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录;其中,所述脚本病毒特征库用于存储预先收集的已知脚本病毒文件函数调用特征的单词序列串;
判定模块,用于若在所述脚本病毒特征库中查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件判定为脚本病毒文件。
为实现上述目的,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种脚本病毒检测方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种脚本病毒检测方法的步骤。
通过以上方案可知,本申请可预先收集已知脚本病毒文件的函数调用特征,生成单词序列串存入预设的脚本病毒特征库中,在获取到待检测脚本文件后,获取该脚本文件中的目标单词序列串,再利用脚本病毒特征库对目标单词序列串进行病毒记录匹配,以检测待检测脚本文件是否为病毒文件。也即,根据病毒文件函数调用特征,构造以序列串形式存储的轻量化的脚本病毒特征库,有效降低了病毒库的维护成本,在病毒检测时,不再采用字符串匹配的方式,主要提取文件中的函数调用特征实现对脚本文件的格式化处理,无需手动去除无效信息,不仅降低了病毒误报率,同时明显提高了杀毒引擎的病毒查杀效率,节省了时间和人力成本。
本申请还公开了一种脚本病毒检测系统及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种脚本病毒检测方法的流程图;
图2为本申请实施例公开的另一种脚本病毒检测方法的流程图;
图3为本申请实施例公开的又一种脚本病毒检测方法的流程图;
图4为本申请实施例公开的一种脚本病毒检测方案适用的系统架构图;
图5为本申请实施例公开的一种具体的脚本病毒特征库的结构示意图;
图6为本申请实施例公开的一种具体的脚本病毒检测方法的流程图;
图7为本申请实施例公开的一种脚本病毒检测系统的结构图;
图8为本申请实施例公开的一种电子设备的结构图;
图9为本申请实施例公开的另一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在针对脚本病毒的传统检测方案中,主要通过提取已有病毒的字符串,构造相应的病毒库,并根据病毒库在需要检测的脚本文件中进行字符串匹配,若匹配成功则为病毒文件。然而,这种方式需要手动去除文件中无关因素的干扰,且若匹配较大的文本文件,需要较大的时间和空间代价。另外,由于字符串匹配方式漏报风险较大,对于同类型病毒的变种识别能力弱。而为了降低漏报率,需要在病毒库中增加漏报文件的特征字符串记录,导致病毒库记录数量快速增长,增加了病毒库的维护成本,同时降低了杀毒引擎的效率。
因此,本申请实施例公开了一种脚本病毒检测方法,降低了病毒库的维护成本和病毒误报率,提高了杀毒引擎的病毒查杀效率,节省了时间和人力成本。
参见图1所示,本申请实施例公开的一种脚本病毒检测方法包括:
S101:获取待检测脚本文件;
本申请实施例中,首先获取待检测脚本文件,即需要检测是否为脚本病毒文件的文件。在具体实施中,获取待检测脚本文件的方式可以具体包括:获取通过外部存储设备拷贝上传的待检测脚本文件;或,获取系统内部程序在检测到未知脚本文件之后自动导入的待检测脚本文件。也即,杀毒引擎可以获取用户手动上传的脚本文件,也可获取系统内部程序在检测到未知脚本文件之后自动导入的脚本文件,进而执行对脚本文件的检测过程。上述杀毒引擎是杀毒软件的主要部分,为用于检测和发现病毒的计算机程序。
S102:对所述待检测脚本文件中的执行语句进行词法分析,获得目标单词序列串;
在本步骤中,将对获取到的待检测脚本文件中的执行语句进行词法分析,获得相应的目标单词序列串。作为具体的实施方式,本实施例可以对待检测脚本文件中的每一条执行语句进行词法分析,以获得待检测脚本文件中每一条执行语句的函数调用特征,进而根据函数调用特征生成目标单词序列串。
需要说明的是,词法分析是计算机科学中将字符序列转换为单词序列的过程,从作为连续字符串形式出现的可执行文本中提取出例如变量、函数名等单词,以便在语法分析中获得这些单词之间的逻辑关系。进行词法分析的程序或函数称为词法分析器,也称扫描器。词法分析器从输入字符流中提取单词序列的过程即为标记化(Tokenization),可提取得到对应的Token序列。Token序列中的内容通常包括但不限于标识符字符串,如变量名、常量名、过程名、数组名等;常量,数值,如整形常数、布尔、字符常数;关键字,保留字;操作符,分隔符等。
在具体实施中,通过对待检测脚本文件中的每一条执行语句进行词法分析,提取其中的函数调用特征。由于脚本病毒会执行有破坏性的系统调用行为,例如创建文件等,因此可提取待检测脚本文件的函数调用特征,以便后续分析该脚本文件中是否存在指导破坏性行为的程序。通过提取函数调用特征的词法分析过程,对每一条执行语句进行标记化,生成对应的单词序列串集合,可将其保存至临时文件中。
作为一种优选的实施方式,本申请实施例还可以在对待检测脚本文件中的每一条执行语句进行词法分析,以提取待检测脚本文件中的函数调用特征之前,先对待检测脚本文件进行预处理,以滤除待检测脚本文件中的无效信息,其中,无效信息可以包括但不限于空格、注释信息和换行符。也即,可在词法分析之前自动将待检测脚本文件中的无效信息滤除,以降低词法分析的工作量,提高执行效率。
S103:在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录;其中,所述脚本病毒特征库用于存储预先收集的已知脚本病毒文件函数调用特征的单词序列串;
当提取生成待检测脚本文件的目标单词序列串之后,可在预设的脚本病毒特征库中查询是否存在与目标单词序列串匹配的病毒记录。脚本病毒特征库为记录计算机病毒特征的数据资料库,具体用于存储预先收集的已知脚本病毒文件函数调用特征的单词序列串。在预先创建脚本病毒特征库时,可通过对已知脚本病毒文件或样本文件进行扫描,得到已知病毒特征的集合存入脚本病毒特征库中。
具体地,若将待检测脚本文件对应的单词序列串集合保存至临时文件中之后,可以通过遍历临时文件和脚本病毒特征库的方式,在脚本病毒特征库中进行病毒记录匹配。
S104:若在所述脚本病毒特征库中查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件判定为脚本病毒文件。
可以理解的是,若在脚本病毒特征库中查询到与目标单词序列串匹配的病毒记录,则表征待检测脚本文件中存在指导破坏性行为的程序,可将其判定为脚本病毒文件。
在一种可行的实施方式中,将待检测脚本文件判定为脚本病毒文件后,杀毒引擎可直接执行对脚本病毒文件的查杀过程。在另外一种可行的实施方式中,将待检测脚本文件判定为脚本病毒文件后,杀毒引擎可以进一步获取系统预先设置的针对脚本病毒文件的处理方式,以便根据预设处理方式对脚本病毒文件进行处理。具体地,若处理方式为自动处理,则直接对脚本病毒文件进行默认查杀;若处理方式为自定义处理,则在用户终端显示选择界面,以接收用户终端下发的针对是否查杀的选择指令。也即,若系统设置对病毒文件进行自动处理,杀毒引擎在检测到脚本病毒文件后将直接对其进行查杀处理;若系统设置为对病毒文件进行自定义处理,则杀毒引擎在检测到脚本病毒文件后,可通过弹窗等类型的显示方式在用户终端显示选择界面,用户可通过该界面下发是否查杀病毒文件的选择指令,从而根据用户实时的选择灵活对病毒文件进行处理。
本申请提供的脚本病毒检测方法,通过预先收集已知脚本病毒文件的函数调用特征,生成单词序列串存入预设的脚本病毒特征库中,在获取到待检测脚本文件后,获取该脚本文件中的目标单词序列串,再利用脚本病毒特征库对目标单词序列串进行病毒记录匹配,以检测待检测脚本文件是否为病毒文件。也即,根据病毒文件函数调用特征,构造以序列串形式存储的轻量化的脚本病毒特征库,有效降低了病毒库的维护成本,在病毒检测时,不再采用字符串匹配的方式,主要提取文件中的函数调用特征实现对脚本文件的格式化处理,无需手动去除无效信息,不仅降低了病毒误报率,同时明显提高了杀毒引擎的病毒查杀效率,节省了时间和人力成本。
本申请实施例公开了另一种脚本病毒检测方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:
S201:获取待检测脚本文件;
S202:对所述待检测脚本文件中的执行语句进行词法分析,获得目标单词序列串;
S203:通过提取内容关键字和/或识别文件后缀名的方式,确定所述待检测脚本文件对应的当前文件类型;
本申请实施例中,可通过提取待检测脚本文件中的内容关键字,和/或识别待检测脚本文件后缀名的方式,识别出待检测脚本文件对应的当前文件类型。也即,可预先通过收集和分析,确定各类内容关键字和文件后缀名与文件类型之间的对应关系,当获取到当前待检测脚本文件中的内容关键字或文件后缀名时,可与预先收集的关键字或后缀名进行匹配,从而确定对应的文件类型。
需要指出的是,本实施例并不限定上述步骤S202和S203之间的执行顺序,也即,可以先执行步骤S202,或先执行步骤S203,作为一种优选的方式,也可同时执行步骤S202和步骤S203,以提升执行效率。
S204:在脚本病毒特征库中查找与所述当前文件类型对应的病毒特征记录表,并在所述病毒特征记录表中查询是否存在与所述目标单词序列串匹配的病毒记录;
可以理解的是,本申请实施例中的脚本病毒特征库可具体根据不同的文件类型进行记录,也即,脚本病毒特征库中可建立不同文件类型对应的病毒特征记录表,在每个病毒特征记录表中存放对应文件类型的病毒记录。在确定当前待检测脚本文件的文件类型后,可先确定该类型对应的病毒特征记录表,进而在该病毒特征记录表中进行记录匹配,能够避免在整个脚本病毒特征库中进行全量匹配,从而有效提高匹配效率。
S205:若在所述脚本病毒特征库中查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件判定为脚本病毒文件。
本申请实施例公开了又一种脚本病毒检测方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图3所示,具体的:
S301:获取待检测脚本文件;
S302:对所述待检测脚本文件中的执行语句进行词法分析,获得目标单词序列串;
S303:在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录;其中,所述脚本病毒特征库用于存储预先收集的已知脚本病毒文件函数调用特征的单词序列串;
S304:若在所述脚本病毒特征库中查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件判定为脚本病毒文件;
S305:若在所述脚本病毒特征库中未能查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件保存至用于存储未知脚本文件的目标位置;
可以理解的是,本申请实施例中通过在脚本病毒特征库中查询是否存在与目标单词序列串匹配的病毒记录,可初步判定待检测脚本文件是否为脚本病毒文件。若在脚本病毒特征库中即存在与待检测脚本文件中目标单词序列串匹配的病毒记录,则表征待检测脚本文件为脚本病毒文件;若在脚本病毒特征库中并不存在与待检测脚本文件中目标单词序列串匹配的病毒记录,无法直接判定待检测脚本文件不属于脚本病毒文件。由此,需要将待检测脚本文件保存至用于存储未知脚本文件的目标位置,以便对待检测脚本文件进行手动筛查。
S306:当接收到将所述未知脚本文件判定为脚本病毒文件的判定结果后,将所述未知脚本文件对应的目标单词序列串添加至所述脚本病毒特征库中。
当管理员通过查询获取目标位置中的未知脚本文件,并对其进行手动文件识别后,下发将未知脚本文件判定为脚本病毒文件的判定结果,终端即可将当前未知脚本文件对应的目标单词序列串添加至脚本病毒特征库中,以实现对脚本病毒特征库的补充更新。
作为一种具体的实施方式,在将未知脚本文件对应的目标单词序列串添加至所述脚本病毒特征库中时,可以确定未知脚本文件所对应的目标文件类型,并判断脚本病毒特征库中是否存在与目标文件类型对应的目标病毒特征记录表;如果是,则直接将未知脚本文件对应的目标单词序列串添加至目标病毒特征记录表中;如果否,则创建目标文件类型对应的目标病毒特征记录表,并在创建完成后将目标单词序列串添加至目标病毒特征记录表中。也即,在补充记录新增的单词序列串时,可根据当前脚本文件的文件类型,将单词序列串保存至该文件类型对应的病毒特征记录表中,以便后续根据文件类型进行病毒记录的匹配。
下面通过一种具体的实施场景对本申请实施例提供的脚本病毒检测方法进行介绍。具体地,本申请实施例不再使用传统方案中生硬单一的字符串匹配方式,而是通过分析脚本病毒文件在计算机系统中的恶意行为,关注脚本语言的编译过程,通过词法分析,将脚本文件进行格式化,从而剔除注释、空格以及大小写等干扰项,重点提取脚本文件的函数调用特征,通过这种函数调用特征构造简洁的中间对象,从而构造轻量化的病毒库,基于病毒库进行脚本文件的高效检测。
图4为本申请实施例提供的脚本病毒检测方案所适用的系统架构,其中具体包括:杀毒引擎对象,用于提供外部检测和清除接口,主要负责引擎流程控制、特征匹配功能;脚本病毒特征库对象,用于存放和管理脚本已知病毒记录的单词序列串;病毒文件对象,指待查杀的脚本病毒文件;外部程序,用于获取到脚本文件后,调用杀毒引擎对象进行病毒检测。
需要说明的是,脚本病毒文件会执行有破坏性的系统调用行为,基于此特征,可分析脚本病毒文件可能会对系统造成的影响。本申请实施例所构建的脚本病毒特征库中,每一条病毒记录均以单词序列串的形式保存,对应一个函数调用特征。在待查杀的脚本病毒文件中,若存在脚本病毒文件的破坏性行为,如创建文件等,可通过序列化后的病毒文件特有的函数调用特征进行过滤,依次提高过滤速度。
以流行于机械制造与建筑行业的AutoCAD脚本病毒为例,其通过一种lisp脚本文件进行传播。该类型病毒往往拥有自我复制的传播特点,通常会在存放.dwg文件的目录下创建.lisp脚本文件,即可根据词法分析,对存在该行为对应的函数调用特征,即可认定其为病毒文件,标记该行为对应的单词序列为一条病毒序列。根据不同lisp脚本病毒文件的行为,依次得到相应的单词序列串,形成该类型脚本病毒文件的特征记录表。参见图5所示,脚本文件的病毒特征库中,针对不同脚本类型的病毒文件,可分别分析该类型脚本对应的不同病毒的函数调用特征,总结出不同脚本类型对应的脚本病毒特征表,构成最终的病毒特征库。例如,针对A脚本类型,可创建对应的A脚本病毒特征表,其中保存有A脚本类型对应的病毒特征,具体以Token序列串A-1,Token序列串A-2等序列串的形式进行记录;针对B脚本类型,可创建对应的B脚本病毒特征表,其中保存有B脚本类型对应的病毒特征,具体以Token序列串A-1,Token序列串A-2等序列串的形式进行记录。对于后续新发现的病毒类型,可在病毒特征库中添加相应的记录进行更新。
基于上述提供的系统架构,本申请实施例提供了一种具体的脚本病毒检测方法的流程,如图6所示,当获取到待查杀的脚本文件之后,首先对其进行文件预处理,具体可包括文件的简单格式化,去除文件中的空格、注释等无效干扰信息,并可通过关键字集合筛选匹配,识别出该脚本文件对应的文件类型。进而利用词法分析器,对脚本文件中的每一条执行语句进行序列化处理,提取其中的函数调用特征,得到相应的单词序列串集合并存入临时文件中。在病毒特征库中查询该类型脚本文件的病毒记录表,通过遍历的方式,在病毒记录表中匹配是否存在与临时文件中的单词序列串对应的病毒记录。若匹配成功,则可进行对应的病毒文件处理流程,例如可由用户手动判断是否删除或清除文件等。
本申请实施例中,通过词法分析,根据脚本病毒文件的函数调用特征,构建以单词序列串形式存储的轻量化的脚本病毒特征库,减少了病毒特征库中存储的数据量,降低了病毒特征库的维护成本。通过对待查杀文件中的函数调用特征进行匹配,可过滤病毒文件特有的函数调用方式,如自我复制等,不仅提高了脚本文件杀毒引擎的查杀效率,还降低了由于病毒变种引起的漏报风险。
下面对本申请实施例提供的一种脚本病毒检测系统进行介绍,下文描述的一种脚本病毒检测系统与上文描述的一种脚本病毒检测方法可以相互参照。
参见图7所示,本申请实施例提供的一种脚本病毒检测系统包括:
获取模块401,用于获取待检测脚本文件;
生成模块402,用于对所述待检测脚本文件中的执行语句进行词法分析,获得目标单词序列串;
匹配模块403,用于在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录;其中,所述脚本病毒特征库用于存储预先收集的已知脚本病毒文件函数调用特征的单词序列串;
判定模块404,用于若在所述脚本病毒特征库中查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件判定为脚本病毒文件。
关于上述模块401至404的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。
本申请还提供了一种电子设备,参见图8所示,本申请实施例提供的一种电子设备包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一实施例公开的脚本病毒检测方法。
在上述实施例的基础上,作为优选实施方式,参见图9所示,所述电子设备还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
图9仅示出了具有组件100-500的电子设备,本领域技术人员可以理解的是,图9示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施例公开的脚本病毒检测方法。
本申请中,根据病毒文件函数调用特征,构造以序列串形式存储的轻量化的脚本病毒特征库,有效降低了病毒库的维护成本,在病毒检测时,不再采用字符串匹配的方式,主要提取文件中的函数调用特征实现对脚本文件的格式化处理,无需手动去除无效信息,不仅降低了病毒误报率,同时明显提高了杀毒引擎的病毒查杀效率,节省了时间和人力成本。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (12)

1.一种脚本病毒检测方法,其特征在于,包括:
获取待检测脚本文件;
对所述待检测脚本文件中的执行语句进行词法分析,获得目标单词序列串;
在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录;其中,所述脚本病毒特征库用于存储预先收集的已知脚本病毒文件函数调用特征的单词序列串;
若在所述脚本病毒特征库中查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件判定为脚本病毒文件。
2.根据权利要求1所述的脚本病毒检测方法,其特征在于,所述对所述待检测脚本文件中的执行语句进行词法分析,获得目标单词序列串,包括:
对所述待检测脚本文件中的每一条执行语句进行词法分析,以获得所述待检测脚本文件中的函数调用特征;
根据所述函数调用特征生成目标单词序列串。
3.根据权利要求1所述的脚本病毒检测方法,其特征在于,所述在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录,包括:
通过提取内容关键字和/或识别文件后缀名的方式,确定所述待检测脚本文件对应的当前文件类型;
在所述脚本病毒特征库中查找与所述当前文件类型对应的病毒特征记录表,并在所述病毒特征记录表中查询是否存在与所述目标单词序列串匹配的病毒记录。
4.根据权利要求1所述的脚本病毒检测方法,其特征在于,所述将所述待检测脚本文件判定为脚本病毒文件之后,还包括:
获取系统预先设置的针对脚本病毒文件的处理方式;
若所述处理方式为自动处理,则直接对所述脚本病毒文件进行默认查杀;
若所述处理方式为自定义处理,则在用户终端显示选择界面,以接收所述用户终端下发的针对是否查杀的选择指令。
5.根据权利要求1所述的脚本病毒检测方法,其特征在于,所述将所述待检测脚本文件判定为脚本病毒文件之后,还包括:
直接对所述脚本病毒文件进行查杀。
6.根据权利要求1所述的脚本病毒检测方法,其特征在于,所述获取待检测脚本文件,包括:
获取通过外部存储设备拷贝上传的所述待检测脚本文件;
或,获取系统内部程序在检测到未知脚本文件之后自动导入的所述待检测脚本文件。
7.根据权利要求1所述的脚本病毒检测方法,其特征在于,所述对所述待检测脚本文件中的每一条执行语句进行词法分析,以提取所述待检测脚本文件中的函数调用特征之前,还包括:
对所述待检测脚本文件进行预处理,以滤除所述待检测脚本文件中的无效信息,所述无效信息包括空格、注释信息和换行符。
8.根据权利要求1至7任一项所述的脚本病毒检测方法,其特征在于,所述在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录之后,还包括:
若在所述脚本病毒特征库中未能查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件保存至用于存储未知脚本文件的目标位置;
当接收到将所述未知脚本文件判定为脚本病毒文件的判定结果后,将所述未知脚本文件对应的目标单词序列串添加至所述脚本病毒特征库中。
9.根据权利要求8所述的脚本病毒检测方法,其特征在于,所述将所述未知脚本文件对应的目标单词序列串添加至所述脚本病毒特征库中,包括:
确定所述未知脚本文件对应的目标文件类型;
判断所述脚本病毒特征库中是否存在与所述目标文件类型对应的目标病毒特征记录表;
如果是,则直接将所述未知脚本文件对应的目标单词序列串添加至所述目标病毒特征记录表中;
如果否,则创建所述目标文件类型对应的目标病毒特征记录表,并在创建完成后将所述目标单词序列串添加至所述目标病毒特征记录表中。
10.一种脚本病毒检测系统,其特征在于,包括:
获取模块,用于获取待检测脚本文件;
生成模块,用于对所述待检测脚本文件中的执行语句进行词法分析,获得目标单词序列串;
匹配模块,用于在预设的脚本病毒特征库中查询是否存在与所述目标单词序列串匹配的病毒记录;其中,所述脚本病毒特征库用于存储预先收集的已知脚本病毒文件函数调用特征的单词序列串;
判定模块,用于若在所述脚本病毒特征库中查询到与所述目标单词序列串匹配的病毒记录,则将所述待检测脚本文件判定为脚本病毒文件。
11.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至9任一项所述脚本病毒检测方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述脚本病毒检测方法的步骤。
CN202011375873.2A 2020-11-30 2020-11-30 一种脚本病毒检测方法、系统及电子设备和存储介质 Pending CN112307478A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011375873.2A CN112307478A (zh) 2020-11-30 2020-11-30 一种脚本病毒检测方法、系统及电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011375873.2A CN112307478A (zh) 2020-11-30 2020-11-30 一种脚本病毒检测方法、系统及电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN112307478A true CN112307478A (zh) 2021-02-02

Family

ID=74487508

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011375873.2A Pending CN112307478A (zh) 2020-11-30 2020-11-30 一种脚本病毒检测方法、系统及电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112307478A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112866291A (zh) * 2021-03-03 2021-05-28 哈尔滨安天科技集团股份有限公司 一种威胁处置脚本的生成方法、装置和计算机可读介质
CN113032779A (zh) * 2021-02-04 2021-06-25 中国科学院软件研究所 一种基于行为参数布尔表达式规则的多行为联合匹配方法和装置
CN113051569A (zh) * 2021-03-31 2021-06-29 深信服科技股份有限公司 一种病毒检测方法、装置、电子设备及存储介质
CN113761521A (zh) * 2021-09-02 2021-12-07 恒安嘉新(北京)科技股份公司 一种基于机器学习的脚本文件检测方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983295A (zh) * 2005-12-12 2007-06-20 北京瑞星国际软件有限公司 病毒识别方法及装置
CN103559447A (zh) * 2013-11-15 2014-02-05 北京奇虎科技有限公司 一种基于病毒样本特征的检测方法、检测装置及检测系统
CN105488399A (zh) * 2014-12-08 2016-04-13 哈尔滨安天科技股份有限公司 一种基于程序关键字调用序列的脚本病毒检测方法及系统
CN106909843A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种计算机病毒的检测方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1983295A (zh) * 2005-12-12 2007-06-20 北京瑞星国际软件有限公司 病毒识别方法及装置
CN103559447A (zh) * 2013-11-15 2014-02-05 北京奇虎科技有限公司 一种基于病毒样本特征的检测方法、检测装置及检测系统
CN105488399A (zh) * 2014-12-08 2016-04-13 哈尔滨安天科技股份有限公司 一种基于程序关键字调用序列的脚本病毒检测方法及系统
CN106909843A (zh) * 2015-12-22 2017-06-30 北京奇虎科技有限公司 一种计算机病毒的检测方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032779A (zh) * 2021-02-04 2021-06-25 中国科学院软件研究所 一种基于行为参数布尔表达式规则的多行为联合匹配方法和装置
CN113032779B (zh) * 2021-02-04 2024-01-02 中国科学院软件研究所 一种基于行为参数布尔表达式规则的多行为联合匹配方法和装置
CN112866291A (zh) * 2021-03-03 2021-05-28 哈尔滨安天科技集团股份有限公司 一种威胁处置脚本的生成方法、装置和计算机可读介质
CN112866291B (zh) * 2021-03-03 2023-02-28 安天科技集团股份有限公司 一种威胁处置脚本的生成方法、装置和计算机可读介质
CN113051569A (zh) * 2021-03-31 2021-06-29 深信服科技股份有限公司 一种病毒检测方法、装置、电子设备及存储介质
CN113051569B (zh) * 2021-03-31 2024-05-28 深信服科技股份有限公司 一种病毒检测方法、装置、电子设备及存储介质
CN113761521A (zh) * 2021-09-02 2021-12-07 恒安嘉新(北京)科技股份公司 一种基于机器学习的脚本文件检测方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN112307478A (zh) 一种脚本病毒检测方法、系统及电子设备和存储介质
CN107145445B (zh) 软件自动化测试的报错日志的自动分析方法和系统
CN111639337B (zh) 一种面向海量Windows软件的未知恶意代码检测方法及系统
CN106843840B (zh) 一种基于相似度分析的源代码版本演化注释复用方法
CN111400719A (zh) 基于开源组件版本识别的固件脆弱性判别方法及系统
CN115033894B (zh) 一种基于知识图谱的软件组件供应链安全检测方法及装置
US11263062B2 (en) API mashup exploration and recommendation
CN103544298A (zh) 组件的日志分析方法和分析装置
KR101696694B1 (ko) 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치
CN104134019A (zh) 检测脚本病毒的方法和装置
CN101895517A (zh) 一种脚本语义提取方法和提取装置
KR101461051B1 (ko) 웹 기능 분석을 통한 악성 코드 탐지방법 및 그 기록매체
CN109670317B (zh) 一种基于原子控制流图的物联网设备继承性漏洞挖掘方法
CN103838865A (zh) 用于挖掘时效性种子页的方法及装置
RU2583712C2 (ru) Система и способ обнаружения вредоносных файлов определенного типа
CN110727436A (zh) 操作界面的脚本执行方法、装置、终端设备及存储介质
CN112182569A (zh) 一种文件识别方法、装置、设备及存储介质
CN114880672A (zh) 基于静态污点分析的二进制污点型漏洞检测方法及系统
CN110032366B (zh) 一种代码定位方法及装置
CN101515318B (zh) 一种识别vbs网页木马的方法和装置
CN109446809B (zh) 一种恶意程序的识别方法及电子设备
CN113901459A (zh) 固件内部二进制程序脆弱性发现方法及装置
CN113032779B (zh) 一种基于行为参数布尔表达式规则的多行为联合匹配方法和装置
CN116954701B (zh) 一种基于血缘关系的二进制组件检测方法及系统
CN114328149B (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