CN105528546A - 一种挖掘漏洞的方法、装置及电子设备 - Google Patents

一种挖掘漏洞的方法、装置及电子设备 Download PDF

Info

Publication number
CN105528546A
CN105528546A CN201510996365.9A CN201510996365A CN105528546A CN 105528546 A CN105528546 A CN 105528546A CN 201510996365 A CN201510996365 A CN 201510996365A CN 105528546 A CN105528546 A CN 105528546A
Authority
CN
China
Prior art keywords
data
fuzzy
server
fuzzy processing
receiver interface
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
Application number
CN201510996365.9A
Other languages
English (en)
Other versions
CN105528546B (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.)
Zhuhai Baoqu Technology Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software 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 Beijing Kingsoft Internet Security Software Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201510996365.9A priority Critical patent/CN105528546B/zh
Publication of CN105528546A publication Critical patent/CN105528546A/zh
Application granted granted Critical
Publication of CN105528546B publication Critical patent/CN105528546B/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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明的实施例公开一种挖掘漏洞的方法、装置及电子设备。方法包括:在服务器的数据接收接口注入预先设置的数据截获处理脚本;运行已注入的数据截获处理脚本,以使所述数据截获处理脚本截获发送至所述服务器的数据接收接口的数据;对截获的数据进行模糊处理,调用所述服务器的数据接收接口提交所述经模糊处理的数据;运行所述经模糊处理的数据,获取运行结果信息,并基于所述运行结果信息判断所述服务器是否存在漏洞。应用本发明,降低漏洞检测成本、提升漏洞挖掘效率。

Description

一种挖掘漏洞的方法、装置及电子设备
技术领域
本发明涉及计算机漏洞挖掘技术,尤其涉及一种挖掘漏洞的方法、装置及电子设备。
背景技术
随着计算机网络技术的高速发展,互联网络已逐渐成为人们工作生活中不可或缺的一部分。但由于互联网络应用环境的复杂性以及互联网络应用程序的多样性,电子设备中的应用程序容易受到电脑病毒、木马等网络漏洞攻击和威胁。其中,漏洞是指应用程序中存在的功能性或安全性逻辑缺陷,而利用漏洞挖掘技术,可以及时挖掘并修补应用程序中存在的漏洞或潜在漏洞,对保护互联网络用户的个人信息安全、财产安全有着积极的促进作用。
目前,在进行包含有网络协议的漏洞挖掘时,对于客户端中存在的漏洞,开发者可以通过将编辑的漏洞扫描检测代码设置在客户端,从而实现对客户端的漏洞扫描获取各应用程序中的漏洞,而对于服务器中存在的漏洞,需要构建包括客户端和服务器的漏洞挖掘系统,即采用双机远程连接的客户端/服务器(C/S,Client/Server)方式,通过在客户端构造包含预定格式并采用网络协议封装的模糊(Fuzzing)数据,提交至服务器,服务器运行接收的模糊数据,通过设置在服务器中的异常监控应用程序,监控服务器对本次接收的模糊数据处理是否产生异常,获取监控结果后,再通知客户端提交下一轮模糊数据,其中,通过分析服务器的监控结果,可以确定服务器是否存在漏洞,在存在漏洞的情形下,可以依据监控结果进行分析,形成应用程序补丁或对应用程序进行代码编辑以避免该漏洞。
但该漏洞挖掘方法,由于需要在客户端与服务器之间构建网络连接,并且需要在客户端中配置与服务器中相同的网络协议,使得检测服务器中的漏洞的成本较高,而如果网络连接出现故障或异常,将使得漏洞挖掘不能进行,导致漏洞挖掘效率较低。
发明内容
有鉴于此,本发明实施例提供一种挖掘漏洞的方法、装置及电子设备,降低漏洞检测成本、提升漏洞挖掘效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种挖掘漏洞的方法,包括:
在服务器的数据接收接口注入预先设置的数据截获处理脚本;
运行已注入的数据截获处理脚本,以使所述数据截获处理脚本截获发送至所述服务器的数据接收接口的数据;
对截获的数据进行模糊处理,调用所述服务器的数据接收接口提交所述经模糊处理的数据;
运行所述经模糊处理的数据,获取运行结果信息,并基于所述运行结果信息判断所述服务器是否存在漏洞。
可选的,在服务器的数据接收接口注入预先设置的数据截获处理脚本之前,所述方法还包括:
获取操作系统的根权限;
调用Windows操作系统的SetWindowsHookEx接口,设置用于监测和处理数据接收进程操作的数据截获处理脚本。
可选的,所述在服务器的数据接收接口注入预先设置的数据截获处理脚本包括:
在所述服务器的数据接收接口对应的应用程序中写入预先设置的数据截获处理脚本中的监测及数据模糊处理模块,以在所述应用程序中增加所述监测及数据模糊处理模块;
监测到所述应用程序启动并配置进程,在配置的进程中启动写入在所述应用程序中的所述监测及数据模糊处理模块。
可选的,所述在所述服务器的数据接收接口对应的应用程序中写入预先设置的数据截获处理脚本中的监测及数据模糊处理模块包括:
将所述监测及数据模糊处理模块的内存变量对应的代码写入动态链接库中,利用操作系统中的windows钩子技术,将写入动态链接库中的内存变量代码映射到所述应用程序中。
可选的,所述对截获的数据进行模糊处理包括:
解析截获的数据的内容,得到解析的报文头以及报文体,依据所述解析的报文头判断客户端和服务器之间进行请求-响应时的方式:
如果所述客户端和服务器之间进行请求-响应时的方式为get方式,编辑报文体的统一资源定位符中的请求参数值,每一对应修改的请求参数值对应一经模糊处理的数据;
如果所述客户端和服务器之间进行请求-响应时的方式为post方式,编辑报文体的包中的请求参数值,每一对应修改的请求参数值对应一经模糊处理的数据。
可选的,所述对截获的数据进行模糊处理包括:
解析截获的数据的格式,得到数据块,调用预先设置的模糊配置数据,对所述数据块进行模糊配置,生成针对每一模糊配置的多个模糊数据。
可选的,所述运行所述经模糊处理的数据,获取运行结果信息包括:
按照预先设置的时间周期数,获取各进程分别在各时间周期内的进程运行时间;
统计各进程在每一时间周期内的进程运行时间的总和,得到总进程运行时间;
提取运行所述经模糊处理的数据的目标进程在每一时间周期内的目标进程运行时间,计算所述目标进程运行时间在所述总进程运行时间的占比;
统计占比超过预先设置的占比阈值的次数,如果统计的次数超过预先设置的次数阈值,导出所述目标进程在所述时间周期数内的运行信息。
可选的,所述按照预先设置的时间周期数,获取各进程分别在各时间周期内的进程运行时间包括:
设置计数器以及按照预先设置的时间周期触发的定时器,在所述预先设置的时间周期到后,触发调用预先设置的进程运行时间获取函数;
所述进程运行时间获取函数遍历操作系统记录的进程列表,获取各进程分别在所述时间周期内的进程运行时间信息;
所述计数器对所述定时器的触发次数进行计数,在计数达到预先设置的时间周期数后,通知所述进程运行时间获取函数将获取的所述进程运行时间信息打包输出,并对计数值进行清零处理。
可选的,所述方法还包括:
结束所述经模糊处理的数据的运行;
判断当前运行的所述经模糊处理的数据是否为最后一模糊数据,如果是,结束所述目标进程;如果不是,在所述目标进程中运行下一模糊数据。
第二方面,本发明实施例提供一种挖掘漏洞的装置,包括:注入模块、数据截获模块、模糊处理模块以及漏洞分析模块,其中,
注入模块,用于在服务器的数据接收接口注入预先设置的数据截获处理脚本;
数据截获模块,用于运行已注入的数据截获处理脚本,以使所述数据截获处理脚本截获发送至所述服务器的数据接收接口的数据;
模糊处理模块,用于对截获的数据进行模糊处理,调用所述服务器的数据接收接口提交所述经模糊处理的数据;
漏洞分析模块,用于运行所述经模糊处理的数据,获取运行结果信息,并基于所述运行结果信息判断所述服务器是否存在漏洞。
可选的,所述装置还包括:权限获取模块以及脚本设置模块,其中,
权限获取模块,用于获取操作系统的根权限;
脚本设置模块,用于调用Windows操作系统的SetWindowsHookEx接口,设置用于监测和处理数据接收进程操作的数据截获处理脚本。
可选的,所述注入模块包括:脚本写入单元以及脚本启动单元,其中,
脚本写入单元,用于在所述服务器的数据接收接口对应的应用程序中写入预先设置的数据截获处理脚本中的监测及数据模糊处理模块,以在所述应用程序中增加所述监测及数据模糊处理模块;
脚本启动单元,用于在监测到所述应用程序启动并配置进程后,在配置的进程中启动写入在所述应用程序中的所述监测及数据模糊处理模块。
可选的,所述脚本写入单元包括:写入子单元以及映射子单元,其中,
写入子单元,用于将所述监测及数据模糊处理模块的内存变量对应的代码写入动态链接库中;
映射子单元,用于利用操作系统中的windows钩子技术,将写入动态链接库中的内存变量代码映射到所述应用程序中。
可选的,所述模糊处理模块包括:内容解析单元、请求响应判断单元、第一编辑单元、第二编辑单元以及调用单元,其中,
内容解析单元,用于解析截获的数据的内容,得到解析的报文头以及报文体;
请求响应判断单元,用于依据所述解析的报文头判断客户端和服务器之间进行请求-响应时的方式:如果所述客户端和服务器之间进行请求-响应时的方式为get方式,通知第一编辑单元;如果所述客户端和服务器之间进行请求-响应时的方式为post方式,通知第二编辑单元;
第一编辑单元,用于编辑报文体的统一资源定位符中的请求参数值,每一对应修改的请求参数值对应一经模糊处理的数据,输出至调用单元;
第二编辑单元,用于编辑报文体的包中的请求参数值,每一对应修改的请求参数值对应一经模糊处理的数据,输出至调用单元;
调用单元,用于调用所述服务器的数据接收接口,提交接收的数据。
可选的,所述模糊处理模块包括:格式解析单元、模糊配置单元以及数据调用单元,其中,
格式解析单元,用于解析截获的数据的格式,得到数据块;
模糊配置单元,用于调用预先设置的模糊配置数据,对所述数据块进行模糊配置,生成针对每一模糊配置的多个模糊数据;
数据调用单元,用于调用所述服务器的数据接收接口,提交模糊配置单元生成的模糊数据。
可选的,所述漏洞分析模块包括:进程运行时间获取单元、总进程运行时间计算单元、占比计算单元、运行信息导出单元以及漏洞分析单元,其中,
进程运行时间获取单元,用于按照预先设置的时间周期数,获取各进程分别在各时间周期内的进程运行时间;
总进程运行时间计算单元,用于统计各进程在每一时间周期内的进程运行时间的总和,得到总进程运行时间;
占比计算单元,用于提取运行所述经模糊处理的数据的目标进程在每一时间周期内的目标进程运行时间,计算所述目标进程运行时间在所述总进程运行时间的占比;
运行信息导出单元,用于统计占比超过预先设置的占比阈值的次数,如果统计的次数超过预先设置的次数阈值,导出所述目标进程在所述时间周期数内的运行信息;
漏洞分析单元,用于基于所述运行结果信息判断所述服务器是否存在漏洞。
可选的,所述进程运行时间获取单元包括:参数设置子单元、进程运行时间获取子单元以及计数处理子单元,其中,
参数设置子单元,用于设置计数器以及按照预先设置的时间周期触发的定时器,在所述预先设置的时间周期到后,触发调用预先设置的进程运行时间获取函数;
进程运行时间获取子单元,用于通过所述进程运行时间获取函数遍历操作系统记录的进程列表,获取各进程分别在所述时间周期内的进程运行时间信息;
计数处理子单元,用于利用所述计数器对所述定时器的触发次数进行计数,在计数达到预先设置的时间周期数后,通知所述进程运行时间获取函数将获取的所述进程运行时间信息打包输出,并对计数值进行清零处理。
可选的,所述装置还包括:
异常处理模块,用于结束所述经模糊处理的数据的运行;
判断当前运行的所述经模糊处理的数据是否为最后一模糊数据,如果是,结束所述目标进程;如果不是,在所述目标进程中运行下一模糊数据。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的挖掘漏洞的方法。
本发明实施例提供的挖掘漏洞的方法、装置及电子设备,在服务器的数据接收接口注入预先设置的数据截获处理脚本;运行已注入的数据截获处理脚本,以使所述数据截获处理脚本截获发送至所述服务器的数据接收接口的数据;对截获的数据进行模糊处理,调用所述服务器的数据接收接口提交所述经模糊处理的数据;运行所述经模糊处理的数据,获取运行结果信息,并基于所述运行结果信息判断所述服务器是否存在漏洞。这样,通过截获发送至服务器的数据接收接口的数据,进行模糊处理后输入服务器,发送至服务器的数据接收接口的数据可以通过外接存储设备实现,从而避免构建服务器与客户端之间的网络连接,降低了检测服务器中漏洞的成本;同时也避免了网络连接出现故障或异常使得漏洞挖掘不能进行的缺陷,提升了漏洞挖掘效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例挖掘漏洞的方法流程示意图;
图2为本发明实施例运行所述经模糊处理的数据,获取运行结果信息的流程示意图;
图3为本发明实施例挖掘漏洞的装置结构示意图;
图4为本发明实施例的漏洞分析模块结构示意图;
图5为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例挖掘漏洞的方法流程示意图。参见图1,该方法包括:
步骤11,在服务器的数据接收接口注入预先设置的数据截获处理脚本;
本步骤中,在服务器的数据接收接口(例如,recv接口)注入预先设置的数据截获处理脚本,是为了使注入的数据截获处理脚本能够监测并截获从外部发送至服务器的的数据接收接口的数据以进行后续处理,使接收的数据暂缓通过数据接收接口发送至服务器进行相应处理。其中,数据截获处理脚本为根据本发明实施例的漏洞挖掘方法编写的程序代码段,其中,程序代码段可以采用超级文本预处理语言(PHP,HypertextPreprocessor)、C、C++、Linux等语言进行编写,关于依据本发明实施例方法编写程序代码段为公知技术,在此略去详述。
由于不同的用户,对操作系统进行操作的权限可能不同,每一操作权限对应一可操作的应用程序组。本发明实施例中,考虑到不同的操作权限虽然将用户对操作系统的操作限制在相应的操作权限内,但由于各操作权限之间并不相互独立,都依赖于同样的指令完成权限操作。因而,可以利用提升权限(AdjustTokenPrivilege),例如,钩子(Hook)的方法提升用户访问的操作权限,其中,提升权限是指程序员或相关技术人员利用各种操作系统漏洞,突破操作系统指派的操作权限级别,将自己当前的操作权限提高一个或多个级别,从而使程序员或相关技术人员获取更多对操作系统进行操作的权限,例如,通过提升权限的方法,可以使程序员或相关技术人员获取原先未曾拥有的对系统文件的删、增、加载、改等权限,例如,通过提升权限的方法,可以使得用户获取注入脚本的权限。
所应说明的是,本发明实施例中,所述的注入是指将预先编写的脚本、模块或应用程序,通过远程注入或其他方案,映射进其它应用程序或接口的地址空间,使得用户可以拥有操作其他应用程序或接口的高级权限。本发明实施例中的注入仅是示例性的,本领域普通技术人员可以采用其他的技术来完成注入流程,例如,在操作系统启动后,调用SetWindowsHookEx接口向Windows操作系统注册本发明实施例的数据截获处理脚本,用于在数据接收接口监测和处理数据接口进程操作事例,本发明实施例不再一一例举。
本步骤中,数据截获处理脚本是Windows操作系统中用于监测和处理进程操作的钩子程序。通过在数据接收接口中设置数据截获处理脚本,可以使得数据截获处理脚本获取处理发送至数据接收接口的数据的优先处理权。因而,作为一可选实施例,在服务器的数据接收接口注入预先设置的数据截获处理脚本之前,该方法还可以包括:
获取操作系统的根(Root)权限;
调用Windows操作系统的SetWindowsHookEx接口,设置用于监测和处理数据接收进程操作的数据截获处理脚本。
本步骤中,通过预先获取操作系统的Root权限,从而可以实现提升权限。其中,Root是Linux操作系统、Windows操作系统和Unix操作系统中的超级管理员用户账户,如果获得Root权限,表示已经获取操作系统的最高权限。这样,可以对操作系统中的任何文件(包括操作系统文件)执行增、删、改、查等操作。
本发明实施例中,作为一可选实施例,在服务器的数据接收接口注入预先设置的数据截获处理脚本包括:
在所述服务器的数据接收接口对应的应用程序中写入预先设置的数据截获处理脚本中的监测及数据模糊处理模块,以在所述应用程序中增加所述监测及数据模糊处理模块;
监测到所述应用程序启动并配置进程,在配置的进程中启动写入在所述应用程序中的所述监测及数据模糊处理模块。
本步骤中,作为一可选实施例,在所述服务器的数据接收接口对应的应用程序中写入预先设置的数据截获处理脚本中的监测及数据模糊处理模块包括:
将所述监测及数据模糊处理模块的内存变量对应的代码写入动态链接库中,利用操作系统中的windows钩子技术,将写入动态链接库中的内存变量代码映射到所述应用程序中。
步骤12,运行已注入的数据截获处理脚本,以使所述数据截获处理脚本截获发送至所述服务器的数据接收接口的数据;
本步骤中,在外部数据发送至服务器的数据接收接口后,数据截获处理脚本截获该数据,即优先对数据进行处理后,才交由数据接收接口发送至服务器。其中,外部数据可以是客户端发送至服务器的数据,也可以是在服务器中设置并发送至自身的数据。
步骤13,对截获的数据进行模糊处理,调用所述服务器的数据接收接口提交所述经模糊处理的数据;
本步骤中,作为一可选实施例,对截获的数据进行模糊处理包括:
解析截获的数据的内容,得到解析的报文头以及报文体,依据所述解析的报文头判断客户端和服务器之间进行请求-响应时的方式:
如果所述客户端和服务器之间进行请求-响应时的方式为get方式,编辑报文体的统一资源定位符中的请求参数值,每一对应修改的请求参数值对应一经模糊处理的数据;
如果所述客户端和服务器之间进行请求-响应时的方式为post方式,编辑报文体的包中的请求参数值,每一对应修改的请求参数值对应一经模糊处理的数据。
本步骤中,客户端和服务器之间进行请求-响应时的方式包括:get方式以及post方式,其中,get方式用于从指定的资源(例如,服务器)请求数据,post方式用于向指定的资源提交要被处理的数据。
本发明实施例中,作为一可选实施例,报文体包括:统一资源定位符(URL,UniformResourceLocator)以及包,对于get方式,请求参数以及请求参数对应的请求参数值包含在统一资源定位符中;对于post方式,请求参数以及请求参数对应的请求参数值包含在包中。
本发明实施例中,通过依据预先设置的策略修改请求参数值,可以为服务器自动生成数量众多的输入数据。
作为另一可选实施例,对截获的数据进行模糊处理包括:
解析截获的数据的格式,得到数据块,调用预先设置的模糊配置数据,对所述数据块进行模糊配置,生成针对每一模糊配置的多个模糊数据。
本步骤中,作为一可选实施例,利用模糊配置数据(Fuzzing-Data)生成器生成模糊配置数据。其中,模糊配置数据生成器利用模糊技术生成数据,可以向目标应用程序提供预先构造的无效的、非预期或者是随机的模糊配置数据,用于对目标内容进行模糊处理,得到用于进行漏洞挖掘的模糊数据,从而可以得到批量的包含各漏洞挖掘目标的模糊数据。
本发明实施例中,模糊技术(Fuzzing)是一种基于缺陷注入的自动测试技术,通过设置模糊配置数据,用以向目标应用程序提供依据模糊配置数据进行填充的预定形式的模糊入数据,并通过日志方式记录目标应用程序运行模糊数据的响应,以挖掘目标应用程序中的潜在漏洞。
作为一可选实施例,模糊配置数据生成器基于格式分析和目标应用程序解析相结合的方法生成模糊配置数据。关于利用模糊配置数据生成器生成模糊配置数据为公知技术,在此略去详述。
作为一可选实施例,模糊配置数据的格式采用偏移-长度-数据类型(pos-len-data)格式。
本发明实施例中,通过解析截获的数据的格式,识别出该截获的数据包含的一个或多个数据块。
作为一可选实施例,对应于模糊配置数据,每一数据块也采用偏移-长度-数据类型(pos-len-data)三元组的形式来表示。然后,针对每一数据块进行模糊(Fuzz)配置处理,生成相应的模糊数据,即经模糊处理的数据。
步骤14,运行所述经模糊处理的数据,获取运行结果信息,并基于所述运行结果信息判断所述服务器是否存在漏洞。
本步骤中,作为一可选实施例,图2为本发明实施例运行所述经模糊处理的数据,获取运行结果信息的流程示意图。参见图2,该流程包括:
步骤21,按照预先设置的时间周期数,获取各进程分别在各时间周期内的进程运行时间;
本步骤中,按照预先设置的时间周期数,获取各进程分别在各时间周期内的进程运行时间包括:
设置计数器以及按照预先设置的时间周期触发的定时器,在所述预先设置的时间周期到后,触发调用预先设置的进程运行时间获取函数;
所述进程运行时间获取函数遍历操作系统记录的进程列表,获取各进程分别在所述时间周期内的进程运行时间信息;
所述计数器对所述定时器的触发次数进行计数,在计数达到预先设置的时间周期数后,通知所述进程运行时间获取函数将获取的所述进程运行时间信息打包输出,并对计数值进行清零处理。
步骤22,统计各进程在每一时间周期内的进程运行时间的总和,得到总进程运行时间;
步骤23,提取运行所述经模糊处理的数据的目标进程在每一时间周期内的目标进程运行时间,计算所述目标进程运行时间在所述总进程运行时间的占比;
步骤24,统计占比超过预先设置的占比阈值的次数,如果统计的次数超过预先设置的次数阈值,导出所述目标进程在所述时间周期数内的运行信息。
本发明实施例中,作为一可选实施例,在导出所述目标进程在所述时间周期数内的运行信息之后,该方法还可以包括:
结束所述经模糊处理的数据的运行;
判断当前运行的所述经模糊处理的数据是否为最后一模糊数据,如果是,结束所述目标进程;如果不是,在所述目标进程中运行下一模糊数据。
本发明实施例中,通过在服务器的数据接收接口注入预先设置的数据截获处理脚本;运行已注入的数据截获处理脚本,以使数据截获处理脚本截获发送至所述服务器的数据接收接口的数据;对截获的数据进行模糊处理,调用所述服务器的数据接收接口,将经模糊处理的数据提交至所述服务器;运行所述经模糊处理的数据,获取运行结果信息,并基于所述运行结果信息判断所述服务器是否存在漏洞。这样,通过截获发送至服务器的数据接收接口的数据,进行模糊处理后输入服务器,发送至服务器的数据接收接口的数据可以通过外接存储设备实现,例如,U盘,从而避免构建服务器与客户端之间的网络连接,降低了检测服务器中漏洞的成本;也避免了网络连接出现故障或异常使得漏洞挖掘不能进行的缺陷,提升了漏洞挖掘效率。进一步地,对截获的数据自动利用模糊技术生成多个模糊数据作为服务器的输入,可以有效缩短服务器漏洞扫描所需的时间,从而提升漏洞扫描效率。
图3为本发明实施例挖掘漏洞的装置结构示意图。参见图3,该装置包括:注入模块31、数据截获模块32、模糊处理模块33以及漏洞分析模块34,其中,
注入模块31,用于在服务器的数据接收接口注入预先设置的数据截获处理脚本;
本发明实施例中,在服务器的数据接收接口(例如,recv接口)注入预先设置的数据截获处理脚本。作为一可选实施例,注入模块31包括:脚本写入单元以及脚本启动单元(图中未示出),其中,
脚本写入单元,用于在所述服务器的数据接收接口对应的应用程序中写入预先设置的数据截获处理脚本中的监测及数据模糊处理模块,以在所述应用程序中增加所述监测及数据模糊处理模块;
本发明实施例中,程序代码段可以采用超级文本预处理语言、C、C++、Linux等语言进行编写。作为一可选实施例,脚本写入单元包括:写入子单元以及映射子单元,其中,
写入子单元,用于将所述监测及数据模糊处理模块的内存变量对应的代码写入动态链接库中;
映射子单元,用于利用操作系统中的windows钩子技术,将写入动态链接库中的内存变量代码映射到所述应用程序中。
脚本启动单元,用于在监测到所述应用程序启动并配置进程后,在配置的进程中启动写入在所述应用程序中的所述监测及数据模糊处理模块。
数据截获模块32,用于运行已注入的数据截获处理脚本,以使所述数据截获处理脚本截获发送至所述服务器的数据接收接口的数据;
本发明实施例中,在外部数据发送至服务器的数据接收接口后,数据截获处理脚本截获该数据,即优先对数据进行处理后,才交由数据接收接口发送至服务器。其中,外部数据可以是客户端发送至服务器的数据,也可以是在服务器中设置并发送至自身的数据。
模糊处理模块33,用于对截获的数据进行模糊处理,调用所述服务器的数据接收接口提交所述经模糊处理的数据;
本发明实施例中,作为一可选实施例,模糊处理模块33包括:内容解析单元、请求响应判断单元、第一编辑单元、第二编辑单元以及调用单元(图中未示出),其中,
内容解析单元,用于解析截获的数据的内容,得到解析的报文头以及报文体;
请求响应判断单元,用于依据所述解析的报文头判断客户端和服务器之间进行请求-响应时的方式:如果所述客户端和服务器之间进行请求-响应时的方式为get方式,通知第一编辑单元;如果所述客户端和服务器之间进行请求-响应时的方式为post方式,通知第二编辑单元;
第一编辑单元,用于编辑报文体的统一资源定位符中的请求参数值,每一对应修改的请求参数值对应一经模糊处理的数据,输出至调用单元;
第二编辑单元,用于编辑报文体的包中的请求参数值,每一对应修改的请求参数值对应一经模糊处理的数据,输出至调用单元;
调用单元,用于调用所述服务器的数据接收接口,提交接收的数据。
作为另一可选实施例,模糊处理模块33包括:格式解析单元、模糊配置单元以及数据调用单元,其中,
格式解析单元,用于解析截获的数据的格式,得到数据块;
模糊配置单元,用于调用预先设置的模糊配置数据,对所述数据块进行模糊配置,生成针对每一模糊配置的多个模糊数据;
本发明实施例中,利用模糊配置数据生成器生成模糊配置数据。作为一可选实施例,模糊配置数据生成器基于格式分析和目标应用程序解析相结合的方法生成模糊配置数据,模糊配置数据的格式采用偏移-长度-数据类型格式。
数据调用单元,用于调用所述服务器的数据接收接口,提交模糊配置单元生成的模糊数据。
漏洞分析模块34,用于运行所述经模糊处理的数据,获取运行结果信息,并基于所述运行结果信息判断所述服务器是否存在漏洞。
本发明实施例中,作为一可选实施例,图4为本发明实施例的漏洞分析模块结构示意图。参见图4,该漏洞分析模块包括:进程运行时间获取单元41、总进程运行时间计算单元42、占比计算单元43、运行信息导出单元44以及漏洞分析单元45,其中,
进程运行时间获取单元41,用于按照预先设置的时间周期数,获取各进程分别在各时间周期内的进程运行时间;
本发明实施例中,作为一可选实施例,进程运行时间获取单元包括:参数设置子单元、进程运行时间获取子单元以及计数处理子单元(图中未示出),其中,
参数设置子单元,用于设置计数器以及按照预先设置的时间周期触发的定时器,在所述预先设置的时间周期到后,触发调用预先设置的进程运行时间获取函数;
进程运行时间获取子单元,用于通过所述进程运行时间获取函数遍历操作系统记录的进程列表,获取各进程分别在所述时间周期内的进程运行时间信息;
计数处理子单元,用于利用所述计数器对所述定时器的触发次数进行计数,在计数达到预先设置的时间周期数后,通知所述进程运行时间获取函数将获取的所述进程运行时间信息打包输出,并对计数值进行清零处理。
总进程运行时间计算单元42,用于统计各进程在每一时间周期内的进程运行时间的总和,得到总进程运行时间;
占比计算单元43,用于提取运行所述经模糊处理的数据的目标进程在每一时间周期内的目标进程运行时间,计算所述目标进程运行时间在所述总进程运行时间的占比;
运行信息导出单元44,用于统计占比超过预先设置的占比阈值的次数,如果统计的次数超过预先设置的次数阈值,导出所述目标进程在所述时间周期数内的运行信息;
漏洞分析单元45,用于基于所述运行结果信息判断所述服务器是否存在漏洞。
本发明实施例中,作为一可选实施例,该装置还可以包括:权限获取模块35以及脚本设置模块36,其中,
权限获取模块35,用于获取操作系统的根权限;
脚本设置模块36,用于调用Windows操作系统的SetWindowsHookEx接口,设置用于监测和处理数据接收进程操作的数据截获处理脚本。
作为另一可选实施例,该装置还可以包括:
异常处理模块37,用于结束所述经模糊处理的数据的运行;
判断当前运行的所述经模糊处理的数据是否为最后一模糊数据,如果是,结束所述目标进程;如果不是,在所述目标进程中运行下一模糊数据。
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图5为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-4所示实施例的流程,如图5所示,上述电子设备可以包括:壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为上述电子设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器53中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的挖掘漏洞的方法。
处理器52对上述步骤的具体执行过程以及处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-4所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种挖掘漏洞的方法,其特征在于,该方法包括:
在服务器的数据接收接口注入预先设置的数据截获处理脚本;
运行已注入的数据截获处理脚本,以使所述数据截获处理脚本截获发送至所述服务器的数据接收接口的数据;
对截获的数据进行模糊处理,调用所述服务器的数据接收接口提交所述经模糊处理的数据;
运行所述经模糊处理的数据,获取运行结果信息,并基于所述运行结果信息判断所述服务器是否存在漏洞。
2.根据权利要求1所述的方法,其特征在于,在服务器的数据接收接口注入预先设置的数据截获处理脚本之前,所述方法还包括:
获取操作系统的根权限;
调用Windows操作系统的SetWindowsHookEx接口,设置用于监测和处理数据接收进程操作的数据截获处理脚本。
3.根据权利要求2所述的方法,其特征在于,所述在服务器的数据接收接口注入预先设置的数据截获处理脚本包括:
在所述服务器的数据接收接口对应的应用程序中写入预先设置的数据截获处理脚本中的监测及数据模糊处理模块,以在所述应用程序中增加所述监测及数据模糊处理模块;
监测到所述应用程序启动并配置进程,在配置的进程中启动写入在所述应用程序中的所述监测及数据模糊处理模块。
4.根据权利要求3所述的方法,其特征在于,所述在所述服务器的数据接收接口对应的应用程序中写入预先设置的数据截获处理脚本中的监测及数据模糊处理模块包括:
将所述监测及数据模糊处理模块的内存变量对应的代码写入动态链接库中,利用操作系统中的windows钩子技术,将写入动态链接库中的内存变量代码映射到所述应用程序中。
5.根据权利要求1所述的方法,其特征在于,所述对截获的数据进行模糊处理包括:
解析截获的数据的内容,得到解析的报文头以及报文体,依据所述解析的报文头判断客户端和服务器之间进行请求-响应时的方式:
如果所述客户端和服务器之间进行请求-响应时的方式为get方式,编辑报文体的统一资源定位符中的请求参数值,每一对应修改的请求参数值对应一经模糊处理的数据;
如果所述客户端和服务器之间进行请求-响应时的方式为post方式,编辑报文体的包中的请求参数值,每一对应修改的请求参数值对应一经模糊处理的数据。
6.根据权利要求1所述的方法,其特征在于,所述对截获的数据进行模糊处理包括:
解析截获的数据的格式,得到数据块,调用预先设置的模糊配置数据,对所述数据块进行模糊配置,生成针对每一模糊配置的多个模糊数据。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述运行所述经模糊处理的数据,获取运行结果信息包括:
按照预先设置的时间周期数,获取各进程分别在各时间周期内的进程运行时间;
统计各进程在每一时间周期内的进程运行时间的总和,得到总进程运行时间;
提取运行所述经模糊处理的数据的目标进程在每一时间周期内的目标进程运行时间,计算所述目标进程运行时间在所述总进程运行时间的占比;
统计占比超过预先设置的占比阈值的次数,如果统计的次数超过预先设置的次数阈值,导出所述目标进程在所述时间周期数内的运行信息。
8.根据权利要求7所述的方法,其特征在于,所述按照预先设置的时间周期数,获取各进程分别在各时间周期内的进程运行时间包括:
设置计数器以及按照预先设置的时间周期触发的定时器,在所述预先设置的时间周期到后,触发调用预先设置的进程运行时间获取函数;
所述进程运行时间获取函数遍历操作系统记录的进程列表,获取各进程分别在所述时间周期内的进程运行时间信息;
所述计数器对所述定时器的触发次数进行计数,在计数达到预先设置的时间周期数后,通知所述进程运行时间获取函数将获取的所述进程运行时间信息打包输出,并对计数值进行清零处理。
9.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
结束所述经模糊处理的数据的运行;
判断当前运行的所述经模糊处理的数据是否为最后一模糊数据,如果是,结束所述目标进程;如果不是,在所述目标进程中运行下一模糊数据。
10.一种挖掘漏洞的装置,其特征在于,该装置包括:注入模块、数据截获模块、模糊处理模块以及漏洞分析模块,其中,
注入模块,用于在服务器的数据接收接口注入预先设置的数据截获处理脚本;
数据截获模块,用于运行已注入的数据截获处理脚本,以使所述数据截获处理脚本截获发送至所述服务器的数据接收接口的数据;
模糊处理模块,用于对截获的数据进行模糊处理,调用所述服务器的数据接收接口提交所述经模糊处理的数据;
漏洞分析模块,用于运行所述经模糊处理的数据,获取运行结果信息,并基于所述运行结果信息判断所述服务器是否存在漏洞。
CN201510996365.9A 2015-12-25 2015-12-25 一种挖掘漏洞的方法、装置及电子设备 Active CN105528546B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510996365.9A CN105528546B (zh) 2015-12-25 2015-12-25 一种挖掘漏洞的方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510996365.9A CN105528546B (zh) 2015-12-25 2015-12-25 一种挖掘漏洞的方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN105528546A true CN105528546A (zh) 2016-04-27
CN105528546B CN105528546B (zh) 2018-09-25

Family

ID=55770766

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510996365.9A Active CN105528546B (zh) 2015-12-25 2015-12-25 一种挖掘漏洞的方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN105528546B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294166A (zh) * 2016-08-16 2017-01-04 腾讯科技(深圳)有限公司 一种游戏数据监控方法和装置
CN106326113A (zh) * 2016-08-16 2017-01-11 腾讯科技(深圳)有限公司 一种游戏数据监控方法和装置
CN107515820A (zh) * 2016-06-17 2017-12-26 阿里巴巴集团控股有限公司 服务器监测方法及装置、检测服务器
CN110471830A (zh) * 2018-05-10 2019-11-19 武汉斗鱼网络科技有限公司 一种程序测试方法、装置及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090121579A (ko) * 2008-05-22 2009-11-26 주식회사 이베이지마켓 서버의 취약점을 점검하기 위한 시스템 및 그 방법
CN104834588B (zh) * 2014-02-11 2019-06-25 腾讯科技(深圳)有限公司 检测常驻式跨站脚本漏洞的方法和装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107515820A (zh) * 2016-06-17 2017-12-26 阿里巴巴集团控股有限公司 服务器监测方法及装置、检测服务器
CN107515820B (zh) * 2016-06-17 2021-02-05 阿里巴巴集团控股有限公司 服务器监测方法及装置、检测服务器
CN106294166A (zh) * 2016-08-16 2017-01-04 腾讯科技(深圳)有限公司 一种游戏数据监控方法和装置
CN106326113A (zh) * 2016-08-16 2017-01-11 腾讯科技(深圳)有限公司 一种游戏数据监控方法和装置
CN106294166B (zh) * 2016-08-16 2018-07-06 腾讯科技(深圳)有限公司 一种游戏数据监控方法和装置
CN110471830A (zh) * 2018-05-10 2019-11-19 武汉斗鱼网络科技有限公司 一种程序测试方法、装置及电子设备
CN110471830B (zh) * 2018-05-10 2022-06-21 武汉斗鱼网络科技有限公司 一种程序测试方法、装置及电子设备

Also Published As

Publication number Publication date
CN105528546B (zh) 2018-09-25

Similar Documents

Publication Publication Date Title
CN106294102B (zh) 应用程序的测试方法、客户端、服务器及系统
CN106709325B (zh) 一种监控程序的方法及装置
WO2017107830A1 (zh) 一种安装应用软件的方法、装置及电子设备
CN105512045A (zh) 一种应用程序的测试方法、装置及测试设备
CN104933362A (zh) Android应用软件API误用类漏洞自动化检测方法
CN104361076A (zh) 浏览器的异常处理方法和装置
CN105528546A (zh) 一种挖掘漏洞的方法、装置及电子设备
CN110941832A (zh) 一种嵌入式物联网设备固件漏洞挖掘方法、装置及设备
US9747449B2 (en) Method and device for preventing application in an operating system from being uninstalled
CN112422581B (zh) JVM中的Webshell网页检测方法、装置及设备
CN105590063B (zh) 一种挖掘漏洞的方法、装置及电子设备
CN105512562B (zh) 一种漏洞挖掘方法、装置及电子设备
CN103902900A (zh) 外部提取式移动终端恶意代码检测装置及方法
CN112417444A (zh) 一种基于固件模拟的攻击诱捕系统
CN105302707A (zh) 应用程序的漏洞检测方法和装置
CN112528296B (zh) 漏洞检测方法、装置和存储介质及电子设备
CN111641601A (zh) 防火墙管理方法、装置、设备及存储介质
CN104462962A (zh) 一种检测未知恶意代码和二进制漏洞的方法
KR101421136B1 (ko) 악성 프로그램을 검사하기 위하여 컴퓨터 프로그램의행동을 모델링하는 방법 및 장치
CN113872965A (zh) 一种基于Snort引擎的SQL注入检测方法
CN105468531A (zh) 一种挖掘漏洞的方法、装置及电子设备
CN109818972B (zh) 一种工业控制系统信息安全管理方法、装置及电子设备
CN108932199B (zh) 一种基于用户界面分析的自动化污点分析系统
CN110780918A (zh) 中间件容器处理方法、装置、电子设备及存储介质
CN109474567B (zh) Ddos攻击溯源方法、装置、存储介质及电子设备

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: 20190117

Address after: 519031 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.