CN113868669A - 一种漏洞检测方法及*** - Google Patents

一种漏洞检测方法及*** Download PDF

Info

Publication number
CN113868669A
CN113868669A CN202111219859.8A CN202111219859A CN113868669A CN 113868669 A CN113868669 A CN 113868669A CN 202111219859 A CN202111219859 A CN 202111219859A CN 113868669 A CN113868669 A CN 113868669A
Authority
CN
China
Prior art keywords
detection
data packet
vulnerability
test
request
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.)
Pending
Application number
CN202111219859.8A
Other languages
English (en)
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.)
Qianjin Network Information Technology (shanghai) Co ltd
Original Assignee
Qianjin Network Information Technology (shanghai) 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 Qianjin Network Information Technology (shanghai) Co ltd filed Critical Qianjin Network Information Technology (shanghai) Co ltd
Priority to CN202111219859.8A priority Critical patent/CN113868669A/zh
Publication of CN113868669A publication Critical patent/CN113868669A/zh
Pending legal-status Critical Current

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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种漏洞检测方法及***,所述方法包括:获取测试端浏览器发送给测试目标的请求对功能点进行测试的镜像数据包;解析所述镜像数据包,获取到本次请求的去除参数的URL、参数及参数值;基于所述镜像数据包,依次对初始化漏洞组中的每个漏洞按照对应的检测策略进行初始化漏洞检测;以及依据每一运行态漏洞组的校验类型,基于所述镜像数据包及其解析结果构造自动测试请求数据包,对该漏洞组中的一个或多个漏洞按序执行粗粒度检测;在粗粒度检测出现疑似风险时,依据对应的检测策略进行细粒度检测或结果校验,以对疑似风险进行确认或排除。本发明减小了对测试环境的服务器压力,提高了漏洞的检测效率及***扩展性。

Description

一种漏洞检测方法及***
技术领域
本发明涉及网络安全技术领域,特别地涉及一种漏洞检测方法及***。
背景技术
在信息时代,网络信息安全始终是企业和个人关心的头等大事。无论是硬件、软件还是协议,当其存在缺陷或***安全策略不足时,则形成漏洞,攻击者利用漏洞在未经授权时即可访问或破坏***,导致信息***受到木马、蠕虫病毒的攻击或控制、数据泄露、数据被篡改、删除等等,从而给个人和企业带来不可估量的损失,尤其是一些互联网企业,为了保证线上业务的正常运行,保护用户信息的安全,通常配有安全工程师对线上业务进行漏洞的安全检测,以发现漏洞,并及时通知相关部门进行修复。目前,大部分的安全工程师采用风险扫描器,基于安全测试项目文档进行人工测试。但是这种安全检测模式面临以下问题:
第一、人为因素影响大。由于安全工程师的工作状态、安全知识储备、对于测试项目的理解等因素,无法保证安全测试策略得到很好地执行以及待检测业务功能的全量覆盖。另外,不同业务可能采用不同开发框架,如原生PHP模式、基于MVC框架的自编写模式、第三方框架模式等等,不同开发框架具有不同的测试策略,因而需要安全工程师针对项目的开发框架加载对应的测试策略,但是在实际操作过程中,安全工程师不一定会对此进行关注,导致安全测试策略加载错误进行无效检测。
第二、检测工具的效能有待提高。目前安全测试流程中常用的自动化应用风险扫描器如Appscan、绿盟极光等仅能覆盖一些简单的基于请求响应模型的安全风险,无法覆盖权限类安全漏洞及需要交互如存储型XSS类型的安全漏洞。
第三、漏检。虽然传统自动化扫描器爬虫能获取大部分的业务功能点,但无法获取高交互的业务功能点,无法有效解决业务功能漏检情况。
第四、安全测试经验和测试策略不能共享。安全工程师对于历史项目的测试经验和测试策略仅能通过自行记录的方式复用于同项目的下一次测试,无法实现不同工程师间的分享,并且无法得知是否出现漏检的情况,最终会导致测试周期长且结果不可信。
第四、测试环境受限。由于甲方安全测试通常在测试环境的服务器进行,此类测试服务器性能较差,仅能支持少量并发的测试请求,但市场中主流扫描器都是基于海量的攻击模拟请求进行,慢速进行的话,无法在有限的测试周期完成。
综上所述,现有的漏洞检测模式、方法及***还有很多可以提升的空间。
发明内容
针对现有技术中存在的技术问题,本发明提出了一种漏洞检测方法及***,在安全工程师进行漏洞检测时,减小对测试环境的服务器压力,提高漏洞的检测效率及***扩展性。
为了解决上述的技术问题,根据本发明的一个方面,本发明提供了一种漏洞检测方法,其中需要检测的多种漏洞分为初始化漏洞组和运行态漏洞组,运行态漏洞组根据校验类型分为多个不同的漏洞组,每个漏洞组对应相应的检测策略,所述方法包括:获取测试端浏览器发送给测试目标的请求对功能点进行测试的镜像数据包;解析所述镜像数据包,获取到本次请求的去除参数的URL、参数及参数值;基于所述镜像数据包,依次对初始化漏洞组中的每个漏洞按照对应的检测策略进行初始化漏洞检测;以及依据每一运行态漏洞组的校验类型,基于所述镜像数据包及其解析结果构造自动测试请求数据包,对该漏洞组中的一个或多个漏洞按序执行粗粒度检测;在粗粒度检测出现疑似风险时,依据对应的检测策略进行细粒度检测或结果校验,以对疑似风险进行确认或排除
为了解决上述的技术问题,根据本发明的另一个方面,本发明提供了一种漏洞检测***,包括数据包获取模块、数据包分析模块和检测模块,其中,检测模块包括检测管理单元和多个检测模型单元;所述数据包获取模块经配置从预置的代理端口获取测试端浏览器发送给测试目标的请求对功能点进行测试的镜像数据包,并向测试目标发送测试请求数据包,接收测试目标返回的对应响应数据包;所述数据包分析模块与所述数据包获取模块相连接,经配置以解析所述镜像数据包和响应数据包;所述检测管理单元与所述数据包分析模块相接,按照预置扫描策略协调多个检测模型单元对多个漏洞进行检测,其中多个漏洞分为初始化漏洞组和运行态漏洞组,根据校验类型运行态漏洞组分为多个不同的漏洞组,每个漏洞组设置有相应的检测策略;所述多个检测模型单元分别与所述检测管理单元、数据包分析模块和数据包获取模块相连接,每个检测模型单元根据检测管理单元的指令按照检测策略完成一个校验类型的漏洞组的检测。
本发明将检测流程拆分为初始的粗粒度安全检测和复核时的细粒度安全检测或结果校验两步,粗粒度安全检测仅配置少量最优的测试用例,如出现疑似漏洞再调用大量而精准的测试用例进行复核,因而对测试服务器的性能要求不高,在较差性能的测试环境下可以快速完成漏洞的安全检测,准确性高、效率高。通过根据检测时的校验类型将漏洞分为不同的小组,并为不同的漏洞组配置相应的检测策略并分别由一个检测模型单元执行,各个模型单元独立运行,因而漏洞检测的扩张性好,可以随时将新出现的漏洞匹配到对应的漏洞组,或者为其增加新的校验类型的检测模型单元,本发明这种模块化的检测模式提高了***的扩展性,并在进行扩展时,安全工程师可以根据需要在***前端通过配置来增加或减少漏洞或增加检测模型单元,减少了对开发人员的依赖。
附图说明
下面,将结合附图对本发明的优选实施方式进行进一步详细的说明,其中:
图1是根据本发明的一个实施例提供的漏洞检测***原理框图;
图2是根据本发明的一个实施例提供的项目检测管理模块原理框图;
图3是根据本发明的一个实施例提供的漏洞检测方法流程图;
图4是根据本发明的一个实施例提供的自动检测工具的原理框图;
图5是根据本发明的一个实施例提供的数据包分析模块的原理框图;
图6是根据本发明的一个实施例提供的检测模块的原理框图;
图7是根据本发明的一个实施例提供的对一个功能点进行检测的流程图;
图8是根据本发明的一个实施例提供的对一个初始化漏洞进行检测的流程图;
图9是根据本发明的一个实施例提供的对运行态漏洞组的一个漏洞的检测流程图;以及
图10是根据本发明的一个实施例提供的检测模型单元的原理框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在以下的详细描述中,可以参看作为本申请一部分用来说明本申请的特定实施例的各个说明书附图。在附图中,相似的附图标记在不同图式中描述大体上类似的组件。本申请的各个特定实施例在以下进行了足够详细的描述,使得具备本领域相关知识和技术的普通技术人员能够实施本申请的技术方案。应当理解,还可以利用其它实施例或者对本申请的实施例进行结构、逻辑或者电性的改变。
图1是根据本发明的一个实施例提供的漏洞检测***原理框图。参考图1,所述漏洞检测***包括测试端浏览器1、手动检测工具2、自动检测工具3和项目检测管理模块4,其中,所述项目检测管理模块4与所述手动检测工具2和自动检测工具3相连接,手动检测工具2与所述测试端浏览器1相连接,所述测试端浏览器1为安全工程师使用的浏览器。如图2所示,所述项目检测管理模块4包括管理界面41、功能列表生成单元42和监测单元43,所述管理界面41用以提供安全检测参数项的设置、检测过程及结果的数据显示。其中,通过管理界面41可以设置或选择测试项目名,如xxx业务,并在该业务下可以包含多个测试的业务线,设置或选择业务线名称;设置或选择测试项目域名,如xxx.yy.com,用以限定测试项目涉及的域名,非项目相关域名不进行测试,避免额外性能开销;设置或选择测试端IP地址,如10.100.x.x,用以限定进行漏洞检测的安全工程师的PC的IP地址,从而指定了测试端浏览器1,可以限制使用本***的来源,避免***被滥用。其中还包括进行自动检测时的一些参数,例如请求并发数、排除文件类型、排除域名列表、用于识别业务功能的各种关键词、权限认证模式的相关配置及关于测试目标的相关参数,如开发框架、开发语言,对应的解析逻辑等等,还有自动检测时检测策略中涉及的各种参数、校验条件、校验流程等等。其中,为了减少测试用例,减轻对测试环境的测试压力,本发明将页面错误回显状态设置为“是”,以便在对如任意文件下载漏洞、显错型SQL注入漏洞等漏洞的检测过程中,在从测试目标返回的响应中能够包含错误回显内容,便于使用较少的测试用例即可得到检测结果。管理界面41还包括各种数据的显示区域,例如检测结果显示区域,用于显示各种漏洞的检测过程数据和结果数据,如得到的漏洞风险名称、风险等级、风险参数、对应的功能路径等等,并包括对应的详细信息,如原始请求头信息、扫描信息等。功能列表生成单元42与管理界面41相连接,根据管理界面41配置的关于测试目标的参数及测试目标的源代码生成待测功能点列表,所述功能点列表包括URL(Uniform Resource Locator,统一资源***)列表字段,其中包括需要测试的各个功能点的URL。所述功能点列表可显示在管理界面相应显示区域中。监测单元43根据监测指标监测检测过程,并根据监测结果生成相应的监测通知以显示在所述管理界面41上。例如在接收到检测结束指令时查询功能点列表是否完全检测完成,功能点列表中还有未完成的功能点时,发出继续检测提醒通知,显示在管理界面41上以提醒安全工程师还有未完成检测的功能点,直到功能点列表中的功能点全部检测完成才允许漏洞检测结束。又例如,功能点列表中还包括URL标识字段,在URL标识字段中包括有多种功能标识,以表示当前功能点的业务功能。监测单元43监测功能点的URL标识字段,在接收到检测结束指令时,当监测到功能点的URL标识字段中某个标识内容未标记时,发出标记提醒通知显示在管理界面41上以提醒安全工程师对所述功能点的标识字段的标识内容进行标识,直到功能点列表中的功能点URL标识字段的标识内容全部标识完成才允许漏洞检测结束。
图3是根据本发明的一个实施例提供的漏洞检测方法流程图,安全工程师执行漏洞检测的方法流程包括以下步骤:
步骤S1,安全工程师通过所述项目检测管理模块4的管理界面41进行相应的配置或选择。其中,在测试目标不是第一次检测时,管理界面已经存储了上次检测时进行的配置,通过在项目名参数项中选择对应的名称,即可以得到上次测试时的所有配置。安全工程师可以直接使用上次的配置,也可以根据自身经验对上次配置进行改进。因而,本发明可以将检测经验和测试策略在安全工程师之间共享,并可以在前人的经验基础上进行改进,从而使得测试策略得到进一步改进,进而提高测试效果,增加测试的可信度,减小测试周期长。
步骤S2,项目检测管理模块4的的功能列表生成单元42根据管理界面41配置的关于测试目标的参数及测试目标的源代码生成由功能点列表。在一个实施例中,所述功能点列表包括URL列表字段、URL标识字段、功能点身份标识字段、检测状态字段等等。其中,所述URL列表字段记录有与功能点对应的URL,其中的URL包括了参数及参数值。URL标识字段包括有多种用于表明业务功能的标识内容,如账户权限、信息存储、上传功能、敏感功能和用户私有功能等中的一种或多种,应将其标记为“是(Y)”或“否(N)”的状态。功能点身份标识字段在一个实施例中可以为基于URL和参数计算的哈希值,其为该功能点的身份的唯一标识。检测状态字段可以由数字代表该功能点处于未检测的初始化状态、通过检测、检测有风险、已检测但检测失败等等不同的状态。具体地,功能列表生成单元42根据管理界面41中对测试项目的配置获取到测试项目的名称、开发语言及框架,选取对应的解析逻辑,再从源代码管理库中读取所述测试项目的源代码,根据解析逻辑对源代码进行解析得到需要检测的功能点,从而生成功能点列表。其中,不同的开发语言及框架对应不同的解析逻辑。所述的开发语言例如为PHP、JAVA、.NET、ASP、Ruby、Python、Vue等等,所述的开发框架例如为基于MVC的开源框架或自定义框架、基于三层架构的自定义框架或其它的一些框架。以PHP作为开发语言、以基于MVC的开源框架为例,简要说明生成功能点列表的过程:首先通过Web容器配置获取Web目录及起始文件;然后解析起始文件index.php,通过正则匹配找到应用目标及名称,输出所述应用目录;再根据所述应用目录得到控制器(Controller)路径;获取所述控制器(Controller)路径所有文件列表;而后解析所述文件列表中的文件,得到文件中的控制器名及控制器中的方法名,并去除private、_initialize、protected等私有化方法;最后采用正则表达式匹配获取用户输入参数名;最终输出功能列表、参数、类型、作为功点身份标识的唯一hash值。所述hash值为基于URL和参数计算的哈希值。
步骤S3,安全工程师通过测试端浏览器P发出对应测试目标功能点的测试请求数据包。所述安全工程师可以通过点击功能点列表中的URL发出测试请求数据包,也可以在手动检测工具中通过测试端浏览器P选择相应的功能点,并根据需要增加或替换测试用例从而构造测试请求数据包,再经过测试端浏览器P发出。
步骤S4,测试端浏览器1发出的测试请求数据包经过代理端口P发送给测试目标T,接收测试目标T返回的响应数据包。
一方面,在步骤S51,根据需要,安全工程师通过手动检测工具2基于安全测试项目文档进行人工检测、判断、确定是否存在风险,并记录检测结果,称为第一检测结果。需要说明的是,本步骤并不是每个功能点检测时都必须要做的,当安全工程师对自动检测结果存在疑虑时,可以执行本步骤中的人工检测,对自动检测结果进行校验。
另一方面,在步骤S52,与代理端口连接的自动检测工具3获取来自于测试端浏览器的测试请求镜像数据包,根据预置检测策略进行漏洞检测,并记录检测结果,称为第二检测结果。
步骤S6,安全工程师判断是否还有未进行检测的功能点,如果安全工程师认为所有功能点已全部检测完成而决定结束检测,则在步骤S7发出检测结束指令,如在管理界面41上点击结束按钮。如果安全工程师认为还有功能点没有检测,则返回步骤S3,重新针对新的功能点发出测试请求数据包。
监测单元43在接收到检测结束指令时,同时执行步骤S81和S91,或者顺序执行步骤S81、S91或顺序执行步骤S91、S81。
步骤S81,查询所述功能点列表的检测完成进度。例如查看每一个功能点的检测状态字段。
步骤S82,判断功能点列表中的功能点是否全部检测完成。其中,可以通过查看每个功能点的检测状态字段来确定是已完成检测,如果检测状态字段中的数字为代表初始化状态时,则说明所述功能点没有被检测,则在步骤S83发出继续检测提醒通知,并显示在管理界面41上;如果功能点列表中的功能点已全部检测完,则结束检测。当安全工程师发现其按下结束按钮时检测并没有结束,并且出现要求其继续检测的通知时,根据通知中的未检测的功能点,执行步骤S3完成对应的检测。从而可以避免由于人为原因漏检。
步骤S91,监测对应于每一个功能点的URL标识字段。在一个实施例中,每一个功能点URL标识字段包括账户权限、信息存储、上传功能、敏感功能和用户私有功能等URL标识内容,用以表明所述功能点的业务功能,对应每个URL标识内容包括有“是”和“否”两种状态,每个功能点或者标记为“是”,或者标记为“否”。通过查询每个功能点的每种URL标识内容是否已经标识了“是”或“否”可以监测到功能点是否完成业务功能的识别。
步骤S92,判断每一个功能点的URL标识字段是否标记,如果功能点列表中某个或某些功能点的URL标识字段未标记,则在步骤S93发出标记提醒通知,并显示在管理界面41上。如果每一个功能点的URL标识字段都已经标记,则结束检测流程。当安全工程师发现其按下结束按钮时检测并没有结束,并且出现要求其标记URL标识字段的通知时,根据通知中指示的功能点,在步骤S94在功能点列表中对所述功能点的URL标识字段进行标识。然后再执行步骤S92。其中,在一些实施例中,需要安全工程师标识的URL标识字段的标识内容包括敏感功能和帐户功能。在这些实施例中,通过安全工程师的人为判断为功能列表中的每一个功能点进行标识。
本发明通过对测试目标源代码的解析可以得到功能点列表,并且只有在功能点列表中的全部功能点检测完成才可以结束检测,从而实现了业务功能点的全量覆盖。每次检测完成后所有的配置均存储在相应参数项中,可以对安全工程师的研究成果和经验进行积累,并分享给其他安全工程师。本发明能够收集测试项目历史信息,为后续安全测试提供依据。对于一个测试项目,对功能点进行了功能标识之后,该标识则存储在标识字段中,在第一次测试时经过工程师的标识、复核后,不再需要工程师标识,为后续的检测简化了流程,并减少了对工程师的依赖,使***可以自动、准确地执行自动检测。
图4是根据本发明一个实施例的自动检测工具的原理框图,其中,所述自动检测工具包括数据包获取模块31、数据包分析模块32和检测模块33,其中,所述数据包获取模块31与代理端口P连接,从预置的代理端口P获取测试端浏览器1发送给测试目标T的对应功能点的镜像数据包,并向测试目标T发送自动检测工具构造的自动测试请求数据包,并接收测试目标T返回的响应数据包。数据包分析模块32与所述数据包获取模块31相连接,用以对镜像数据包和响应数据包进行解析,从所述镜像数据包中至少获取去除参数的URL、参数及参数值、功能点身份标识及功能点检测标识;从所述响应数据包中至少获取响应内容。其中,如图5所示,所述数据包分析模块32包括请求包解析单元321、响应包解析单元322、标记单元323、哈希值计算单元324和清洗单元325。
其中,所述请求包解析单元321用以解析镜像数据包的请求头(Header)、请求参数和用户凭证。其中,通过解析镜像数据包的请求头(Header)可以得到请求头中的参数,如Cookie,x-forward,refer和user-agent等参数。首先根据管理界面41中的相应配置校验参数名,然后剔除不需要检测的参数,而后判断余下的参数中是否有Cookie字段,如果有,则剔除Cookie,此时得到请求头参数,并通知标记单元323在功能点列表中相应功能点的URL标识字段中标记“发现认证标识”;如果参数中没有Cookie参数,则通知标记单元323在功能点列表中相应功能点的URL标识字段中标记为“未发现认证标识”。在解析请求参数时,首先根据请求类型,如GET请求类型或POST请求类型,进行相应的URL解析,从中获得GET参数或POST参数。所述清洗单元325与所述请求包解析单元321相连接,判断参数值中是否包括了测试用例,如果包括了测试用例,将其删除,从而得到去除了参数的URL、参数及相应的参数值。在解析用户凭证时,首先读取管理界面41中配置的权限认证模式,如Cookie模式或API模式,并读取配置中的认证标识关键词,如sign,token或key等。如果所述镜像数据包中的认证模式是Cookie模式,则解析Cookie字段,获取参数名,如username、ci_session。其中ci_session为认证凭证参数,其篡改后会无法访问,所以需要进行权限类检测,因而需要在URL标识字段中标记“发现认证标识”,此时,去掉认证凭证,从而得到去掉固定值的请求参数。如果所述镜像数据包中的认证模式是API模式时,查询参数名是否与管理界面中配置的认证关键词相匹配,如果匹配,则将所述认证关键词剔除,并通知标记单元323在功能点列表中相应功能点的URL标识字段中标记“发现认证标识”。如果参数名与管理界面中配置的认证关键词不匹配,则通知标记单元323在功能点列表中相应功能点的URL标识字段中标记“未发现认证标识”。经过所述请求包解析单元321的解析得到去除参数的URL、参数及参数值。
响应包解析单元322从响应包中得到响应状态码,如表示成功、重定向、客户端错误或服务端误的代码,经过头解析可以得到响应包长度、响应包内容等信息。
标记单元323与所述请求包解析单元321相连接,在所述请求包解析单元321的解析完成后,读取解析得到参数及参数值,并根据管理界面41已配置的参数确定所述功能点的业务功能是否为上传功能、是否属于私有功能。并根据确定的结果标记所述功能点URL标识字段的上传功能和用户私有功能为“是”或“否”。更进一步地,在标记单元323根据所述请求包解析单元321的通知标记“发现认证标识”时,发送确认通知到管理界面41,提醒安全工程师根据所述标记对该功能点的URL标识字段中的“帐户权限”进行标识。另外,所述标记单元323在检测过程中,当需要开源的爬虫引擎进行功能点爬取时,如果能够爬取到功能点,则点该功能点URL标识字段的“账户权限”标记为“否”。例如,A账户用户可以访问自己私有功能URL和公用的首页上的功能URL;当使用NoAuth(未登录用户)账户访问A账户的私有功能URL和公用的首页功能时,结果应该是对A账户私有的功能URL访问失败,公用的首页功能URL访问成功。因而在检测过程中如果发现使用A账号和NoAuth账号都能访问一个功能点URL时,是有可能存在权限类风险的,为了校验此类权限类风险,检测模块开启爬虫引擎使用NoAuth(未登录用户)账户或General Auth(普通用户)抓取功能链接,如果能够抓取到功能链接,说明该功能点不具有权限功能,所述功能点可能是前述的公用首页功能,因而通知所述标记单元323将此功能点URL标识字段的“账户权限”标记为“否”。
哈希值计算单元324与所述请求包解析单元321相连接,根据去除参数的URL和参数计算第一哈希值,根据去除参数的URL、参数及参数值计算第二哈希值。第一哈希值作为功能点的身份标识,第二哈希值作为功能点检测标识。
检测模块33与所述数据包分析模块32相连接,根据预置检测策略基于所述镜像数据包及其解析结果进行漏洞检测。在本发明中,根据漏洞的校验类型将需要检测的多种漏洞进行分组,为不同校验类型的漏洞组设置相应的检测流程。并且由相应的检测模型单元来执行对应校验类型的检测流程。如图6所示,检测模块33包括检测管理单元330和多个检测模型单元331、332、……33n,检测管理单元330根据检测流程控制多个检测模型单元有序地进行漏洞检测。例如,根据检测的运行状态,检测管理单元330将多个漏洞组分成初始化漏洞组和运行态漏洞组,并设置不同的检测策略。例如先对初始化漏洞组进行检测,然后再对运行态漏洞组进行检测。初始化漏洞组由一次请求完成检测,而对于运行态漏洞组,依据漏洞类型,实行粗粒度和细粒度相结合的检测策略,或者粗粒度和结果校验的检测策略。在进行粗粒度检测时,使用少量的测试用例,如1-5个,通过一次请求完成检测,在得到疑似风险后,再进行细粒度检测或根据漏洞类型进行校验。检测管理单元330还维护可以通过管理界面41显示的请求记录表,其中记录有漏洞检测详情,如原始测试请求数据包、URL、功能点身份标识、功能点检测状态标识、风险状态、风险类型、风险等级等等。每个检测模型单元用于完成一种校验类型的漏洞组的检测。检测管理单元330按照扫描策略协调多个检测模型单元对其校验类型的漏洞进行检测,每个检测模型单元根据检测管理单元的指令按照检测策略完成一个校验类型的漏洞组的检测。
如图7所示,为检测模块33对一个功能点进行检测的流程,其包括以下步骤:
步骤S1a,检测管理单元330接收来自于所述数据包分析模块32的所述镜像数据包及其解析结果。
步骤S2a,检测管理单元330将第一哈希值与功能点列表中的身份标识字段中的哈希值进行比较。
步骤S3a,判断作为功能点身份标识的第一哈希值是否在功能点列表中,如果没有,在步骤S4a将镜像数据包中的URL地址、参数等数据加入到功能点列表的相应字段中,从而可以弥补在生成功能点列表时漏掉的功能点;如果有,则执行步骤S5a。
步骤S5a,检测管理单元330在查询请求记录表中所述功能点检测标识字段。
步骤S6a,判断第二哈希值是否位于所述请求记录表中,即所述功能点检测标识字段中是否已包含了所述第二哈希值,如果第二哈希值位于所述功能点检测标识字段中,说明所述功能点已检测完成,此时不需要再进行检测,结束此功能点的检测,因而可以避免功能点的重复检测。如果没有,则执行步骤S7a。
步骤S7a,扫描初始化漏洞组进行初始化检测。检测管理单元330控制对应初始化漏洞组的检测模型单元依次根据漏洞类型进行漏洞检测。在一个实施例中,初始化漏洞组为初始化响应内容校验型,对应的检测模型单元331基于镜像数据包(即原始数据包)分别对初始化漏洞组所包含的漏洞类型发出一次测试请求则完成检测。对应的漏洞类型例如为服务器指纹泄露漏洞、HTTP请求模式漏洞和敏感信息明文传输漏洞。
以检测服务器指纹泄露漏洞为例,说明检测模型单元331的流程,如图8所示:
步骤S1b,检测模型单元331将镜像数据包放入请求队列。在实际检测过程中,可能会有多个功能点的镜像数据包需要进行初始化响应内容校验型的漏洞检测,因而这些功能点检测的镜像数据包放入请求队列中进行排队。
步骤S2b,判断所述镜像数据包是否达到请求队列的顶部,如果达到请求队列顶部,则在步骤S3b,将其通过数据包获取模块31发送给测试目标T;如果没有达到顶部,则等待。
步骤S4b,接收数据包分析模块32解析后得到响应包的响应内容。
步骤S5b,分析响应内容以确定是否具有风险。对应于服务器指纹泄露漏洞,通过正则表达式识别响应内容的参数值中是否包含数字,当响应内容的参数值中包含了数字时确定存在风险,例如:当响应内容中包含“X-Powered-By:PHP 5.2.5”时,其中包含了数字“5.2.5”这一具体版本,确认存在风险;当响应内容中没有包含数字时,如当响应内容为“X-Powered-By:PHP”时则确认无风险。
步骤S6b,将检测结果记录到请求记录表中。
步骤S8a,扫描运行态漏洞组依次进行漏洞检测。检测管理单元330控制多个检测模型单元依次完成相应漏洞的检测。其中运行态漏洞组的一个漏洞检测流程如图9所示:
步骤S1c,基于漏洞校验类型构造第一自动测试数据包,其中,对于响应内容校验型和请求重放校验型的漏洞,所述第一自动测试数据包为原始镜像数据包;对于请求响应校验型的漏洞,通过在原始镜像数据包的参数值中增加预置的测试用例而构成第一自动测试数据包;对于替换请求响应校验型的漏洞,通过将原始镜像数据包的参数值替换为预置的测试用例而构成第一自动测试数据包;对于登录凭证替换校验型的漏洞,通过将原始镜像数据包中的原来的用户认证凭证替换为预置的认证凭证而构成第一自动测试数据包。
步骤S2c,由相应的检测模型单元将第一自动测试数据包放入其内部的请求队列。
步骤S3c,判断所述第一自动测试数据包是否达到请求队列的顶部,如果达到请求队列顶部,则在步骤S4c,将其通过数据包获取模块31发送给测试目标T;如果没有达到顶部,则等待。
步骤S5c,接收数据包分析模块32解析后得到响应包的响应内容。
步骤S6c,分析响应内容。在分析响应内容时,根据所述漏洞所属的校验类型依据对应的策略进行分析。例如,对于请求响应校验型、替换请求响应校验型、响应内容校验型等漏洞,分析响应内容中是否包含检测策略中预置的内容;对于登录凭证替换校验型,对两次响应内容进行比较;对于请求重放校验型,将针对原始请求的响应和重放请求的响应进行比较。
步骤S7c,判断是否满足疑似风险的要求,如果不满足,说明没有风险,则在步骤S8c确认检测通过,并将检测结果记录到请求记录表中;如果满足,说明可能有风险,则执行为步骤S9c。例如,对于属于请求响应校验型的反射型跨站脚本风险,当响应内容中出现了原样回显,则认为满足疑似风险的要求,确认为疑似风险;对于属于登录凭证替换校验型的未授权访问漏洞,当两次响应内容高度相似,则认为满足疑似风险的要求,确认为疑似风险;对于属于请求重放校验型的跨站请求伪造漏洞,当两次请求响应完全一致,认为满足疑似风险的要求,确认为可能存在风险。
步骤S9c,获取具有所述疑似风险的漏洞的二次测试条件。所述二次测试条件根据漏洞类型的不同而不同,并记录在检测策略中,通过查询检测策略可以得到所述二次测试条件。例如,有些没有测试条件的限制,如属于请求响应校验型的反射型跨站脚本风险、属于响应校验测试的敏感信息泄露漏洞等;有些测试条件则规定了需要根据URL标记字段中相关标记内容的状态进行校验。
步骤S10c,依据对应的测试条件进行二次测试或校验。
步骤S11c,判断二次测试或校验的结构是否为风险,如果是,则在步骤S12c将请求记录表中的风险状态由“疑似”修改为“确认”,结束本次检测;如果经过二次测试或校验不是风险,则在步骤S13c将请求记录表中的风险状态由“疑似”修改为“误报”结束本次检测。
在步骤S10c中,针对不同的测试条件,其二次测试或校验的流程及判断的依据也不同。例如,对于属于请求响应校验型的反射型跨站脚本风险、属于响应校验测试的敏感信息泄露漏洞不需要任何的测试条件,则直接进行二次测试,如重新构造测试请求数据包,将其发送给测试目标,并分析返回的响应内容。根据是否满足风险的要求,将请求记录表中的风险状态“疑似”修改为“确认”或“误报”。
对于需要针对URL标识字段中的标识内容的标记状态进行校验的漏洞,例如在对未授权访问漏洞进行粗检测发现疑似风险时,查询所述功能点的URL标识字段中的标识内容“帐户权限”的标记为“是(Y)”还是“否(N)”,如果“帐户权限”的标记为“是(Y)”,则确认该漏洞类型的风险确实存在,将请求记录表中的风险状态由“疑似”修改为“确认”,如果“帐户权限”的标记为“否(N)”,则将风险状态由“疑似”修改为“误报”。又例如,在对水平越权漏洞进行检测出现疑似风险时,首先查询所述功能点的URL标识字段中的标识内容“帐户权限”的标记为“是(Y)”还是“否(N)”,如果“帐户权限”的标记为“否(N)”,则将风险状态由“疑似”修改为“误报”。如果“帐户权限”的标记为“是(Y)”,再查询“用户私有功能”的标记为“是(Y)”还是“否(N)”,如果是“否(N)”,则将风险状态由“疑似”修改为“误报”。如果是“是(Y)”,则确认该漏洞类型的风险确实存在,将请求记录表中的风险状态由“疑似”修改为“确认”。
对于在解析功能点确定所述功能点存在用户认证凭证、而该功能点的“帐户权限”还未被安全工程师进行标记时,开启爬虫引擎,使用NoAuth(未登录用户)账户或GeneralAuth(普通用户)抓取功能链接,如果能够抓取到功能链接,说明该功能点不具有权限功能,所述功能点可能是前述的公用首页功能,因而通知所述标记单元323将此功能点URL标识字段的“账户权限”标记为“否”。根据前述的校验流程,将“账户权限”标记为“否”的疑似风险排除。
其中,校验的时刻可以发生在检测过程中,也可以在检测过程完成、测试结束前。例如,对于“信息存储功能”的校验,在检测完成、安全工程师对所有URL功能进行标记后,如果对功能点的“信息存储功能”标记为“是”时,安全工程师需手动在表单项写入指定payload:sectxss'"<>。本***自动重放所有信息存储功能标记为N的测试请求,并针对每一个测试请求的响应包进行校验。
在一个实施例中,如图10所示,一个检测模型单元331包括请求队列3311、发送子单元3312、接收子单元3313和校验子单元3314。所述请求队列3311用以存储向测试目标发送的测试请求数据包,其中,所述测试请求数据包为对初始化漏洞组中的漏洞进行检测时使用的镜像数据包,也可以为对运行状漏洞中的漏洞进行粗粒度检测时构造的测试请求数据包或用于细粒度检测的新的测试请求数据包。所述发送子单元3312按顺序从所述请求队列中取出测试请求数据包,经过数据包获取模块31通过代理端口发送给测试目标***。所述接收子单元3313与数据包分析模块32连接,接收其对从测试目标返回的响应包解析后的响应内容。所述校验子单元3314内置有现其检测的校验类型对应的检测策略,并按照检测策略对返回的响应数据进行校验以确定是否存在相应漏洞的风险,并将校验结果发送给检测管理单元330。例如,对于请求响应校验型的反射型跨站脚本风险漏洞,在发送的测试请求数据包中包括4个测试用例,校验子单元3314校验响应内容中是否出现了原样回显,如果出现了原样回显,则确定为疑似风险。
在一些检测模型单元中,例如用于进行请求响应校验型、替换请求响应校验型和登录凭证替换校验型的漏洞组检测的检测模型单元,还包括测试请求构造子单元3310,其用于构造新的测试请求数据包。例如,用于对请求响应校验型漏洞组进行检测的检测模型单元中,测试请求构造子单元3310在镜像数据包的参数值中增加测试用例,将增加的测试用例与原有的参数值合并为攻击载荷,一起构成测试请求数据包。测试用例的数量可根据漏洞类型、粗粒度(level1)还是细粒度(level 2)而不同。例如,对于属于请求响应校验型的任意文件下载漏洞,在粗粒度检测中使用1个测试用例,细粒度检测中使用1个以上测试用例。对于属于请求响应校验型的反射型跨站脚本风险,在粗粒度检测中使用4个测试用例,细粒度检测中使用4个以上测试用例。对于属于替换请求响应校验型的任意文件上传漏洞,在粗粒度检测中使用3个测试用例。
在用于对替换请求响应校验型漏洞组进行检测的检测模型单元中,测试请求构造子单元3310将镜像数据包中的参数值替换为测试用例,从而够成测试请求数据包。当漏洞组的校验类型为登录凭证替换校验型时,3310将镜像数据包中的用户认证凭证分别替换为不同级别用户的认证凭证以构成多个所述自动测试请求数据包。例如,对于属于登录凭证替换校验型的未授权访问漏洞,分别用未登录用户帐户凭证和管理员等高级权限用户的认证凭证替换镜像数据包中的用户认证凭证以得到两个测试请求数据包。对应地,校验子单元3314比较这两个测试请求返回的响应内容,如果响应内容高度相似,则确定为疑似漏洞。
检测管理单元330接收检测模型单元331得到的校验结果,当检测管理单元330接收到检测模型单元发送来的校验结果为疑似风险时,根据漏洞类型确定是进行细粒度检测还是进行结果校验。例如,对于请求响应校验型漏洞组,如反射型跨站脚本风险、显错型SQL注入漏洞、任意文件下载漏洞等,在粗粒度检测结果为疑似风险时,重新利用一定量的测试用例构造测试请求数据包,进行细粒度的检测,如果按照检测策略仍然为风险,则可以将当前的疑似风险确认具有该漏洞。例如,对于任意文件下载漏洞、显错型SQL注入漏洞的疑似风险,当在细粒度(level 2)的检测过程中使用新的测试用例进行校验,如果两次请求响应内容不同则确认漏洞。又例如,对于反射型跨站脚本风险的疑似风险,当在细粒度(level2)的检测过程中,用新的测试用例时,在返回的响应内容中仍然出现原样回显,则确认漏洞。当疑似风险为对任意文件上传漏洞进行检测得到时,检测管理单元330则将其直接确认为风险。
对于一些漏洞的疑似风险,需要根据所述功能点的业务功能对粗粒度检测结果进行校验即可。因而,在一个实施例中检测模块33还包括结果校验单元334,其与所述检测管理单元330相连接,经配置以接收检测管理单元330的结果校验指令,按照校验策略对疑似风险进行校验。其中,需要校验的漏洞例如为一些涉及到权限类的漏洞,如水平越权漏洞、未授权访问漏洞和垂直越权漏洞,还可为一些涉及敏感功能的漏洞,如跨站请求伪造漏洞等。因而,所述结果校验单元334可以为一个,逐个对需要结果校验的漏洞按照对应的校验机制进行校验。结果校验单元334也可以为多个,分别对应不同的漏洞结果校验。
其中,对于水平越权漏洞、未授权访问漏洞和垂直越权漏洞等权限类漏洞,结果校验单元334查询URL标记字段中的标识内容为账户权限的标记,在账户权限没有标记时,开启爬虫引擎进行功能点链接的抓取。例如,对于未授权访问漏洞,开启爬虫引擎使用未登录帐户抓取所述功能点链接;对于垂直越权漏洞开启爬虫引擎使用普通帐户抓取所述功能点链接。在抓取到所述功能点链接时,将所述功能点URL标记字段中的账户权限标记为“否”,并排除所述风险,即将当前的风险状态由“疑似”修改为“误报”。
对于水平越权漏洞和垂直越权漏洞,当结果校验单元334查询到响应于URL标记字段中的账户权限的标记为“是”时,查询用户私有功能的标记;在用户私有功能的标记为“是”时,确认所述风险,即将当前的风险状态由“疑似”修改为“确认”,在用户私有功能的标记为“否”排除所述风险。
对于未授权访问漏洞,当结果校验单元334查询到响应于URL标记字段中的账户权限的标记为“是”时,排除所述风险。
另外,对于跨站请求伪造漏洞,结果校验单元334查询当前功能点URL标记字段的敏感功能,当其标记为“是”时,确认所述风险;当其标记为“否”时,排除所述风险。
检测管理单元330在全部功能点检测完成且所述的URL标记字段中的所有标识内容是否全部标记完成,查询每一个功能点URL标记字段中的标识内容为信息存储的标记,对于标记为“否”的功能点重新进行存储型跨站脚本漏洞的检测。即向检测存储型跨站脚本漏洞的检测模型单元发送重放请求的指令,检测存储型跨站脚本漏洞的检测模型单元根据所述指令重新发出测试请求数据包,其校验子单元根据当前请求的响应内容与粗检测时的响应内容进行对比,根据比较结果确认是否为风险。
本发明根据校验类型将漏洞分为不同的小组,所述校验类型例如为请求响应校验型、替换请求响应校验型、登录凭证替换校验型、响应内容校验型或请求重放校验型。不同校验类型的漏洞,针对其漏洞类型具有不同的检测策略,并分别由一个检测模型单元执行。由于随着测试目标的版本更新等原因,漏洞的类型在不断变化,可能随时出现新的漏洞,当出现新的漏洞时,由于本发明采用检测模型单元模式,因而只需要为新的漏洞匹配对应的校验类型,将其增加到对应的小组即可。或者,当没有与其匹配的已有校验类型时,可以为其单独再增加一个检测模型单元,并不会影响其它检测模型单元的运行。这种模块化的检测模式具备良好的扩展性,可随时新增或删除某些漏洞检测。由于检测模型单元的检测流程制成标准化,检测项也固定为标准化形式,在增加漏洞检测时,安全工程师只需在前端(如本发明提供的管理界面)对相关参数项进行修改,如增加漏洞名称、类型,设定其对应的校验类型,或者增加新的校验类型等等,因而大大减少了对开发人员的依赖,减少开发人员的介入和工作量。并且由于检测流程及策略的标准化,使得仅拥有基础知识的初级安全工程师也能够完成最终的漏洞复核,高级别工程师则专注于检测策略制定及新规则研究。本发明将检测流程拆分为初始的粗粒度安全检测和复核时的细粒度安全检测两步,粗粒度安全检测仅配置少量最优的测试用例,如出现疑似漏洞再调用大量而精准的测试用例进行复核,因而对测试服务器的性能要求不高,在较差性能的测试环境下可以快速完成漏洞的安全检测,准确性高、效率高。
上述实施例仅供说明本发明之用,而并非是对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明范围的情况下,还可以做出各种变化和变型,因此,所有等同的技术方案也应属于本发明公开的范畴。

Claims (18)

1.一种漏洞检测方法,其中需要检测的多种漏洞分为初始化漏洞组和运行态漏洞组,运行态漏洞组根据校验类型分为多个不同的漏洞组,各个漏洞组对应相应的检测策略,所述方法包括:
获取测试端浏览器发送给测试目标的请求对功能点进行测试的镜像数据包;
解析所述镜像数据包,获取到本次请求的去除参数的URL、参数及参数值;
基于所述镜像数据包,依次对初始化漏洞组中的每个漏洞按照对应的检测策略进行初始化漏洞检测;以及
依据每一运行态漏洞组的校验类型,基于所述镜像数据包及其解析结果构造自动测试请求数据包,对该漏洞组中的一个或多个漏洞按序执行粗粒度检测;在粗粒度检测出现疑似风险时,依据对应的检测策略进行细粒度检测或结果校验,以对疑似风险进行确认或排除。
2.根据权利要求1所述的方法,其中运行态漏洞组的校验类型包括请求响应校验型、替换请求响应校验型、登录凭证替换校验型、响应内容校验型和请求重放校验型中的一种或多种;
其中,当漏洞组的校验类型为响应内容校验型和请求重放校验型时,以原始镜像数据包作为所述自动测试请求数据包;
当漏洞组的校验类型为请求响应校验型时,在镜像数据包中增加1-5个测试用例以构成所述自动测试请求数据包;
当漏洞组的校验类型为替换请求响应校验型时,将镜像数据包中的参数值替换为1-5个测试用例以构成所述自动测试请求数据包;
当漏洞组的校验类型为登录凭证替换校验型时,将镜像数据包中的用户认证凭证分别替换为不同级别用户的认证凭证以构成多个所述自动测试请求数据包。
3.根据权利要求1所述的方法,其中在粗粒度检测出现疑似风险时,查询所述漏洞的检测策略,响应于所述检测策略中设置的测试条件没有限制进行细粒度检测;响应于所述检测策略中设置的测试条件及校验机制执行相应的结果校验。
4.根据权利要求3所述的方法,其中所述的细粒度检测包括:变更自动测试请求数据包中的测试用例,基于新的自动测试请求数据包按照对应校验类型的检测策略进行一次或多次检测。
5.根据权利要求3所述的方法,所述校验机制包括依据功能点URL标识字段中相应标识内容的标记状态进行校验;其中所述URL标记字段中的标识内容包括对账户权限、信息存储、上传功能、敏感功能和用户私有功能,标记状态为“是”或“否”。
6.根据权利要求5所述的方法,其中在进行结果校验时,对于权限类漏洞,响应于URL标记字段中的账户权限的标记为“否”时,排除所述疑似风险。
7.根据权利要求6所述的方法,其中在进行结果校验时,对于未授权访问漏洞,开启爬虫引擎使用未登录帐户抓取所述功能点链接,对于垂直越权漏洞开启爬虫引擎使用普通帐户抓取所述功能点链接;以及在抓取到所述功能点链接时,排除所述疑似风险。
8.根据权利要求7所述的方法,进一步包括:响应于爬虫引擎抓取到所述功能点链接,且所述功能点URL标记字段中的账户权限未标记,将所述功能点URL标记字段中的账户权限标记为“否”。
9.根据权利要求6所述的方法,其中在进行结果校验时,对于水平越权漏洞,响应于URL标记字段中的账户权限的标记为“是”,查询用户私有功能的标记;以及响应于用户私有功能的标记为“是”确认所述疑似风险,响应于用户私有功能的标记为“否”排除所述疑似风险。
10.根据权利要求5所述的方法,在进行结果校验时,对于跨站请求伪造漏洞,响应于URL标记字段中的敏感功能的标记为“否”排除所述疑似风险,响应敏感功能的标记为“是”确认所述疑似风险。
11.根据权利要求5所述的方法,其中在全部漏洞检测完成后,查询功能点URL标记字段中的所有标识内容是否全部标记;以及
响应于URL标记字段中的信息存储的标记为“否”,按照响应内容校验型策略进行检测。
12.根据权利要求1所述的方法,其中进一步包括:至少在请求响应校验型漏洞组的检测策略中设置页面错误回显模式。
13.一种漏洞检测***,其中包括数据包获取模块、数据包分析模块和检测模块,其中,检测模块包括检测管理单元和多个检测模型单元;
所述数据包获取模块经配置从预置的代理端口获取测试端浏览器发送给测试目标的请求对功能点进行测试的镜像数据包,并向测试目标发送测试请求数据包,接收测试目标返回的对应响应数据包;
所述数据包分析模块与所述数据包获取模块相连接,经配置以解析所述镜像数据包和响应数据包;
所述检测管理单元与所述数据包分析模块相接,按照预置扫描策略协调多个检测模型单元对多个漏洞进行检测,其中多个漏洞分为初始化漏洞组和运行态漏洞组,根据校验类型运行态漏洞组分为多个不同的漏洞组,每个漏洞组设置有相应的检测策略;
所述多个检测模型单元分别与所述检测管理单元、数据包分析模块和数据包获取模块相连接,每个检测模型单元根据检测管理单元的指令按照检测策略完成一个校验类型的漏洞组的检测。
14.根据权利要求13所述的漏洞检测***,其中所述数据包分析模块包括:
请求包解析单元,经配置以解析镜像数据包的请求头、请求参数和用户凭证,以获得去除参数的URL、参数及参数值;
响应包解析单元,经配置以解析从所述测试目标返回的响应包,以获得响应包内容;
标记单元,经配置以根据解析出的参数识别并标识所述功能点的URL标识字段;以及
清洗单元,经配置以识别并清洗掉所述镜像数据包中的测试用例。
15.根据权利要求13所述的***,其中所述检测模型单元至少包括:
请求队列,经配置以存储向测试目标发送的测试请求数据包,其中,所述测试请求数据包为所述镜像数据包、用于粗粒度检测的自动测试数据包或用于细粒度检测的新的自动测试请求数据包;
发送子单元,经配置以按顺序从所述请求队列中取出测试请求数据包,通过代理端口发送给测试目标***;
接收子单元,经配置以接收数据包分析模块返回的响应包的响应内容;以及
校验子单元,经配置以按照校验类型对应的检测策略对返回的响应内容进行校验,根据校验结果确定存在相应漏洞的风险。
16.根据权利要求15所述的漏洞检测***,其中当检测模型单元对应的校验类型为请求响应校验型、替换请求响应校验型或登录凭证替换校验型时,所述检测模型单元还包括测试请求构造子单元,经配置以在所述镜像数据包的参数值中增加测试用例或将原参数值替换为相应的测试用例以构造自动测试请求数据包。
17.根据权利要求13所述的***,其中所述检测模块还包括结果校验单元,其与所述检测管理单元相连接,经配置以接收检测管理单元的结果校验指令,按照校验策略对具有疑似风险的漏洞进行校验。
18.根据权利要求17所述的***,其中所述结果校验单元为多个,分别根据相应的URL标识字段的标识内容对具有疑似风险的不同漏洞进行校验。
CN202111219859.8A 2021-10-20 2021-10-20 一种漏洞检测方法及*** Pending CN113868669A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111219859.8A CN113868669A (zh) 2021-10-20 2021-10-20 一种漏洞检测方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111219859.8A CN113868669A (zh) 2021-10-20 2021-10-20 一种漏洞检测方法及***

Publications (1)

Publication Number Publication Date
CN113868669A true CN113868669A (zh) 2021-12-31

Family

ID=78996653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111219859.8A Pending CN113868669A (zh) 2021-10-20 2021-10-20 一种漏洞检测方法及***

Country Status (1)

Country Link
CN (1) CN113868669A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115664743A (zh) * 2022-10-17 2023-01-31 浙江网商银行股份有限公司 行为检测方法以及装置
CN115758374A (zh) * 2022-11-04 2023-03-07 杭州孝道科技有限公司 一种账号枚举漏洞检测方法、***及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115664743A (zh) * 2022-10-17 2023-01-31 浙江网商银行股份有限公司 行为检测方法以及装置
CN115758374A (zh) * 2022-11-04 2023-03-07 杭州孝道科技有限公司 一种账号枚举漏洞检测方法、***及存储介质
CN115758374B (zh) * 2022-11-04 2023-08-04 杭州孝道科技有限公司 一种账号枚举漏洞检测方法、***及存储介质

Similar Documents

Publication Publication Date Title
US11709945B2 (en) System and method for identifying network security threats and assessing network security
CN113868659B (zh) 一种漏洞检测方法及***
RU2657170C2 (ru) Автоматизированная оценка безопасности критически важных для бизнеса компьютерных систем и ресурсов
US8572750B2 (en) Web application exploit mitigation in an information technology environment
US8695027B2 (en) System and method for application security assessment
CN111400722B (zh) 扫描小程序的方法、装置、计算机设备和存储介质
CN112347485B (zh) 多引擎获取漏洞并自动化渗透的处理方法
CN108989355B (zh) 一种漏洞检测方法和装置
US8789187B1 (en) Pattern tracking and capturing human insight in a web application security scanner
US8136029B2 (en) Method and system for characterising a web site by sampling
JP2006526221A (ja) ネットワークの脆弱性を検出し、コンプライアンスを評価する装置及び方法
JP2006518080A (ja) ネットワーク監査及びポリシー保証システム
CN107634967A (zh) 一种CSRF攻击的CSRFToken防御***和方法
CN113259392B (zh) 一种网络安全攻防方法、装置及存储介质
CN113868669A (zh) 一种漏洞检测方法及***
US20160134658A1 (en) Unauthorized access detecting system and unauthorized access detecting method
KR100898867B1 (ko) 기업 it 보안 업무 관리 시스템 및 방법
CN113886837A (zh) 一种漏洞检测工具可信度验证方法和***
CN113868670A (zh) 一种漏洞检测流程检验方法及***
CN116318783B (zh) 基于安全指标的网络工控设备安全监测方法及装置
Permann et al. Cyber assessment methods for SCADA security
Kunda et al. Practical web security testing: Evolution of web application modules and open source testing tools
Laitinen Vulnerabilities in the wild: Detecting vulnerable Web applications at scale
Nilsson et al. Vulnerability scanners
JP2004310267A (ja) ウェブサイトの検査装置

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