CN109255233B - 一种漏洞检测方法及装置 - Google Patents

一种漏洞检测方法及装置 Download PDF

Info

Publication number
CN109255233B
CN109255233B CN201811141098.7A CN201811141098A CN109255233B CN 109255233 B CN109255233 B CN 109255233B CN 201811141098 A CN201811141098 A CN 201811141098A CN 109255233 B CN109255233 B CN 109255233B
Authority
CN
China
Prior art keywords
target
driver
control code
vulnerability
denial
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
Application number
CN201811141098.7A
Other languages
English (en)
Other versions
CN109255233A (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.)
Beijing Wondersoft Technology Co Ltd
Original Assignee
Beijing Wondersoft Technology 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 Wondersoft Technology Co Ltd filed Critical Beijing Wondersoft Technology Co Ltd
Priority to CN201811141098.7A priority Critical patent/CN109255233B/zh
Publication of CN109255233A publication Critical patent/CN109255233A/zh
Application granted granted Critical
Publication of CN109255233B publication Critical patent/CN109255233B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

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

Abstract

本发明实施例提供了一种漏洞检测方法及装置。所述方法包括:判断是否存在驱动程序拒绝服务漏洞检测任务;在不存在驱动程序拒绝服务漏洞检测任务的情况下,则获取系统中的各驱动程序对应的驱动符号链接;依据驱动符号链接,探测各驱动程序的IO控制码范围;依据探测结果,确定至少一个有效IO控制码;确定各有效IO控制码对应的第一目标驱动程序;生成与各第一目标驱动程序对应的第一目标检测任务;按照设定规则构造输入输出参数;依据输入输出参数对各第一目标检测任务进行轮询测试;依据各测试结果,确定各第一目标驱动程序是否存在驱动程序拒绝服务漏洞。本发明对操作人员技术要求低,漏洞测试更全面、快速,节省了人力成本。

Description

一种漏洞检测方法及装置
技术领域
本发明涉及计算机安全技术领域,特别是涉及一种漏洞检测方法及装置。
背景技术
驱动程序拒绝服务漏洞是软件漏洞的一种,一旦发生将导致计算机蓝屏,从而导致拒绝服务。在驱动程序工作在内核模式下,驱动程序拥有最高执行权限,如果驱动程序产生错误,将导致系统遭到破坏,例如,应用层通过DeviceIoControl函数传递错误或者非法的参数或者畸形数据给驱动程序,如果驱动程序设计不严谨,会导致驱动程序产生异常,并使系统发生崩溃。
现有技术中,通常是采用人工挖掘驱动程序拒绝服务漏洞,需要人员具备相关专业技术(逆向、编程),要求较高,人工挖掘效率低下,并且容易漏掉部分驱动未检测的缺陷。
发明内容
本发明提供了一种漏洞检测方法及装置,以解决现有技术中人工挖掘漏洞需要人员具备较高专业技术,且效率低,容易漏掉部分区域未进行漏洞检测的问题。
为了解决上述问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种漏洞检测方法,包括:判断是否存在驱动程序拒绝服务漏洞检测任务;在不存在驱动程序拒绝服务漏洞检测任务的情况下,则获取系统中的各驱动程序对应的驱动符号链接;依据所述驱动符号链接,探测各所述驱动程序的IO控制码范围;依据探测结果,确定至少一个有效IO控制码;确定各所述有效IO控制码对应的第一目标驱动程序;生成与各所述第一目标驱动程序对应的第一目标检测任务;按照设定规则构造输入输出参数;依据所述输入输出参数对各所述第一目标检测任务进行轮询测试;依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞。
优选地,在所述依据探测结果,确定至少一个有效IO控制码的步骤之后,还包括:依据各所述有效IO控制码,生成与各所述有效IO控制码对应的第一目标检测日志;所述依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞的步骤,包括:针对各测试结果,依次判断所述测试结果中是否存在系统崩溃的记录;在存在系统崩溃的记录的情况下,则确定所述测试结果对应的第一目标驱动程序存在驱动程序拒绝服务漏洞;分析各所述第一目标检测任务和各所述第一目标检测日志,生成漏洞测试记录;退出漏洞检测任务。
优选地,在所述依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞的步骤之后,还包括:在确定不存在驱动程序拒绝服务漏洞的情况,检测是否存在至少一个目标有效IO控制码;其中,所述目标有效IO控制码是指除所述有效IO控制码之外的控制码;在存在目标有效IO控制码的情况下,确定与各所述目标有效IO控制码对应的第二目标驱动程序;生成与各所述第二目标驱动程序对应的第二目标检测任务;依据所述输入输出参数对各所述第二目标检测任务进行轮询测试,以确定各所述第二目标驱动程序是否存在驱动程序拒绝服务漏洞。
优选地,在所述检测是否存在至少一个目标有效IO控制码的步骤之后,还包括:在不存在目标有效IO控制码的情况下,检查系统中是否存在未检测的IO控制码;在存在未检测的IO控制码的情况下,则执行所述生成与各所述第一目标驱动程序对应的第一目标检测任务的步骤;在不存在未检测的IO控制码的情况下,则执行所述获取系统中的各驱动程序对应的驱动符号链接的步骤。
优选地,所述按照设定规则构造输入输出参数的步骤,包括:依据系统中的随机数或空指针构造所述输入输出参数。
第二方面,本发明实施例提供了一种漏洞检测装置,包括:漏洞检测任务判断模块,用于判断是否存在驱动程序拒绝服务漏洞检测任务;驱动符号链接获取模块,用于在不存在驱动程序拒绝服务漏洞检测任务的情况下,则获取系统中的各驱动程序对应的驱动符号链接;控制码范围探测模块,用于依据所述驱动符号链接,探测各所述驱动程序的IO控制码范围;有效控制码确定模块,用于依据探测结果,确定至少一个有效IO控制码;第一目标驱动确定模块,用于确定各所述有效IO控制码对应的第一目标驱动程序;第一目标任务生成模块,用于生成与各所述第一目标驱动程序对应的第一目标检测任务;输入输出参数构造模块,用于按照设定规则构造输入输出参数;第一目标任务测试模块,用于依据所述输入输出参数对各所述第一目标检测任务进行轮询测试;拒绝服务漏洞确定模块,用于依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞。
优选地,还包括:第一目标日志生成模块,用于依据各所述有效IO控制码,生成与各所述有效IO控制码对应的第一目标检测日志;所述拒绝服务漏洞确定模块包括:崩溃记录判断子模块,用于针对各测试结果,依次判断所述测试结果中是否存在系统崩溃的记录;拒绝服务漏洞确定子模块,用于在存在系统崩溃的记录的情况下,则确定所述测试结果对应的第一目标驱动程序存在驱动程序拒绝服务漏洞;任务日志分析子模块,用于分析各所述第一目标检测任务和各所述第一目标检测日志,生成漏洞测试记录;检测任务退出子模块,用于退出漏洞检测任务。
优选地,还包括:目标有效控制码检测模块,用于在确定不存在驱动程序拒绝服务漏洞的情况,检测是否存在至少一个目标有效IO控制码;其中,所述目标有效IO控制码是指除所述有效IO控制码之外的控制码;第二目标驱动确定模块,用于在存在目标有效IO控制码的情况下,确定与各所述目标有效IO控制码对应的第二目标驱动程序;第二目标任务生成模块,用于生成与各所述第二目标驱动程序对应的第二目标检测任务;第二目标驱动漏洞确定模块,用于依据所述输入输出参数对各所述第二目标检测任务进行轮询测试,以确定各所述第二目标驱动程序是否存在驱动程序拒服务绝漏洞。
优选地,还包括:IO控制码检查模块,用于在不存在目标有效IO控制码的情况下,检查系统中是否存在未检测的IO控制码;第一执行模块,用于在存在未检测的IO控制码的情况下,则执行所述第一目标任务生成模块;第二执行模块,用于在不存在未检测的IO控制码的情况下,则执行所述驱动符号链接获取模块。
优选地,所述输入输出参数构造模块包括:输入输出参数构造子模块,用于依据系统中的随机数或空指针构造所述输入输出参数。
第三方面,本发明实施例提供了一种终端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述的驱动程序漏洞检测方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的驱动程序漏洞检测方法中的步骤。
与现有技术相比,本发明包括以下优点:
在本发明实施例中,通过在不存在驱动程序拒绝服务漏洞检测任务的情况下,则获取系统中的各驱动程序对应的驱动符号链接,依据驱动符号链接探测各驱动程序的IO控制码范围,依据探测结果,获取至少一个有效IO控制码,并确定与各有效IO控制码对应的第一目标驱动程序,生成与各第一目标驱动程序对应的第一目标检测任务,按照设定规则构造输入输出参数,并依据输入输出参数对各第一目标检测任务进行轮询测试,从而确定各第一目标驱动程序是否存在驱动程序拒绝服务漏洞。本发明实施例提供的方案对操作人员技术要求低,可由非专业技术人员担任,并且相对人工挖掘漏洞方案,漏洞测试更全面、快速,极大地节省了人力成本。
附图说明
图1是本发明实施例提供的一种漏洞检测方法的步骤流程图;
图2是本发明实施例提供的一种漏洞测试过程的示意图;
图3是本发明实施例提供的一种漏洞检测装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
参照图1,示出了本发明实施例提供的一种漏洞检测方法的步骤流程图,该漏洞检测方法具体可以包括如下步骤:
步骤101:判断是否存在驱动程序拒绝服务漏洞检测任务。
本发明实施例可以应用于对系统中的驱动程序拒绝服务漏洞进行检测的场景,并应用于终端侧,终端可以包括PC(Personal Computer,个人计算机)等电子设备。
在对终端系统内的驱动程序进行漏洞检测之前,首先需要对终端系统内是否存在驱动程序拒绝服务漏洞的检测任务,即在先进行的驱动程序拒绝服务漏洞未完成的检测任务,在存在驱动程序拒绝服务漏洞的检测任务的情况下,则继续执行未完成的漏洞检测任务。
在不存在驱动程序拒绝服务漏洞检测任务的情况下,执行步骤102。
步骤102:在不存在驱动程序拒绝服务漏洞检测任务的情况下,则获取系统中的各驱动程序对应的驱动符号链接。
符号链接又称为软链接,是一类特殊的文件,在通常情况下,系统中每个驱动程序安装时,均会建立一个对应的驱动程序符号链接,不同的驱动程序对应有不同的驱动程序符号链接。
在系统中还可以预先设置获取驱动符号链接的监测程序,通过该监测程序可以获取到系统中具有所有具有符号链接的驱动程序对应的驱动符号链接。
当然,在实际应用中,本领域技术人员还可以采用其它方式获取各驱动程序对应的驱动符号链接,本发明实施例对于具体的驱动符号链接的获取方式不加以限制。
在终端系统中不存驱动程序拒绝服务漏洞检测任务的情况下,则可以获取终端系统各驱动程序对应的驱动符号链接,进而执行步骤103。
步骤103:依据所述驱动符号链接,探测各所述驱动程序的IO控制码范围。
IO(Input/Output,输入/输出)控制码,是一个具体数值,即IOControlCode,用于指定要执行的操作的控制代码。IOControlCode可以由四部分组成,分别为:DeviceType(设备类型)、Access(对设备的访问权限)、Function(设备IOControl的功能号,例如,0~0x7ff为微软保留,0x800~0xfff由程序员自己定义)、Method(Ring3/Ring0的通信中的内存访问方式)。
IO控制码范围可以是根据驱动程序发送的命令值、驱动程序对应的缓冲区、功能号范围(如0~0x7ff)等设定的,而对于IO控制码范围可以依据实际情况而定,本发明实施例对此不加以限制。
在探测各驱动程序的IO控制码范围之后,执行步骤104。
步骤104:依据探测结果,确定至少一个有效IO控制码。
在本发明实施例中,可以预先设置一个IOControlCode阈值范围,可以对每个驱动程序的IO控制码范围进行探测,在各驱动程序对应的IOControlCode范围处于该IOControlCode阈值范围内时,则可以确定该驱动程序对应的IO控制码为有效IO控制码。
在本发明实施例中,在确定有效IO控制码之后,还可以根据各有效IO控制码生成对应的第一目标检测日志,第一目标检测日志是指对应于第一目标驱动程序的检测日志。
当然,在实际应用中,本领域技术人员还可以采用其它方式获取有效IO控制码,本发明实施例对此不加以限制。
步骤105:确定各所述有效IO控制码对应的第一目标驱动程序。
在本发明实施例中,第一目标驱动程序是指需要进行驱动程序拒绝服务漏洞检测的驱动程序。
在终端系统中,由于每个驱动程序所对应的IOControlCode均是不相同的,因此,在获取有效IO控制码之后,可以依据有效IO控制码确定对应的第一目标驱动程序。
在确定第一目标驱动程序之后,执行步骤106。
步骤106:生成与各所述第一目标驱动程序对应的第一目标检测任务。
第一目标检测任务是指对应于各第一目标驱动程序的漏洞检测任务。
在确定第一目标驱动程序之后,可以分别生成对应于各第一目标驱动程序分别的第一目标检测任务,进而执行步骤107。
步骤107:按照设定规则构造输入输出参数。
设定规则可以为随机数规则,即以随机数构造输入输出参数。设定规则还可以为空指针规则,即以空指针构造输入输出参数等,具体地,以下述优选实施例进行详细描述。
在本发明实施例的一种优选实施例中,上述步骤107可以包括:
子步骤S1:依据系统中的随机数或空指针构造所述输入输出参数。
在本发明实施例中,随机数可以为系统中预存的随机数,也可以为终端系统当前随机生成的随机数,空指针可以为有效IO控制码对应的驱动程序所对应的空指针等,本发明实施例对此不加以限制。
在获取随机数或空指针之后,可以依据随机数或空指针构造输入输出参数。
可以理解地,对于如何构造输入输出参数已经是本领域较为成熟的技术,现有技术中任何一种通过随机数或空指针构造出输入输出参数的方案均可以应用于本发明,本发明实施例在此不再加以赘述。
在构造出输入输出参数之后,执行步骤108。
步骤108:依据所述输入输出参数对各所述第一目标检测任务进行轮询测试。
在获取输入输出参数之后,可以通过DeviceIoControl函数将输入输出参数发送至的各第一目标驱动程序,以对各第一目标检测任务进行轮询测试。
可以理解地,对目标检测任务进行测试的方案已经是本领域较为成熟的技术,本发明实施例在此不再加以赘述。
在依据输入输出参数对各第一目标检测任务进行轮询测试之后,执行步骤109。
步骤109:依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞。
在依据输入输出参数对各第一目标驱动程序对应的第一目标检测任务进行轮询测试的过程中,可以检查终端系统是否发生崩溃的现象,如果检查到终端系统发生崩溃的现象时,则表示正在检测的第一目标驱动程序存在驱动程序拒绝服务漏洞。如果未检查到终端系统发生崩溃的现象时,表示终端系统中不存在驱动程序拒绝服务漏洞,具体地,以下述优选实施例进行详细描述。
在本发明实施例中的一种优选实施例中,上述步骤109可以包括:
子步骤A1:针对各测试结果,依次判断所述测试结果中是否存在系统崩溃的记录。
在本发明实施例中,针对各第一目标驱动程序预先建立有对应的第一目标检测日志,在依据输入输出参数对各第一目标驱动程序对应的第一目标检测任务进行测试的过程中,可以测试过程中产生的数据及终端系统是否存在崩溃现象等状态进行记录。
进而,在依据输入输出参数对各第一目标检测任务测试完成之后,可以依据第一目标检测日志中保存的测试结果,判断系统中是否存在崩溃的记录,进而执行子步骤A2。
子步骤A2:在存在系统崩溃的记录的情况下,则确定所述测试结果对应的第一目标驱动程序存在驱动程序拒绝服务漏洞。
在第一目标检测日志中保存的测试结果中存在系统崩溃的记录时,可以依据第一目标检测日志,确定该测试结果所对应的第一目标驱动程序,即确定哪个第一目标驱动程序所导致的系统崩溃,进而可以确定为该第一目标驱动程序存在驱动程序拒绝服务漏洞。
子步骤A3:分析各所述第一目标检测任务和各所述第一目标检测日志,生成漏洞测试记录。
在确定存在驱动程序拒绝服务漏洞的第一目标驱动程序之后,可以对上述各第一目标驱动程序对应的第一目标检测任务和第一目标检测日志进行分析,从而生成漏洞测试记录,在漏洞测试记录中可以保存各第一目标驱动程序是否存在驱动程序拒绝服务漏洞等状态信息。如下述表1所示:
表1
Figure BDA0001815817770000081
Figure BDA0001815817770000091
如上述表1可知,第一目标驱动程序A存在拒绝服务漏洞,而第二目标驱动程序B不存在拒绝服务漏洞。
可以理解地,上述示例仅是为了更好地理解本发明实施例的技术方案而列举的示例,不作为对本发明的唯一限制。
在获取漏洞记录之后,可以将漏洞记录提供给相关工作人员,可以提醒工作人员及时对存在驱动程序拒绝服务漏洞的驱动程序进行修复,以避免系统崩溃现象的产生。
子步骤A4:退出漏洞检测任务。
在生成漏洞记录之后,则可以退出漏洞检测任务。
在本发明实施例的另一优选实施例中,在上述步骤109之后,还可以包括:
步骤B1:在确定不存在驱动程序拒绝服务漏洞的情况,检测是否存在至少一个目标有效IO控制码;其中,所述目标有效IO控制码是指除所述有效IO控制码之外的控制码。
在本发明实施例中,在终端系统中不存在驱动程序拒绝服务漏洞的情况下,可以对终端系统中除上述有效IO控制码之外的控制码进行检测,以确定其余IO控制码中是否存在有效IO控制码。
步骤B2:在存在目标有效IO控制码的情况下,确定与各所述目标有效IO控制码对应的第二目标驱动程序。
第一目标驱动程序是指与各目标有效IO控制码对应的驱动程序,在终端系统中存在目标有效IO控制码的情况下,可以依据目标有效IO控制码确定与各目标有效IO控制码对应的第二目标驱动程序。
步骤B3:生成与各所述第二目标驱动程序对应的第二目标检测任务。
在确定第二目标驱动程序之后,可以针对各第二目标驱动程序生成对应的第二目标检测任务。
可以理解地,对于如何针对各第二目标驱动程序生成对应的第二目标检测任务的方案已经是本领域较为成熟的技术,本发明实施例在此不再加以详细描述。
步骤B4:依据所述输入输出参数对各所述第二目标检测任务进行轮询测试,以确定各所述第二目标驱动程序是否存在驱动程序拒绝服务漏洞。
在本发明实施例中,在生成对应于各第二目标驱动程序的第二目标检测任务之后,可以依据上述输入输出参数对各第二目标检测任务进行轮询测试。
当然,也可以重新构造输入输出参数对各第二目标驱动程序进行轮询测试,本发明实施例对此不加以限制。
通过输入输出参数对第二目标驱动程序进行轮询测试,可以确定各第二目标驱动程序是否存在拒绝服务漏洞,而该过程与上述步骤108~步骤109的过程类似,本发明实施例在此不再加以详细描述。
在本发明实施例的另一优选实施例中,在上述步骤B4之后,还可以包括:
步骤C1:在不存在目标有效IO控制码的情况下,检查系统中是否存在未检测的IO控制码;
步骤C2:在存在未检测的IO控制码的情况下,则执行所述生成与各所述第一目标驱动程序对应的第一目标检测任务的步骤;
步骤C3:在不存在未检测的IO控制码的情况下,则执行所述获取系统中的各驱动程序对应的驱动符号链接的步骤。
在本发明实施例中,在终端系统中不存在目标有效IO控制码的情况下,可以检查终端系统中是否存在未检测的IO控制码,在存在未检测的IO控制码的情况,则对未检测的IO控制码生成对应的漏洞检测任务,进而对漏洞检测任务进行漏洞检测的方案,可以理解地,漏洞检测方案与上述步骤实现的漏洞检测方案相似,本发明实施例在此不再加以赘述。
在不存在未检测的IO控制码的情况下,则执行获取终端系统中各驱动程序对应的驱动符号链接的步骤,从而开启下一轮的驱动程序拒绝服务漏洞的测试。
以下结合说明书附图对本发明实施例的整个执行过程进行如下详细描述。
参照图2,示出了本发明实施例提供的一种漏洞测试过程的示意图,如图2所示。
在需要对终端系统进行驱动程序拒绝服务漏洞的测试时,首先需要登录漏洞挖掘平台,通过漏洞挖掘平台判断终端系统中是否存在未完成的驱动程序拒绝服务漏洞检测任务,如果终端系统中存在未完成的驱动程序拒绝服务漏洞检测任务,则继续执行未完成的检测任务,并在检测任务完成之后上报检测结果。
而在终端系统中不存在未完成的驱动程序拒绝服务漏洞检测任务的情况下,则更新漏洞检测任务,如上述步骤101~步骤106,进而在终端系统中安装待检测软件,在软件安装完成时,清理掉安装未成功的软件,继续未安装完成软件的安装,并在所有软件安装完成之后,启动漏洞检测任务,具体的漏洞检测任务可以按照上述步骤107~步骤109的实现过程,进行漏洞检测完成之后,上报检测结果,并退出漏洞检测系统。
本发明实施例提供的漏洞检测方法,可以通过在不存在驱动程序拒绝服务漏洞检测任务的情况下,则获取系统中的各驱动程序对应的驱动符号链接,依据驱动符号链接探测各驱动程序的IO控制码范围,依据探测结果,获取至少一个有效IO控制码,并确定与各有效IO控制码对应的第一目标驱动程序,生成与各第一目标驱动程序对应的第一目标检测任务,按照设定规则构造输入输出参数,并依据输入输出参数对各第一目标检测任务进行轮询测试,从而确定各第一目标驱动程序是否存在驱动程序拒绝服务漏洞。本发明实施例提供的方案对操作人员技术要求低,可由非专业技术人员担任,并且相对人工挖掘漏洞方案,漏洞测试更全面、快速,极大地节省了人力成本。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例二
参照图3,示出了本发明实施例提供的一种漏洞检测装置的结构示意图,具体可以包括:
漏洞检测任务判断模块210,用于判断是否存在驱动程序拒绝服务漏洞检测任务;驱动符号链接获取模块220,用于在不存在驱动程序拒绝服务漏洞检测任务的情况下,则获取系统中的各驱动程序对应的驱动符号链接;控制码范围探测模块230,用于依据所述驱动符号链接,探测各所述驱动程序的IO控制码范围;有效控制码确定模块240,用于依据探测结果,确定至少一个有效IO控制码;第一目标驱动确定模块250,用于确定各所述有效IO控制码对应的第一目标驱动程序;第一目标任务生成模块260,用于生成与各所述第一目标驱动程序对应的第一目标检测任务;输入输出参数构造模块270,用于按照设定规则构造输入输出参数;第一目标任务测试模块280,用于依据所述输入输出参数对各所述第一目标检测任务进行轮询测试;拒绝服务漏洞确定模块290,用于依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞。
优选地,还包括:第一目标日志生成模块,用于依据各所述有效IO控制码,生成与各所述有效IO控制码对应的第一目标检测日志;所述拒绝服务漏洞确定模块290包括:崩溃记录判断子模块,用于针对各测试结果,依次判断所述测试结果中是否存在系统崩溃的记录;拒绝服务漏洞确定子模块,用于在存在系统崩溃的记录的情况下,则确定所述测试结果对应的第一目标驱动程序存在驱动程序拒绝服务漏洞;任务日志分析子模块,用于分析各所述第一目标检测任务和各所述第一目标检测日志,生成漏洞测试记录;检测任务退出子模块,用于退出漏洞检测任务。
优选地,还包括:目标有效控制码检测模块,用于在确定不存在驱动程序拒绝服务漏洞的情况,检测是否存在至少一个目标有效IO控制码;其中,所述目标有效IO控制码是指除所述有效IO控制码之外的控制码;第二目标驱动确定模块,用于在存在目标有效IO控制码的情况下,确定与各所述目标有效IO控制码对应的第二目标驱动程序;第二目标任务生成模块,用于生成与各所述第二目标驱动程序对应的第二目标检测任务;第二目标驱动漏洞确定模块,用于依据所述输入输出参数对各所述第二目标检测任务进行轮询测试,以确定各所述第二目标驱动程序是否存在驱动程序拒服务绝漏洞。
优选地,还包括:IO控制码检查模块,用于在不存在目标有效IO控制码的情况下,检查系统中是否存在未检测的IO控制码;第一执行模块,用于在存在未检测的IO控制码的情况下,则执行所述第一目标任务生成模块;第二执行模块,用于在不存在未检测的IO控制码的情况下,则执行所述驱动符号链接获取模块。
优选地,所述输入输出参数构造模块270包括:输入输出参数构造子模块,用于依据系统中的随机数或空指针构造所述输入输出参数。
本发明实施例提供的漏洞检测装置,可以通过在不存在驱动程序拒绝服务漏洞检测任务的情况下,则获取系统中的各驱动程序对应的驱动符号链接,依据驱动符号链接探测各驱动程序的IO控制码范围,依据探测结果,获取至少一个有效IO控制码,并确定与各有效IO控制码对应的第一目标驱动程序,生成与各第一目标驱动程序对应的第一目标检测任务,按照设定规则构造输入输出参数,并依据输入输出参数对各第一目标检测任务进行轮询测试,从而确定各第一目标驱动程序是否存在驱动程序拒绝服务漏洞。本发明实施例提供的方案对操作人员技术要求低,可由非专业技术人员担任,并且相对人工挖掘漏洞方案,漏洞测试更全面、快速,极大地节省了人力成本。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
优选的,本发明实施例还提供一种终端,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述漏洞检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述漏洞检测方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端上,使得在计算机或其他可编程终端上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端中还存在另外的相同要素。
以上对本发明所提供的一种漏洞检测方法和一种漏洞检测装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种漏洞检测方法,其特征在于,应用于终端侧,所述方法包括:
判断是否存在驱动程序拒绝服务漏洞检测任务;
在不存在驱动程序拒绝服务漏洞检测任务的情况下,则通过预先设置的获取驱动符号链接的监测程序获取系统中的各驱动程序对应的驱动符号链接;
依据所述驱动符号链接,探测各所述驱动程序的IO控制码范围;
依据探测结果,确定至少一个有效IO控制码;
确定各所述有效IO控制码对应的第一目标驱动程序;
针对各第一目标驱动程序建立对应的第一目标检测日志;
生成与各所述第一目标驱动程序对应的第一目标检测任务;
按照设定规则构造输入输出参数;
依据所述输入输出参数对各所述第一目标检测任务进行轮询测试;
依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞;
其中,依据探测结果,确定至少一个有效IO控制码,包括:
预先设置一个IO控制码阈值范围;
在各驱动程序对应的IO控制码范围处于所述IO控制码阈值范围内时,确定该驱动程序对应的IO控制码为有效IO控制码;
依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞,包括:
依据所述第一目标检测日志中保存的测试结果,判断系统中是否存在崩溃的记录;
在存在系统崩溃的记录的情况下,则确定导致系统崩溃的所述第一目标驱动程序存在驱动程序拒绝服务漏洞。
2.根据权利要求1所述的方法,其特征在于,在所述依据探测结果,确定至少一个有效IO控制码的步骤之后,还包括:
依据各所述有效IO控制码,生成与各所述有效IO控制码对应的第一目标检测日志;
所述依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞的步骤,包括:
针对各测试结果,依次判断所述测试结果中是否存在系统崩溃的记录;
在存在系统崩溃的记录的情况下,则确定所述测试结果对应的第一目标驱动程序存在驱动程序拒绝服务漏洞;
分析各所述第一目标检测任务和各所述第一目标检测日志,生成漏洞测试记录;
退出漏洞检测任务。
3.根据权利要求1所述的方法,其特征在于,在所述依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞的步骤之后,还包括:
在确定不存在驱动程序拒绝服务漏洞的情况下,检测是否存在至少一个目标有效IO控制码;其中,所述目标有效IO控制码是指除所述有效IO控制码之外的IO控制码;
在存在目标有效IO控制码的情况下,确定与各所述目标有效IO控制码对应的第二目标驱动程序;
生成与各所述第二目标驱动程序对应的第二目标检测任务;
依据所述输入输出参数对各所述第二目标检测任务进行轮询测试,以确定各所述第二目标驱动程序是否存在驱动程序拒绝服务漏洞。
4.根据权利要求3所述的方法,其特征在于,在所述检测是否存在至少一个目标有效IO控制码的步骤之后,还包括:
在不存在目标有效IO控制码的情况下,检查系统中是否存在未探测的IO控制码;
在存在未探测的IO控制码的情况下,则执行所述生成与各所述第一目标驱动程序对应的第一目标检测任务的步骤;
在不存在未探测的IO控制码的情况下,则执行所述获取系统中的各驱动程序对应的驱动符号链接的步骤。
5.根据权利要求1所述的方法,其特征在于,所述按照设定规则构造输入输出参数的步骤,包括:
依据系统中的随机数或空指针构造所述输入输出参数。
6.一种漏洞检测装置,其特征在于,应用于终端侧,所述装置包括:
漏洞检测任务判断模块,用于判断是否存在驱动程序拒绝服务漏洞检测任务;
驱动符号链接获取模块,用于在不存在驱动程序拒绝服务漏洞检测任务的情况下,则通过预先设置的获取驱动符号链接的监测程序获取系统中的各驱动程序对应的驱动符号链接;
控制码范围探测模块,用于依据所述驱动符号链接,探测各所述驱动程序的IO控制码范围;
有效控制码确定模块,用于依据探测结果,确定至少一个有效IO控制码;
第一目标驱动确定模块,用于确定各所述有效IO控制码对应的第一目标驱动程序,针对各第一目标驱动程序建立对应的第一目标检测日志;
第一目标任务生成模块,用于生成与各所述第一目标驱动程序对应的第一目标检测任务;
输入输出参数构造模块,用于按照设定规则构造输入输出参数;
第一目标任务测试模块,用于依据所述输入输出参数对各所述第一目标检测任务进行轮询测试;
拒绝服务漏洞确定模块,用于依据各测试结果,确定各所述第一目标驱动程序是否存在驱动程序拒绝服务漏洞;
其中,所述有效控制码确定模块,还用于预先设置一个IO控制码阈值范围,在各驱动程序对应的IO控制码范围处于所述IO控制码阈值范围内时,确定该驱动程序对应的IO控制码为有效IO控制码;
所述拒绝服务漏洞确定模块,还用于依据所述第一目标检测日志中保存的测试结果,判断系统中是否存在崩溃的记录;
在存在系统崩溃的记录的情况下,则确定导致系统崩溃的所述第一目标驱动程序存在驱动程序拒绝服务漏洞。
7.根据权利要求6所述的装置,其特征在于,还包括:
第一目标日志生成模块,用于依据各所述有效IO控制码,生成与各所述有效IO控制码对应的第一目标检测日志;
所述拒绝服务漏洞确定模块包括:
崩溃记录判断子模块,用于针对各测试结果,依次判断所述测试结果中是否存在系统崩溃的记录;
拒绝服务漏洞确定子模块,用于在存在系统崩溃的记录的情况下,则确定所述测试结果对应的第一目标驱动程序存在驱动程序拒绝服务漏洞;
任务日志分析子模块,用于分析各所述第一目标检测任务和各所述第一目标检测日志,生成漏洞测试记录;
检测任务退出子模块,用于退出漏洞检测任务。
8.根据权利要求6所述的装置,其特征在于,还包括:
目标有效控制码检测模块,用于在确定不存在驱动程序拒绝服务漏洞的情况下,检测是否存在至少一个目标有效IO控制码;其中,所述目标有效IO控制码是指除所述有效IO控制码之外的IO控制码;
第二目标驱动确定模块,用于在存在目标有效IO控制码的情况下,确定与各所述目标有效IO控制码对应的第二目标驱动程序;
第二目标任务生成模块,用于生成与各所述第二目标驱动程序对应的第二目标检测任务;
第二目标驱动漏洞确定模块,用于依据所述输入输出参数对各所述第二目标检测任务进行轮询测试,以确定各所述第二目标驱动程序是否存在驱动程序拒服务绝漏洞。
9.根据权利要求8所述的装置,其特征在于,还包括:
IO控制码检查模块,用于在不存在目标有效IO控制码的情况下,检查系统中是否存在未探测的IO控制码;
第一执行模块,用于在存在未探测的IO控制码的情况下,则执行所述第一目标任务生成模块;
第二执行模块,用于在不存在未探测的IO控制码的情况下,则执行所述驱动符号链接获取模块。
10.根据权利要求6所述的装置,其特征在于,所述输入输出参数构造模块包括:
输入输出参数构造子模块,用于依据系统中的随机数或空指针构造所述输入输出参数。
11.一种终端,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的漏洞检测方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的漏洞检测方法中的步骤。
CN201811141098.7A 2018-09-28 2018-09-28 一种漏洞检测方法及装置 Active CN109255233B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811141098.7A CN109255233B (zh) 2018-09-28 2018-09-28 一种漏洞检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811141098.7A CN109255233B (zh) 2018-09-28 2018-09-28 一种漏洞检测方法及装置

Publications (2)

Publication Number Publication Date
CN109255233A CN109255233A (zh) 2019-01-22
CN109255233B true CN109255233B (zh) 2020-09-25

Family

ID=65048260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811141098.7A Active CN109255233B (zh) 2018-09-28 2018-09-28 一种漏洞检测方法及装置

Country Status (1)

Country Link
CN (1) CN109255233B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484608A (zh) * 2015-09-01 2017-03-08 青岛海信电器股份有限公司 一种内核错误定位方法、装置及计算机
CN107169362A (zh) * 2017-03-29 2017-09-15 西安电子科技大学 基于自动化识别驱动参数辅助内核漏洞挖掘的方法
CN108491327A (zh) * 2018-03-26 2018-09-04 中南大学 一种安卓应用动态Receiver组件本地拒绝服务漏洞检测方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185232B1 (en) * 2001-02-28 2007-02-27 Cenzic, Inc. Fault injection methods and apparatus
CN107025168B (zh) * 2015-12-15 2022-01-07 阿里巴巴集团控股有限公司 漏洞检测方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484608A (zh) * 2015-09-01 2017-03-08 青岛海信电器股份有限公司 一种内核错误定位方法、装置及计算机
CN107169362A (zh) * 2017-03-29 2017-09-15 西安电子科技大学 基于自动化识别驱动参数辅助内核漏洞挖掘的方法
CN108491327A (zh) * 2018-03-26 2018-09-04 中南大学 一种安卓应用动态Receiver组件本地拒绝服务漏洞检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Windows设备驱动漏洞检测与分析技术研究;秦弼时;《中国优秀硕士学位论文全文数据库信息科技辑》;20150815;第23-24、27-28、31-35页 *

Also Published As

Publication number Publication date
CN109255233A (zh) 2019-01-22

Similar Documents

Publication Publication Date Title
KR101498614B1 (ko) 악성코드 활동 차단 장치 및 방법
CN106828362B (zh) 汽车信息的安全测试方法及装置
CN108268371B (zh) 面向Android应用的智能模糊测试方法
US5901073A (en) Method for detecting errors in models through restriction
CN105573911A (zh) 一种应用弹窗的处理方法和装置
KR101972825B1 (ko) 하이브리드 분석 기술을 이용한 임베디드 기기 취약점 자동 분석 방법, 장치 및 그 방법을 실행하는 컴퓨터 프로그램
CN107621963B (zh) 一种软件部署方法、软件部署系统及电子设备
CN110990295B (zh) 测试用例的验证方法、装置及电子设备
CN115952503A (zh) 融合黑白灰安全检测技术的应用安全测试方法及系统
CN111611154B (zh) 一种回归测试的方法、装置和设备
US9268944B2 (en) System and method for sampling based source code security audit
CN109255233B (zh) 一种漏洞检测方法及装置
CN115733741B (zh) 一种针对待测系统的异常场景测试方法和装置
KR101252358B1 (ko) Plc 명령어 테스트 장치 및 방법
CN111949548A (zh) 一种自动化越权渗透测试方法和存储设备
KR100976961B1 (ko) 인터넷 사이트 보안 시스템 및 그 방법
CN108959931B (zh) 漏洞检测方法及装置、信息交互方法及设备
KR101626581B1 (ko) 휴대통신 단말의 오류 애플리케이션 진단방법
CN115277229A (zh) 一种网络安全态势感知方法及系统
CN115495363A (zh) 一种软件测试方法、电子设备及可读存储介质
CN111143305B (zh) 基于分布式存储系统的数据存储方法、装置、设备及介质
JP2000322283A (ja) 電子計算機の障害検出方法
CN113946828A (zh) 一种工业控制系统的漏洞扫描方法及漏洞扫描装置
KR102002545B1 (ko) 가상화를 통한 코드 테스트 수행 자동화 방법 및 장치
CN107102938B (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