首页> 中国专利> 异常检测模型训练方法、异常检测方法及装置

异常检测模型训练方法、异常检测方法及装置

摘要

本公开提供了一种异常检测模型的训练方法,应用于人工智能领域、计算机技术领域或其它领域。异常检测模型的训练方法包括获取异常扫描报告;根据异常扫描报告获取异常数据集,其中,异常数据集中包括多个异常数据,异常数据用于表征异常扫描报告中的异常的参数信息;将异常数据集作为训练样本数据集,以训练待训练的初始异常检测模型,得到训练后的异常检测模型。本公开还提供了一种异常检测方法、异常检测模型的训练装置、异常检测装置、电子设备、计算机可读存储介质及计算机程序产品。

著录项

  • 公开/公告号CN113127858A

    专利类型发明专利

  • 公开/公告日2021-07-16

    原文格式PDF

  • 申请/专利权人 中国工商银行股份有限公司;

    申请/专利号CN202110421423.0

  • 发明设计人 张卉;杨洋;

    申请日2021-04-19

  • 分类号G06F21/55(20130101);G06F16/955(20190101);G06K9/62(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人孙蕾

  • 地址 100140 北京市西城区复兴门内大街55号

  • 入库时间 2023-06-19 11:52:33

说明书

技术领域

本公开涉及人工智能领域和计算机技术领域,更具体地,涉及一种异常检测模型训练方法、异常检测方法、装置、电子设备、计算机可读存储介质及计算机程序产品。

背景技术

黑盒扫描是指在完全不知道应用程序内部结构和内部特征的情况下开展的扫描,普遍适用于对web应用(即网页应用)和手机应用的扫描。在对web应用和手机应用进行黑盒扫描时,利用黑盒扫描工具内置的攻击向量对应用的全量URL(Uniform ResourceLocator,统一资源定位符)进行攻击,并按照扫描工具预设的响应分类分析每个URL是否存在安全隐患,并生成扫描报告。

相关技术中通常用人工筛选的方式对扫描报告中报告的异常进行筛选,在实现本公开构思的过程中,发明人发现相关技术中存在人工筛选的成本较高且准确率较低的问题。

发明内容

有鉴于此,本公开提供了一种异常检测模型训练方法、异常检测方法及装置。

本公开的一个方面提供了一种异常检测模型训练方法,包括:

获取异常扫描报告;

根据上述异常扫描报告获取异常数据集,其中,上述异常数据集中包括多个异常数据,上述异常数据用于表征上述异常扫描报告中的异常的参数信息;

将上述异常数据集作为训练样本数据集,以训练待训练的初始异常检测模型,得到训练后的异常检测模型。

根据本公开的实施例,上述根据上述异常扫描报告获取异常数据集包括:

根据上述异常扫描报告获取多个原始异常数据;

对上述多个原始异常数据分别进行预处理,生成上述多个异常数据,其中,上述异常数据的数据类型包括数值型和/或布尔型;

根据上述多个异常数据生成上述异常数据集。

根据本公开的实施例,上述多个原始异常数据包括:请求数据和响应数据;

其中,上述请求数据包括原始请求数据和修改后的请求数据;上述响应数据包括与原始请求数据对应的响应数据和与修改后的请求数据对应的响应数据。

根据本公开的实施例,上述对上述多个原始异常数据分别进行预处理,生成上述多个异常数据包括:

对上述原始请求数据、与原始请求数据对应的响应数据、修改后的请求数据和与修改后的请求数据对应的响应数据分别进行特征提取,确定第一报文长度数据、第二报文长度数据、第三报文长度数据以及第四报文长度数据;

基于上述原始请求数据和上述修改后的请求数据,确定第一报文相似度;

基于上述与原始请求数据对应的响应数据和与上述修改后的请求数据对应的响应数据,确定第二报文相似度;

根据上述原始请求数据的报文体数据,确定上述原始请求数据的第一报文头的参数类型;

根据上述修改后的请求数据的报文体数据,确定上述修改后的请求数据的第二报文头的参数类型;

根据上述原始请求数据和上述与原始请求数据对应的响应数据,确定第一重现数据,其中,上述第一重现数据用于表征出现在上述原始请求数据中的关键字是否在上述与原始请求数据对应的响应数据中出现;

根据上述修改后的请求数据和与上述修改后的请求数据对应的响应数据,确定第二重现数据,其中,上述第二重现数据用于表征出现在上述修改后的请求数据中的关键字是否在与上述修改后的请求数据对应的响应数据中出现;

根据上述原始响应数据,确定第一返回码数据;

根据上述与修改后的请求数据对应的响应数据,确定第二返回码数据;

将上述第一报文长度数据、上述第二报文长度数据、上述第三报文长度数据、上述第四报文长度数据、上述第一报文相似度、上述第二报文相似度、上述第一报文头的参数类型、上述第二报文头的参数类型、上述第一重现数据、上述第二重现数据、上述第一返回码数据和上述第二返回码数据作为上述多个异常数据。

根据本公开的实施例,上述利用上述训练样本数据集训练待训练的异常检测模型,得到异常检测模型包括:

将上述训练样本数据集划分为训练集和测试集;

利用上述训练集训练上述待训练的异常检测模型,得到待测试异常检测模型;

利用上述测试集对上述待测试异常检测模型进行测试,得到验证结果,若上述验证结果不符合迭代停止条件,则继续对上述初始异常检测模型进行训练,直至上述验证结果符合迭代停止条件,其中,上述验证结果用于表征上述测试集中的异常数据为真或假,上述真表征上述扫描报告中的异常数据为真异常数据,上述假表征上述扫描报告中的异常数据为误报异常数据;

将符合上述迭代停止条件时对应的模型作为异常检测模型。

根据本公开的实施例,上述初始异常检测模型是基于朴素贝叶斯分类算法构建得到的。

本公开的另一个方面提供了一种异常检测方法,包括:获取待测扫描报告;

根据上述待测扫描报告获取待测样本数据集;

将上述待测样本数据集输入至上述异常检测模型,输出检测结果,其中,上述异常检测模型由本公开实施例提供的异常检测模型的训练方法训练得到。

根据本公开的实施例,上述根据待测扫描报告获取待测样本数据集包括:

根据上述待测扫描报告获取原始待测样本,上述原始待测样本包括多个原始数据;

对上述多个原始数据分别进行预处理,得到多个待测数据,其中,上述待测样本数据集中的待测样本由上述多个待测数据构成,上述待测数据的数据类型包括数值型和/或布尔型;

将上述多个待测数据作为待测样本数据集。

根据本公开的实施例,还包括:

根据上述检测结果,利用上述待测样本数据集优化上述异常检测模型,得到优化异常检测模型。

根据本公开的实施例,上述根据上述检测结果,利用上述待测样本数据集优化上述异常检测模型,得到优化检测模型包括:

判断上述待测样本数据集中的待测样本是否与上述异常检测模型的训练样本重合;

在上述待测样本数据集中的待测样本不与上述异常检测模型的训练样本重合的情况下:

将上述待测样本数据集划分为优化训练集和优化测试集;

利用上述优化训练集优化上述异常检测模型,得到待优化测试异常检测模型;

利用上述优化测试集对上述待优化测试异常检测模型进行测试,得到验证结果,若上述验证结果不符合迭代停止条件,则继续对上述待优化测试异常检测模型进行优化,直至上述验证结果符合迭代停止条件,其中,上述验证结果用于表征上述优化测试集中的异常数据为真或假,上述真表征上述扫待测描报告中的异常数据为真异常数据,上述假表征上述待测扫描报告中的异常数据为误报异常数据;以及

将符合上述迭代停止条件对应的模型作为优化异常检测模型;

在上述待测样本数据集中的待测样本与上述异常检测模型的训练样本重合的情况下:

利用上述待测训练样本数据集优化上述异常检测模型,得到优化异常检测模型。

根据本公开的实施例,还包括:

根据上述检测结果生成检测报告,上述检测报告用于表征上述待测样本数据集中的每个待测样本的异常情况。

根据本公开的实施例,上述待测扫描报告与用于训练上述异常检测模型的扫描报告为来自同一应用的不同版本的扫描报告。

本公开的另一方面提供了一种异常检测模型的训练装置,包括:

第一获取模块,用于获取异常数据集合,其中,上述异常数据集合中包括多个异常数据,上述异常数据用于表征异常的参数信息;

第二获取模块,用于获取训练样本数据集,其中,上述训练样本数据集中包括多个上述异常数据集合;

训练模块,用于利用上述训练样本数据集训练待训练的异常检测模型,得到异常检测模型。

本公开的另一方面提供了一种异常检测装置,包括:

第三获取模块,用于获取待测扫描报告;

第四获取模块,用于根据上述待测扫描报告获取待测样本数据集;

检测模块,用于将上述待测样本数据集输入至异常检测模型中,输出检测结果,其中,上述异常检测模型由本公开实施例提供的异常检测模型的训练方法训练得到。

本公开的另一方面提供了电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当上述一个或多个指令被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上述的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上述的方法。

本公开的另一方面提供了一种计算机程序产品,上述计算机程序产品包括计算机可执行指令,上述指令在被执行时用于实现如上述的方法。

根据本公开的实施例,通过将异常数据集作为训练样本,训练得到异常检测模型,其中,异常数据集能够表征扫描报告中提供的异常的参数信息。当利用异常检测模型对待测扫描报告中的异常进行检测时,能够准确的筛选出异常检测报告中提示的异常是真异常还是误报异常,从而实现了提高异常检测的准确率,以及降低人工筛查成本的技术效果。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的可以应用异常检测模型的训练方法、异常检测模型的训练装置、异常检测方法及异常检测装置的示例性系统架构;

图2示意性示出了根据本公开实施例的异常检测模型的训练方法的流程图;

图3示意性示出了根据本公开实施例的根据异常扫描报告获取异常数据集的流程图;

图4示意性示出了根据本公开实施例的对多个原始异常数据分别进行预处理,生成多个异常数据的流程图;

图5示意性示出了根据本公开实施例的利用训练样本数据集训练待训练的异常检测模型,得到异常检测模型的流程图;

图6示意性示出了根据本公开实施例的异常检测方法的流程图;

图7示意性示出了根据本公开实施例的根据待测扫描报告获取待测样本数据集的流程图;

图8示意性示出了根据本公开实施例的根据检测结果,利用待测样本数据集优化异常检测模型,得到优化检测模型的流程图;

图9示意性示出了根据本公开实施例的异常检测模型的训练装置的框图;

图10示意性示出了根据本公开实施例的异常检测装置的框图;以及

图11示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。

本公开提供了一种异常检测模型的训练方法,应用于人工智能领域、计算机技术领域或其它领域。异常检测模型的训练方法包括获取异常扫描报告;根据异常扫描报告获取异常数据集,其中,异常数据集中包括多个异常数据,异常数据用于表征异常扫描报告中的异常的参数信息;将异常数据集作为训练样本数据集,以训练待训练的初始异常检测模型,得到训练后的异常检测模型。本公开还提供了一种异常检测方法、异常检测模型的训练装置、异常检测装置、电子设备、计算机可读存储介质及计算机程序产品。

图1示意性示出了根据本公开实施例的可以应用异常检测模型的训练方法、异常检测模型的训练装置、异常检测方法及异常检测装置的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。

终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。

需要说明的是,本公开实施例所提供的异常检测模型的训练方法和异常检测方法一般可以由服务器105执行。相应地,本公开实施例所提供的异常检测模型的训练装置和异常检测装置一般可以设置于服务器105中。本公开实施例所提供的异常检测模型的训练方法和异常检测方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的异常检测模型的训练装置和异常检测装置电可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。或者,本公开实施例所提供的异常检测模型的训练方法和异常检测方法也可以由终端设备101、102、或103执行,或者也可以由不同于终端设备101、102、或103的其他终端设备执行。相应地,本公开实施例所提供的异常检测模型的训练装置和异常检测装置也可以设置于终端设备101、102、或103中,或设置于不同于终端设备101、102、或103的其他终端设备中。

例如,异常数据集可以原本存储在终端设备101、102、或103中的任意一个(例如,终端设备101,但不限于此)之中,或者存储在外部存储设备上并可以导入到终端设备101中。然后,终端设备101可以在本地执行本公开实施例所提供的异常检测模型的训练方法,或者将异常数据集发送到其他终端设备、服务器、或服务器集群,并由接收该异常数据集的其他终端设备、服务器、或服务器集群来执行本公开实施例所提供的异常检测模型的训练方法。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图2示意性示出了根据本公开实施例的异常检测模型的训练方法的流程图。

需要说明的是,本公开实施例中的流程图所示的操作除非明确说明不同操作之间存在执行的先后顺序,或者不同操作在技术实现上存在执行的先后顺序,否则,多个操作之间的执行顺序可以不分先后,多个操作也可以同时执行。

如图2所示,该方法包括操作S201~S203。

在操作S201,获取异常扫描报告。

根据本公开的实施例,异常扫描报告可以包括利用黑盒扫描工具对应用程序进行黑盒扫描后生成的异常扫描报告。

根据本公开的实施例,利用黑盒扫描工具对应用程序进行黑盒扫描后生成的异常扫描报告会提供所发现的异常对应的请求数据以及响应数据,并标记出其中的请求差异、请求数据和响应数据中存在问题的段落。

根据本公开的实施例,异常扫描报告中例如可以提供应用程序中存在的一个异常,但不限于此,异常扫描报告中例如还可以提供应用程序中存在的多个异常。

在操作S202,根据异常扫描报告获取异常数据集,其中,异常数据集中包括多个异常数据,异常数据用于表征异常扫描报告中的异常的参数信息。

根据本公开的实施例,异常数据集与异常扫描报告中提供的异常可以是一一对应的关系,例如,异常扫描报告中提供有N个异常,则可以根据异常扫描报告获取N个异常数据集,其中,N为正整数。

根据本公开的实施例,获取异常扫描报告后,可以通过文本分析方法提取异常扫描报告中提供的异常的异常数据,以构成异常数据集。

根据本公开的实施例,异常数据集中的所有异常数据共同用于表征与异常数据集对应的一个异常;异常数据集中的每个异常数据都可以表征与异常数据集对应的一个异常的一个参数信息。

在操作S203,将异常数据集作为训练样本数据集,以训练待训练的初始异常检测模型,得到训练后的异常检测模型。

根据本公开的实施例,黑盒扫描工具对于不同应用、针对不同异常进行扫描生成的异常扫描报告各不相同,从而可以通过调整初始异常检测模型的模型参数,从而训练得到不同的异常检测模型,提高异常检测的自由度。

根据本公开的实施例,可以将与扫描报告中的一个异常对应的一个异常数据集作为一个训练样本,用于训练初始异常检测模型。

根据本公开的实施例,可以将异常扫描报告中的多个异常对应的多个异常数据集作为一个训练样本数据集,用于训练初始异常检测模型。

根据本公开的实施例,异常检测模型可以检测出异常数据集对应的扫描报告中的异常是真异常还是误报异常。

根据本公开的实施例,初始异常检测模型例如可以是基于朴素贝叶斯分类算法构建得到的异常检测模型,需要说明的是,初始异常检测模型并不限于此,还可以是采用其他算法构建得到的异常检测模型,例如,还可以是随机森林算法等。

本公开实施例提供了一种异常检测模型的训练方法,通过将异常数据集作为训练样本,训练得到异常检测模型,其中,异常数据集能够表征扫描报告中提供的异常的参数信息。当利用异常检测模型对待测扫描报告中的异常进行检测时,能够准确的筛选出异常检测报告中提示的异常是真异常还是误报异常,从而实现了提高异常检测的准确率,以及降低人工筛查成本的技术效果。

下面参考图3~图5,结合具体实施例对图2所示的方法做进一步说明。

图3示意性示出了根据本公开实施例的根据异常扫描报告获取异常数据集的流程图。

如图3所示,该方法包括操作S301~S303。

在操作S301,根据异常扫描报告获取多个原始异常数据。

根据本公开的实施例,根据异常扫描报告获取的原始异常数据包括字符串类型数据,由于无法直接利用字符串类型数据对初始异常检测模型进行训练,因此,可以对多个原始异常数据分别进行预处理,以将字符串类型数据转化为可以直接对初始异常检测模型进行训练的数据。

在操作S302,对多个原始异常数据分别进行预处理,生成多个异常数据,其中,异常数据的数据类型包括数值型和/或布尔型。

根据本公开的实施例,通过将字符串类型的原始异常数据进行预处理,得到了数值型和/或布尔型的异常数据,从而可以直接利用异常数据对初始异常扫描模型进行训练。

在操作S303,根据多个异常数据生成异常数据集。

根据本公开实施例,多个原始异常数据包括请求数据和响应数据;其中,请求数据包括原始请求数据和修改后的请求数据;响应数据包括与原始请求数据对应的响应数据和与修改后的请求数据对应的响应数据。

根据本公开的实施例,通过将原始请求数据、修改后的请求数据、与原始请求数据对应的响应数据和与修改后的请求数据对应的响应数据作为原始异常数据,从而可以充分表征异常扫描报告中提供的异常,提高异常检测模型的训练质量。

图4示意性示出了根据本公开实施例的对多个原始异常数据分别进行预处理,生成多个异常数据的流程图。

如图4所示,该方法包括操作S401~S4010。

在操作S401,对原始请求数据、与原始请求数据对应的响应数据、修改后的请求数据和与修改后的请求数据对应的响应数据分别进行特征提取,确定第一报文长度数据、第二报文长度数据、第三报文长度数据以及第四报文长度数据。

根据本公开的实施例,可以对原始请求数据进行特征提取,得到第一报文长度数据;可以对与原始请求数据对应的响应数据进行特征提取,得到第二报文长度数据;可以对修改后的请求数据进行特征提取,得到第三报文长度数据;可以对与修改后的请求数据对应的响应数据进行特征提取,得到第四报文长度数据。

根据本公开的实施例,第一报文长度数据可以包括原始请求数据的报文数据的字符总数,字符总数例如可以通过统计报文数据中空格以及特殊字符的总数得到。

根据本公开的实施例,第二报文长度数据可以包括与原始请求数据对应的响应数据的报文数据的字符总数,字符总数例如可以通过统计报文数据中空格以及特殊字符的总数得到。

根据本公开的实施例,第三报文长度数据可以包括修改后的请求数据的报文数据的字符总数,字符总数例如可以通过统计报文数据中空格以及特殊字符的总数得到。

根据本公开的实施例,第四报文长度数据可以包括与修改后的请求数据对应的响应数据的报文数据的字符总数,字符总数例如可以通过统计报文数据中空格以及特殊字符的总数得到。

在操作S402,基于原始请求数据和修改后的请求数据,确定第一报文相似度。

根据本公开的实施例,可以根据原始请求数据和修改后的请求数据,利用编辑距离算法(Levenshtein Distance),确定第一报文相似度。

在操作S403,基于与原始请求数据对应的响应数据和与修改后的请求数据对应的响应数据,确定第二报文相似度。

根据本公开的实施例,可以根据与原始请求数据对应的响应数据和与修改后的请求数据对应的响应数据,利用编辑距离算法(Levenshtein Distance),确定第二报文相似度。

在操作S404,根据原始请求数据的报文体数据,确定原始请求数据的第一报文头的参数类型。

根据本公开的实施例,原始请求数据的报文数据包括报文头数据和报文体数据,而报文头数据的参数类型有固定范围,并且,报文体数据和报文头数据具有对应关系。

根据本公开的实施例,可以先确定原始请求数据的报文体数据,然后根据原始请求数据的报文体数据在数据字典中进行遍历查找,从而确定原始请求数据的第一报文头的参数类型。

在操作S405,根据修改后的请求数据的报文体数据,确定修改后的请求数据的第二报文头的参数类型。

根据本公开的实施例,修改后的请求数据的报文数据包括报文头和报文体,而报文头的参数类型有固定范围,并且,报文体和报文头具有对应关系。

根据本公开的实施例,可以先确定修改后的请求数据的报文体数据,然后根据修改后的请求数据的报文体数据在数据字典中进行遍历查找,从而确定修改后的请求数据的第二报文头的参数类型。

在操作S406,根据原始请求数据和与原始请求数据对应的响应数据,确定第一重现数据,其中,第一重现数据用于表征出现在原始请求数据中的关键字是否在与原始请求数据对应的响应数据中出现。

根据本公开的实施例,例如,原始请求数据中包括关键字“(target=″_blank″)”,可以在与原始请求对应的响应数据中搜索关键字“(target=″_blank″)”,从而确定关键字“(target=″_blank″)”是否出现在与原始请求对应的响应数据中;

根据本公开的实施例,第一重现数据例如可以包括1或0,1可以表示出现在原始请求数据中的关键字在与原始请求数据对应的响应数据中出现,0可以表示出现在原始请求数据中的关键字未在与原始请求数据对应的响应数据中出现;但不限于此,第一重现数据例如还可以包括true或false,true可以表示出现在原始请求数据中的关键字在与原始请求数据对应的响应数据中出现,false可以表示出现在原始请求数据中的关键字未在与原始请求数据对应的响应数据中出现。

在操作S407,根据修改后的请求数据和与修改后的请求数据对应的响应数据,确定第二重现数据,其中,第二重现数据用于表征出现在修改后的请求数据中的关键字是否在与修改后的请求数据对应的响应数据中出现。

根据本公开的实施例,例如,修改后的请求数据中包括关键字“(target=″_blank″)”,可以在与修改后的请求数据对应的响应数据中搜索关键字“(target=″_blank″)”,从而确定关键字“(target=″_blank″)”是否出现在与修改后的请求数据对应的响应数据中;

根据本公开的实施例,第二重现数据例如可以包括1或0,1可以表示出现在修改后的请求数据中的关键字在与修改后的请求数据对应的响应数据中出现,0可以表示出现在修改后的请求数据中的关键字未在与修改后的请求数据对应的响应数据中出现;但不限于此,第二重现数据例如还可以包括true或false,true可以表示出现在修改后的请求数据中的关键字在与修改后的请求数据对应的响应数据中出现,false可以表示出现在修改后的请求数据中的关键字未在与修改后的请求数据对应的响应数据中出现。

根据本公开的实施例,第一重现数据和第二重现数据例如可以是布尔型的数据。

在操作S408,根据原始响应数据,确定第一返回码数据。

根据本公开的实施例,在原始响应数据中,第一返回码数据可以以HTTP/1.X开头,其中,X可以包括任意字符,并且第一返回码数据可以包括三位字符,从而可以在原始响应数据根据第一返回码的格式提取第一返回码数据。

在操作S409,根据与修改后的请求数据对应的响应数据,确定第二返回码数据。

根据本公开的实施例,在与修改后的请求数据对应的响应数据中,第二返回码数据可以以HTTP/1.X开头,其中,X可以包括任意字符,并且第二返回码数据可以包括三位字符,从而可以在与修改后的请求数据对应的响应数据根据第二返回码的格式提取第二返回码数据。

在操作S4010,将第一报文长度数据、第二报文长度数据、第三报文长度数据、第四报文长度数据、第一报文相似度、第二报文相似度、第一报文头的参数类型、第二报文头的参数类型、第一重现数据、第二重现数据、第一返回码数据和第二返回码数据作为多个异常数据。

根据本公开的实施例,表1示意性示出了根据本公开实施例的异常数据和与其对应的预处理方法。

表1

图5示意性示出了根据本公开实施例的利用训练样本数据集训练待训练的异常检测模型,得到异常检测模型的流程图。

如图5所示,该方法包括操作S501~S504。

在操作S501,将训练样本数据集划分为训练集和测试集。

根据本公开的实施例,可以将训练样本数据集中的一部分训练样本作为训练集,将训练样本数据集中的除训练集的另一部分的训练样本作为测试集;例如可以将训练样本数据集中的80%的训练样本作为训练集,将训练样本数据集中的20%的训练样本作为测试集,但不限于此,还可以将训练样本数据集中的70%的训练样本作为训练集,将训练样本数据集中的30%的训练样本作为测试集。

在操作S502,利用训练集训练待训练的异常检测模型,得到待测试异常检测模型。

在操作S503,利用测试集对待测试异常检测模型进行测试,得到验证结果,若验证结果不符合迭代停止条件,则继续对初始异常检测模型进行训练,直至验证结果符合迭代停止条件,其中,验证结果用于表征测试集中的异常数据为真或假,真表征扫描报告中的异常数据为真异常数据,假表征扫描报告中的异常数据为误报异常数据。

根据本公开的实施例,迭代停止条件可以由本领域技术人员按照实际应用情况灵活设置,本公开实施例不对迭代停止条件作具体限定。

在操作S504,将符合迭代停止条件时对应的模型作为异常检测模型。

根据本公开实施例,初始异常检测模型是基于朴素贝叶斯分类算法构建得到的。

图6示意性示出了根据本公开实施例的异常检测方法的流程图。

如图6所示,该方法包括操作S601~S603。

在操作S601,获取待测扫描报告。

根据本公开的实施例,待测扫描报告可以包括利用黑盒扫描工具对应用程序进行黑盒扫描后生成的待测扫描报告。

在操作S602,根据待测扫描报告获取待测样本数据集。

在操作S603,将待测样本数据集输入至异常检测模型,输出检测结果,其中,异常检测模型由本公开实施例提供的的异常检测模型的训练方法训练得到。

根据本公开的实施例,利用预先训练好的异常检测模型对待测扫描报告中的异常进行扫描,能够准确的筛选出待测扫描报告中提示的异常是真异常还是误报异常,从而实现了提高异常检测的准确率,以及降低人工筛查成本的技术效果

图7示意性示出了根据本公开实施例的根据待测扫描报告获取待测样本数据集的流程图。

如图7所示,该方法包括操作S701~S703。

在操作S701,根据待测扫描报告获取原始待测样本,原始待测样本包括多个原始数据。

在操作S702,对多个原始数据分别进行预处理,得到多个待测数据,其中,待测样本数据集中的待测样本由多个待测数据构成,待测数据的数据类型包括数值型和/或布尔型。

在操作S703,将多个待测数据作为待测样本数据集。

根据本公开的实施例,异常检测方法还包括根据检测结果,利用待测样本数据集优化异常检测模型,得到优化异常检测模型。

根据本公开的实施例,可以根据异常检测的精度要求,对异常检测模型进行优化训练,以进一步提高异常检测模型的异常检测精度。

图8示意性示出了根据本公开实施例的根据检测结果,利用待测样本数据集优化异常检测模型,得到优化检测模型的流程图。

如图8所示,该方法包括操作S801~S806。

在操作S801,判断待测样本数据集中的待测样本是否与异常检测模型的训练样本重合。

根据本公开的实施例,在对异常检测模型进行优化训练之前,可以先判断待测样本数据集中的待测样本是否为首次用于异常检测模型的训练。

在待测样本数据集中的待测样本不与异常检测模型的训练样本重合的情况下,执行操作S802。在待测样本数据集中的待测样本与异常检测模型的训练样本重合的情况下,执行操作S806。

在操作S802,将待测样本数据集划分为优化训练集和优化测试集。

根据本公开的实施例,可以将待测样本数据集中的一部分待测样本作为优化训练集,将待测样本数据集中的除优化训练集的另一部分的待测样本作为优化测试集;例如可以将待测样本数据集中的80%的待测样本作为优化训练集,将待测样本数据集中的20%的待测样本作为优化测试集,但不限于此,还可以将待测样本数据集中的70%的待测样本作为优化训练集,将待测样本数据集中的30%的待测样本作为优化测试集。

在操作S803,利用优化训练集优化异常检测模型,得到待优化测试异常检测模型。

在操作S804,利用优化测试集对待优化测试异常检测模型进行测试,得到验证结果,若验证结果不符合迭代停止条件,则继续对待优化测试异常检测模型进行优化,直至验证结果符合迭代停止条件,其中,验证结果用于表征优化测试集中的异常数据为真或假,真表征待测描报告中的异常数据为真异常数据,假表征待测扫描报告中的异常数据为误报异常数据。以及

在操作S805,将符合迭代停止条件对应的模型作为优化异常检测模型。

根据本公开的实施例,迭代停止条件可以由本领域技术人员按照实际应用情况灵活设置,本公开实施例不对迭代停止条件作具体限定。

在操作S806,利用待测训练样本数据集优化异常检测模型,得到优化异常检测模型。

根据本公开的实施例,若待测样本数据集中的待测样本为首次用于异常检测模型的训练,则可以将待测样本数据集划分为优化训练集和优化测试集,以确定异常检测模型的优化效果,从而确定是否继续对异常检测模型进行优化训练;若待测样本数据集中的待测样本不为首次用于异常检测模型的训练,则可以利用待测训练样本数据集优化异常检测模型,得到优化异常检测模型,以加快优化训练的速度。

根据本发明的实施例,异常检测方法还包括根据检测结果生成检测报告,检测报告用于表征待测样本数据集中的每个待测样本的异常情况。

根据本公开的实施例,检测报告可以包括待测扫描报告中提供的异常的参数信息,例如,待测扫描报告中的多个异常中,哪些异常是真异常,哪些异常是误报异常,并且,还可以提供真异常在全量URL中存在问题的段落,用以对真异常进行分析。

根据本发明的实施例,待测扫描报告与用于训练异常检测模型的扫描报告为来自同一应用的不同版本的扫描报告。

根据本公开的实施例,待测扫描报告例如可以包括应用A2.0版本的扫描报告,用于训练异常检测模型的扫描报告例如可以包括应用A1.0版本的扫描报告。

根据本公开的实施例,可以在异常检测模型的应用过程中,随着应用的更新,持续优化异常检测模型,提高异常检测模型的鲁棒性。

图9示意性示出了根据本公开实施例的异常检测模型的训练装置的框图900。

如图9所示,异常检测模型的训练装置包括第一获取模块901、第二获取模块902和训练模块903。

第一获取模块901,用于获取异常数据集合,其中,异常数据集合中包括多个异常数据,异常数据用于表征异常的参数信息。

第二获取模块902,用于获取训练样本数据集,其中,训练样本数据集中包括多个异常数据集合。

训练模块903,用于利用训练样本数据集训练待训练的异常检测模型,得到异常检测模型。

根据本公开的实施例,异常检测模型的训练装置还包括第五获取模块、预处理模块和生成模块。

第五获取模块,用于根据异常扫描报告获取多个原始异常数据。

第一预处理模块,用于对多个原始异常数据分别进行预处理,生成多个异常数据,其中,异常数据的数据类型包括数值型和/或布尔型。

第一生成模块,用于根据多个异常数据生成异常数据集。

根据本公开的实施例,多个原始异常数据包括:请求数据和响应数据;其中,请求数据包括原始请求数据和修改后的请求数据;响应数据包括与原始请求数据对应的响应数据和与修改后的请求数据对应的响应数据。

根据本公开的实施例,预处理模块包括特征提取单元、第一确定单元、第二确定单元、第三确定单元、第四确定单元、第五确定单元、第六确定单元、第七确定单元、第八确定单元和生成单元。

特征提取单元,用于对原始请求数据、与原始请求数据对应的响应数据、修改后的请求数据和与修改后的请求数据对应的响应数据分别进行特征提取,确定第一报文长度数据、第二报文长度数据、第三报文长度数据以及第四报文长度数据。

第一确定单元,用于基于原始请求数据和修改后的请求数据,确定第一报文相似度。

第二确定单元,用于基于与原始请求数据对应的响应数据和与修改后的请求数据对应的响应数据,确定第二报文相似度。

第三确定单元,用于根据原始请求数据的报文体数据,确定原始请求数据的第一报文头的参数类型。

第四确定单元,用于根据修改后的请求数据的报文体数据,确定修改后的请求数据的第二报文头的参数类型。

第五确定单元,用于根据原始请求数据和与原始请求数据对应的响应数据,确定第一重现数据,其中,第一重现数据用于表征出现在原始请求数据中的关键字是否在与原始请求数据对应的响应数据中出现。

第六确定单元,用于根据修改后的请求数据和与修改后的请求数据对应的响应数据,确定第二重现数据,其中,第二重现数据用于表征出现在修改后的请求数据中的关键字是否在与修改后的请求数据对应的响应数据中出现。

第七确定单元,用于根据原始响应数据,确定第一返回码数据。

第八确定单元,用于根据与修改后的请求数据对应的响应数据,确定第二返回码数据。

生成单元,用于将第一报文长度数据、第二报文长度数据、第三报文长度数据、第四报文长度数据、第一报文相似度、第二报文相似度、第一报文头的参数类型、第二报文头的参数类型、第一重现数据、第二重现数据、第一返回码数据和第二返回码数据作为多个异常数据。

根据本公开的实施例,训练模块903包括第一划分单元、训练单元、测试单元和第二生成单元。

第一划分单元,用于将训练样本数据集划分为训练集和测试集。

训练单元,用于利用训练集训练待训练的异常检测模型,得到待测试异常检测模型。

测试单元,用于利用测试集对待测试异常检测模型进行测试,得到验证结果,若验证结果不符合迭代停止条件,则继续对初始异常检测模型进行训练,直至验证结果符合迭代停止条件,其中,验证结果用于表征测试集中的异常数据为真或假,真表征扫描报告中的异常数据为真异常数据,假表征扫描报告中的异常数据为误报异常数据。

第二生成单元,用于将符合迭代停止条件时对应的模型作为异常检测模型。

根据本公开的实施例,初始异常检测模型是基于朴素贝叶斯分类算法构建得到的。

图10示意性示出了根据本公开实施例的异常检测装置的框图1000。

如图10所示,异常检测装置包括第三获取模块1001、第四获取模块1002和检测模块1003。

第三获取模块1001,获取待测扫描报告。

第四获取模块1002,用于根据待测扫描报告获取待测样本数据集。

检测模块1003,用于将待测样本数据集输入至异常检测模型中,输出检测结果,其中,异常检测模型由本公开实施例提供的异常检测模型的训练方法训练得到。

根据本公开的实施例,异常检测装置还包括第六获取模块、第二预处理模块和第二生成模块。

第六获取模块,用于根据待测扫描报告获取原始待测样本,原始待测样本包括多个原始数据。

第二预处理模块,用于对多个原始数据分别进行预处理,得到多个待测数据,其中,待测样本数据集中的待测样本由多个待测数据构成,待测数据的数据类型包括数值型和/或布尔型。

第二生成模块,用于将多个待测数据作为待测样本数据集。

根据本公开的实施例,异常检测装置还包括优化模块。

优化模块,用于根据检测结果,利用待测样本数据集优化异常检测模型,得到优化异常检测模型。

根据本公开的实施例,优化模块包括第一判断单元、第二划分单元、第一优化训练单元、优化测试单元、第三生成单元和第二优化训练单元。

第一判断单元,用于判断待测样本数据集中的待测样本是否与异常检测模型的训练样本重合。

在待测样本数据集中的待测样本不与异常检测模型的训练样本重合的情况下:

第二划分单元,用于将待测样本数据集划分为优化训练集和优化测试集。

第一优化训练单元,用于利用优化训练集优化异常检测模型,得到待优化测试异常检测模型。

优化测试单元,用于利用优化测试集对待优化测试异常检测模型进行测试,得到验证结果,若验证结果不符合迭代停止条件,则继续对待优化测试异常检测模型进行优化,直至验证结果符合迭代停止条件,其中,验证结果用于表征优化测试集中的异常数据为真或假,真表征扫待测描报告中的异常数据为真异常数据,假表征待测扫描报告中的异常数据为误报异常数据。以及

第三生成单元,用于将符合迭代停止条件对应的模型作为优化异常检测模型。

在待测样本数据集中的待测样本与异常检测模型的训练样本重合的情况下:

第二优化训练单元,用于利用待测训练样本数据集优化异常检测模型,得到优化异常检测模型。

根据本公开的实施例,异常检测装置1000还包括检测报告生成单元。

检测报告生成单元,用于根据检测结果生成检测报告,检测报告用于表征待测样本数据集中的每个待测样本的异常情况。

根据本公开的实施例,待测扫描报告与用于训练异常检测模型的扫描报告为来自同一应用的不同版本的扫描报告。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,第一获取模块901、第二获取模块902、训练模块903、第三获取模块1001、第四获取模块1002和检测模块1003中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,第一获取模块901、第二获取模块902、训练模块903、第三获取模块1001、第四获取模块1002和检测模块1003中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块901、第二获取模块902、训练模块903、第三获取模块1001、第四获取模块1002和检测模块1003中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

需要说明的是,本公开的实施例中异常检测模型训练装置部分与本公开的实施例中异常检测模型训练方法部分是相对应的,异常检测模型训练装置部分的描述具体参考异常检测模型训练方法部分,在此不再赘述;本公开的实施例中异常检测装置部分与本公开的实施例中异常检测方法部分是相对应的,异常检测装置部分的描述具体参考异常检测方法部分,在此不再赘述。

图11示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。图11示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图11所示,根据本公开实施例的电子设备1100包括处理器1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。处理器1101例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1101还可以包括用于缓存用途的板载存储器。处理器1101可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 1103中,存储有电子设备1100操作所需的各种程序和数据。处理器1101、ROM 1102以及RAM 1103通过总线1104彼此相连。处理器1101通过执行ROM 1102和/或RAM1103中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1102和RAM 1103以外的一个或多个存储器中。处理器1101也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,电子设备1100还可以包括输入/输出(I/O)接口1105,输入/输出(I/O)接口305也连接至总线1104。电子设备1100还可以包括连接至I/O接口1105的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被处理器1101执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM1102和/或RAM 1103和/或ROM 1102和RAM1103以外的一个或多个存储器。

本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的字符识别模型的训练方法和字符识别方法。

在该计算机程序被处理器1101执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。

在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1109被下载和安装,和/或从可拆卸介质1111被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号