CN108830077B - 一种脚本检测方法、装置及终端 - Google Patents
一种脚本检测方法、装置及终端 Download PDFInfo
- Publication number
- CN108830077B CN108830077B CN201810612771.4A CN201810612771A CN108830077B CN 108830077 B CN108830077 B CN 108830077B CN 201810612771 A CN201810612771 A CN 201810612771A CN 108830077 B CN108830077 B CN 108830077B
- Authority
- CN
- China
- Prior art keywords
- target script
- script
- com
- function
- call
- 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
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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
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)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种脚本检测方法、装置及终端,其中,脚本检测方法包括:在目标脚本于宿主进程中调用组件对象模型COM对象后,终端可以将目标脚本对COM接口函数的调用请求重定向到宿主进程的沙箱环境中,并在沙箱环境中处理调用请求,根据对调用请求的处理结果控制目标脚本的执行,终端记录目标脚本在执行过程中调用的各个COM对象的信息,并根据调用的各个COM对象的信息确定目标脚本的恶意行为。采用本发明,可以快速、准确地对脚本的恶意行为进行检测。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种脚本检测方法、装置及终端。
背景技术
目前在对脚本的恶意行为进行检测时通常采用的是将开源脚本虚拟机和自研发脚本虚拟机配合对系统运行环境进行模拟,通过将待检测的脚本在模拟出来的运行环境中执行以分析其是否存在恶意行为。然而,这种在模拟出来的运行环境中进行脚本检测的方法执行速度较慢,容易被各种反模拟虚拟机技术绕过,由于模拟出来的运行环境的维护、升级的工作量庞大,再加上脚本加密、变形、混淆方式的变化速度在不断加快,导致现有的脚本检测方法很难跟得上脚本的变化速度,造成脚本检测的准确度较差。可见,如何快速、准确地对脚本进行检测已成为亟待解决的问题。
发明内容
本发明实施例提供一种脚本检测方法、装置及终端,可以提高对脚本的恶意行为进行检测的效率和准确度。
一方面,一种脚本检测方法,包括:
在目标脚本于宿主进程中调用组件对象模型COM对象后,将所述目标脚本对COM接口函数的调用请求重定向到所述宿主进程的沙箱环境中。
在所述沙箱环境中处理所述调用请求,并根据对所述调用请求的处理结果控制所述目标脚本的执行。
记录所述目标脚本在执行过程中调用的各个COM对象的信息。
根据所述调用的各个COM对象的信息确定所述目标脚本的恶意行为。
另一方面,本发明实施例还提供了一种脚本检测装置,包括:
重定向模块,用于在目标脚本于宿主进程中调用组件对象模型COM对象后,将所述目标脚本对COM接口函数的调用请求重定向到所述宿主进程的沙箱环境中。
处理模块,用于在所述沙箱环境中处理所述调用请求,并根据对所述调用请求的处理结果控制所述目标脚本的执行。
记录模块,用于记录所述目标脚本在执行过程中调用的各个COM对象的信息。
确定模块,用于根据所述调用的各个COM对象的信息确定所述目标脚本的恶意行为。
又一方面,本发明实施例还提供了一种终端,包括:处理器和存储装置;所述存储装置,用于存储程序指令;所述处理器,调用所述程序指令,用于执行上述的脚本检测方法。
又一方面,本发明实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现上述的脚本检测方法。
本发明实施例中,在目标脚本于宿主进程中调用组件对象模型COM对象后,终端可以将目标脚本对COM接口函数的调用请求重定向到宿主进程的沙箱环境中,在沙箱环境中处理调用请求,并根据对调用请求的处理结果控制目标脚本的执行,记录目标脚本在执行过程中调用的各个COM对象的信息,并根据调用的各个COM对象的信息确定目标脚本的恶意行为,可以快速、准确地对脚本的恶意行为进行检测。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种脚本检测方法的流程示意图;
图2a是本发明实施例提供的脚本检测的架构示意图;
图2b是本发明实施例提供的一种调用COM接口函数的路径示意图;
图2c是本发明实施例提供的另一种调用COM接口函数的路径示意图;
图2d是本发明实施例提供的又一种调用COM接口函数的路径示意图;
图2e是本发明实施例提供的一种脚本内容混淆后的示意图;
图2f是本发明实施例提供的一种脚本检测结果示意图;
图2g是本发明实施例提供的一种脚本检测方法应用产品的示意图;
图2h是本发明实施例提供的一种脚本检测效果的示意图;
图2i是本发明实施例提供的一种脚本执行逻辑的示意图;
图3是本发明实施例提供的一种脚本检测装置的结构示意图;
图4是本发明实施例提供的一种终端的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
其中,本发明实施例所描述的终端可以为笔记本电脑、台式电脑、平板电脑等设备。
请参阅图1,为本发明实施例提供的一种脚本检测方法的流程示意图。本实施例中所描述的脚本检测方法,包括:
101、在目标脚本于宿主进程中调用组件对象模型COM对象后,终端将所述目标脚本对COM接口函数的调用请求重定向到所述宿主进程的沙箱环境中。
其中,目标脚本在宿主进程中执行时通常会多次调用组件对象模型(ComponentObject Model,COM)对象,在每次调用COM对象后,目标脚本需要继续通过调用COM接口函数调用到操作系统的应用程序编程接口(Application Programming Interface,API)层,最终通过调用API层的API函数来完成对操作系统的更改。
具体实现中,重定向是指将流程的执行从一个方向引导到另一个方向,在目标脚本调用COM对象后,终端在检测到目标脚本对COM接口函数的调用请求时,先不响应该调用请求去直接调用COM接口函数,而是将调用请求重定向到宿主进程的沙箱环境中,也就是说实现了将调用请求从直接调用COM接口函数引导到宿主进程的沙箱环境中。
在一些可行的实施方式中,宿主进程可以为Windows中的wscript.exe或者cscript.exe,即本发明实施例中的宿主进程为操作系统提供的完全真实的脚本执行环境,有效保证了脚本检测时的速度,也使得任何反虚拟机的技术都是无效的。
其中,在宿主进程为wscript.exe时,可以同时支持js、vbs、vbe等多种类型的脚本。
102、所述终端在所述沙箱环境中处理所述调用请求,并根据对所述调用请求的处理结果控制所述目标脚本的执行。
具体实现中,终端可以利用沙箱环境中的钩子HOOK模块根据调用请求中携带的参数判定允许对COM接口函数的调用请求后目标脚本的执行是否可控,如果目标脚本的执行可控,则HOOK模块允许目标脚本对COM接口函数的调用请求。
需要说明的是,如果不可控,例如目标脚本创建一个新的进程并执行,则HOOK模块不允许目标脚本对COM接口函数的调用请求,并可以向目标脚本返回一个调用失败的结果,使得目标脚本中止执行,从而对于调用行为不可控的目标脚本,可以停止对其进行检测,以保证终端系统的安全。
进一步地,在允许该调用请求后,调用COM接口函数,获取调用COM接口函数后目标脚本将要调用的API函数,是否允许调用API函数需要进行判定,判定标准是调用API函数是否会对操作系统造成更改,如果调用API函数会对操作系统造成更改,例如,将要调用的API函数为创建文件/进程,下载并运行可执行文件,写注册表,修改文件,修改注册表启动项等,则在不调用API函数的情况下向目标脚本返回对API函数调用成功的结果,通过返回调用成功的结果可以使得目标脚本误认为对API函数的调用成功了,从而能够继续执行下去,即继续调用COM对象。
在一些可行的实施方式中,如果调用API函数会对操作系统造成更改,则可以将目标脚本对所述API函数的调用重定向到沙箱环境中,在不调用API函数的情况下利用HOOK模块向目标脚本返回对API函数调用成功的结果,以使得目标脚本继续执行下去。
103、所述终端记录所述目标脚本在执行过程中调用的各个COM对象的信息。
104、所述终端根据所述调用的各个COM对象的信息确定所述目标脚本的恶意行为。
具体实现中,目标脚本在宿主进程中执行时通常会多次调用COM对象,终端记录目标脚本在执行过程中调用的各个COM对象的信息,然后利用自定义规则扫描、字符串比较和开发逻辑判断等信息解析技术对调用的各个COM对象的信息进行解析,其中,自定义规则扫描具体可以是采用yara(一款旨在帮助识别和分类恶意软件样本的开源工具)进行自定义规则扫描,以得到目标脚本的调用行为,进而根据调用行为即可确定目标脚本在执行过程中存在哪些恶意行为。
其中,常见的恶意行为可以包括下载文件、复制文件、删除文件、修改注册表启动项和创建新进程等。
在一些可行的实施方式中,针对待检测的目标脚本,终端可以对其进行预处理,包括在目标脚本的开始处增加调用ActiveX控件的方法,目的是在目标脚本开始执行时,先完成沙箱环境的建立,具体包括:在目标脚本在宿主进程中开始执行时,调用ActiveX控件实现对COM接口函数和API函数进行HOOK操作,从而完成在宿主进程中建立沙箱环境和HOOK模块。
其中,对COM接口函数进行HOOK操作意味着对COM接口函数的调用会被自动重定向到沙箱环境中,同理,对API函数进行HOOK操作意味着对API函数的调用也会被自动重定向到沙箱环境中。
其中,调用ActiveX控件对COM接口函数和API函数进行HOOK操作的具体实现方式可以为:通过调用ActiveX控件传入一个DLL路径参数,从而调用具有HOOK功能的DLL组件(可记为WsHooks.dl),再加载DLL组件即可执行对COM接口函数和API函数的HOOK操作。
需要说明的是,本发明实施例提供的脚本检测方法也可应用于云后台批量地筛选恶意脚本挖掘有价值信息,如恶意脚本中的网址等,此时执行主体可以为云后台的服务器。
在一些可行的实施方式中,通过HOOK建立沙箱环境也可以在操作系统的驱动层实现,在驱动层实现更接近底层,安全系数更高,此时要考虑的问题较多,包括:需要32/64位驱动分别开发,以保证多系统兼容的问题;驱动层的拦截逻辑判断更加复杂,要有效判断哪些调用真正来自脚本,哪些调用来自wscript.exe、cscript.exe等脚本宿主进程。
本发明实施例中,在目标脚本于宿主进程中调用组件对象模型COM对象后,终端可以将目标脚本对COM接口函数的调用请求重定向到宿主进程的沙箱环境中,在沙箱环境中处理调用请求,并根据对调用请求的处理结果控制目标脚本的执行,终端记录目标脚本在执行过程中调用的各个COM对象的信息,并根据调用的各个COM对象的信息确定目标脚本的恶意行为,可以快速、准确地对脚本的恶意行为进行检测。
如图2a所示,是本发明实施例提供的一种脚本检测的架构示意图。其中,目标脚本(即JS/VBS脚本)在执行时,先调用ActiveX控件方法,再调用HOOK组件构建沙箱环境,实现对对COM接口函数和API函数的HOOK操作。在构建沙箱环境时,对COM接口函数的HOOK操作包括以下三种路径:
路径一,如图2b所示,HOOK CoGetClassObject函数调用返回的IClassFactory接口的Createinstance函数,HOOK CreateInstance调用返回的IUnknown接口,调用通过IUnknown接口返回的IDispatch接口,HOOK IDispatch接口的invoke函数(即COM接口函数)。
路径二,如图2c所示,HOOK CoCreateInstance函数调用返回的IUnknown接口,调用通过IUnknown接口返回的IDispatch接口,HOOK IDispatch接口的invoke函数(即COM接口函数)。
路径三,如图2d所示,HOOK Wscript.exe脚本宿主进程自身的IHOST接口里的invoke函数(即COM接口函数)。
可以理解的是,由于上述三条路径都已经被HOOK操作,无论目标脚本在执行时选择哪条路径去调用COM接口函数,都能够使得目标脚本对COM接口函数的调用被重定向到沙箱环境中去。
其中,在构建沙箱环境时,对API函数的HOOK操作主要的功能是拦截目标脚本对操作系统的更改,返回一个假的调用成功的结果以欺骗目标脚本。如果直接在COM层返回一个假的调用成功的结果,由于很多脚本对象还没有创建,会导致接下来的COM对象调用直接失败,目标脚本也因错误将不再会执行下去,导致无法获取到目标脚本真正、全面的调用行为。而在API层HOOK返回一个假的调用成功的结果,实际上是欺骗了来自目标脚本的COM调用,等调用返回COM层时脚本对象已经创建,进而目标脚本可以继续执行下去,从而最终拦截到想要的恶意行为。
其中,HOOK的API函数主要可以包括:
文件类相关
创建文件:CreateFile:
复制文件:CopyFile
删除文件:DeleteFile
注册表类相关
创建注册表键:RegCreateKeyEx
修改注册表键值:RegSetValueEx
删除注册表键:RegDeleteKey
删除注册表键值:RegDeleteValue
网络相关
网络调用发送数据包:WSASend
网络调用接收数据包:WSARecv
访问网络URL:InternetOpenUrl
访问网络URL:InternetCrackUrl
进程相关
创建进程:CreateProcess
举例来说,假设目标脚本混淆了脚本内容,如图2e所示,则通过采用本发明实施例的脚本检测方法可以得到如图2f所示的脚本检测结果,可以清楚的看到该目标脚本存在写注册表自启动项,复制自身等恶意行为。可见,无论恶意脚本如何加密混淆,只要最终的调用行为没有变化,都将不影响检测的结果。
本发明实施例提供的脚本检测方法可以应用到图2g所示的产品中,例如恶意脚本检测大师,通过勾选启动沙箱检测技术的选项即可采用本发明实施例提供的脚本检测方法对脚本的恶意行为进行检测。如图2h所示,在没有升级更新的情况下,恶意脚本检测大师可以对js脚本做到65.21%的识别率,对vbs脚本做到88%的识别率,整体表现出来的准确度较高。
在一些可行的实施方式中,本发明实施例中脚本的执行逻辑可以如图2i所示,即js/vbs脚本中所有COM对象方法的调用都会被重定向到沙箱系统的HOOK模块,HOOK模块判断所有来自脚本的COM对象方法的调用,检测参数记录数据,决定是放行还是拒绝放行,如果放行,则调用真正的COM接口函数,如果拒绝放行则不调用真正的COM接口函数而直接返回一个调用失败的结果。被放行的COM调用最终会调用到系统API层,对造成操作系统更改的API调用重定向到HOOK模块,HOOK模块直接返回一个虚假的API调用成功的结果,使得脚本能够继续执行下去,此时并不真正调用API函数,HOOK模块记录脚本所有的COM对象方法调用信息,放到共享内存,可以由检测模块读取共享内存的数据进行逻辑判断以检测脚本的恶意行为。
请参阅图3,为本发明实施例提供的一种脚本检测装置的结构示意图。本实施例中所描述的脚本检测装置,包括:
重定向模块301,用于在目标脚本于宿主进程中调用组件对象模型COM对象后,将所述目标脚本对COM接口函数的调用请求重定向到所述宿主进程的沙箱环境中。
处理模块302,用于在所述沙箱环境中处理所述调用请求,并根据对所述调用请求的处理结果控制所述目标脚本的执行。
记录模块303,用于记录所述目标脚本在执行过程中调用的各个COM对象的信息。
确定模块304,用于根据所述调用的各个COM对象的信息确定所述目标脚本的恶意行为。
可选的,所述处理模块302,具体用于:
利用所述沙箱环境中的钩子HOOK模块判定是否允许所述调用请求。
若允许所述调用请求,则获取所述目标脚本调用所述COM接口函数后将要调用的应用程序编程接口API函数。
若调用所述API函数会对操作系统造成更改,则在不调用所述API函数的情况下向所述目标脚本返回对所述API函数调用成功的结果,以使得所述目标脚本执行。
可选的,若调用所述API函数会对操作系统造成更改,则所述处理模块302在不调用所述API函数的情况下向所述目标脚本返回对所述API函数调用成功的结果,以使得所述目标脚本执行的具体方式为:
若调用所述API函数会对操作系统造成更改,则将所述目标脚本对所述API函数的调用重定向到所述沙箱环境中。
在不调用所述API函数的情况下利用所述HOOK模块向所述目标脚本返回对所述API函数调用成功的结果,以使得所述目标脚本执行。
可选的,所述装置还包括:
增加模块305,用于在目标脚本的开始处增加调用ActiveX控件的方法。
建立模块306,用于在所述目标脚本于宿主进程中开始执行时,调用所述ActiveX控件对COM接口函数和API函数进行HOOK操作,以在所述宿主进程中建立沙箱环境和HOOK模块。
其中,所述对COM接口函数进行HOOK操作用于使得所述目标脚本对所述COM接口函数的调用被重定向到所述沙箱环境中,所述对API函数进行HOOK操作用于使得所述目标脚本对所述API函数的调用被重定向到所述沙箱环境中。
可选的,所述建立模块306调用所述ActiveX控件对COM接口函数和API函数进行HOOK操作的具体方式为:
通过调用所述ActiveX控件调用具有HOOK功能的DLL组件。
通过加载所述DLL组件执行对COM接口函数和API函数的HOOK操作。
可选的,所述确定模块304,具体用于:
利用信息解析技术对所述调用的各个COM对象的信息进行解析,得到所述目标脚本的调用行为,所述信息解析技术包括自定义规则扫描、字符串比较和开发逻辑判断中的一种或多种。
根据所述调用行为确定所述目标脚本存在的恶意行为。
可选的,所述恶意行为包括下载文件、复制文件、删除文件、修改注册表启动项和创建新进程中的一种或多种。
可选的,所述宿主进程为wscript.exe或者cscript.exe。
可以理解的是,本实施例的脚本检测装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本发明实施例中,在目标脚本于宿主进程中调用组件对象模型COM对象后,重定向模块301将目标脚本对COM接口函数的调用请求重定向到宿主进程的沙箱环境中,处理模块302在沙箱环境中处理调用请求,并根据对调用请求的处理结果控制目标脚本的执行,记录模块303记录目标脚本在执行过程中调用的各个COM对象的信息,确定模块304根据调用的各个COM对象的信息确定目标脚本的恶意行为,从而可以提高对脚本的恶意行为进行检测的效率和准确度。
请参阅图4,为本发明实施例提供的一种终端的结构示意图。本实施例中所描述的终端,包括:处理器401、用户接口402、网络接口403及存储器404。其中,处理器401、用户接口402、网络接口403及存储器404可通过总线或其他方式连接,本发明实施例以通过总线连接为例。
其中,处理器401(或称CPU(Central Processing Unit,中央处理器))是终端的计算核心以及控制核心,其可以解析终端内的各类指令以及处理终端的各类数据,例如:CPU可以用于解析用户向终端所发送的开关机指令,并控制终端进行开关机操作;再如:CPU可以在终端内部结构之间传输各类交互数据,等等。用户接口402是实现用户与终端进行交互和信息交换的媒介,其具体体现可以包括用于输出的显示屏(Display)以及用于输入的键盘(Keyboard)等等,需要说明的是,此处的键盘既可以为实体键盘,也可以为触屏虚拟键盘,还可以为实体与触屏虚拟相结合的键盘。网络接口403可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器401的控制用于收发数据。存储器404(Memory)是终端中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器404既可以包括终端的内置存储器,当然也可以包括终端所支持的扩展存储器。存储器404提供存储空间,该存储空间存储了终端的操作系统,可包括但不限于:Windows系统等,本发明对此并不作限定。
在本发明实施例中,处理器401通过运行存储器404中的可执行程序代码,执行如下操作:
处理器401,用于在目标脚本于宿主进程中调用组件对象模型COM对象后,将所述目标脚本对COM接口函数的调用请求重定向到所述宿主进程的沙箱环境中。
所述处理器401,还用于在所述沙箱环境中处理所述调用请求,并根据对所述调用请求的处理结果控制所述目标脚本的执行。
所述处理器401,还用于记录所述目标脚本在执行过程中调用的各个COM对象的信息。
所述处理器401,还用于根据所述调用的各个COM对象的信息确定所述目标脚本的恶意行为。
可选的,所述处理器401,具体用于:
利用所述沙箱环境中的钩子HOOK模块判定是否允许所述调用请求。
若允许所述调用请求,则获取所述目标脚本调用所述COM接口函数后将要调用的应用程序编程接口API函数。
若调用所述API函数会对操作系统造成更改,则在不调用所述API函数的情况下向所述目标脚本返回对所述API函数调用成功的结果,以使得所述目标脚本执行。
可选的,若调用所述API函数会对操作系统造成更改,则所述处理器401在不调用所述API函数的情况下向所述目标脚本返回对所述API函数调用成功的结果,以使得所述目标脚本执行的具体方式为:
若调用所述API函数会对操作系统造成更改,则将所述目标脚本对所述API函数的调用重定向到所述沙箱环境中。
在不调用所述API函数的情况下利用所述HOOK模块向所述目标脚本返回对所述API函数调用成功的结果,以使得所述目标脚本执行。
可选的,所述处理器401,还用于在目标脚本的开始处增加调用ActiveX控件的方法。
所述处理器401,还用于在所述目标脚本于宿主进程中开始执行时,调用所述ActiveX控件对COM接口函数和API函数进行HOOK操作,以在所述宿主进程中建立沙箱环境和HOOK模块。
其中,所述对COM接口函数进行HOOK操作用于使得所述目标脚本对所述COM接口函数的调用被重定向到所述沙箱环境中,所述对API函数进行HOOK操作用于使得所述目标脚本对所述API函数的调用被重定向到所述沙箱环境中。
可选的,所述处理器401调用所述ActiveX控件对COM接口函数和API函数进行HOOK操作的具体方式为:
通过调用所述ActiveX控件调用具有HOOK功能的DLL组件。
通过加载所述DLL组件执行对COM接口函数和API函数的HOOK操作。
可选的,所述处理器401,具体用于:
利用信息解析技术对所述调用的各个COM对象的信息进行解析,得到所述目标脚本的调用行为,所述信息解析技术包括自定义规则扫描、字符串比较和开发逻辑判断中的一种或多种。
根据所述调用行为确定所述目标脚本存在的恶意行为。
可选的,所述恶意行为包括下载文件、复制文件、删除文件、修改注册表启动项和创建新进程中的一种或多种。
可选的,所述宿主进程为wscript.exe或者cscript.exe。
具体实现中,本发明实施例中所描述的处理器401、用户接口402、网络接口403和存储器404可执行本发明实施例提供的一种脚本检测方法的流程中所描述的实现方式,也可执行本发明实施例提供的一种脚本检测装置中所描述的实现方式,在此不再赘述。
本发明实施例中,处理器401在目标脚本于宿主进程中调用组件对象模型COM对象后,将目标脚本对COM接口函数的调用请求重定向到所述宿主进程的沙箱环境中,并在沙箱环境中处理调用请求,并根据对调用请求的处理结果控制目标脚本的执行,记录目标脚本在执行过程中调用的各个COM对象的信息,然后根据调用的各个COM对象的信息确定目标脚本的恶意行为,从而可以提高对脚本的恶意行为进行检测的效率和准确度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种脚本检测方法,其特征在于,包括:
在目标脚本于宿主进程中调用组件对象模型COM对象后,将所述目标脚本对COM接口函数的调用请求重定向到所述宿主进程的沙箱环境中;
在所述沙箱环境中处理所述调用请求,并根据对所述调用请求的处理结果控制所述目标脚本的执行;
记录所述目标脚本在执行过程中调用的各个COM对象的信息;
根据所述调用的各个COM对象的信息确定所述目标脚本的恶意行为;
其中,所述在所述沙箱环境中处理所述调用请求,并根据对所述调用请求的处理结果控制所述目标脚本的执行,包括:
利用所述沙箱环境中的钩子HOOK模块根据所述调用请求中携带的参数,判定允许对所述COM接口函数的调用请求后所述目标脚本的执行是否可控;
若所述目标脚本的执行可控,则允许所述目标脚本对所述COM接口函数的调用请求,获取所述目标脚本调用所述COM接口函数后将要调用的应用程序编程接口API函数;若调用所述API函数会对操作系统造成更改,则在不调用所述API函数的情况下向所述目标脚本返回对所述API函数调用成功的结果,以使得所述目标脚本执行;
若所述目标脚本的执行不可控,则不允许所述目标脚本对所述COM接口函数的调用请求,并向所述目标脚本返回调用失败的结果,以使得所述目标脚本中止执行。
2.根据权利要求1所述的方法,其特征在于,所述若调用所述API函数会对操作系统造成更改,则在不调用所述API函数的情况下向所述目标脚本返回对所述API函数调用成功的结果,以使得所述目标脚本执行,包括:
若调用所述API函数会对操作系统造成更改,则将所述目标脚本对所述API函数的调用重定向到所述沙箱环境中;
在不调用所述API函数的情况下利用所述HOOK模块向所述目标脚本返回对所述API函数调用成功的结果,以使得所述目标脚本执行。
3.根据权利要求1或2所述的方法,其特征在于,所述在目标脚本于宿主进程中调用组件对象模型COM对象后,将所述目标脚本对COM接口函数的调用请求重定向到所述宿主进程的沙箱环境中之前,所述方法还包括:
在目标脚本的开始处增加调用ActiveX控件的方法;
在所述目标脚本于宿主进程中开始执行时,调用所述ActiveX控件对COM接口函数和API函数进行HOOK操作,以在所述宿主进程中建立沙箱环境和HOOK模块;
其中,所述对COM接口函数进行HOOK操作用于使得所述目标脚本对所述COM接口函数的调用被重定向到所述沙箱环境中,对API函数进行HOOK操作用于使得所述目标脚本对所述API函数的调用被重定向到所述沙箱环境中。
4.根据权利要求3所述的方法,其特征在于,所述调用所述ActiveX控件对COM接口函数和API函数进行HOOK操作,包括:
通过调用所述ActiveX控件调用具有HOOK功能的DLL组件;
通过加载所述DLL组件执行对COM接口函数和API函数的HOOK操作。
5.根据权利要求1所述的方法,其特征在于,所述根据所述调用的各个COM对象的信息确定所述目标脚本的恶意行为,包括:
利用信息解析技术对所述调用的各个COM对象的信息进行解析,得到所述目标脚本的调用行为,所述信息解析技术包括自定义规则扫描、字符串比较和开发逻辑判断中的一种或多种;
根据所述调用行为确定所述目标脚本存在的恶意行为。
6.根据权利要求1所述的方法,其特征在于,
所述恶意行为包括下载文件、复制文件、删除文件、修改注册表启动项和创建新进程中的一种或多种。
7.根据权利要求1所述的方法,其特征在于,
所述宿主进程为wscript.exe或者cscript.exe。
8.一种脚本检测装置,其特征在于,包括:
重定向模块,用于在目标脚本于宿主进程中调用组件对象模型COM对象后,将所述目标脚本对COM接口函数的调用请求重定向到所述宿主进程的沙箱环境中;
处理模块,用于在所述沙箱环境中处理所述调用请求,并根据对所述调用请求的处理结果控制所述目标脚本的执行;
记录模块,用于记录所述目标脚本在执行过程中调用的各个COM对象的信息;
确定模块,用于根据所述调用的各个COM对象的信息确定所述目标脚本的恶意行为;
其中,所述处理模块,具体用于:
利用所述沙箱环境中的钩子HOOK模块根据所述调用请求中携带的参数,判定允许对所述COM接口函数的调用请求后所述目标脚本的执行是否可控;
若所述目标脚本的执行可控,则允许所述目标脚本对所述COM接口函数的调用请求,获取所述目标脚本调用所述COM接口函数后将要调用的应用程序编程接口API函数;若调用所述API函数会对操作系统造成更改,则在不调用所述API函数的情况下向所述目标脚本返回对所述API函数调用成功的结果,以使得所述目标脚本执行;
若所述目标脚本的执行不可控,则不允许所述目标脚本对所述COM接口函数的调用请求,并向所述目标脚本返回调用失败的结果,以使得所述目标脚本中止执行。
9.一种终端,其特征在于,包括处理器和存储装置,所述处理器和存储装置相互连接,其中,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的脚本检测方法。
10.一种计算机存储介质,其特征在于,该计算机存储介质中存储有程序指令,该程序指令被执行时,用于实现如权利要求1-7任一项所述的脚本检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810612771.4A CN108830077B (zh) | 2018-06-14 | 2018-06-14 | 一种脚本检测方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810612771.4A CN108830077B (zh) | 2018-06-14 | 2018-06-14 | 一种脚本检测方法、装置及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108830077A CN108830077A (zh) | 2018-11-16 |
CN108830077B true CN108830077B (zh) | 2023-07-18 |
Family
ID=64142005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810612771.4A Active CN108830077B (zh) | 2018-06-14 | 2018-06-14 | 一种脚本检测方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108830077B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110135160B (zh) * | 2019-04-29 | 2021-11-30 | 北京邮电大学 | 软件检测的方法、装置及系统 |
CN110750778A (zh) * | 2019-09-29 | 2020-02-04 | 苏州浪潮智能科技有限公司 | 一种应用程序管控方法和装置 |
CN111191225B (zh) * | 2020-01-03 | 2022-05-27 | 北京字节跳动网络技术有限公司 | 一种切换隔离对象的方法、装置、介质和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376255A (zh) * | 2014-11-28 | 2015-02-25 | 北京奇虎科技有限公司 | 应用程序运行控制方法与装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617092A (zh) * | 2013-11-21 | 2014-03-05 | 北京奇虎科技有限公司 | 一种基于浏览器的插件运行方法和装置 |
CN103970574B (zh) * | 2014-05-22 | 2017-07-14 | 北京奇虎科技有限公司 | office程序的运行方法及装置、计算机系统 |
CN105528542B (zh) * | 2014-09-28 | 2018-07-17 | 北京云巢动脉科技有限公司 | 一种基于软件免安装运行的管控方法及系统 |
CN104766007B (zh) * | 2015-03-27 | 2017-07-21 | 杭州安恒信息技术有限公司 | 一种基于文件系统过滤驱动实现沙箱快速恢复的方法 |
CN106372507A (zh) * | 2016-08-30 | 2017-02-01 | 北京奇虎科技有限公司 | 恶意文档的检测方法及装置 |
-
2018
- 2018-06-14 CN CN201810612771.4A patent/CN108830077B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376255A (zh) * | 2014-11-28 | 2015-02-25 | 北京奇虎科技有限公司 | 应用程序运行控制方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108830077A (zh) | 2018-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868795B1 (en) | Selective virtualization for security threat detection | |
EP3471008B1 (en) | De-obfuscating scripted language for network intrusion detection using a regular expression signature | |
US9594904B1 (en) | Detecting malware based on reflection | |
US8978141B2 (en) | System and method for detecting malicious software using malware trigger scenarios | |
Kapratwar et al. | Static and dynamic analysis of android malware | |
CN108830077B (zh) | 一种脚本检测方法、装置及终端 | |
US20200401698A1 (en) | Analysis system, analysis method, analysis device, and storage medium | |
KR20200052957A (ko) | 보안 제어 방법 및 컴퓨터 시스템 | |
CN105760787B (zh) | 用于检测随机存取存储器中的恶意代码的系统及方法 | |
KR102386617B1 (ko) | 어플리케이션 컨테이너에 대한 시스템 콜 화이트리스트 생성 장치 및 방법, 어플리케이션 컨테이너에 대한 시스템 콜 제어 방법 | |
US11048795B2 (en) | System and method for analyzing a log in a virtual machine based on a template | |
KR101972825B1 (ko) | 하이브리드 분석 기술을 이용한 임베디드 기기 취약점 자동 분석 방법, 장치 및 그 방법을 실행하는 컴퓨터 프로그램 | |
CN112084497A (zh) | 嵌入式Linux系统恶意程序检测方法及装置 | |
CN110765464A (zh) | 漏洞检测方法、装置、设备及计算机存储介质 | |
NL2028230B1 (en) | Methods and systems for preventing malicious activity in a computer system | |
CN113391874A (zh) | 一种虚拟机检测对抗方法、装置、电子设备及存储介质 | |
WO2017147441A1 (en) | Sub-execution environment controller | |
RU2649794C1 (ru) | Система и способ формирования журнала в виртуальной машине для проведения антивирусной проверки файла | |
KR101557455B1 (ko) | 응용 프로그램 코드 분석 장치 및 그것을 이용한 코드 분석 방법 | |
US10275596B1 (en) | Activating malicious actions within electronic documents | |
CN112632547A (zh) | 一种数据处理方法和相关装置 | |
CN110659478B (zh) | 在隔离的环境中检测阻止分析的恶意文件的方法 | |
CN113010179B (zh) | 基于实时操作系统的独立应用的运行方法 | |
CN111414525B (zh) | 小程序的数据获取方法、装置、计算机设备和存储介质 | |
US10862757B2 (en) | Isolating a redirected biometric device to a remote session |
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 |