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

文档序号:9826378阅读:231来源:国知局
一种挖掘漏洞的方法、装置及电子设备的制造方法
【技术领域】
[0001] 本发明涉及计算机漏洞挖掘技术,尤其涉及一种挖掘漏洞的方法、装置及电子设 备。
【背景技术】
[0002] 随着计算机网络技术的高速发展,互联网络已逐渐成为人们工作生活中不可或缺 的一部分。但由于互联网络应用环境的复杂性以及互联网络应用程序的多样性,电子设备 中的应用程序容易受到电脑病毒、木马等网络漏洞攻击和威胁。其中,漏洞是指应用程序中 存在的功能性或安全性逻辑缺陷,而利用漏洞挖掘技术,可以及时挖掘并修补应用程序中 存在的漏洞,对保护互联网络用户的个人信息安全、财产安全有着积极的促进作用。
[0003] 目前,在进行漏洞挖掘时,一般通过将经过模糊处理(Fuzz)的数据输入目标应用 程序,再利用目标应用程序对应的进程监控目标应用程序运行输入的数据,如果目标应用 程序在运行输入数据的过程中出现崩溃、死锁等导致应用程序终止的异常,则目标应用程 序对应的进程记录该异常。
[0004] 现有技术中,进程对崩溃、死锁等导致电子设备无法运行的异常监控是通过设置 顶层异常处理方式来实现。具体来说,通过在操作系统默认的异常处理代码 (UnhandledExceptionHandler)中设置并注入自定义的异常处理函数 (SetUnhandledExceptionFilter),以进行异常处理回调,即利用自定义的异常处理函数钩 住(Hook)默认的异常处理代码,当进程遇到无法由操作系统处理的异常后,由操作系统调 用默认的异常处理代码,由于该代码Η ο 〇 k 了异常处理函数,即 SetUnhandledExceptionFilter,因而,异常处理函数进行异常处理回调,并在回调中通过 转出导出函数(MiniDumpWriteDump)导出当前运行的目标应用程序的异常信息,从而实现 对目标应用程序的漏洞挖掘。
[0005] 但该漏洞挖掘方法,由于采用顶层异常处理方式进行漏洞挖掘,使得应用程序运 行输入数据中出现的一些底层异常无法被捕获,例如,内存访问违例、CPU占用异常以及应 用程序运行进入死循环等底层异常,由于这类异常并不会导致应用程序的终止,因而,该系 统可由操作系统处理,不会被异常处理函数通过异常处理回调获取,使得该部分异常并不 能被有效挖掘,从而不会反馈至应用程序开发者进行改善或改进,导致应用程序中存在的 漏洞被忽略,漏洞挖掘效率较低。

【发明内容】

[0006] 有鉴于此,本发明实施例提供一种挖掘漏洞的方法、装置及电子设备,提升漏洞挖 掘效率。
[0007] 为达到上述目的,本发明的实施例采用如下技术方案:
[0008] 第一方面,本发明实施例提供一种挖掘漏洞的方法,包括:
[0009] 在目标应用程序运行预先设置的输入数据的过程中,利用预先注入至操作系统中 的脚本,以预先设置的时间周期数为单位,获取各应用程序对应的进程分别在所述时间周 期数的各时间周期内的进程运行时间;
[0010] 统计各进程在每一时间周期内的进程运行时间的总和,得到每一时间周期内的总 进程运行时间;
[0011] 提取目标应用程序对应的进程在每一时间周期内的目标进程运行时间,对应计算 所述目标进程运行时间在所述总进程运行时间的占比;
[0012] 统计占比超过预先设置的占比阈值的次数,如果统计的次数超过预先设置的次数 阈值,导出所述目标应用程序在所述时间周期数内的运行信息。
[0013] 可选的,所述以预先设置的时间周期数为单位,获取各应用程序对应的进程分别 在所述时间周期数的各时间周期内的进程运行时间包括:
[0014] 设置计数器以及按照预先设置的时间周期触发的定时器,在所述预先设置的时间 周期到后,触发调用预先设置的进程运行时间获取函数;
[0015] 遍历操作系统记录的进程列表,获取各进程分别在所述时间周期内的进程运行时 间;
[0016] 所述计数器对所述定时器的触发次数进行计数,在计数达到预先设置的时间周期 数后,通知所述进程运行时间获取函数将获取的所述进程运行时间打包输出,并对计数值 进行清零处理。
[0017] 可选的,所述输入数据利用预先设置的模糊配置数据生成器生成。
[0018] 可选的,所述运行信息包括:触发异常的地址、异常种类以及异常产生时的各寄存 器值。
[0019] 可选的,所述方法还包括:
[0020] 过滤运行信息中预先设置的非数据运行产生的异常信息,基于过滤的结果信息进 行漏洞检测。
[0021] 可选的,所述方法还包括:
[0022] 将所述输入数据标记为对应所述目标应用程序的漏洞检测数据并存储。
[0023]可选的,所述方法还包括:
[0024] 终止所述目标应用程序或结束所述目标进程。
[0025] 第二方面,本发明实施例提供一种挖掘漏洞的装置,包括:进程运行时间获取模 块、总进程运行时间计算模块、占比计算模块以及运行信息导出模块,其中,
[0026] 进程运行时间获取模块,用于在目标应用程序运行预先设置的输入数据的过程 中,利用预先注入至操作系统中的脚本,以预先设置的时间周期数为单位,获取各应用程序 对应的进程分别在所述时间周期数的各时间周期内的进程运行时间;
[0027] 总进程运行时间计算模块,用于统计各进程在每一时间周期内的进程运行时间的 总和,得到每一时间周期内的总进程运行时间;
[0028] 占比计算模块,用于提取目标应用程序对应的进程在每一时间周期内的目标进程 运行时间,对应计算所述目标进程运行时间在所述总进程运行时间的占比;
[0029] 运行信息导出模块,用于统计占比超过预先设置的占比阈值的次数,如果统计的 次数超过预先设置的次数阈值,导出所述目标应用程序在所述时间周期数内的运行信息。
[0030] 可选的,所述进程运行时间获取模块包括:注入单元、触发单元、进程运行时间获 取单元以及计数处理单元,其中,
[0031 ]注入单元,用于将预先设置的脚本注入至操作系统中;
[0032] 触发单元,用于在目标应用程序运行预先设置的输入数据的过程中,设置计数器 以及按照预先设置的时间周期触发的定时器,在所述预先设置的时间周期到后,触发调用 预先设置的进程运行时间获取函数;
[0033] 进程运行时间获取单元,用于遍历操作系统记录的进程列表,获取各进程分别在 所述时间周期内的进程运行时间;
[0034] 计数处理单元,触发所述计数器对所述定时器的触发次数进行计数,在计数达到 预先设置的时间周期数后,通知所述进程运行时间获取函数将获取的所述进程运行时间打 包输出,并对计数值进行清零处理。
[0035] 可选的,所述输入数据利用预先设置的模糊配置数据生成器生成。
[0036] 可选的,所述运行信息包括:触发异常的地址、异常种类以及异常产生时的各寄存 器值。
[0037] 可选的,所述装置还包括:
[0038]过滤模块,用于过滤运行信息中预先设置的非数据运行产生的异常信息,基于过 滤的结果信息进行漏洞检测。
[0039] 可选的,所述装置还包括:
[0040]输入数据存储模块,用于将所述输入数据标记为对应所述目标应用程序的漏洞检 测数据并存储。
[0041 ] 可选的,所述装置还包括:
[0042]异常处理模块,用于终止所述目标应用程序或结束所述目标进程。
[0043]第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存 储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置 在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执 行程序代码;处理器通过
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1