CN117540385B - 脚本文件的监测方法、系统及存储介质 - Google Patents
脚本文件的监测方法、系统及存储介质 Download PDFInfo
- Publication number
- CN117540385B CN117540385B CN202410030534.2A CN202410030534A CN117540385B CN 117540385 B CN117540385 B CN 117540385B CN 202410030534 A CN202410030534 A CN 202410030534A CN 117540385 B CN117540385 B CN 117540385B
- Authority
- CN
- China
- Prior art keywords
- virus
- current
- api
- feature
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 119
- 238000012544 monitoring process Methods 0.000 title claims abstract description 36
- 241000700605 Viruses Species 0.000 claims abstract description 565
- 230000008569 process Effects 0.000 claims abstract description 43
- 238000001514 detection method Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 10
- 230000003068 static effect Effects 0.000 claims description 8
- 238000012163 sequencing technique Methods 0.000 abstract description 3
- 230000006399 behavior Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 12
- 230000009471 action Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000005067 remediation Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种脚本文件的监测方法、系统及存储介质,监测方法包括:获取当前调用API的API特征,作为当前API特征;获取预设的病毒特征序列,排序首位的病毒特征为当前匹配对象;将当前API特征与各条病毒特征序列中的当前匹配对象相匹配;若当前API特征匹配成功,且当前匹配对象非任一病毒特征序列中末位位置的病毒特征,则将当前匹配对象的下一位病毒特征作为当前匹配对象;若当前API特征匹配成功,且当前匹配对象为任一病毒特征序列的中末位位置的病毒特征,确定为恶意脚本。待检测脚本在运行过程中,当前所调用的API特征与病毒特征序列相匹配,从而监测脚本文件是否为恶意文件,进而可以在病毒行为真正发生前拦截病毒行为。
Description
技术领域
本申请实施例涉及病毒查杀的技术领域,尤其涉及一种脚本文件的监测方法、系统及存储介质。
背景技术
随着信息技术的快速发展,各类恶意文件也越来越多,例如恶意的脚本文件,其以某种方式引入目标计算机后会造成损害,一般合并有以下行为:强制安装、浏览器劫持、窃取、修改用户数据、恶意收集用户信息、恶意捆绑及其他侵犯用户知情权等,这些恶意行为严重侵犯用户合法权益,为用户带来经济或其他形式的利益损失。
相关技术中,目前的行为监控引擎多采用关键点异常结果检测的手段,然而采取异常结果捕获和检测的手段,不能够在病毒行为真正发生前,拦截病毒行为,处于事后补救的手段。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种脚本文件的监测方法及相关装置,监测方法能够监测脚本文件,以能够在病毒行为真正发生前拦截病毒行为。
第一方面,本申请实施例提供了一种脚本文件的监测方法,所述监测方法包括:
获取待检测脚本在运行过程中当前调用API的API特征,作为当前API特征;
获取预设的病毒特征序列,其中所述病毒特征序列包括按预设排序规则进行排序的多个病毒特征,且排序首位的病毒特征为当前匹配对象;
将所述当前API特征与各条所述病毒特征序列中的当前匹配对象相匹配;
若各条所述病毒特征序列的当前匹配对象与所述当前API特征均未匹配成功,则获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,并返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象非所述任一病毒特征序列中末位位置的病毒特征,则将所述任一病毒特征序列的当前匹配对象的下一位病毒特征作为当前匹配对象,且获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象为所述任一病毒特征序列的中末位位置的病毒特征,则确定所述待检测脚本为恶意脚本。
根据本发明的一些实施例,所述将所述当前API特征与各条所述病毒特征序列中的当前匹配对象相匹配,包括:
获取所述当前API特征对应的API标识,作为当前API标识;
根据所述当前API标识,在所述病毒特征序列中选择部分条病毒特征序列的当前匹配对象;
将所述当前API特征与选择的部分条病毒特征序列的当前匹配对象相匹配。
根据本发明的一些实施例,所述根据所述当前API标识,在所述病毒特征序列中选择部分条病毒特征序列的当前匹配对象,包括:
获取预先设置的目标哈希表,其中,各条所述病毒特征序列的各病毒特征的病毒信息存储于所述目标哈希表,且调用相同API的病毒特征的病毒信息对应于同一API标识;所述病毒信息至少包括所述病毒特征在病毒特征序列中的位置;
在所述目标哈希表中,选择所述当前API标识对应的病毒信息作为备选病毒信息;
根据备选病毒信息指示的位置,确定所述部分条病毒特征序列的当前匹配对象。
根据本发明的一些实施例,所述根据备选病毒信息指示的位置,确定所述部分条病毒特征序列的当前匹配对象,包括:
获取预先设置的规则状态表,所述规则状态表用于记录各条所述病毒特征序列的当前匹配对象在各自病毒特征序列中的位置;
确定所述规则状态表记录的位置和所述备选病毒信息指示的位置中的相同位置;
将所述相同位置对应的当前匹配对象,确定为所述部分条病毒特征序列的当前匹配对象。
根据本发明的一些实施例,所述将所述相同位置对应的当前匹配对象,确定为所述部分条病毒特征序列的当前匹配对象之后,还包括:
使用所述任一病毒特征序列的当前匹配对象的下一位病毒特征的位置,对所述规则状态表中所述任一病毒特征序列的当前匹配对象的位置进行更新。
根据本发明的一些实施例,所述目标哈希表中的病毒信息还包括病毒特征;所述将所述当前API特征与选择的部分条病毒特征序列的当前匹配对象相匹配,包括:
在所述目标哈希表中,查找所述部分条病毒特征序列的当前匹配对象;
将所述当前API特征分别与所述部分条病毒特征序列的当前匹配对象进行匹配。
根据本发明的一些实施例,所述目标哈希表中的病毒信息还包括病毒特征的匹配方法;所述将所述当前API特征与选择的部分条病毒特征序列的当前匹配对象相匹配,包括:
在所述目标哈希表中,查找所述部分条病毒特征序列的当前匹配对象对应的匹配方法;
分别使用各查找到的匹配方法,对所述当前API特征与各所述部分条病毒特征序列的当前匹配对象相匹配。
根据本发明的一些实施例,所述目标哈希表中的所述病毒信息还包括所述病毒特征归属的病毒特征序列的序列标识;
所述方法还包括:
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象为所述任一病毒特征序列中末位位置的病毒特征,在所述目标哈希表的病毒信息中,查找所述任一病毒特征序列的当前匹配对象对应的目标序列标识;
展示所述目标序列标识,和/或,展示所述目标序列标识对应的病毒特征序列。
根据本发明的一些实施例,所述获取预设的病毒特征序列,包括:
获取预设的规则数据库,所述规则数据库包括多条病毒特征序列;
基于待检测脚本的类型从所述规则数据库中调用至少一条所述病毒特征序列。
根据本发明的一些实施例,所述获取待检测脚本在运行过程中当前调用API的API特征,作为当前API特征之后,还包括:
若所述当前API特征为二次执行代码,则将所述待检测脚本推送至静态检测引擎,以确定所述待检测脚本是否为恶意脚本;
若所述当前API特征不为二次执行代码,则将所述待检测脚本推送至单个API检测引擎,以确定所述待检测脚本是否为恶意脚本;
若所述单个API检测引擎确定所述待检测脚本不为恶意脚本,则执行所述获取至少一条预设的病毒特征序列的步骤。
第二方面,本申请实施例提供了一种脚本文件的监测系统,包括:
捕获单元,获取待检测脚本在运行过程中当前调用API的API特征,作为当前API特征;以及,获取预设的病毒特征序列,其中所述病毒特征序列包括按预设排序规则进行排序的多个病毒特征,且排序首位的病毒特征为当前匹配对象;
匹配单元,将所述当前API特征与各条所述病毒特征序列中的当前匹配对象相匹配;
判断单元,若各条所述病毒特征序列的当前匹配对象与所述当前API特征均未匹配成功,则获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,并返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象非所述任一病毒特征序列中末位位置的病毒特征,则将所述任一病毒特征序列的当前匹配对象的下一位病毒特征作为当前匹配对象,且获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象为所述任一病毒特征序列的中末位位置的病毒特征,则确定所述待检测脚本为恶意脚本。
第三方面,本申请实施例提供了一种脚本文件的监测系统,包括存储器与中央处理器,其中:
存储器,用于存储可被所述中央处理器执行的程序和/或指令;
中央处理器,所述中央处理器被配置为执行所述程序和/或指令,以实现如上述的监测方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序和/或指令,所述程序和/或所述指令被中央处理器执行时实现如上述的监测方法。
从以上技术方案可以看出,本申请实施例合并有以下优点:
1、每捕获一个API特征与各条病毒特征序列的当前匹配对象相匹配,若一条病毒特征序列的各个病毒特征均与对应的API特征相匹配,确定捕获的API特征序列中含有一条病毒特征序列,或者说,确定一条病毒特征序列为捕获的API特征序列的子序列,从而确定待检测脚本为恶意脚本文件。其中,各条病毒特征序列(一条病毒特征序列可以理解为一种病毒)由多个病毒特征组成,且各个病毒特征代表一个行为,由此,多个行为确定出一个病毒。因此,在本申请实施例中,若捕获的API特征序列中含有一条病毒特征序列,说明待检测脚本在运行过程中至少含有一条病毒特征序列对应的各个行为,待检测脚本确定为恶意文件。由此可见,相比于采用单点检测的手段对某些行为进行检测,只能对单个行为进行检测,例如远程下载文件等,本申请通过病毒特征序列能够对由多个行为组成的病毒进行检测。
2、相比于采用关键点异常结果检测脚本文件,只能采用事后补救的手段。在本申请实施例中,待检测脚本在运行过程中,通过实时捕获脚本文件在运行中所调用的API特征,并与病毒特征序列相匹配,从而监测脚本文件是否为恶意文件。因此,在检测到待检测脚本为恶意文件后,可以在病毒行为真正发生前,拦截病毒行为,而不是现有技术中只能采用事后补救的手段。
附图说明
下面结合附图和实施例对本发明做进一步的说明,其中:
图1为本申请实施例中脚本文件的监测方法的流程示意图;
图2为本申请实施例中当前匹配对象的一种获取流程示意图;
图3为本申请实施例中脚本文件的监测方法的部分流程示意图;
图4为本申请实施例中监测系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了更好的理解本申请实施例,下面先对本申请实施例涉及的一些专业术语进行介绍:
脚本文件:是用来承载解释性编程语言的代码的文件,解释性编程语言在运行时由解释器逐行解释为机器语言执行,无需经过提前的编译。由于解释性语言的灵活性和执行、编写成本低,成为众多编程爱好者的首选,尤其是受到需要经常更新的病毒编写者和病毒攻击和对抗者的青睐。
由于通过阅读脚本文件,可以清晰的明白脚本文件想要执行的操作,所以诞生了众多灵活多变且成本极低的混淆手段。通过混淆,使得阅读者无法明白代码的目的。混淆手段大致分为代码层次的混淆和逻辑层次的混淆。代码层次的混淆既通过加密,压缩,字符串的操作等手段,使得代码无法阅读。逻辑层次的混淆既通过执行无意义的代码,逻辑扁平化等,使得代码逻辑混乱,掩盖真正目的。解释器在执行过程中,对于代码级的混淆会在执行过程中逐步解开,直至最终的正确的代码,但是对于逻辑级的混淆,代码解释器仍然会按照混淆后的逻辑执行。
二次执行:是解释性语言常用的手段,可以将一段字符串作为代码执行,通过这种机制,可以最大限度的将需要执行的代码混淆。脚本文件的混淆手段极大的增加了脚本病毒的检测难度和成本。
同时,解释性语言也是实施无文件攻击的重要手段之一,通过启动解释器执行一行行的代码,无需落地文件,即可实现病毒行为。
脚本在执行过程中,除了自身的逻辑计算,还需要调用系统组件的api来执行真正的、对系统产生影响的行为。
脚本执行的实时监控通过在脚本执行过程中,实时捕获脚本执行的代码,并对这些代码进行分析,检测是否为病毒行为。
目标哈希表:一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。散列表(Hash table,也叫目标哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。
本申请实施例提供的监测方法可以是终端设备执行,包括但不限于:智能手机、平板电脑、笔记本电脑等设备。
或者,可以是芯片或者芯片系统执行,该芯片或者芯片系统可以自动监测脚本文件是否为恶意脚本,该芯片可以内嵌在终端设备中。
或者,可以是服务器执行,包括但不限于:独立的物理服务器、多个物理服务器构成的服务器集群或者分布式系统、提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
或者,可以是其他设备执行,本申请在此不做限定。
参见图1,为本申请实施例提供的监测方法的流程示意图。监测方法包括步骤S101~S106。其中:
S101获取待检测脚本在运行过程中当前调用API的API特征,作为当前API特征。
在实际应用中,可以对被监控脚本文件执行的行为进行实时监控。被监控对象可能是某个指定的文件、进程或者操作系统。具体地,可以通过对解释器设置钩子函数,连续捕获解混淆之后的真实行为,即,连续获取所调用的API特征,从而得到一个捕获的API特征序列。另外,脚本文件在运行中还可以采用其他方式实时扫描当前所调用的API特征。
其中,Api调用扫描是对脚本文件调用的系统api和参数进行检测。
在一种具体实施方式中,利用解释器连续获取API特征,对此进行说明,脚本文件是用来承载解释性编程语言的代码的文件,解释性编程语言在运行时由解释器逐行解释为机器语言执行,无需经过提前的编译。由于通过阅读脚本文件,可以清晰的明白脚本文件想要执行的操作,所以诞生了众多灵活多变且成本极低的混淆手段。通过混淆,使得阅读者无法明白代码的目的。混淆手段大致分为代码层次的混淆和逻辑层次的混淆。代码层次的混淆既通过加密,压缩,字符串的操作等手段,使得代码无法阅读。逻辑层次的混淆既通过执行无意义的代码,逻辑扁平化等,使得代码逻辑混乱,掩盖真正目的。解释器在执行过程中,对于代码级的混淆会在执行过程中逐步解开,直至最终的正确的代码,但是对于逻辑级的混淆,解释器仍然会按照混淆后的逻辑执行,从而可以获取当前所调用的API特征。
S102获取预设的病毒特征序列,其中病毒特征序列包括按预设排序规则进行排序的多个病毒特征,且排序首位的病毒特征为当前匹配对象。
其中,病毒特征序列,是提取某个病毒的一些病毒特征,这些病毒特征按预设的排序规则,排序成该病毒的病毒特征序列。其中,各条病毒特征序列可以代表一种病毒,当然,若多条病毒特征序列的病毒特征均来自同一个病毒,但各条病毒特征序列中病毒特征或排序存在不同。
病毒特征序列的获取数量可能是一条病毒特征序列,该病毒特征序列可用于检测待检测脚本是否为对应的病毒文件;或者,病毒特征序列的获取数量可能是多条病毒特征序列,多条病毒特征序列用于检测待检测脚本是否为多种病毒文件中的一种。
需要说明的是,病毒特征序列中的各个病毒特征按先后顺序依次排列,其中,在首次匹配时,排在第一位置的病毒特征可以理解为该病毒特征序列中的当前匹配对象。当然,若第一位置的病毒特征与当前API特征相匹配之后,则第二位置的病毒特征替代为第一位置的病毒特征,即为该病毒特征序列的当前匹配对象。如此下去,连续获取的当前API特征依次与病毒特征序列中各位置的病毒特征相匹配。需要说明的是,若病毒特征序列是从病毒库读取的,读取到病毒特征序列后可以并非从该序列的首个病毒特征进行匹配,若从该序列的某个病毒特征开始匹配,则该病毒特征作为首个病毒特征,且该病毒特征之后的整条序列作为本步骤中的病毒特征序列。
S103将当前API特征与各条病毒特征序列中的当前匹配对象相匹配。
具体实现中,解释器在执行脚本文件过程中,利用钩子函数获取当前所调用的API特征,并作为当前API特征。在捕获到当前所调用的API特征后,将当前所调用的API特征依次或同时与各条病毒特征序列的当前匹配对象相匹配,若匹配上,该当前API特征确定为是病毒特征序列中的病毒特征,反之,若未匹配上,该当前API特征为正常API特征。如此下去,每捕获到一个API特征,均与各条病毒特征序列中的当前匹配对象进行匹配。
其中,当前API特征与当前匹配对象的匹配内容,与具体场景以及当前匹配对象的实际内容相关。例如,当前匹配对象的匹配特征参数1,或,当前匹配对象的匹配特征参数1与特征参数2。
S104若各条病毒特征序列的当前匹配对象与当前API特征均未匹配成功,则获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,并返回执行将当前API特征分别与各条病毒特征序列中的当前匹配对象相匹配的步骤。
具体说明,当前API特征在匹配过程中,若各条病毒特征序列的当前匹配对象均与当前API特征未匹配成功,因此,确定该API特征不属于病毒特征序列中的病毒特征,该API特征匹配结束,且各条病毒特征序列的当前匹配对象保持不变。同时,待检测脚本在运行过程中下一调用API的API特征作为当前API特征,返回到步骤S103,将当前API特征输入匹配单元,从而与各条病毒特征序列中的当前匹配对象相匹配,如此下去,连续对捕获的API特征进行匹配。
需要补充的是,本申请并不限定前一个API特征匹配完成后,才进行下一个API特征进行匹配。在实际应用中,编码器利用钩子函数每捕获一个API特征,该API特征进入匹配单元进行与各条病毒特征序列的当前匹配对象相匹配,因此,前一个API特征可能还在匹配过程中,后一个API特征按顺序也进入匹配单元。
S105若任一病毒特征序列的当前匹配对象与当前API特征匹配成功,且当前匹配对象非任一病毒特征序列中末位位置的病毒特征,则将任一病毒特征序列的当前匹配对象的下一位病毒特征作为当前匹配对象,且获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,返回执行将当前API特征分别与各条病毒特征序列中的当前匹配对象相匹配的步骤。
其中,病毒特征序列中的各个病毒特征按先后顺序依次排列,其中,排在第一位置的病毒特征可以理解为该病毒特征序列中的当前匹配对象。当然,若第一位置的病毒特征与当前API特征相匹配,则第二位置的病毒特征替代为第一位置的病毒特征,即为该病毒特征序列的当前匹配对象。如此下去,直至末位位置的病毒特征作为当前匹配对象,用于与捕获的API特征相匹配。
具体说明,当前API特征在匹配过程中,若其中一条或多条病毒特征序列的当前匹配对象与当前API特征匹配成功,因此,确定该API特征属于病毒特征序列中的病毒特征,该API特征匹配完成。在确定当前API特征匹配成功后,判断与当前API特征匹配成功的病毒特征是否为病毒特征序列的末位位置的病毒特征。若确定该病毒特征不是末位位置的病毒特征,该病毒特征下一个位置的病毒特征更新为病毒特征序列的当前匹配对象,以用于与下一个捕获的API特征进行匹配。更确切地说,待检测脚本在运行过程中下一调用API的API特征作为当前API特征,返回到步骤S103,当前API特征输入匹配单元,从而与更新后的病毒特征序列中的当前匹配对象相匹配,如此下去,连续对捕获的API特征进行匹配。
S106若任一病毒特征序列的当前匹配对象与当前API特征匹配成功,且当前匹配对象为任一病毒特征序列的中末位位置的病毒特征,则确定待检测脚本为恶意脚本。
具体说明,当前API特征在匹配过程中,若其中一条或多条病毒特征序列的当前匹配对象与当前API特征匹配成功,因此,确定该API特征属于病毒特征序列中的病毒特征,该API特征匹配完成。在确定当前API特征匹配成功后,判断与当前API特征匹配成功的病毒特征是否为病毒特征序列的末位位置的病毒特征。若确定该病毒特征序列是末位位置的病毒特征,因此,该病毒特征序列的各个病毒特征匹配完成,即,捕获的API特征序列含有一条病毒特征序列,待检测脚本确定为恶意脚本,结束该脚本的运行。
采用上述步骤S101至步骤S106,每捕获一个API特征与各条病毒特征序列的当前匹配对象相匹配,若一条病毒特征序列的各个病毒特征均与对应的API特征相匹配,确定捕获的API特征序列中含有一条病毒特征序列,或者说,确定一条病毒特征序列为捕获的API特征序列的子序列,从而确定待检测脚本为恶意脚本。其中,各条病毒特征序列(一条病毒特征序列可以理解为一种病毒)由多个病毒特征组成,且各个病毒特征代表一个行为,由此,多个行为确定出一个病毒。因此,在本申请中,若捕获的API特征序列中含有一条病毒特征序列,说明待检测脚本在运行过程中至少含有一条病毒特征序列对应的各个行为,待检测脚本确定为恶意文件。由此可见,相比于采用单点检测的手段对某些行为进行检测,只能对单个行为进行检测,例如远程下载文件等,本申请通过病毒特征序列能够对由多个行为组成的病毒进行检测。
另外,相比于采用关键点异常结果检测脚本文件,只能采用事后补救的手段。在本申请中,待检测脚本在运行过程中,通过实时捕获脚本文件在运行中所调用的API特征,并与病毒特征序列相匹配,从而监测脚本文件是否为恶意文件。因此,在检测到待检测脚本为恶意文件后,可以在病毒行为真正发生前,拦截病毒行为,而不是现有技术中只能采用事后补救的手段。
为了更快速地实现当前API特征与当前匹配对象相匹配,在一些实施例中,步骤S103将当前API特征与各条病毒特征序列中的当前匹配对象相匹配,包括:步骤A1-A3。
A1获取当前API特征对应的API标识,作为当前API标识。
其中,API标识可以理解为API特征的API名,但不限定API标识仅为API名,还可能是API特征的其他参数信息。
A2根据当前API标识,在病毒特征序列中选择部分条病毒特征序列的当前匹配对象。
其中,各个病毒特征也具有API名,因此,各条病毒特征序列的当前匹配对象具有对应的API名。
以及,部分条病毒特征序列,指的是一条病毒特征序列,也可能是多条病毒特征序列。
具体实现中,在获取当前API标识后,利用当前API标识与各条病毒特征序列的当前匹配对象的API标识相匹配,若两者标识一致,则选取与当前API标识相匹配的当前匹配对象,并作为当前API特征的匹配对象。其中,选取的当前匹配对象可能是一个病毒特征,也可能是多个病毒特征。
当然,若各条病毒特征序列的当前匹配对象的API标识均与当前API标识未匹配上,则当前API特征匹配结束,进入下一个API特征的匹配,如此快速完成当前API特征与各条病毒特征序列的当前匹配对象的匹配。
A3将当前API特征与选择的部分条病毒特征序列的当前匹配对象相匹配。
具体实现中,在选取与当前API标识相匹配的当前匹配对象后,将当前API 特征与步骤A2中选取的当前匹配对象相匹配,以确定当前API特征是否为病毒特征序列的一个病毒特征。
可以理解的是,相比于当前API特征直接与各条病毒特征序列的当前匹配对象进行匹配,由于特征之间匹配的内容较多,导致当前API特征与病毒特征序列的整体匹配速度较慢,基于上述问题,在本申请中步骤A2中,利用当前API特征的当前API标识与各条病毒特征序列的当前匹配对象的API标识相匹配,从而快速排除与当前API特征无法匹配上的当前匹配对象,选取出匹配成功概率较大的当前匹配对象,用于与当前API特征相匹配。因此,在步骤320中选取出的当前匹配对象的数量较少,从而保证当前API特征可以快速与选取出的当前匹配对象完成匹配,进而使当前API特征与病毒特征序列的整体匹配速度得到提高。
进一步地,步骤A2根据当前API标识,参照图1在病毒特征序列中选择部分条病毒特征序列的当前匹配对象,包括:步骤S201-A203。
S201获取预先设置的目标哈希表,其中,各条病毒特征序列的各病毒特征的病毒信息存储于目标哈希表,且调用相同API标识的病毒特征的病毒信息对应于同一API标识;病毒信息至少包括病毒特征在病毒特征序列中的位置。
其中,目标哈希表,是预先构造好的,具体说明,各条病毒特征序列由多个病毒特征组成,且各个病毒特征具有API名。目标哈希表以API名合并各条病毒特征序列的病毒特征的病毒信息,即,目标哈希表中的各个病毒特征与各条病毒特征序列中的病毒特征对应设置。目标哈希表参照如下:
表1
表2
其中,表2为表1的示意说明。结合表1与表2,API标识,可以指的是病毒特征的API名;位置标识,指的是当前匹配对象在病毒特征序列中的位置,各个病毒特征具有唯一的标识,以区分各条病毒特征序列的病毒特征。信息表中的内容,可以理解是病毒特征的病毒信息,例如API名、位置标识、匹配方法、序列标识等。
以及,调用相同API标识的病毒特征的病毒信息对应于同一API标识,具体说明,部分病毒特征的API名可能相同,该部分病毒特征的病毒信息存储于同一个信息表中。参照表1与表2,两个病毒特征的API标识均为API名1,该两个病毒特征的病毒信息存储于同一个信息表中。
S202在目标哈希表中,选择当前API标识对应的病毒信息作为备选病毒信息。
S203根据备选病毒信息指示的位置,确定部分条病毒特征序列的当前匹配对象。
结合步骤S202至步骤S203具体说明:在步骤S202中,在获取当前API特征的当前API标识后,当前API特征的当前API标识与目标哈希表中存储的API 标识相比对,从目标哈希表中找到与当前API标识一致的API标识,从而找到对应的信息表,进而找到对应的病毒信息,作为备选病毒信息。其中,备选病毒信息可能含有一个病毒特征的病毒信息,也可能含有多个病毒特征的病毒信息。当然,目标哈希表中可能未含有与当前API标识一致的API名,当前API特征匹配结束,进入下一个API特征的匹配。
在步骤S203中,在获取备选病毒信息后,且备选病毒信息含有对应病毒特征的位置信息。根据备选病毒信息中的位置信息与各条病毒特征序列的当前匹配对象相匹配,若两者位置信息一致,即为同一病毒特征,选取该当前匹配对象用于与当前API特征相匹配。当然,备用病毒信息的位置信息也可能与各条病毒特征序列的当前匹配对象未匹配上,停止当前API特征的匹配,进入下一个API特征的匹配。
结合表1与表2进一步说明,在步骤S202中获取两个病毒特征的位置标识(5, 3)、(6 ,4),该两个位置标识依次与各条病毒特征序列的当前匹配对象相比对。若其中一个当前匹配对象的位置标识刚好为位置标识(5, 3),因此,选取该当前匹配对象用于与当前API特征进行匹配。
可以理解的是,采用步骤S201至步骤S203进行当前匹配对象的选取,在获取当前API特征后,根据当前API特征的当前API标识从目标哈希表中快速找到对应病毒特征的病毒信息,从而快速找到对应病毒特征的位置标识。利用病毒特征的位置标识与各条病毒特征序列的当前匹配对象的位置标识相匹配,选取位置标识一致的当前匹配对象,以用于与当前API特征相匹配。由此可见,通过目标哈希表的设置,利用目标哈希表具有快速查找的特性,可以通过目标哈希表中病毒信息与各条病毒特征序列中的当前匹配对象相匹配,以快速选取出匹配成功概率较大的当前匹配对象,如此,提高当前API特征与病毒特征序列的整体匹配速度,进而提高当前API特征的检测速度。
另外,调用相同API标识的病毒特征的病毒信息对应于同一API标识,如上述目标哈希表所示:目标哈希表将API标识相同的病毒特征的病毒信息合并于同一个信息表,且将API标识不相同的病毒特征的病毒信息合并于不同的信息表。可以理解的是,当前API特征的当前API标识在与目标哈希表匹配过程中,匹配一次能够获取各个与当前API名相匹配的病毒特征的病毒信息。如此设置,字符串的匹配次数较少,匹配速度较快。
当然,代替上述目标哈希表的设置方式,目标哈希表将各个病毒特征的病毒信息分别合并于不同的信息表,此不详细说明。
在一些实施例中,步骤S203根据备选病毒信息指示的位置,确定部分条病毒特征序列的当前匹配对象,包括:步骤A31-A32。
A31获取预先设置的规则状态表,规则状态表用于记录各条病毒特征序列的当前匹配对象在各自病毒特征序列中的位置。
其中,为了方便描述方案,病毒特征在病毒特征序列中的位置通过位置标识示出,因此,各个当前匹配对象具有对应的位置标识。或者说,位置标识指的是当前匹配对象在病毒特征序列中的位置,且各个病毒特征具有唯一的标识。其中,规则状态表可以理解为一个数组,记录的是各条病毒特征序列中当前匹配对象的位置标识。
A32确定规则状态表记录的位置和备选病毒信息指示的位置中的相同位置。
其中,为了方便描述方案,病毒信息通过信息表进行示出,备选病毒信息指的是选取的信息表。
A33将相同位置对应的当前匹配对象,确定为部分条病毒特征序列的当前匹配对象。
结合步骤A32和步骤A33具体说明,首先,初始化所有病毒特征序列的状态,即,更新规则状态表,且各个病毒特征序列的当前匹配对象的位置标识按照增序排列。在步骤A32中,在获取备选病毒信息后,或者说,获取与当前API名相匹配的信息表(参照表1与表2),随后使用归并算法,依次比较当前所调用的规则状态表和信息表,获取两者之间相同的位置标识。在步骤A33中,在获取相同位置标识后,获取相同位置标识对应的当前匹配对象,该当前匹配对象用于与当前API特征进行匹配。
可以理解的是,在规则状态表中,仅需要使用位置标识,且无需使用链表缓存病毒特征序列和当前匹配对象的复杂结构,因此,仅需要缓存各条病毒特征序列的当前匹配对象的位置标识,并且在匹配过程中进行状态的跳转,极大地降低了本地缓存链表的复杂程度,提高匹配速度,降低占用内存。
在进一步实施例中,步骤A34将相同位置对应的当前匹配对象,确定为部分条病毒特征序列的当前匹配对象之后,还包括:
A34使用任一病毒特征序列的当前匹配对象的下一位病毒特征的位置,对规则状态表中任一病毒特征序列的当前匹配对象的位置进行更新。
具体实现中,若当前API特征与在步骤A33中确定的当前匹配对象匹配成功,更新规则状态表中与当前API特征匹配成功的当前匹配对象的位置标识,即,将与当前API特征匹配成功的当前匹配对象(病毒特征)的位置标识更新为其下一位病毒特征的位置标识,例如,若第一位置的病毒特征作为当前匹配对象与捕获的API特征匹配成功,在规则状态表中,该病毒特征的位置标识更换为第二位置的病毒特征的位置标识,此时,第二位置的病毒特征作为当前匹配对象;同理,若第二位置的病毒特征作为当前匹配对象与捕获的API特征匹配成功,在规则状态表中,该病毒特征的位置标识更换为第三位置的病毒特征的位置标识,此时,第二位置的病毒特征作为当前匹配对象,如此下去,病毒特征序列的各个病毒特征更新为当前匹配对象,以与捕获的API特征进行匹配。
其中,若规则状态表中位置标识刚好更新到一条病毒特征序列末位位置的病毒特征的位置标识,并且该位置标识对应的当前匹配对象与当前API特征匹配成功,则确定一条病毒特征序列的各个病毒特征匹配完成,从而确定待检测脚本为恶意文件,停止该脚本文件继续运行。
在更进一步实施例中,各个病毒特征对应的病毒特征序列具有唯一的id,以及,各个病毒特征在对应的病毒特征序列中具有匹配顺序,因此,各个病毒特征对应的病毒特征序列的id以及病毒特征在病毒特征序列中顺序的index相结合,从而使各个病毒特征具有唯一的位置标识。
需要说明的是,位置标识的计算方法中,最后有加一个index。这个index为病毒特征在其所属的病毒特征序列中的序列索引。若当前匹配对象与当前API特征匹配成功,需要匹配其下一个病毒特征,直接位置标识加1,就等于位置标识中的索引值加1,指向下一个病毒特征。
在一种可能实施例中,目标哈希表中的病毒信息还包括病毒特征;步骤A3将当前API特征与选择的部分条病毒特征序列的当前匹配对象相匹配,包括:步骤A311-A312。
A311在目标哈希表中,查找部分条病毒特征序列的当前匹配对象。
A312将当前API特征分别与部分条病毒特征序列的当前匹配对象进行匹配。
具体实现中,在步骤A311中,在比较备选病毒信息中的位置信息与病毒特征序列的当前匹配对象的位置信息后,获取相同的位置,更确切地说,确定出相同的位置标识,并作为目标标识。利用目标位置标识在目标哈希表所在的信息表,查找出与目标位置标识相匹配的当前匹配对象,即对应的病毒特征。在步骤A312中,在从目标哈希表中获取与目标位置标识相匹配的病毒特征以后,利用从目标哈希表中获取的病毒特征与当前API特征进行匹配,以判定当前API特征是否属于病毒特征序列中的一个病毒特征。由上可见,本申请方案通过目标哈希表的设置,选择的部分条病毒特征序列的当前匹配对象可以在目标哈希表中快速查询,以用于与当前API特征进行匹配。
在一种可能实施例中,目标哈希表中的病毒信息还包括病毒特征的匹配方法;步骤A3将当前API特征与选择的部分条病毒特征序列的当前匹配对象相匹配,包括:步骤A301-A302。
A301在目标哈希表中,查找部分条病毒特征序列的当前匹配对象对应的匹配方法。
其中,各条病毒特征序列是多个病毒特征的集合,每个病毒特征具有与API标识相匹配的匹配方法,因此,病毒特征序列又可以理解为多个匹配方法的序列,每个匹配方法刚好对应病毒特征序列的病毒特征,由此,病毒特征与API特征的匹配实质是匹配方法与API特征的匹配。以及,目标哈希表具有以API标识设置的信息表,且信息表合并上述的匹配方法(参照表1与表2)。
以及,匹配方法是一种针对行为的匹配方法,不同的匹配方法,其匹配的内容也不同,具体根据场景以及目标病毒特征的实际内容相关;或者说,匹配方法是一种执行程序,用于使API特征与病毒特征相匹配,此不详细说明。
A302分别使用各查找到的匹配方法,对当前API特征与各部分条病毒特征序列的当前匹配对象相匹配。
在具体实现中,在步骤A301中,在比较备选病毒信息中的位置信息与病毒特征序列的当前匹配对象的位置信息后,获取相同的位置,更确切地说,确定出相同的位置标识,并作为目标标识。利用目标位置标识在目标哈希表所在的信息表,查找出与目标位置标识相匹配的当前匹配对象的匹配方法。在步骤A302中,在从目标哈希表中获取与目标位置标识相匹配的匹配方法以后,利用从目标哈希表中获取的匹配方法与当前API特征进行匹配,以判定当前API特征是否属于病毒特征序列中的一个病毒特征。
可以理解的是,本申请通过引入病毒特征的匹配方法,API特征在与病毒特征序列的当前匹配对象在匹配过程中,相比于病毒特征直接与API特征相匹配,本申请利用匹配方法与API特征相匹配,匹配方法相比于病毒特征的整体结构较简单,API特征能够得到快速的匹配。
在一些实施例中,目标哈希表中的病毒信息还包括病毒特征归属的病毒特征序列的序列标识;
方法还包括:若任一病毒特征序列的当前匹配对象与当前API特征匹配成功,且当前匹配对象为任一病毒特征序列中末位位置的病毒特征,在目标哈希表的病毒信息中,查找任一病毒特征序列的当前匹配对象对应的目标序列标识。展示目标序列标识,和/或,展示目标序列标识对应的病毒特征序列。
具体实现中,若任一病毒特征序列的当前匹配对象与当前API特征匹配成功,且当前匹配对象为任一病毒特征序列中末位位置的病毒特征,由此可见,一条病毒特征序列的各个病毒特征均与捕获的API特征匹配完成。然后,基于上述匹配成功的当前匹配对象的API标识找到对应的信息表,从信息表获取该当前匹配对象对应的目标序列标识,展示目标序列标识,和/或,展示目标序列标识对应的病毒特征序列。
可以理解的是,信息表中合并规则的序列标识,序列标识指明了那条规则,位置标识与序列标识相结合,从而快速确定当前所调用的当前匹配对象是否为病毒特征序列最后一个病毒特征,由此可见,序列标识缩减了查找的时间。另外,当前匹配对象与当前API特征一旦匹配成功,可以快速输出序列标识和/或序列标识对应的病毒特征序列,以让用户知道脚本文件所属的病毒。
在一些实施例中,获取预设的病毒特征序列,包括:获取预设的规则数据库,规则数据库包括多条病毒特征序列。基于待检测脚本的类型从规则数据库中调用至少一条病毒特征序列。
其中,脚本文件的类型:Shell 脚本、Python 脚本、JavaScript 脚本与Perl 脚本等,不同类型的脚本,可能存在的病毒也不同,例如,Shell 脚本类型的脚本可能含有RA或RB病毒,JavaScript 脚本可能含有RB或RC病毒。
具体实现中,在待检测脚本运行过程中,需要判断待检测脚本的脚本类型。在获取病毒特征序列时,根据待检测脚本的类型从规则数据库中选取适配的病毒规则,例如,在规则数据库中选取规则RA与规则RB,但未选取规则数据库中的规则RC。因此,在步骤S103中,当前API特征仅与规则RA的当前匹配对象以及规则RC的当前匹配对象进行匹配。
可以理解的是,为了适配多种类型的脚本文件,监测系统需要设置较多数量的病毒特征序列,因此,每捕获一个API特征需要与较多数量的病毒特征序列的当前匹配对象进行匹配,API特征的匹配速度较慢,可能导致待检测脚本无法得到及时的监测。基于上述问题,病毒特征序列采用上述的获取方式,避免了每次调用较多的病毒特征序列与捕获的API特性进行匹配,保证了API特征的匹配速度。
在一些实施例中,参照图3,步骤S101获取待检测脚本在运行过程中当前调用API的API特征,作为当前API特征之后,还包括:
S301若当前API特征为二次执行代码,则将待检测脚本推送至静态检测引擎,以确定待检测脚本是否为恶意脚本;
S302若当前API特征不为二次执行代码,则将待检测脚本推送至单个API检测引擎,以确定待检测脚本是否为恶意脚本;
S303若单个API检测引擎确定待检测脚本不为恶意脚本,则执行获取至少一条预设的病毒特征序列的步骤
具体实现中,待检测脚本在运行过程中,每获取一个API特征,首先判断API特征的来源,若API特征为二次执行代码,API特征推送至静态检测引擎,静态检测引擎通过检测API特征判断待检测脚本是否为恶意脚本文件;若API特征不为二次执行代码,API特征推送至单个API检测引擎,单个API检测引擎通过检测API特征判断待检测脚本是否为恶意脚本文件。若单个API检测引擎确定待检测脚本不为恶意脚本文件,则执行图1中S102获取至少一条预设的病毒特征序列的步骤及后续步骤,判断脚本文件是否含有由一系列连续的行为形成的病毒,从而判定待检测脚本是否为恶意脚本文件。
可以理解的是,通过静态检测引擎以及单个API检测引擎的设置,进一步提高了实时检测方法的检测能力。进一步具体说明,通过静态检测引擎的设置,捕获解混淆之后的二次执行代码,经过了代码级的解混淆,代码更加明确且稳定,可以通过静态检测引擎来检测,简化特征的提取和数量。以及,通过单个API检测引擎的设置,针对敏感的单个api命令进行检测,比如下载文件,执行PE文件等行为,可以单独的使用对应的单个API检测引擎来进行检测,不一定非要是病毒特征序列来检测。
本申请还公开了一种脚本文件的监测系统,包括:
捕获单元,获取待检测脚本在运行过程中当前调用API的API特征,作为当前API特征;以及,获取预设的病毒特征序列,其中所述病毒特征序列包括按预设排序规则进行排序的多个病毒特征,且排序首位的病毒特征为当前匹配对象;
匹配单元,将所述当前API特征与各条所述病毒特征序列中的当前匹配对象相匹配;
判断单元,若各条所述病毒特征序列的当前匹配对象与所述当前API特征均未匹配成功,则获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,并返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象非所述任一病毒特征序列中末位位置的病毒特征,则将所述任一病毒特征序列的当前匹配对象的下一位病毒特征作为当前匹配对象,且获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象为所述任一病毒特征序列的中末位位置的病毒特征,则确定所述待检测脚本为恶意脚本。
本申请还公开了一种脚本文件的监测系统,包括存储器与中央处理器,其中:存储器用于存储可被中央处理器执行的程序和/或指令;中央处理器被配置为执行程序和/或指令,以实现上述的监测方法。所述中央处理器执行所述计算机程序时实现图1-3所示实施例中服务器所执行的操作,具体此处不再赘述。
其中,图4是本申请实施例提供的一种脚本文件的监测系统的结构示意图,该脚本文件的监测系统可以包括一个或一个以上中央处理器(central processing units,CPU)401和存储器405,该存储器405中存储有一个或一个以上的应用程序或数据。
其中,存储器405可以是易失性存储或持久存储。存储在存储器405的程序可以包括一个或一个以上模块,每个模块可以包括对脚本文件的监测系统中的一系列指令操作。更进一步地,中央处理器401可以设置为与存储器405通信,在脚本文件的监测系统400上执行存储器405中的一系列指令操作。
脚本文件的监测系统400还可以包括一个或一个以上电源402,一个或一个以上有线或无线网络接口403,一个或一个以上输入输出接口404,和/或,一个或一个以上操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等。
该中央处理器401可以执行前述图1-3所示实施例中脚本文件的监测系统所执行的操作,具体此处不再赘述。
本申请还公开了一种计算机可读存储介质,计算机可读存储介质存储有程序和/或指令,程序和/或指令被中央处理器执行时实现上述的监测方法。所述计算机程序被中央处理器执行时实现以下步骤:
获取待检测脚本在运行过程中当前调用API的API特征,作为当前API特征;
获取预设的病毒特征序列,其中所述病毒特征序列包括按预设排序规则进行排序的多个病毒特征,且排序首位的病毒特征为当前匹配对象;
将所述当前API特征与各条所述病毒特征序列中的当前匹配对象相匹配;
若各条所述病毒特征序列的当前匹配对象与所述当前API特征均未匹配成功,则获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,并返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象非所述任一病毒特征序列中末位位置的病毒特征,则将所述任一病毒特征序列的当前匹配对象的下一位病毒特征作为当前匹配对象,且获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象为所述任一病毒特征序列的中末位位置的病毒特征,则确定所述待检测脚本为恶意脚本。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述匹配方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和匹配方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述匹配方法的步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,reAd-only memory)、随机存取存储器(RAM,rAndom Access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (13)
1.一种脚本文件的监测方法,其特征在于,所述监测方法包括:
实时获取待检测脚本在运行过程中当前调用API的API特征,作为当前API特征;
实时获取预设的病毒特征序列,其中所述病毒特征序列包括按预设排序规则进行排序的多个病毒特征,且排序首位的病毒特征为当前匹配对象;
将所述当前API特征与各条所述病毒特征序列中的当前匹配对象相匹配;
若各条所述病毒特征序列的当前匹配对象与所述当前API特征均未匹配成功,则获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,并返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象非所述任一病毒特征序列中末位位置的病毒特征,则将所述任一病毒特征序列的当前匹配对象的下一位病毒特征作为当前匹配对象,且获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象为所述任一病毒特征序列的中末位位置的病毒特征,则确定所述待检测脚本为恶意脚本。
2.根据权利要求1所述的监测方法,其特征在于,所述将所述当前API特征与各条所述病毒特征序列中的当前匹配对象相匹配,包括:
获取所述当前API特征对应的API标识,作为当前API标识;
根据所述当前API标识,在所述病毒特征序列中选择部分条病毒特征序列的当前匹配对象;
将所述当前API特征与选择的部分条病毒特征序列的当前匹配对象相匹配。
3.根据权利要求2所述的监测方法,其特征在于,所述根据所述当前API标识,在所述病毒特征序列中选择部分条病毒特征序列的当前匹配对象,包括:
获取预先设置的目标哈希表,其中,各条所述病毒特征序列的各病毒特征的病毒信息存储于所述目标哈希表,且调用相同API的病毒特征的病毒信息对应于同一API标识;所述病毒信息至少包括所述病毒特征在病毒特征序列中的位置;
在所述目标哈希表中,选择所述当前API标识对应的病毒信息作为备选病毒信息;
根据备选病毒信息指示的位置,确定所述部分条病毒特征序列的当前匹配对象。
4.根据权利要求3所述的监测方法,其特征在于,所述根据备选病毒信息指示的位置,确定所述部分条病毒特征序列的当前匹配对象,包括:
获取预先设置的规则状态表,所述规则状态表用于记录各条所述病毒特征序列的当前匹配对象在各自病毒特征序列中的位置;
确定所述规则状态表记录的位置和所述备选病毒信息指示的位置中的相同位置;
将所述相同位置对应的当前匹配对象,确定为所述部分条病毒特征序列的当前匹配对象。
5.根据权利要求4所述的监测方法,其特征在于,所述将所述相同位置对应的当前匹配对象,确定为所述部分条病毒特征序列的当前匹配对象之后,还包括:
使用所述任一病毒特征序列的当前匹配对象的下一位病毒特征的位置,对所述规则状态表中所述任一病毒特征序列的当前匹配对象的位置进行更新。
6.根据权利要求3所述的监测方法,其特征在于,所述目标哈希表中的病毒信息还包括病毒特征;所述将所述当前API特征与选择的部分条病毒特征序列的当前匹配对象相匹配,包括:
在所述目标哈希表中,查找所述部分条病毒特征序列的当前匹配对象;
将所述当前API特征分别与所述部分条病毒特征序列的当前匹配对象进行匹配。
7.根据权利要求3所述的监测方法,其特征在于,所述目标哈希表中的病毒信息还包括病毒特征的匹配方法;所述将所述当前API特征与选择的部分条病毒特征序列的当前匹配对象相匹配,包括:
在所述目标哈希表中,查找所述部分条病毒特征序列的当前匹配对象对应的匹配方法;
分别使用各查找到的匹配方法,对所述当前API特征与各所述部分条病毒特征序列的当前匹配对象相匹配。
8.根据权利要求3所述的监测方法,其特征在于,所述目标哈希表中的所述病毒信息还包括所述病毒特征归属的病毒特征序列的序列标识;
所述方法还包括:
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象为所述任一病毒特征序列中末位位置的病毒特征,在所述目标哈希表的病毒信息中,查找所述任一病毒特征序列的当前匹配对象对应的目标序列标识;
展示所述目标序列标识,和/或,展示所述目标序列标识对应的病毒特征序列。
9.根据权利要求1所述的监测方法,其特征在于,所述获取预设的病毒特征序列,包括:
获取预设的规则数据库,所述规则数据库包括多条病毒特征序列;
基于待检测脚本的类型从所述规则数据库中调用至少一条所述病毒特征序列。
10.根据权利要求1所述的监测方法,其特征在于,所述获取待检测脚本在运行过程中当前调用API的API特征,作为当前API特征之后,还包括:
若所述当前API特征为二次执行代码,则将所述待检测脚本推送至静态检测引擎,以确定所述待检测脚本是否为恶意脚本;
若所述当前API特征不为二次执行代码,则将所述待检测脚本推送至单个API检测引擎,以确定所述待检测脚本是否为恶意脚本;
若所述单个API检测引擎确定所述待检测脚本不为恶意脚本,则执行所述获取至少一条预设的病毒特征序列的步骤。
11.一种脚本文件的监测系统,其特征在于,包括:
捕获单元,获取待检测脚本在运行过程中当前调用API的API特征,作为当前API特征;以及,获取预设的病毒特征序列,其中所述病毒特征序列包括按预设排序规则进行排序的多个病毒特征,且排序首位的病毒特征为当前匹配对象;
匹配单元,将所述当前API特征与各条所述病毒特征序列中的当前匹配对象相匹配;
判断单元,若各条所述病毒特征序列的当前匹配对象与所述当前API特征均未匹配成功,则获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,并返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象非所述任一病毒特征序列中末位位置的病毒特征,则将所述任一病毒特征序列的当前匹配对象的下一位病毒特征作为当前匹配对象,且获取待检测脚本在运行过程中下一调用API的API特征作为当前API特征,返回执行所述将所述当前API特征分别与各条所述病毒特征序列中的当前匹配对象相匹配的步骤;
若任一病毒特征序列的当前匹配对象与所述当前API特征匹配成功,且所述当前匹配对象为所述任一病毒特征序列的中末位位置的病毒特征,则确定所述待检测脚本为恶意脚本。
12.一种脚本文件的监测系统,其特征在于,包括存储器与中央处理器,其中:
存储器,用于存储可被所述中央处理器执行的程序和/或指令;
中央处理器,所述中央处理器被配置为执行所述程序和/或指令,以实现如权利要求1至9中任意一项所述的监测方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序和/或指令,所述程序和/或所述指令被中央处理器执行时实现如权利要求1至9中任一项所述的监测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410030534.2A CN117540385B (zh) | 2024-01-09 | 2024-01-09 | 脚本文件的监测方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410030534.2A CN117540385B (zh) | 2024-01-09 | 2024-01-09 | 脚本文件的监测方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117540385A CN117540385A (zh) | 2024-02-09 |
CN117540385B true CN117540385B (zh) | 2024-03-29 |
Family
ID=89790390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410030534.2A Active CN117540385B (zh) | 2024-01-09 | 2024-01-09 | 脚本文件的监测方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117540385B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004882A (zh) * | 2010-11-26 | 2011-04-06 | 北京安天电子设备有限公司 | 远程线程注入型木马的检测和处理的方法和装置 |
CN105989283A (zh) * | 2015-02-06 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种识别病毒变种的方法及装置 |
KR101932174B1 (ko) * | 2017-07-18 | 2018-12-26 | 한양대학교 산학협력단 | 악성 코드 탐지 방법 및 그 장치 |
CN109766691A (zh) * | 2018-12-20 | 2019-05-17 | 广东电网有限责任公司 | 一种勒索病毒监控方法及装置 |
CN112632531A (zh) * | 2020-12-15 | 2021-04-09 | 平安科技(深圳)有限公司 | 恶意代码的识别方法、装置、计算机设备及介质 |
CN114676428A (zh) * | 2020-12-24 | 2022-06-28 | 武汉安天信息技术有限责任公司 | 基于动态特征的应用程序恶意行为检测方法及设备 |
CN115310082A (zh) * | 2021-05-08 | 2022-11-08 | 深信服科技股份有限公司 | 信息处理方法、装置、电子设备及存储介质 |
CN116089951A (zh) * | 2023-02-24 | 2023-05-09 | 山东云天安全技术有限公司 | 一种恶意代码检测方法、可读存储介质及电子设备 |
-
2024
- 2024-01-09 CN CN202410030534.2A patent/CN117540385B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004882A (zh) * | 2010-11-26 | 2011-04-06 | 北京安天电子设备有限公司 | 远程线程注入型木马的检测和处理的方法和装置 |
CN105989283A (zh) * | 2015-02-06 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种识别病毒变种的方法及装置 |
KR101932174B1 (ko) * | 2017-07-18 | 2018-12-26 | 한양대학교 산학협력단 | 악성 코드 탐지 방법 및 그 장치 |
CN109766691A (zh) * | 2018-12-20 | 2019-05-17 | 广东电网有限责任公司 | 一种勒索病毒监控方法及装置 |
CN112632531A (zh) * | 2020-12-15 | 2021-04-09 | 平安科技(深圳)有限公司 | 恶意代码的识别方法、装置、计算机设备及介质 |
CN114676428A (zh) * | 2020-12-24 | 2022-06-28 | 武汉安天信息技术有限责任公司 | 基于动态特征的应用程序恶意行为检测方法及设备 |
CN115310082A (zh) * | 2021-05-08 | 2022-11-08 | 深信服科技股份有限公司 | 信息处理方法、装置、电子设备及存储介质 |
CN116089951A (zh) * | 2023-02-24 | 2023-05-09 | 山东云天安全技术有限公司 | 一种恶意代码检测方法、可读存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117540385A (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110099059B (zh) | 一种域名识别方法、装置及存储介质 | |
CN109918907B (zh) | Linux平台进程内存恶意代码取证方法、控制器及介质 | |
CN110213207B (zh) | 一种基于日志分析的网络安全防御方法及设备 | |
KR101260028B1 (ko) | 악성코드 그룹 및 변종 자동 관리 시스템 | |
CN112422484B (zh) | 确定用于处理安全事件的剧本的方法、装置及存储介质 | |
CN104025107A (zh) | 模糊列入白名单反恶意软件系统及方法 | |
KR100968126B1 (ko) | 웹쉘 탐지 시스템 및 웹쉘 탐지 방법 | |
US8813229B2 (en) | Apparatus, system, and method for preventing infection by malicious code | |
US8381300B2 (en) | Offline extraction of configuration data | |
CN108182360B (zh) | 一种风险识别方法及其设备、存储介质、电子设备 | |
CN115562992A (zh) | 一种文件检测方法、装置、电子设备及存储介质 | |
CN112148305A (zh) | 一种应用检测方法、装置、计算机设备和可读存储介质 | |
CN108667768B (zh) | 一种网络应用指纹的识别方法及装置 | |
CN117540385B (zh) | 脚本文件的监测方法、系统及存储介质 | |
CN112182569A (zh) | 一种文件识别方法、装置、设备及存储介质 | |
CN115827379A (zh) | 异常进程检测方法、装置、设备和介质 | |
CN114510717A (zh) | 一种elf文件的检测方法、装置、存储介质 | |
CN112395613B (zh) | 静态特征库的加载方法、装置及设备 | |
CN115310082A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN113779576A (zh) | 一种可执行文件感染病毒的识别方法、装置及电子设备 | |
CN112966270A (zh) | 应用程序的安全检测方法、装置、电子设备和存储介质 | |
CN112580038A (zh) | 反病毒数据的处理方法、装置及设备 | |
CN112417324A (zh) | 基于Chrome的URL拦截方法、装置及计算机设备 | |
CN117272305B (zh) | 一种进程处理方法、装置、电子设备及存储介质 | |
CN111027062A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |