CN105095763A - 漏洞防御方法及装置、电子设备 - Google Patents
漏洞防御方法及装置、电子设备 Download PDFInfo
- Publication number
- CN105095763A CN105095763A CN201510486603.1A CN201510486603A CN105095763A CN 105095763 A CN105095763 A CN 105095763A CN 201510486603 A CN201510486603 A CN 201510486603A CN 105095763 A CN105095763 A CN 105095763A
- Authority
- CN
- China
- Prior art keywords
- access behavior
- address
- access
- dynamic link
- link library
- 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.)
- Granted
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供的一种漏洞防御方法及装置、电子设备,可以中断进程对动态链接库文件的访问行为并根据中断的访问行为的执行地址确定该访问行为的性质。应用本发明的技术方案,技术人员只需要对每一个动态链接库文件编写一段用于中断进程对动态链接库文件的访问行为的代码及一段根据执行地址确定该访问行为性质的代码即可。由于一个动态链接库文件中存储有多个应用程序接口函数,因此无需对每一个应用程序接口函数均编写监控代码。本发明可以有效降低所需编写的代码数量,工作量较小。
Description
技术领域
本发明涉及电子设备防护技术领域,特别是涉及漏洞防御方法及装置、电子设备。
背景技术
随着电子设备的普及,黑客常编写恶意程序利用漏洞对计算机等电子设备进行恶意访问,因此确定访问行为的性质尤为重要。
现有技术对针对操作系统的应用程序编程接口(API,ApplicationProgrammingInterface)的访问行为进行监控,从而确定各访问行为的性质。使用这种方式,技术人员对每一个需要监控的应用程序编程接口,都需要编写一段用于监控针对该应用程序编程接口的访问行为的代码以及用于判断该访问行为性质的代码。
由于应用程序编程接口数量众多,因此现有的方式下需要编写大量的代码,工作量巨大。
发明内容
本发明实施例的目的在于提供一种漏洞防御方法及装置、电子设备,以实现减小工作量的目的。
为达到上述目的,本发明实施例公开了一种漏洞防御方法,包括:
监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
获取中断的访问行为的执行地址;
判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则确定所述进程的访问行为是恶意访问行为,否则,确定所述进程的访问行为是非恶意访问行为。
可选的,监测操作系统中的进程之前还包括:
遍历操作系统中的进程的所有线程,对预定的动态链接库文件的导出表设置硬件访问断点,并注册相应的向量异常回调函数。
可选的,所述监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为,包括:
监测所述进程的所有线程,若所述进程的线程访问预定的动态链接库文件的导出表,则通过设置的硬件访问断点中断所述进程的线程对所述预定的动态链接库的访问行为。
可选的,所述获取中断的访问行为的执行地址,包括:
当所述进程的线程访问预定的动态链接库文件的导出表时触发所述硬件访问断点,所述向量异常回调函数获取所述硬件访问断点地址作为中断的访问行为的执行地址。
可选的,判断所述访问行为的执行地址是否位于栈地址空间范围中包括:根据所述线程的线程信息块的结构字段信息确定栈地址起始范围,进而判断所述访问行为的执行地址是否位于栈地址空间范围中;
判断所述访问行为的执行地址是否位于堆地址空间范围中包括:根据所述进程的进程环境块的结构字段信息确定堆地址起始范围,进而判断所述访问行为的执行地址是否位于堆地址空间范围中。
可选的,所述方法还包括:
判断所述访问行为的执行地址是否位于模块地址空间范围中,如果是,则确定所述进程的访问行为是正常程序访问行为。
可选的,判断所述访问行为的执行地址是否位于模块地址空间范围中包括:
根据所述动态链接库文件的文件结构确定模块地址的起始范围,进而判断所述访问行为的执行地址是否位于模块地址空间范围中。
可选的,确定所述进程的访问行为是恶意访问行为后,所述方法还包括:
拒绝所述进程访问所述动态链接库文件;
和/或,
结束所述进程。
可选的,确定所述进程的访问行为是非恶意访问行为后,或确定所述进程的访问行为是正常程序访问行为后,所述方法还包括:
结束对所述访问行为的中断处理,以使所述进程对动态链接库文件的访问行为继续进行。
一种漏洞防御装置,包括:访问中断单元、地址获得单元、地址判断单元、第一访问确定单元和第二访问确定单元,
所述访问中断单元,用于监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
所述地址获得单元,用于获取中断的访问行为的执行地址;
所述地址判断单元,用于判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则触发第一访问确定单元,否则,触发所述第二访问确定单元;
所述恶意访问确定单元,用于确定所述进程的访问行为是恶意访问行为;
所述正常访问确定单元,用于确定所述进程的访问行为是非恶意访问行为。
可选的,还包括:断点设置单元,用于在所述访问中断单元监测操作系统中的进程之前,遍历操作系统中的进程的所有线程,对预定的动态链接库文件的导出表设置硬件访问断点,并注册相应的向量异常回调函数。
可选的,所述访问中断单元,具体用于:
监测所述进程的所有线程,若所述进程的线程访问预定的动态链接库文件的导出表,则通过设置的硬件访问断点中断所述进程的线程对所述预定的动态链接库的访问行为。
可选的,所述地址获得单元,具体用于:
当所述进程的线程访问预定的动态链接库文件的导出表时触发所述硬件访问断点,所述向量异常回调函数获取所述硬件访问断点地址作为中断的访问行为的执行地址。
可选的,所述地址判断单元,包括:堆地址判断子单元、栈地址判断子单元和关系确定子单元,
所述堆地址判断子单元,用于根据所述线程的线程信息块的结构字段信息确定栈地址起始范围,进而判断所述访问行为的执行地址是否位于栈地址空间范围中;
所述栈地址判断子单元,用于根据所述进程的进程环境块的结构字段信息确定堆地址起始范围,进而判断所述访问行为的执行地址是否位于堆地址空间范围中;
所述关系确定子单元,用于根据所述堆地址判断子单元和所述栈地址判断子单元的判断结果,确定所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则触发第一访问确定单元,否则,触发所述第二访问确定单元。
可选的,所述装置还包括:模块判断单元,用于判断所述访问行为的执行地址是否位于模块地址空间范围中,如果是,则确定所述进程的访问行为是正常程序访问行为。
可选的,所述模块判断单元,具体用于根据所述动态链接库文件的文件结构确定模块地址的起始范围,进而判断所述访问行为的执行地址是否位于模块地址空间范围中,如果是,则确定所述进程的访问行为是正常程序访问行为。
可选的,所述装置还包括:进程拒绝单元和/或进程结束单元,
所述进程拒绝单元,用于在所述第一访问确定单元确定所述进程的访问行为是恶意访问行为后,拒绝所述进程访问所述动态链接库文件;
所述进程结束单元,用于在所述第一访问确定单元确定所述进程的访问行为是恶意访问行为后,结束所述进程。
可选的,所述装置还包括:中断结束单元,用于在所述第二访问确定单元确定所述进程的访问行为是非恶意访问行为后,或所述模块判断单元确定所述进程的访问行为是正常程序访问行为后,结束对所述访问行为的中断处理,以使所述进程对动态链接库文件的访问行为继续进行。
一种电子设备,包括:
处理器、存储器、通信接口和总线;
所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;
所述存储器存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:
监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
获取中断的访问行为的执行地址;
判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则确定所述进程的访问行为是恶意访问行为,否则,确定所述进程的访问行为是非恶意访问行为。
本发明实施例提供的一种漏洞防御方法及装置、电子设备,可以中断进程对动态链接库文件的访问行为并根据中断的访问行为的执行地址确定该访问行为的性质。应用本发明的技术方案,技术人员只需要对每一个动态链接库文件编写一段用于中断进程对动态链接库文件的访问行为的代码及一段根据执行地址确定该访问行为性质的代码即可。由于一个动态链接库文件中存储有多个应用程序接口函数,因此无需对每一个应用程序接口函数均编写监控代码。本发明可以有效降低所需编写的代码数量,工作量较小。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种漏洞防御方法的流程图;
图2为本发明实施例提供的一种漏洞防御装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的一种漏洞防御方法,可以包括:
S100、监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
动态链接库(DLL,DynamicLinkLibrary)文件是一个包含可由多个程序同时使用的代码和数据的库文件,应用程序编程接口均保存于动态链接库文件中。动态链接库文件有很多个,每个动态链接库文件中都保存有一定数量的应用程序编程接口。由于恶意程序需要使用大量的应用程序编程接口,因此恶意程序会访问动态链接库文件,以获得其中的应用程序编程接口的接口函数。
在本发明其他实施例中,在步骤S100前,还可以包括:
遍历操作系统中的进程的所有线程,对预定的动态链接库文件的导出表设置硬件访问断点,并注册相应的向量异常回调函数。
断点是调试器的功能之一,断点可以让进程中断在需要的地方,从而方便对其分析或处理。断点是一个信号,它通知调试器,在断点处暂时将进程挂起。当进程在断点处挂起时,进程处于中断模式。进入中断模式并不会终止或结束进程的执行,可以在任何时候继续执行该进程。
当有进程的线程访问设置的硬件访问断点时,进程的线程对所述预定的动态链接库的访问行为将被中断,同时,CPU自带的调试寄存器会产生SINGLE_STEP异常,该SINGLE_STEP异常将由注册的相应的向量异常回调函数进行处理。
导出表是动态链接库文件的数据出口,从动态链接库文件中获得数据时必须访问导出表,因此到导出表中设置硬件访问断点可以在恶意程序获得数据之前中断该恶意程序的执行。
因此,步骤S100可以包括:
监测所述进程的所有线程,若所述进程的线程访问预定的动态链接库文件的导出表,则通过设置的硬件访问断点中断所述进程的线程对所述预定的动态链接库的访问行为。
S200、获取中断的访问行为的执行地址;
具体的,S200可以包括:当所述进程的线程访问预定的动态链接库文件的导出表时触发所述硬件访问断点,所述向量异常回调函数获取所述硬件访问断点地址作为中断的访问行为的执行地址。
S300、判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则执行S400,否则执行S500;
其中,判断所述访问行为的执行地址是否位于栈地址空间范围中,可以包括:根据所述线程的线程信息块的结构字段信息确定栈地址起始范围,进而判断所述访问行为的执行地址是否位于栈地址空间范围中。
判断所述访问行为的执行地址是否位于堆地址空间范围中,可以包括:根据所述进程的进程环境块的结构字段信息确定堆地址起始范围,进而判断所述访问行为的执行地址是否位于堆地址空间范围中。
具体的,在Windows下,栈是从高地址向低地址扩展的数据结构,是一块连续的内存的区域。栈顶的地址和栈的最大容量是系统预先规定好的。因此确定栈地址起始范围后即可确定栈地址空间范围。
Windows不同版本操作系统中都有一个关键的系统数据结构,在不同的操作系统版本中有不同的名字,线程信息块(TIB,ThreadInformationBlock),或线程环境块(TEB,ThreadEnvironmentBlock),本发明中将其称为线程信息块TIB。
操作系统在TIB中保存频繁使用的线程相关的数据,位于用户地址空间,在比PEB所在地址低的地方。进程中的每个线程都有自己的一个TIB。TIB有多个结构域字段用于描述线程,通过解析特定结构域字段信息,比如pvStackUserTop线程栈顶层地址,结合系统分配的栈的容量大小,则可确定栈地址起始范围。
病毒等恶意程序的返回地址均位于堆栈中,而正常程序的返回地址位于动态链接库文件中。因此通过返回地址的判断就可以确定访问行为的性质。
S400、确定所述进程的访问行为是恶意访问行为;
本发明实施例提供的另一种漏洞防御方法,在S400后,还可以包括:
拒绝所述进程访问所述动态链接库文件;
和/或,
结束所述进程。
通过拒绝恶意访问行为和结束进程,可以防止病毒等恶意程序获得动态链接库文件中的API接口函数,从而使其无法顺利执行。当然,本发明实施例提供的另一种漏洞防御方法,在S400后,还可以包括:提示用户进行杀毒。
S500、确定所述进程的访问行为是非恶意访问行为。
在本发明其他实施例中,将中断的访问行为确定为正常访问行为后,还可以包括:结束对所述访问行为的中断处理,以使所述进程对动态链接库文件的访问行为继续进行。
本发明实施例提供的另一种漏洞防御方法,还可以包括:
判断所述访问行为的执行地址是否位于模块地址空间范围中,如果是,则确定所述进程的访问行为是正常程序访问行为。
具体的,可以通过解析动态链接库文件的PE可执行文件结构获取动态链接库文件代码(也即访问行为的执行地址)所在的模块地址空间范围。
具体的,判断所述访问行为的执行地址是否位于模块地址空间范围中,可以包括:
根据所述动态链接库文件的文件结构确定模块地址的起始范围,进而判断所述访问行为的执行地址是否位于模块地址空间范围中。
本发明实施例提供的另一种漏洞防御方法,在确定所述进程的访问行为是非恶意访问行为后,或确定所述进程的访问行为是正常程序访问行为后,还可以包括:
结束对所述访问行为的中断处理,以使所述进程对动态链接库文件的访问行为继续进行。
本发明实施例提供的一种漏洞防御方法,可以中断进程对动态链接库文件的访问行为并根据中断的访问行为的执行地址确定该访问行为的性质。应用本发明的技术方案,技术人员只需要对每一个动态链接库文件编写一段用于中断进程对动态链接库文件的访问行为的代码及一段根据执行地址确定该访问行为性质的代码即可。由于一个动态链接库文件中存储有多个应用程序接口函数,因此无需对每一个应用程序接口函数均编写监控代码。本发明可以有效降低所需编写的代码数量,工作量较小。
如图2所示,本发明实施例提供的一种访问行为确定装置,可以包括:访问中断单元100、地址获得单元200、地址判断单元300、第一访问确定单元400和第二访问确定单元500,
访问中断单元100,用于监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
其中,在本发明其他实施例中,图2所示装置还可以包括:断点设置单元,用于在所述访问中断单元100监测操作系统中的进程之前,遍历操作系统中的进程的所有线程,对预定的动态链接库文件的导出表设置硬件访问断点,并注册相应的向量异常回调函数。
在此基础上,所述访问中断单元100,可以具体用于:
监测所述进程的所有线程,若所述进程的线程访问预定的动态链接库文件的导出表,则通过设置的硬件访问断点中断所述进程的线程对所述预定的动态链接库的访问行为。
当有进程的线程访问设置的硬件访问断点时,进程的线程对所述预定的动态链接库的访问行为将被中断,同时,CPU自带的调试寄存器会产生SINGLE_STEP异常,该SINGLE_STEP异常将由注册的相应的向量异常回调函数进行处理。
地址获得单元200,用于获取中断的访问行为的执行地址;
其中,所述地址获得单元200,可以具体用于:
当所述进程的线程访问预定的动态链接库文件的导出表时触发所述硬件访问断点,所述向量异常回调函数获取所述硬件访问断点地址作为中断的访问行为的执行地址。
地址判断单元300,用于判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则触发第一访问确定单元400,否则,触发所述第二访问确定单元500;
其中,所述地址判断单元300,可以包括:堆地址判断子单元、栈地址判断子单元和关系确定子单元,
所述堆地址判断子单元,用于根据所述线程的线程信息块的结构字段信息确定栈地址起始范围,进而判断所述访问行为的执行地址是否位于栈地址空间范围中;
所述栈地址判断子单元,用于根据所述进程的进程环境块的结构字段信息确定堆地址起始范围,进而判断所述访问行为的执行地址是否位于堆地址空间范围中;
所述关系确定子单元,用于根据所述堆地址判断子单元和所述栈地址判断子单元的判断结果,确定所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则触发第一访问确定单元,否则,触发所述第二访问确定单元。
本发明实施例提供的另一种漏洞防御装置中,还可以包括:模块判断单元,用于判断所述访问行为的执行地址是否位于模块地址空间范围中,如果是,则确定所述进程的访问行为是正常程序访问行为。
具体的,所述模块判断单元,可以具体用于根据所述动态链接库文件的文件结构确定模块地址的起始范围,进而判断所述访问行为的执行地址是否位于模块地址空间范围中,如果是,则确定所述进程的访问行为是正常程序访问行为。
病毒等恶意程序的返回地址均位于堆栈中,而正常程序的返回地址位于动态链接库文件中。因此通过返回地址的判断就可以确定访问行为的性质。
恶意访问确定单元400,用于确定所述进程的访问行为是恶意访问行为;
本发明实施例提供的另一种漏洞防御装置,还可以包括:进程拒绝单元和/或进程结束单元,
所述进程拒绝单元,用于在所述第一访问确定单元400确定所述进程的访问行为是恶意访问行为后,拒绝所述进程访问所述动态链接库文件;
所述进程结束单元,用于在所述第一访问确定单元400确定所述进程的访问行为是恶意访问行为后,结束所述进程。
通过拒绝恶意访问行为和结束进程,可以防止病毒等恶意程序获得动态链接库文件中的API接口函数,从而使其无法顺利执行。
正常访问确定单元500,用于确定所述进程的访问行为是非恶意访问行为。
本发明实施例提供的另一种漏洞防御装置,还可以包括:中断结束单元,用于在所述第二访问确定单元500确定所述进程的访问行为是非恶意访问行为后,或所述模块判断单元确定所述进程的访问行为是正常程序访问行为后,结束对所述访问行为的中断处理,以使所述进程对动态链接库文件的访问行为继续进行。
本发明实施例提供的一种漏洞防御装置,可以中断进程对动态链接库文件的访问行为并根据中断的访问行为的执行地址确定该访问行为的性质。应用本发明的技术方案,技术人员只需要对每一个动态链接库文件编写一段用于中断进程对动态链接库文件的访问行为的代码及一段根据执行地址确定该访问行为性质的代码即可。由于一个动态链接库文件中存储有多个应用程序接口函数,因此无需对每一个应用程序接口函数均编写监控代码。本发明可以有效降低所需编写的代码数量,工作量较小。
相应地,本申请实施例还提供了一种存储介质,其中,该存储介质用于存储应用程序,所述应用程序用于在运行时执行本申请所述的一种漏洞防御方法。其中,本申请所述的一种漏洞防御方法,可以包括:
监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
获取中断的访问行为的执行地址;
判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则确定所述进程的访问行为是恶意访问行为,否则,确定所述进程的访问行为是非恶意访问行为。
相应地,本申请实施例还提供了一种应用程序,其中,该应用程序用于在运行时执行本申请所述的一种漏洞防御方法。其中,本申请所述的一种漏洞防御方法,可以包括:
监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
获取中断的访问行为的执行地址;
判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则确定所述进程的访问行为是恶意访问行为,否则,确定所述进程的访问行为是非恶意访问行为。
相应地,本申请实施例还提供了一种电子设备,可以包括:
处理器、存储器、通信接口和总线;
所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;
所述存储器存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:
监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
获取中断的访问行为的执行地址;
判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则确定所述进程的访问行为是恶意访问行为,否则,确定所述进程的访问行为是非恶意访问行为。
本发明实施例提供的一种电子设备,可以中断进程对动态链接库文件的访问行为并根据中断的访问行为的执行地址确定该访问行为的性质。应用本发明的技术方案,技术人员只需要对每一个动态链接库文件编写一段用于中断进程对动态链接库文件的访问行为的代码及一段根据执行地址确定该访问行为性质的代码即可。由于一个动态链接库文件中存储有多个应用程序接口函数,因此无需对每一个应用程序接口函数均编写监控代码。本发明可以有效降低所需编写的代码数量,工作量较小。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种漏洞防御方法,其特征在于,包括:
监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
获取中断的访问行为的执行地址;
判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则确定所述进程的访问行为是恶意访问行为,否则,确定所述进程的访问行为是非恶意访问行为。
2.根据权利要求1所述的方法,其特征在于,监测操作系统中的进程之前还包括:
遍历操作系统中的进程的所有线程,对预定的动态链接库文件的导出表设置硬件访问断点,并注册相应的向量异常回调函数。
3.根据权利要求2所述的方法,其特征在于,所述监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为,包括:
监测所述进程的所有线程,若所述进程的线程访问预定的动态链接库文件的导出表,则通过设置的硬件访问断点中断所述进程的线程对所述预定的动态链接库的访问行为。
4.根据权利要求2所述的方法,其特征在于,所述获取中断的访问行为的执行地址,包括:
当所述进程的线程访问预定的动态链接库文件的导出表时触发所述硬件访问断点,所述向量异常回调函数获取所述硬件访问断点地址作为中断的访问行为的执行地址。
5.根据权利要求1或2所述的方法,其特征在于,所述判断所述访问行为的执行地址是否位于栈地址空间范围中,包括:根据所述线程的线程信息块的结构字段信息确定栈地址起始范围,进而判断所述访问行为的执行地址是否位于栈地址空间范围中;
所述判断所述访问行为的执行地址是否位于堆地址空间范围中,包括:根据所述进程的进程环境块的结构字段信息确定堆地址起始范围,进而判断所述访问行为的执行地址是否位于堆地址空间范围中。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述访问行为的执行地址是否位于模块地址空间范围中,如果是,则确定所述进程的访问行为是正常程序访问行为。
7.根据权利要求6所述的方法,其特征在于,所述判断所述访问行为的执行地址是否位于模块地址空间范围中,包括:
根据所述动态链接库文件的文件结构确定模块地址的起始范围,进而判断所述访问行为的执行地址是否位于模块地址空间范围中。
8.根据权利要求1所述的方法,其特征在于,确定所述进程的访问行为是恶意访问行为后,所述方法还包括:
拒绝所述进程访问所述动态链接库文件;
和/或,
结束所述进程。
9.一种漏洞防御装置,其特征在于,包括:访问中断单元、地址获得单元、地址判断单元、第一访问确定单元和第二访问确定单元,
所述访问中断单元,用于监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
所述地址获得单元,用于获取中断的访问行为的执行地址;
所述地址判断单元,用于判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则触发第一访问确定单元,否则,触发所述第二访问确定单元;
所述恶意访问确定单元,用于确定所述进程的访问行为是恶意访问行为;
所述正常访问确定单元,用于确定所述进程的访问行为是非恶意访问行为。
10.一种电子设备,其特征在于,包括:
处理器、存储器、通信接口和总线;
所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;
所述存储器存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:
监测操作系统中的进程,中断所述进程对动态链接库文件的访问行为;
获取中断的访问行为的执行地址;
判断所述访问行为的执行地址是否位于堆地址空间范围或栈地址空间范围中,如果是,则确定所述进程的访问行为是恶意访问行为,否则,确定所述进程的访问行为是非恶意访问行为。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510486603.1A CN105095763B (zh) | 2015-08-10 | 2015-08-10 | 漏洞防御方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510486603.1A CN105095763B (zh) | 2015-08-10 | 2015-08-10 | 漏洞防御方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095763A true CN105095763A (zh) | 2015-11-25 |
CN105095763B CN105095763B (zh) | 2018-09-11 |
Family
ID=54576170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510486603.1A Active CN105095763B (zh) | 2015-08-10 | 2015-08-10 | 漏洞防御方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095763B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021096A (zh) * | 2016-05-09 | 2016-10-12 | 北京金山安全软件有限公司 | 一种异常函数查找方法及装置 |
CN107045605A (zh) * | 2016-02-05 | 2017-08-15 | 中兴通讯股份有限公司 | 一种实时度量方法及装置 |
CN109144616A (zh) * | 2018-09-30 | 2019-01-04 | 珠海市君天电子科技有限公司 | 一种检测反射式动态链接库文件的方法及装置 |
CN109271789A (zh) * | 2018-09-27 | 2019-01-25 | 珠海市君天电子科技有限公司 | 恶意进程检测方法、装置、电子设备及存储介质 |
CN112685744A (zh) * | 2020-12-28 | 2021-04-20 | 安芯网盾(北京)科技有限公司 | 一种利用栈相关寄存器检测软件漏洞的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373501A (zh) * | 2008-05-12 | 2009-02-25 | 公安部第三研究所 | 针对计算机病毒的动态行为捕获方法 |
CN101493873A (zh) * | 2009-03-04 | 2009-07-29 | 浪潮电子信息产业股份有限公司 | 基于内核层技术实现对win平台文件读写操作访问控制方法 |
CN103795796A (zh) * | 2014-01-27 | 2014-05-14 | 上海维响信息科技有限公司 | 一种文件强制集中管理方法 |
-
2015
- 2015-08-10 CN CN201510486603.1A patent/CN105095763B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373501A (zh) * | 2008-05-12 | 2009-02-25 | 公安部第三研究所 | 针对计算机病毒的动态行为捕获方法 |
CN101493873A (zh) * | 2009-03-04 | 2009-07-29 | 浪潮电子信息产业股份有限公司 | 基于内核层技术实现对win平台文件读写操作访问控制方法 |
CN103795796A (zh) * | 2014-01-27 | 2014-05-14 | 上海维响信息科技有限公司 | 一种文件强制集中管理方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107045605A (zh) * | 2016-02-05 | 2017-08-15 | 中兴通讯股份有限公司 | 一种实时度量方法及装置 |
CN106021096A (zh) * | 2016-05-09 | 2016-10-12 | 北京金山安全软件有限公司 | 一种异常函数查找方法及装置 |
CN106021096B (zh) * | 2016-05-09 | 2018-12-21 | 珠海豹趣科技有限公司 | 一种异常函数查找方法及装置 |
CN109271789A (zh) * | 2018-09-27 | 2019-01-25 | 珠海市君天电子科技有限公司 | 恶意进程检测方法、装置、电子设备及存储介质 |
CN109271789B (zh) * | 2018-09-27 | 2021-09-28 | 珠海豹趣科技有限公司 | 恶意进程检测方法、装置、电子设备及存储介质 |
CN109144616A (zh) * | 2018-09-30 | 2019-01-04 | 珠海市君天电子科技有限公司 | 一种检测反射式动态链接库文件的方法及装置 |
CN112685744A (zh) * | 2020-12-28 | 2021-04-20 | 安芯网盾(北京)科技有限公司 | 一种利用栈相关寄存器检测软件漏洞的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105095763B (zh) | 2018-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103116529B (zh) | 用于实时检测缓冲区溢出致堆内存损坏的方法和设备 | |
KR101519845B1 (ko) | 안티디버깅 방법 | |
CN105095763A (zh) | 漏洞防御方法及装置、电子设备 | |
US6634020B1 (en) | Uninitialized memory watch | |
US8522213B2 (en) | Debugger and debugging methods using breakpoints conditioned on the static identity of data | |
US10599558B1 (en) | System and method for identifying inputs to trigger software bugs | |
KR20130031860A (ko) | 시스템 테스트 방법 | |
CN107220544A (zh) | 用于检测感兴趣指令序列的系统和方法 | |
CN101388057A (zh) | 一种网页防挂马的方法 | |
CN104679645A (zh) | 一种栈空间余量实时检测方法 | |
CN109684795B (zh) | 应用程序反调试的方法、装置及电子设备 | |
CN108898012B (zh) | 检测非法程序的方法和装置 | |
CN109388946A (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
CN102750484A (zh) | 一种防止病毒样本自检的方法及装置 | |
US9176821B2 (en) | Watchpoint support system for functional simulator | |
CN109271789A (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
CN112231198B (zh) | 一种恶意进程调试方法、装置、电子设备及介质 | |
CN108776633B (zh) | 监控进程运行的方法、终端设备及计算机可读存储介质 | |
CN106682494B (zh) | 一种信息访问方法、装置和设备 | |
CN101617322B (zh) | 信息处理装置、信息处理方法和程序 | |
CN111385661B (zh) | 语音控制全屏播放的方法、装置、终端及存储介质 | |
CN103810087A (zh) | 测试应用程序性能的方法和装置 | |
US20220335135A1 (en) | Vulnerability analysis and reporting for embedded systems | |
CN106372498A (zh) | 一种软件保护的方法和装置 | |
US20080148102A1 (en) | Method for enhancing debugging of runtime memory access errors by using an integrated visualization tool and a runtime memory error detection tool |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20181214 Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Patentee after: Zhuhai Leopard Technology Co.,Ltd. Address before: 100085 East District, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing Patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |