一种网络脆弱性扫描方法及装置转让专利

申请号 : CN202011564031.1

文献号 : CN112738068B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 章晓祥

申请人 : 北京天融信网络安全技术有限公司北京天融信科技有限公司北京天融信软件有限公司

摘要 :

本申请实施例提供一种网络脆弱性扫描方法及装置,涉及网络安全技术领域,该网络脆弱性扫描方法包括:先获取待扫描数据,然后确定待扫描数据的来源类型,并根据来源类型确定针对待扫描数据的扫描策略,最后根据扫描策略对待扫描数据进行脆弱性扫描处理,得到网络脆弱性扫描结果,能够自动进行网络脆弱性扫描,专业要求低,适用性强,且不需要人工操作,进而有利于提升扫描效率和扫描准确度。

权利要求 :

1.一种网络脆弱性扫描方法,其特征在于,包括:获取待扫描数据;

确定所述待扫描数据的来源类型;

根据所述来源类型确定针对所述待扫描数据的扫描策略;

根据所述扫描策略对所述待扫描数据进行脆弱性扫描处理,得到网络脆弱性扫描结果;

其中,所述确定所述待扫描数据的来源类型,包括:当所述待扫描数据为预设目标数据时,则确定所述待扫描数据的来源类型为扫描目标类型;

其中,所述根据所述来源类型确定针对所述待扫描数据的扫描策略,包括:当所述来源类型为所述扫描目标类型,获取所述扫描目标类型对应的预设常规扫描策略和第二扫描策略;

根据所述预设常规扫描策略和所述第二扫描策略生成针对所述待扫描数据的扫描策略;

其中,所述根据所述扫描策略对所述待扫描数据进行脆弱性扫描处理,得到网络脆弱性扫描结果,包括:当所述来源类型为所述扫描目标类型,对所述待扫描数据进行信息收集,得到收集数据;

通过所述预设常规扫描策略对所述收集数据进行启发式探测处理,得到探测结果,以及根据所述收集数据进行网络模拟操作,得到模拟操作数据;

根据所述探测结果和所述模拟操作数据确定能够正常访问的网络地址集合;

根据所述第二扫描策略对所述网络地址集合进行深度漏洞扫描,得到第二扫描结果;

根据所述探测结果、所述模拟操作数据、所述网络地址集合以及所述第二扫描结果,生成网络脆弱性扫描结果。

2.根据权利要求1所述的网络脆弱性扫描方法,其特征在于,所述确定所述待扫描数据的来源类型,包括:当所述待扫描数据为日志数据时,则确定所述待扫描数据的来源类型为日志类型。

3.根据权利要求2所述的网络脆弱性扫描方法,其特征在于,所述根据所述来源类型确定针对所述待扫描数据的扫描策略,包括:当所述来源类型为所述日志类型时,获取所述日志类型对应的预设知识库和第一扫描策略;

根据所述预设知识库和所述第一扫描策略生成针对所述待扫描数据的扫描策略。

4.根据权利要求3所述的网络脆弱性扫描方法,其特征在于,所述根据所述扫描策略对所述待扫描数据进行脆弱性扫描处理,得到网络脆弱性扫描结果,包括:当所述来源类型为所述日志类型时,对所述待扫描数据进行流量识别,得到流量识别结果;

将所述流量识别结果与所述预设知识库进行碰撞比对,得到比对数据合集;

通过所述第一扫描策略对所述流量识别结果进行脆弱性扫描,得到第一扫描结果;

根据所述流量识别结果、所述比对数据合集和所述第一扫描结果,生成网络脆弱性扫描结果。

5.一种网络脆弱性扫描装置,其特征在于,所述网络脆弱性扫描装置包括:数据获取模块,用于获取待扫描数据;

类型确定模块,用于确定所述待扫描数据的来源类型;

策略确定模块,用于根据所述来源类型确定针对所述待扫描数据的扫描策略;

扫描模块,用于根据所述扫描策略对所述待扫描数据进行脆弱性扫描处理,得到网络脆弱性扫描结果;

其中,所述类型确定模块,具体用于当所述待扫描数据为预设目标数据时,则确定所述待扫描数据的来源类型为扫描目标类型;

其中,所述策略确定模块包括:

第二获取子模块,用于当来源类型为扫描目标类型,获取扫描目标类型对应的预设常规扫描策略和第二扫描策略;

第三生成子模块,用于根据预设常规扫描策略和第二扫描策略生成针对待扫描数据的扫描策略;

其中,所述扫描模块包括:

信息收集子模块,用于当来源类型为扫描目标类型,对待扫描数据进行信息收集,得到收集数据;

探测子模块,用于通过预设常规扫描策略对收集数据进行启发式探测处理,得到探测结果,以及根据收集数据进行网络模拟操作,得到模拟操作数据;

确定子模块,用于根据探测结果和模拟操作数据确定能够正常访问的网络地址集合;

第二扫描子模块,用于根据第二扫描策略对网络地址集合进行深度漏洞扫描,得到第二扫描结果;

第四生成子模块,用于根据探测结果、模拟操作数据、网络地址集合以及第二扫描结果,生成网络脆弱性扫描结果。

6.根据权利要求5所述的网络脆弱性扫描装置,其特征在于,所述类型确定模块,具体用于当所述待扫描数据为日志数据时,则确定所述待扫描数据的来源类型为日志类型。

7.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行权利要求1至4中任一项所述的网络脆弱性扫描方法。

8.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至4任一项所述的网络脆弱性扫描方法。

说明书 :

一种网络脆弱性扫描方法及装置

技术领域

[0001] 本申请涉及网络安全技术领域,具体而言,涉及一种网络脆弱性扫描方法及装置。

背景技术

[0002] 目前,通过网络脆弱性扫描技术能够实现web相关的漏洞探测,进而有效提高网络的安全性。现有的网络脆弱性扫描方法,通常由网络管理员通过扫描插件进行手动测试和审计,进而得到脆弱性扫描结果。然而,在实践中发现,网络管理员不仅需要耐心还需要丰富的专业经验,适用性差,且人工扫描方法效率低、准确度低。可见,现有的网络脆弱性扫描方法专业要求高,适用性差,且扫描效率低、准确度低。

发明内容

[0003] 本申请实施例的目的在于提供一种网络脆弱性扫描方法及装置,能够自动进行网络脆弱性扫描,专业要求低,适用性强,且不需要人工操作,进而有利于提升扫描效率和扫描准确度。
[0004] 本申请实施例第一方面提供了一种网络脆弱性扫描方法,包括:
[0005] 获取待扫描数据;
[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] 本申请实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例第一方面中任一项所述的网络脆弱性扫描方法。
[0044] 本申请实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例第一方面中任一项所述的网络脆弱性扫描方法。

附图说明

[0045] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0046] 图1为本申请实施例一提供的一种网络脆弱性扫描方法的流程示意图;
[0047] 图2为本申请实施例二提供的一种网络脆弱性扫描方法的流程示意图;
[0048] 图3为本申请实施例三提供的一种网络脆弱性扫描方法的流程示意图;
[0049] 图4为本申请实施例四提供的一种网络脆弱性扫描装置的结构示意图;
[0050] 图5为本申请实施例五提供的一种网络脆弱性扫描装置的结构示意图;
[0051] 图6为本申请实施例六提供的一种网络脆弱性扫描装置的结构示意图。

具体实施方式

[0052] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
[0053] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0054] 实施例1
[0055] 请参看图1,图1为本申请实施例提供了一种网络脆弱性扫描方法的流程示意图。其中,该网络脆弱性扫描方法包括:
[0056] S101、获取待扫描数据。
[0057] 本申请实施例中,该待扫描数据可以为日志数据、扫描目标数据等,对此本申请实施例不作限定。
[0058] 本申请实施例中,扫描目标为预先设置,具体可以为网络地址目标,如URL(Uniform Resource Locator,统一资源定位系统)等。
[0059] 本申请实施例中,该方法的执行主体可以为扫描装置。
[0060] 本申请实施例中,该扫描装置可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
[0061] 在本申请实施例中,该扫描装置还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
[0062] 本申请实施例中,该日志数据可以包括http协议日志、扫描装置的代理日志数据等,对此本申请实施例不作限定。
[0063] 本申请实施例中,http协议日志,一般是离线日志,包括常规中间件(tomcat/nginx/apache2/iis等)收集的访问日志、上网行为管理设备手机的日志、firefox的har文件等,对此本申请实施例不作限定。
[0064] 在步骤S101之后,还包括以下步骤:
[0065] S102、确定待扫描数据的来源类型。
[0066] 本申请实施例中,可以根据待扫描数据的来源,确定相应的来源类型,以实现对待扫描数据的来源规范化。
[0067] S103、根据来源类型确定针对待扫描数据的扫描策略。
[0068] 本申请实施例中,当来源类型为日志类型时,即待扫描数据的来源是已经保存了web访问记录的日志,例如网申设备的日志、网关设备的http日志、中间件日志、启用本方法的客户端代理(即扫描装置)的输出日志等,对此本申请实施例不作限定。
[0069] 本申请实施例中,当来源类型为扫描目标类型时,即扫描装置中预先设置的扫描目标。进行了扫描参数配置后将会加载扫描策略的集合,例如可以加载信息收集模块,进行横向资产信息收集,也可以加载自定义扫描的插件集合等,输出对应的研判报告。
[0070] 本申请实施例中,扫描策略包括扫描插件信息,本方法采用的扫描插件都可以进行移植和拓展,和报告可以直接相关联。
[0071] 本申请实施例中,通过扫描策略,能够集成了多个插件进行使用,有利于降低漏报率,同时会大幅度提高扫描的速度。在实际使用中,还可以对扫描策略进行自定义配置,例如,预先知道一些信息,只是调用java框架的一些扫描插件,而不调用php框架的,设置参数的优化上可以例如进行扫描中设置User‑Agent,设置timeout等。设置扫描插件时候如果是静态文件,只需要调用信息泄露检查的插件即可。
[0072] 本申请实施例中,对于自定义配置的设置,可以采用默认关联性质的扫描配置,也可以根据用户交互进行配置。
[0073] 在步骤S103之后,还包括以下步骤:
[0074] S104、根据扫描策略对待扫描数据进行脆弱性扫描处理,得到网络脆弱性扫描结果。
[0075] 本申请实施例中,对待扫描数据进行脆弱性扫描时,包括离线检测扫描和交互扫描,其中,离线检测扫描包括静态检测,具体的,包括流量提取和知识库碰撞;交互扫描包括主动扫描和漏洞扫描,其中,主动扫描包括自动化扫描和信息收集,漏洞扫描包括常规脆弱性识别、自定义策略扫描和多重检测验证等,对此本申请实施例不作限定。
[0076] 本申请实施例中,汇总网络脆弱性扫描结果可以得到一个规范化的扫描报告。该扫描报告包括待扫描数据中整个http报文信息、告警研判的方法、网络脆弱性扫描过程等。
[0077] 本申请实施例中,通过输出规范化的扫描报告,能够采用统一的日志管理体系,输出较为详细直观的报告,采用了图表形式显示插件的表现情况,站点url扫描情况,历史插件表现情况,漏洞详情描述和相关的漏洞说明,漏洞复现的方法(提供流量重播的请求头信息),可能造成的危害,处置建议等,严格符合OWASP报告规范,也适合进行二次开发拓展报告模块。
[0078] 本申请实施例中,在得到网络脆弱性扫描结果之后,如果对扫描报告的部分存在疑问,仍然可以进行复检,或者调整扫描策略以及参数进行扫描方案重订的复检。
[0079] 本申请实施例中,还可以获取扫描中生成的告警日志进行过滤以及统一扫描结果条目进行规范化日志。
[0080] 本申请实施例中,还可以对扫描出来的告警使用可视化图表进行UI展示、组件表现情况、资产扫描结果的表现情况等。对于相关数据可以进行查询、下载、导出等操作。
[0081] 本申请实施例中,通过本实施例提供的网络脆弱性扫描方法,能够快速进行web漏洞的挖掘,以及内网资产基于http/https协议服务的安全检查。
[0082] 本申请实施例中,通过本实施例提供的网络脆弱性扫描方法,极大地减少了安全管理员的操作成本,高效体现在漏报率低、扫描迅速、人机交互少,报告清晰。
[0083] 本申请实施例所提供的网络脆弱性扫描方法,适用于web项目测试,发现项目中可能存在的漏洞隐患,进而进行修复。该方法能够缩减web渗透工程师或者相关从业人员的工作量,可以针对大量的web网站进行快速的漏洞发现。
[0084] 本申请实施例所提供的网络脆弱性扫描方法,其优点在于扫描快速、漏洞发现准确、可解耦、技术易于移植、漏洞多维度验证、漏洞输出报告规范。
[0085] 可见,实施本实施例所描述的网络脆弱性扫描方法,能够自动进行网络脆弱性扫描,专业要求低,适用性强,且不需要人工操作,进而有利于提升扫描效率和扫描准确度。
[0086] 实施例2
[0087] 请参看图2,图2为本申请实施例提供的一种网络脆弱性扫描方法的流程示意图。如图2所示,其中,该网络脆弱性扫描方法包括:
[0088] S201、获取待扫描数据。
[0089] S202、当待扫描数据为日志数据时,则确定待扫描数据的来源类型为日志类型;以及当待扫描数据为预设目标数据时,则确定待扫描数据的来源类型为扫描目标类型。
[0090] 本申请实施例中,实施上述步骤S202,能够确定待扫描数据的来源类型。
[0091] S203、当来源类型为日志类型时,获取日志类型对应的预设知识库和第一扫描策略。
[0092] 本申请实施例中,在步骤S201之前,还可以预先配置检测参数,主要用于配置根据不同来源类型启用相应的扫描检测的策略。
[0093] S204、根据预设知识库和第一扫描策略生成针对待扫描数据的扫描策略。
[0094] 本申请实施例中,第一扫描策略包括进行扫描时所使用的插件信息等,对此本申请实施例不作限定。
[0095] 本申请实施例中,实施上述步骤S203~步骤S204,能够根据来源类型确定针对待扫描数据的扫描策略。
[0096] S205、当来源类型为日志类型时,对待扫描数据进行流量识别,得到流量识别结果。
[0097] 本申请实施例中,对待扫描数据进行流量识别时,需要对待扫描数据进行信息提取,信息提取主要是提取待扫描数据的请求头、请求体、响应头、响应体等的具体信息,以及待扫描数据的payload解码、请求头信息解码、请求参数键值对、请求Cookie键值对等,对此本申请实施例不作限定。
[0098] S206、将流量识别结果与预设知识库进行碰撞比对,得到比对数据合集。
[0099] 本申请实施例中,预设知识库至少包括当前已经保存的payload规则集、漏洞爬虫知识库等情报集,对此本申请实施例不作限定。
[0100] 本申请实施例中,基于离线产生的日志进行了知识库碰撞的学习分析。
[0101] 本申请实施例中,通过预设知识库的学习分析,针对payload进行机器学习拼接尝试来测试是否有相似的利用方法。
[0102] 本申请实施例中,通过与预设知识库进行碰撞比对,能够实现知识库碰撞过程,具体地,将流量识别结果和预设知识库进行碰撞,输出比对数据合集。
[0103] 本申请实施例中,比对数据合集至少包括存在漏洞隐患的网络地址(URL)以及进行比对所利用的payload内容,预设知识库包括该payload内容。
[0104] 本申请实施例中,比对数据合集包括存在漏洞隐患的概率,当该概率达到预设的概率阈值时会输出告警提示信息。
[0105] 本申请实施例中,通过步骤S205~步骤S206,可以进行流量内容识别和知识库碰撞,得到比对数据合集,根据比对数据合集可以得知存在什么类型的网络攻击类型,或者该日志(待扫描数据)中的url存在什么类型的安全隐患。
[0106] 本申请实施例中,还可以通过流量重播策略和交互扫描技术实现网络脆弱性的主动检测。
[0107] 本申请实施例中,流量重播策略,即将带了凭证的请求头,请求体等进行重播、缓存到网关设备等的相关策略,重新构造payload利用的方法进行试探该条web访问的接口是否存在漏洞隐患。
[0108] 在步骤S206之后,还包括以下步骤:
[0109] S207、通过第一扫描策略对流量识别结果进行脆弱性扫描,得到第一扫描结果。
[0110] 本申请实施例中,第一扫描策略可以包括深度扫描策略,在进行深度扫描时,加载深度扫描策略进行其他url的尝试。
[0111] 本申请实施例中,第一扫描策略还可以包括常规脆弱性识别策略,通过常规脆弱性识别策略进行常规扫描。常规脆弱性识别策略包括常规的web漏洞检测工具等,例如appscan/awvs/nikto2/x‑ray等,加载当前表现较好的开源扫描插件或者收费插件等,对此本申请实施例不作限定。还可以针对不同指纹的站点采用不同的扫描器,例如wordpress指纹的网站使用wpscan,java/stuct2类型的使用awvs等。
[0112] 本申请实施例中,第一扫描策略还可以包括自定义策略,通过自定义策略能够实现自定义策略检测。自定义策略检测能够根据web捕获的payload进行相关自定义的规则进行重发检测并记录,例如进行xsstrike/sqlmap/cme/自研缓冲区溢出工具等检测,选取部分策略,只针对某些参数。
[0113] 本申请实施例中,第一扫描策略还可以包括多重检测策略,通过多重检测策略能够实现多种检测。根据payload内容进行所有web威胁类型的顺序检测(例如sql注入攻击、xss攻击、ssrf、rce、rfi、弱密码登录、不安全的访问控制、重要文件泄露等)。
[0114] 在步骤S207之后,还包括以下步骤:
[0115] S208、根据流量识别结果、比对数据合集和第一扫描结果,生成网络脆弱性扫描结果。
[0116] 本申请实施例中,在得到网络脆弱性扫描结果之后,可以根据网络脆弱性扫描结果得到告警信息,然后统计所有扫描信息进行规范化输出,进行基础数量统计,生成相关的统计图表进行展示,生成报表报告等。
[0117] 本申请实施例中,根据网络脆弱性扫描结果,汇总已经发现的url以及其检测结果,接着根据网络脆弱性扫描结果输出详细的报告,包含了利用的payload内容、策略信息(包括扫描插件标识、插件历史表现情况信息等)、漏洞描述以及处置建议等,对此本申请实施例不作限定。
[0118] 本申请实施例中,实施上述步骤S205~步骤S208,能够根据扫描策略对待扫描数据进行脆弱性扫描处理,得到网络脆弱性扫描结果。
[0119] 本申请实施例中,该方法采用了启发式漏洞扫描任务调度策略,基于流量、日志的被动漏洞、服务分析,基于分析结论调度具体的扫描插件;基于流量产生的日志进行知识库碰撞的学习分析,不需要进行主动探测也能根据历史的流量记录中进行服务分析,研判具体是什么类型的漏洞利用事件,对扫描插件进行合理化的调度,从而大幅度减少了后面盲目进行插件添加后的扫描成本。
[0120] 本申请实施例中,本方法采用了基于异构扫描组件的交叉验证机制,通过多种扫描策略(即多种插件)、重放式机制等,降低误报;通过多种异构扫描插件和流量重放机制结合降低安全事件的误报率,记录各扫描插件的扫描结果和表现,实现自动对扫描插件的策略进行更新和维护。
[0121] 本申请实施例中,针对任意一个扫描出来的url进行脆弱性扫描,采用预设扫描插件进行检测,并且加入一些在攻防演练环境中孵化的自研扫描或者其他商业插件,而降低可能存在漏报的风险。例如针对一个可能存在远程命令执行(RCE)的脆弱性站点,我们可以采用常规的rce扫描器工具、使用自研的知识库扫描器,使用开源的nikto扫描器等。通过多个扫描器进行联合扫描,有的擅长php模板的命令注入,有的擅长基于java开发框架的,有的擅长基于python/django框架的命令注入等等,通过相互补充,交叉验证的思想进行协同扫描。另一方面,还增加了自研知识库(预设知识库)的扫描器,该自研知识库的扫描器具备从浏览器导出的头信息进行直接重播后,根据凭证进行扫描的方法,同样还可以根据请求头的信息不进行重播发包,离线对http请求头的字段进行知识库比对(主要比对有相同框架来源或者相同开发偏好的后台接口,携带了相似的脆弱性漏洞),进而实现漏报率低的有益效果。
[0122] 本申请实施例中,扫描迅速体现在多进程异步任务扫描机制,通过本实施例提供的方法,在用户访问正常的页面后,其请求信息都是发送到服务端,服务端进行多进程异步任务的扫描机制,这样能够极快的加快扫描效率,而不会阻塞任务。
[0123] 本申请实施例中,人机交互少的体现是,不需要手动去部署相关的扫描工具,查看和生成报告,进行确认等操作,该方法能够根据常规渗透人员的渗透思路,对扫描器的日志规范化,日志规范模块等进行补充,所以减少了人机交互的过程。
[0124] 可见,实施本实施例所描述的网络脆弱性扫描方法,能够自动进行网络脆弱性扫描,专业要求低,适用性强,且不需要人工操作,进而有利于提升扫描效率和扫描准确度。
[0125] 实施例3
[0126] 请参看图3,图3为本申请实施例提供的一种网络脆弱性扫描方法的流程示意图。如图3所示,其中,该网络脆弱性扫描方法包括:
[0127] S301、获取待扫描数据。
[0128] S302、当待扫描数据为日志数据时,则确定待扫描数据的来源类型为日志类型;以及当待扫描数据为预设目标数据时,则确定待扫描数据的来源类型为扫描目标类型。
[0129] 本申请实施例中,实施上述步骤S302,能够确定待扫描数据的来源类型。
[0130] 本申请实施例中,当来源类型为扫描目标类型时,即扫描装置中预先设置的扫描目标。进行了扫描参数配置后将会加载扫描策略的集合,例如可以加载信息收集模块,进行横向资产信息收集,也可以加载自定义扫描的插件集合等,输出对应的研判报告。
[0131] S303、当来源类型为扫描目标类型,获取扫描目标类型对应的预设常规扫描策略和第二扫描策略。
[0132] S304、根据预设常规扫描策略和第二扫描策略生成针对待扫描数据的扫描策略。
[0133] 本申请实施例中,第二扫描策略包括进行扫描时所使用的插件信息等,对此本申请实施例不作限定。
[0134] 本申请实施例中,实施上述步骤S303~步骤S304,能够根据来源类型确定针对待扫描数据的扫描策略。
[0135] 在步骤S304之后,还包括以下步骤:
[0136] S305、当来源类型为扫描目标类型,对待扫描数据进行信息收集,得到收集数据。
[0137] 本申请实施例中,对待扫描数据进行信息收集,即进行资产横向信息收集,具体的,包括域名/ip信息、资产服务信息以及站点地图信息,其中,域名/ip信息包括访问的url对应的子域名信息收集,提供服务的真实ip追踪等;资产服务信息包括url对应的资产是否有其他脆弱性服务(这部分可以自己扫描\也可以从第三方获取,例如shodan、天眼等);站点地图信息包括站点指纹(例如java/springboot)、站点url集合等,对此本申请实施例不作限定。
[0138] S306、通过预设常规扫描策略对收集数据进行启发式探测处理,得到探测结果,以及根据收集数据进行网络模拟操作,得到模拟操作数据。
[0139] 本申请实施例中,预设常规扫描策略包括常规的集成扫描插件信息,对此本申请实施例不作限定。
[0140] 本申请实施例中,网络模拟操作即模拟浏览器登录,进行相关按钮的点击,模拟查询,提交表单等操作。
[0141] 本申请实施例中,实施步骤S306,能够实现渗透测试,首先进行信息收集,挂载代理网址;然后进行网络模拟操作,具体的,使用模拟浏览器进行登录后,发现按钮自动点击和返回,发现表单输入框,进行随机输入和选择,接着提交表单。
[0142] 本申请实施例中,实施步骤S306进行主动和被动探测,一方面使用常规集成扫描工具进行启发式探测,例如加载的是appscan/awvs/sn1per等,另外一方面使用模拟浏览器登录,进行相关按钮的点击,模拟查询,提交表单等操作。
[0143] 本申请实施例中,能够实现自动化扫描,模拟浏览器进行接口和url的发现。
[0144] 在步骤S306之后,还包括以下步骤:
[0145] S307、根据探测结果和模拟操作数据确定能够正常访问的网络地址集合。
[0146] 本申请实施例中,每个被发现的url都会进行启发式搜索发现更多的url,根据被发现的url进行梯度针对性的扫描。
[0147] 本申请实施例中,在步骤S306之后,可以将正常的访问url进行收集得到网络地址集合。
[0148] S308、根据第二扫描策略对网络地址集合进行深度漏洞扫描,得到第二扫描结果。
[0149] 本申请实施例中,通过步骤S308,能够对网络地址集合中每个url进行深度的漏洞试探,例如每个url都进行sql注入攻击测试,xss攻击测试,ssrf攻击测试,远程命令执行测试,远程目录包含测试等。需要注意的是上面的过程都是采用多进程异步任务的技术来加快整个扫描过程,本方法的技术栈包括mitmproxy透明代理、celery异步任务队列、apscheduler任务调度、pocsuit3漏洞探测kafka存储数据库seclists知识库自研威胁情报知识库等,对此本申请实施例不作限定。
[0150] 本申请实施例中,第二扫描策略还包括深度漏洞扫描策略,深度漏洞扫描策略包括深度扫描插件等,对此本申请实施例不作限定。
[0151] 本申请实施例中,通过步骤S308,能够对网络地址集合进行深度漏洞扫描,携带请求头中的所有信息,选择扫描策略中的插件,进行漏洞扫描探测,进行深度的漏洞自发现。
[0152] 本申请实施例中,另外还可以启用预设插件(包括常规和自研web扫描插件)和appscan/awvs同时检测扫描目标站点。
[0153] 在步骤S308之后,还包括以下步骤:
[0154] S309、根据探测结果、模拟操作数据、网络地址集合以及第二扫描结果,生成网络脆弱性扫描结果。
[0155] 本申请实施例中,实施上述步骤S305~步骤S309,能够根据扫描策略对待扫描数据进行脆弱性扫描处理,得到网络脆弱性扫描结果。
[0156] 本申请实施例中,可以以快速进行一个站点的自动化渗透测试,缩短测试成本。同样可以对内网web资源进行快速的安全检查。根据插件的质量和数量,其误报率低,能够可以极大缩短web管理员进行手工测试的时间,降低web管理员的专业能力要求。
[0157] 可见,实施本实施例所描述的网络脆弱性扫描方法,能够自动进行网络脆弱性扫描,专业要求低,适用性强,且不需要人工操作,进而有利于提升扫描效率和扫描准确度。
[0158] 实施例4
[0159] 请参看图4,图4为本申请实施例提供的一种网络脆弱性扫描装置的结构示意图。如图4所示,该网络脆弱性扫描装置包括:
[0160] 数据获取模块410,用于获取待扫描数据;
[0161] 类型确定模块420,用于确定待扫描数据的来源类型;
[0162] 策略确定模块430,用于根据来源类型确定针对待扫描数据的扫描策略;
[0163] 扫描模块440,用于根据扫描策略对待扫描数据进行脆弱性扫描处理,得到网络脆弱性扫描结果。
[0164] 本申请实施例中,对于网络脆弱性扫描装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
[0165] 可见,实施本实施例所描述的网络脆弱性扫描装置,能够自动进行网络脆弱性扫描,专业要求低,适用性强,且不需要人工操作,进而有利于提升扫描效率和扫描准确度。
[0166] 实施例5
[0167] 请一并参阅图5,图5是本申请实施例提供的一种网络脆弱性扫描装置的结构示意图。其中,图5所示的网络脆弱性扫描装置是由图4所示的网络脆弱性扫描装置进行优化得到的。如图5所示,类型确定模块420,具体用于当待扫描数据为日志数据时,则确定待扫描数据的来源类型为日志类型;以及当待扫描数据为预设目标数据时,则确定待扫描数据的来源类型为扫描目标类型。
[0168] 作为一种可选的实施方式,策略确定模块430包括:
[0169] 第一获取子模块431,用于当来源类型为日志类型时,获取日志类型对应的预设知识库和第一扫描策略;
[0170] 第一生成子模块432,用于根据预设知识库和第一扫描策略生成针对待扫描数据的扫描策略。
[0171] 作为一种可选的实施方式,扫描模块440包括:
[0172] 识别子模块441,用于当来源类型为日志类型时,对待扫描数据进行流量识别,得到流量识别结果;
[0173] 比对子模块442,用于将流量识别结果与预设知识库进行碰撞比对,得到比对数据合集;
[0174] 深度扫描子模块443,用于通过第一扫描策略对流量识别结果进行脆弱性扫描,得到第一扫描结果;
[0175] 第二生成子模块444,用于根据流量识别结果、比对数据合集和第一扫描结果,生成网络脆弱性扫描结果。
[0176] 本申请实施例中,对于网络脆弱性扫描装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
[0177] 可见,实施本实施例所描述的网络脆弱性扫描装置,能够自动进行网络脆弱性扫描,专业要求低,适用性强,且不需要人工操作,进而有利于提升扫描效率和扫描准确度。
[0178] 实施例6
[0179] 请一并参阅图6,图6是本申请实施例提供的一种网络脆弱性扫描装置的结构示意图。其中,图6所示的网络脆弱性扫描装置是由图4所示的网络脆弱性扫描装置进行优化得到的。如图6所示,类型确定模块420,具体用于当待扫描数据为日志数据时,则确定待扫描数据的来源类型为日志类型;以及当待扫描数据为预设目标数据时,则确定待扫描数据的来源类型为扫描目标类型。
[0180] 作为一种可选的实施方式,策略确定模块430包括:
[0181] 第二获取子模块433,用于当来源类型为扫描目标类型,获取扫描目标类型对应的预设常规扫描策略和第二扫描策略;
[0182] 第三生成子模块434,用于根据预设常规扫描策略和第二扫描策略生成针对待扫描数据的扫描策略。
[0183] 作为一种可选的实施方式,扫描模块440包括:
[0184] 信息收集子模块445,用于当来源类型为扫描目标类型,对待扫描数据进行信息收集,得到收集数据;
[0185] 探测子模块446,用于通过预设常规扫描策略对收集数据进行启发式探测处理,得到探测结果,以及根据收集数据进行网络模拟操作,得到模拟操作数据;
[0186] 确定子模块447,用于根据探测结果和模拟操作数据确定能够正常访问的网络地址集合;
[0187] 第二扫描子模块448,用于根据第二扫描策略对网络地址集合进行深度漏洞扫描,得到第二扫描结果;
[0188] 第四生成子模块449,用于根据探测结果、模拟操作数据、网络地址集合以及第二扫描结果,生成网络脆弱性扫描结果。
[0189] 本申请实施例中,对于网络脆弱性扫描装置的解释说明可以参照实施例1或实施例2中的描述,对此本实施例中不再多加赘述。
[0190] 可见,实施本实施例所描述的网络脆弱性扫描装置,能够自动进行网络脆弱性扫描,专业要求低,适用性强,且不需要人工操作,进而有利于提升扫描效率和扫描准确度。
[0191] 本申请实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本申请实施例1或实施例2中任一项网络脆弱性扫描方法。
[0192] 本申请实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本申请实施例1或实施例2中任一项网络脆弱性扫描方法。
[0193] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0194] 另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0195] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0196] 以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0197] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
[0198] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。