CN115102779B - 预测模型的训练、访问请求的决策方法、装置、介质 - Google Patents

预测模型的训练、访问请求的决策方法、装置、介质 Download PDF

Info

Publication number
CN115102779B
CN115102779B CN202210828332.3A CN202210828332A CN115102779B CN 115102779 B CN115102779 B CN 115102779B CN 202210828332 A CN202210828332 A CN 202210828332A CN 115102779 B CN115102779 B CN 115102779B
Authority
CN
China
Prior art keywords
request
prediction model
type prediction
request type
predicted
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
CN202210828332.3A
Other languages
English (en)
Other versions
CN115102779A (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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202210828332.3A priority Critical patent/CN115102779B/zh
Publication of CN115102779A publication Critical patent/CN115102779A/zh
Application granted granted Critical
Publication of CN115102779B publication Critical patent/CN115102779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开是关于一种预测模型的训练、访问请求的决策方法、装置、介质,涉及机器学习技术领域,该方法包括:对历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;将标准请求特征输入至待训练的请求类型预测模型中,得到与历史访问请求对应的请求类型预测结果,并根据请求类型预测结果以及历史访问请求的特征标签,构建损失函数;基于损失函数对待训练的请求类型预测模型中包括的模型参数进行调整,并计算标准请求特征在待训练的请求类型预测模型进行参数调整过程中的贡献率;根据标准请求特征的贡献率对参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。该方法提高了请求类型预测模型的精确度。

Description

预测模型的训练、访问请求的决策方法、装置、介质
技术领域
本公开实施例涉及机器学习技术领域,具体而言,涉及一种预测模型的训练方法、预测模型的训练装置、访问请求的决策方法、访问请求的决策装置、计算机可读存储介质以及电子设备。
背景技术
在一些对攻击性的访问请求进行防御的过程中,是通过基于规则匹配的方式来进行防御的。但是,通过规则匹配的方式进行防御会存在大量的漏报,进而导致应用程序在访问过程中,系统的安全性较低。
需要说明的是,在上述背景技术部分发明的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种预测模型的训练方法、预测模型的训练装置、访问请求的决策方法、访问请求的决策装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的系统的安全性较低的问题。
根据本公开的一个方面,提供一种预测模型的训练方法,包括:
获取历史访问请求,并对所述历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;
将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,并根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数;
基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,并计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;
根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。
在本公开的一种示例性实施例中,将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,包括:
利用所述待训练的请求类型预测模型计算所述标准请求特征在所述待训练的请求类型预测模型中的内节点中的第一线性回归部分;
利用所述待训练的请求类型预测模型的叶子节点所在的归一化层对所述第一线性回归部分进行归一化处理,得到所述第一线性回归部分在所述待训练的请求类型预测模型中的当前决策树所在的叶子节点的输出值;
根据所述第一线性回归部分的输出值,得到与所述历史访问请求对应的请求类型预测结果。
在本公开的一种示例性实施例中,根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数,包括:
根据所述请求类型预测结果以及所述特征标签,计算所述待训练的请求类型预测模型中所包括的当前决策树的局部损失函数;
根据所述局部损失函数计算所述待训练的请求类型预测模型的全局损失函数。
在本公开的一种示例性实施例中,基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,包括:
根据所述全局损失函数计算所述待训练的请求类型预测模型的内节点的第一梯度,根据所述第一梯度对所述内节点的参数进行更新;
根据所述全局损失函数计算所述待训练的请求类型预测模型的叶子节点的第二梯度,并根据所述第二梯度对所述叶子节点的参数进行更新;
根据更新后的内节点的参数以及更新后的叶子节点的参数,得到参数调整后的请求类型预测模型。
在本公开的一种示例性实施例中,计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率,包括:
基于预设的树模型解释器,计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率。
在本公开的一种示例性实施例中,基于预设的树模型解释器,计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率,包括:
从所述标准请求特征中任意选取一特征作为目标特征,并根据所述标准请求特征中除去所述目标特征以外的其他特征,构建特征集合;
根据所述特征集合构建特征子集,并基于所述预设的树模型解释器,计算将所述标准请求特征输入至所述参数调整后的请求类型预测模型后得到的预测值的第一期望值,以及将所述特征子集输入至所述参数调整后的请求类型预测模型后得到的预测值的第一期望值;
根据所述特征子集中所包括的特征个数、所述特征子集的个数、所述目标特征的数量、第一期望值以及第二期望值,计算所述目标特征的在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;
依次循环所述目标特征的贡献率的计算步骤,得到所述标准请求特征的在所述待训练的请求类型预测模型进行参数调整过程中的贡献率。
在本公开的一种示例性实施例中,根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型,包括:
若任一所述标准请求特征的贡献率大于第一预设阈值,或者任一所述标准请求特征的贡献率小于第二预设阈值,则对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。
根据本公开的一个方面,提供一种访问请求的决策方法,包括:
接收终端设备发送的应用程序的访问请求,并对所述应用程序的访问请求进行过滤,得到待预测的访问请求;
将所述待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中,得到与所述待预测的访问请求对应的预测结果;其中,所述训练完成的请求类型预测模型是通过上述任意一项所述的预测模型的训练方法得到的;
根据所述预测结果确定所述待预测的访问请求所属的请求类别,并根据所述请求类别对所述待预测的访问请求进行决策。
在本公开的一种示例性实施例中,对所述应用程序的访问请求进行过滤,得到待预测的访问请求,包括:
通过网站应用级入侵防御系统对所述应用程序的访问请求中已知的攻击请求进行过滤,得到所述待预测的访问请求。
在本公开的一种示例性实施例中,在将所述待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中之前,所述访问请求的决策方法还包括:
在所述应用程序的客户端服务器中挂载Hook点,并基于所述Hook点获取所述待预测的访问请求中包括的待预测特征;其中,所述待预测特征包括用户统一资源定位符、用户上传数据、函数参数以及函数调用栈中的多种。
在本公开的一种示例性实施例中,根据所述请求类别对所述待预测的访问请求进行决策,包括:
若所述请求类别为阻断请求,则阻断所述待预测的访问请求的访问;
若所述请求类别为净化请求,则对所述待预测的访问请求进行净化,并控制净化后的访问请求进行继续访问;
若所述请求类别为预警请求,则对所述待预测的访问请求进行预警标识,并控制预警标识后的访问请求进行继续访问;
若所述请求类别为安全请求,则控制所述待预测的访问请求进行继续访问。
根据本公开的一个方面,提供一种预测模型的训练装置,包括:
预处理模块,用于获取历史访问请求,并对所述历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;
损失函数构建模块,用于将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,并根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数;
参数调整模块,用于基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,并计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;
模型校正模块,用于根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。
根据本公开的一个方面,提供一种访问请求的决策装置,包括:
请求过滤模块,用于接收终端设备发送的应用程序的访问请求,并对所述应用程序的访问请求进行过滤,得到待预测的访问请求;
请求类型预测模块,用于将所述待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中,得到与所述待预测的访问请求对应的预测结果;其中,所述训练完成的请求类型预测模型是通过上述任意一项所述的预测模型的训练方法得到的;
请求决策模块,用于根据所述预测结果确定所述待预测的访问请求所属的请求类别,并根据所述请求类别对所述待预测的访问请求进行决策。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的预测模型的训练方法以及上述任意一项所述的访问请求的决策方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的预测模型的训练方法以及上述任意一项所述的访问请求的决策方法。
本公开实施例提供的一种预测模型的训练方法,一方面,通过获取历史访问请求,并对历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;再将标准请求特征输入至待训练的请求类型预测模型中,得到与历史访问请求对应的请求类型预测结果,并根据请求类型预测结果以及历史访问请求的特征标签,构建损失函数;然后基于损失函数对待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,并计算标准请求特征在待训练的请求类型预测模型进行参数调整过程中的贡献率;最后根据标准请求特征的贡献率对参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型,进而可以根据该训练完成的请求类型预测模型对应用程序的访问请求的请求类别进行预测,并根据预测结果确定是否需要对该访问请求进行防御,解决了现有技术中由于通过规则匹配的方式进行防御会存在大量的漏报,进而导致应用程序在访问过程中,系统的安全性较低的问题,提高了系统的安全性;另一方面,由于在对待训练的请求类型预测模型进行训练的过程中,还可以计算标准请求特征在待训练的请求类型预测模型进行参数调整过程中的贡献率;最后根据标准请求特征的贡献率对参数调整后的请求类型预测模型进行矫正,进而可以避免模型在训练过程中由于某一个特征的贡献率过大导致的模型的精确度较低的问题,提高了所得到的训练完成的请求类型预测模型的精确度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出根据本公开示例实施例的一种预测模型的训练方法的流程图。
图2示意性示出根据本公开示例实施例的一种请求类型预测模型的结构示例图。
图3示意性示出根据本公开示例实施例的一种基于预设的树模型解释器,计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率的方法流程图。
图4示意性示出根据本公开示例实施例的一种访问请求的决策方法的流程图。
图5示意性示出根据本公开示例实施例的一种访问请求的决策系统的框图。
图6示意性示出根据本公开示例实施例的一种客户端服务器的结构示例图。
图7示意性示出根据本公开示例实施例的另一种访问请求的决策方法的流程图。
图8示意性示出根据本公开示例实施例的一种预测模型的训练装置的框图。
图9示意性示出根据本公开示例实施例的一种访问请求的决策装置的框图。
图10示意性示出根据本公开示例实施例的一种用于实现上述预测模型的训练方法以及访问请求的决策方法的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
随着移动互联网的发展,如今越来越多的应用架构迁移到客户端,对应用程序进行保护是很多企业和个人都要面对的重要问题。运行时应用自我防护(RuntimeApplication Self-Protection,以下简称RASP),是一种新型应用安全保护技术,将防护模块自身注入到应用程序中,与应用程序融为一体,具有实时监测、阻断攻击的能力,该特点也使其成为关键信息基础设施的防护手段之一。RASP与传统的基于流量监测的安全防护产品来说,优势点在于可以忽略各种绕过流量检测的攻击方式(如分段传输,编码等),只关注功能运行时的传参是否会产生安全威胁。
但是,在RASP工作中,由于多方面的原因,防护的覆盖率不可能达到100%因此存在大量漏报;同时,由于该技术尚且处于发展阶段,在功能和误报成本方面尚且不能很好地平衡,只能牺牲漏报率进行防护,进而使得系统的安全性较低。
基于此,本示例实施方式中首先提供了一种预测模型的训练方法,该方法可以运行于服务器、服务器集群或云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本公开的方法,本示例性实施例中对此不做特殊限定。具体的,参考图1所示,该预测模型的训练方法可以包括以下步骤:
步骤S110.获取历史访问请求,并对所述历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;
步骤S120.将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,并根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数;
步骤S130.基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,并计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;
步骤S140.根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。
上述预测模型的训练方法中,一方面,通过获取历史访问请求,并对历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;再将标准请求特征输入至待训练的请求类型预测模型中,得到与历史访问请求对应的请求类型预测结果,并根据请求类型预测结果以及历史访问请求的特征标签,构建损失函数;然后基于损失函数对待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,并计算标准请求特征在待训练的请求类型预测模型进行参数调整过程中的贡献率;最后根据标准请求特征的贡献率对参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型,进而可以根据该训练完成的请求类型预测模型对应用程序的访问请求的请求类别进行预测,并根据预测结果确定是否需要对该访问请求进行防御,解决了现有技术中由于通过规则匹配的方式进行防御会存在大量的漏报,进而导致应用程序在访问过程中,系统的安全性较低的问题,提高了系统的安全性;另一方面,由于在对待训练的请求类型预测模型进行训练的过程中,还可以计算标准请求特征在待训练的请求类型预测模型进行参数调整过程中的贡献率;最后根据标准请求特征的贡献率对参数调整后的请求类型预测模型进行矫正,进而可以避免模型在训练过程中由于某一个特征的贡献率过大导致的模型的精确度较低的问题,提高了所得到的训练完成的请求类型预测模型的精确度。
以下,结合附图对本公开示例实施例预测模型的训练方法进行详细的解释以及说明。
首先,对本公开示例实施例所涉及到的请求类型预测模型进行解释以及说明。具体的,该请求类型预测模型可以是XGBoost(eXtreme Gradient Boosting,极致梯度提升)模型,是一种基于梯度提升决策树(Gradient Boosting Decision Tree,GBDT)的一种算法模型。
同时,XGBoost模型区别于普通的梯度提升决策树的地方在于:一方面,其可以利用二阶泰勒公式展开,优化损失函数,提高计算精度;另一方面,在损失函数中可以加入正则项,进而可以起到简化模型避免过拟合的问题;再一方面,还可以采用Blocks存储结构实现并行计算,进而提高模型的训练效率。具体的,该XGBoost模型的具体的结构示例图可以参考图2所示。
具体的,在XGBoost模型中,每个样本不再是严格落在一个分支上,而是以一定的概率落在两个或者多个分支上;XGBoost模型的每个节点可以单独计算,所以可以并行化。和GBDT类似,XGBoost模型由多个基础学习器组成,这里基础学习器是决策树;对每棵树在上一棵树的基础上的残差进行局部损失计算,多棵树串联组成了XGBoost模型;同时,由于每棵树的计算是独立的可以并行计算,且每棵树的损失函数和GBDT的计算是一致的,最后会使用一个全局的损失函数,进而可以提高最终的计算效率。同时,在训练过程中,可以通过最小化全局损失函数L来训练整个模型;虽然,每棵树的结果拟合的是上一颗树的残差,但由于决策树的节点和树之间的独立性,只需要在最后综合所有树的局部损失函数进行求和,使得所有局部损失函数的和的结果最小化来进行训练,这样可以充分利用并行计算来大大提升模型训练的速度。
进一步的,在本公开示例实施例所提供的一种预测模型的训练方法中:
在步骤S110中,获取历史访问请求,并对所述历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征。
在本示例实施例中,首先,从数据库中获取历史访问请求;其中,该历史访问请求是指已经完成整个请求过程的访问请求;该历史访问请求可以包括正常的访问请求、攻击型访问请求以及具有一定安全隐患的访问请求等等;当然,还可以包括其他类型的访问请求,本示例对此不做特殊限制。进一步的,当得到该历史访问请求以后,即可对该历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;其中,对历史请求特征进行预处理可以包括特征清洗、特征过滤以及特征补全等等,可以根据实际需要自行处理,本示例对此不做特殊限制。
在一种对历史请求特征进行预处理的过程中,可以通过如下方式实现:首先,判断历史请求特征的向量的长度是否达到预设长度;其中,所述预设长度为M;在判断历史请求特征的向量的长度未达到预设长度时,对该历史请求特征的向量进行填充。譬如,可以设定历史请求特征的向量的固定长度为M(预设长度),当任一历史请求特征的向量的长度小于该预设长度时,则可以对该历史请求特征的向量进行填充以达到固定长度,进而得到标准请求特征;其中,对于不足M长度的部分,可以用0进行填充,也可以通过其他字符进行填充,本示例对此不做特殊限制。通过该方法,便于在通过标准请求特征对待训练的请求类型预测模型进行训练时,由于历史请求特征的向量的长度不统一带来的请求类型预测结果的准确率下降的问题。
在步骤S120中,将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,并根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数。
在本示例实施例中,首先,将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果。具体的,可以通过以下方式实现:首先,利用所述待训练的请求类型预测模型计算所述标准请求特征在所述待训练的请求类型预测模型中的内节点中的第一线性回归部分;其次,利用所述待训练的请求类型预测模型的叶子节点所在的归一化层对所述第一线性回归部分进行归一化处理,得到所述第一线性回归部分在所述待训练的请求类型预测模型中的当前决策树所在的叶子节点的输出值;最后,根据所述第一线性回归部分的输出值,得到与所述历史访问请求对应的请求类型预测结果。
具体的,参考图2所示,可以通过XGBoost的内节点计算标准请求特征的第一线性回归部分(Logistic Regression)。具体的,该内节点可以包括多层,比如第零层、第一层、第二层等等,具体的层数可以根据实际需要自行设定,本示例对此不做特殊限制;然后,再利用叶子节点所在的归一化层(Softmax)对第一线性回归部分进行归一化处理,得到第一线性回归部分在当前决策树所在的叶子节点的输出值;进而基于该输出值得到请求类型预测结果。
进一步的,当得到请求类型预测结果以后,还需要根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数。具体的,可以通过如下方式实现:首先,根据所述请求类型预测结果以及所述特征标签,计算所述待训练的请求类型预测模型中所包括的当前决策树的局部损失函数;其次,根据所述局部损失函数计算所述待训练的请求类型预测模型的全局损失函数。
其中,局部函数的具体实现过程可以通过如下方式实现:首先,计算排在当前决策树前面的所有决策树在叶子节点的输出值的总和;然后,对排在当前决策树前面的所有决策树在叶子节点的输出值的总和进行归一化运算,得到标准请求特征在排在当前决策树前面的所有决策树中的第一预测结果;最后,根据第一预测结果、第一线性回归部分在当前决策树所在的叶子节点的输出值以及特征标签,构建当前决策树的局部损失函数;其中,局部损失函数中还包括了正则项,该正则项可以用于表示当前决策树的复杂度。进一步的,当得到局部损失函数以后,就可以基于局部损失函数以及正则项构建全局损失函数。
在步骤S130中,基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,并计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率。
在本示例实施例中,首先,基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型。具体的,可以通过如下方式实现:首先,根据所述全局损失函数计算所述待训练的请求类型预测模型的内节点的第一梯度,根据所述第一梯度对所述内节点的参数进行更新;其次,根据所述全局损失函数计算所述待训练的请求类型预测模型的叶子节点的第二梯度,并根据所述第二梯度对所述叶子节点的参数进行更新;最后,根据更新后的内节点的参数以及更新后的叶子节点的参数,得到参数调整后的请求类型预测模型。此处需要补充说明的是,在对内节点的参数以及叶子节点的参数进行更新的过程中,需要对全局损失函数进行二阶求导,进而根据二阶求导所得到的梯度对内节点的参数以及叶子节点的参数进行更新;通过该方法,可以提高内节点的参数以及叶子节点的参数的精确度,进而提高所得到的参数调整后的请求类型预测模型的精确度。
进一步的,在得到参数调整后的请求类型预测模型以后,还需要计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率。具体的,可以基于预设的树模型解释器,计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率。
在一个示例实施例是示例中,参考图3所示,基于预设的树模型解释器,计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率,可以包括以下步骤:
步骤S310,从所述标准请求特征中任意选取一特征作为目标特征,并根据所述标准请求特征中除去所述目标特征以外的其他特征,构建特征集合;
步骤S320,根据所述特征集合构建特征子集,并基于所述预设的树模型解释器,计算将所述标准请求特征输入至所述参数调整后的请求类型预测模型后得到的预测值的第一期望值,以及将所述特征子集输入至所述参数调整后的请求类型预测模型后得到的预测值的第一期望值;
步骤S330,根据所述特征子集中所包括的特征个数、所述特征子集的个数、所述目标特征的数量、第一期望值以及第二期望值,计算所述目标特征的在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;
步骤S340,依次循环所述目标特征的贡献率的计算步骤,得到所述标准请求特征的在所述待训练的请求类型预测模型进行参数调整过程中的贡献率。
以下,将对步骤S310-步骤S340进行解释以及说明。具体的,上述预设的树模型解释器例如可以是TreeSHAP,其中,SHAP为SHapley Additive exPlanations,其可以用于对待训练的请求类型预测模型所输出的请求类型预测结果进行解释;也即,可以用于对影响请求类型预测结果的标准请求特征的贡献率进行解释。
具体的,在应用过程中,假设一个历史访问请求的标准请求特征为:x=(x1,x2,...,xk),k为标准请求特征的个数,对每一个标准请求特征计算它的贡献率,也就是通过TreeSHAP计算每一个标准请求特征的夏普利值。进一步的,设定φi为第i个标准请求特征的夏普利值,其计算公式可以如下所示:
其中,F为特征的下标集合F={1,2,...,k},则F\i是去除了第i个特征后的下标集合,为F\i={1,2,...i-1,i+1,...,k};S为F\i的所有子集,|S|为集合S中的元素的个数,|S!为|S|的阶乘;
fx(S)=E(f(X)|XS=xS);其中,X是数据集中的特征变量的向量,是k维,X=(X1,X2,...,Xk);XS为根据集合S中的元素,抽出来的特征变量集合,是|S|维,xS为该用户中对应XS的特征数据;f为待训练的请求类型预测模型;fx(S)表示当输入S对应的特征变量数据时,待训练的请求类型预测模型得到的请求类型预测结果的期望值。
同时,TreeShap模型中计算fx(S)的算法的方法为:输入:一个历史访问请求的标准请求特征x,除去第i个特征变量集合的某一个子集S,待训练的请求类型预测模型中的参数{v,a,b,t,r,d};其中,v是一个q维的向量,q是待训练的请求类型预测模型中所包括的树的节点数,包含所有树的节点的值,如果节点是叶子节点,则赋予叶子节点的输出值,如果是节点是内节点,则赋值为internal;a为一个向量,包含每一个内节点的左节点下表;b为一个向量,包含每一个内节点的右节点下标;t为一个向量,包含每一个内节点中的阈值;d为一个向量,包含所有内节点分裂时使用的特征变量的下标;r为一个向量,包含在每个内节点中,筛选出的掉入下一层子树中的样本;j∈{1,2,…,q},定义函数G(j):
检测vj是否为叶子节点;若是叶子节点,则直接输出vj;
若不是,再检查dj是否存在于集合S中;若存在于集合S中且xdj=tj,则输出G(aj);若存在于集合S中且xdj≠tj,则输出G(bj);
如果dj不存在于集合S中,则输出
计算G(1),即为fx(S)。
在步骤S140中,根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。
具体的,根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型,可以通过如下方式实现:若任一所述标准请求特征的贡献率大于第一预设阈值,或者任一所述标准请求特征的贡献率小于第二预设阈值,则对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。也即,如果某一个标准请求特征的贡献率过大(例如超过了90%),或者某一个标准请求特征的贡献率过小(例如低于5%),则可以生成告警提示信息,并将该告警提示信息发送至开发人员所在的终端设备,以使得开发人员可以对参数调整后的请求类型预测模型进行矫正;当然,如果不存在贡献率过大或者贡献率过小的标准请求特征,则可以直接将数调整后的请求类型预测模型作为训练完成的请求类型预测模型。
至此,请求类型预测模型的训练过程已经全部完成。
本公开示例实施例还提供了一种访问请求的决策方法,该方法可以运行于服务器、服务器集群或云服务器等;当然,本领域技术人员也可以根据需求在其他平台运行本公开的方法,本示例性实施例中对此不做特殊限定。具体的,参考图4所示,该访问请求的决策方法可以包括以下步骤:
步骤S410.接收终端设备发送的应用程序的访问请求,并对所述应用程序的访问请求进行过滤,得到待预测的访问请求;
步骤S420.将所述待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中,得到与所述待预测的访问请求对应的预测结果;其中,所述训练完成的请求类型预测模型是通过上述任意一项所述的预测模型的训练方法得到的;
步骤S430.根据所述预测结果确定所述待预测的访问请求所属的请求类别,并根据所述请求类别对所述待预测的访问请求进行决策。
上述访问请求的决策方法中,一方面,通过接收终端设备发送的应用程序的访问请求,并对应用程序的访问请求进行过滤,得到待预测的访问请求,再将待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中,得到与待预测的访问请求对应的预测结果,最后根据预测结果确定待预测的访问请求所属的请求类别,并根据请求类别对待预测的访问请求进行决策,也即可以根据请求类别确定是否需要对该访问请求进行防御,解决了现有技术中由于通过规则匹配的方式进行防御会存在大量的漏报,进而导致应用程序在访问过程中,系统的安全性较低的问题,提高了系统的安全性;另一方面,由于在对请求类型预测模型进行训练的过程中,还可以计算标准请求特征在待训练的请求类型预测模型进行参数调整过程中的贡献率;最后根据标准请求特征的贡献率对参数调整后的请求类型预测模型进行矫正,进而可以避免模型在训练过程中由于某一个特征的贡献率过大导致的模型的精确度较低的问题,提高了所得到的训练完成的请求类型预测模型的精确度。
其次,对本公开示例实施例所记载的访问请求的决策方法的发明目的进行解释以及说明。具体的,目前已有RASP是基于规则匹配的防护,因规则匹配的限制较大,存在大量漏报,且不能很好防护0day漏洞;本公开示例实施例所记载的访问请求的决策方法,通过分离agent和决策引擎,并在决策引擎模块引入可解释XGBoost算法,该算法本身效率较高且准确性较高,在不影响应用本身性能的情况下,能够提高RASP防护精度,降低漏报率,且能够有效防护0day漏洞,助力运行时应用程序自我防护。此处需要补充说明的是,此处所记载的0day漏洞,又称“零日漏洞”(zero-day),是已经被发现(有可能未被公开),而官方还没有相关补丁的漏洞。通俗地讲就是,除了漏洞发现者,没有其他的人知道这个漏洞的存在,并且可以有效地加以利用,发起的攻击往往具有很大的突发性与破坏性。
其次,对本公开示例实施例所记载的访问请求的决策系统进行解释以及说明。具体的,参考图5所示,该访问请求的决策系统可以包括客户端510以及客户端服务器520;其中,客户端可以通过有线或者无线的方式与客户端服务器连接;其中,客户端可以用于向客户端服务器发送应用程序的访问请求,客户端服务器可以用于实现本公开示例实施例所记载的访问请求的决策方法。
进一步的,参考图6所示,客户端服务器中可以包括RASP Agent601以及RASP防护模块;其中,RASP Agent与RASP防护模块通信连接,RASP Agent用于接收终端设备发送的应用程序的访问请求,对应用程序的访问请求进行过滤,并基于Hook点获取待预测的访问请求中包括的待预测特征;RASP防护模块可以用于对待预测的访问请求进行决策;同时,该RASP防护模块中还可以包括API接口6021、分析模块6022以及决策模块6023。其中,各模块的具体作用将在后文一一解释,此处不再赘述。
以下,将结合图5以及图6,对图4中所示出的访问请求的决策方法进行详细的解释以及说明。具体的:
在步骤S410中,接收终端设备发送的应用程序的访问请求,并对所述应用程序的访问请求进行过滤,得到待预测的访问请求。
在本示例实施例中,首先,接收客户端所在的终端设备发送的应用程序的访问请求;其中,此处所记载的应用程序,可以是终端设备中安装的任一具有客户端的应用程序,例如即使会话应用程序、银行应用程序、购物应用程序以及科普应用程序等等,本示例对此不做特殊限制;其次,当接收到应用程序的访问请求以后,可以对该应用程序的访问请求进行过滤,得到待预测的访问请求。其中,具体的过滤方法可以通过如下方式实现:通过网站应用级入侵防御系统对所述应用程序的访问请求中已知的攻击请求进行过滤,得到所述待预测的访问请求。
具体的,该网站应用级入侵防御系统可以是WAF,Web Application Firewall,也可以被称为web应用防护系统,其是Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品;其可以对一部分已知的攻击请求进行过滤,并阻断该攻击型请求的进一步访问,进而达到提高安全性的目的;对于WAF无法识别的访问请求,则可以通过本示例实施例所记载的训练完成的请求类型预测模型来实现。
在一种示例实施例中,当得到待预测的访问请求以后,还需要获取该待预测的访问请求中包括的待预测特征。具体的,待预测特征的具体获取过程可以通过如下方式实现:在所述应用程序的客户端服务器中挂载Hook点,并基于所述Hook点获取所述待预测的访问请求中包括的待预测特征;其中,所述待预测特征包括用户统一资源定位符、用户上传数据、函数参数以及函数调用栈等等。
具体的,在具体的应用过程中,在API(Application Programming Interface,应用程序编程接口)接口中,可以以Agent的方式,在服务器启动时,动态修改字节码,对敏感操作的函数进行Hook,获取数据;其中,此处所记载的Hook,也即钩子函数。具体的,钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统;每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权;此时,钩子函数即可以加工处理该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。例如,以PHP为例,页面代码中有flush(),printf()类似库函数,mysql_affected_rows类似数据库操作函数;以java为例,该页面代码中有createNewFile()类似创建文件语句,利用shiro实现用户权限类似方法。
在步骤S420中,将所述待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中,得到与所述待预测的访问请求对应的预测结果;其中,所述训练完成的请求类型预测模型是通过上述任意一项所述的预测模型的训练方法得到的。
在本示例实施例中,在RASP防护模块中包括的分析模块中,可以通过训练完成的请求类型预测模型的内节点计算标准请求特征的第二线性回归部分(LogisticRegression)。具体的,该内节点可以包括多层,比如第零层、第一层、第二层等等,具体的层数可以根据实际需要自行设定,本示例对此不做特殊限制;然后,再利用叶子节点所在的归一化层(Softmax)对第二线性回归部分进行归一化处理,得到第二线性回归部分在当前决策树所在的叶子节点的输出值;进而基于该输出值得到与所述待预测的访问请求对应的预测结果。
在步骤S430中,根据所述预测结果确定所述待预测的访问请求所属的请求类别,并根据所述请求类别对所述待预测的访问请求进行决策。
在本示例实施例中,首先,根据预测结果确定请求类别;其中,预测结果的概率值越大,说明属于攻击请求的概率越大,预测结果的概率值越小,说明书与攻击请求的概率越小;例如,预测结果为0.9,说明是攻击请求;预测结果为0.05,说明为正常请求;预测结果为0.3,说明可以进行预警一下,即可进行正常访问;预测结果为0.5,说明净化一下即可进行正常访问。
进一步的,当得到请求类别以后,即可根据所述请求类别对所述待预测的访问请求进行决策。具体的,可以通过如下方式实现:若所述请求类别为阻断请求,则阻断所述待预测的访问请求的访问;若所述请求类别为净化请求,则对所述待预测的访问请求进行净化,并控制净化后的访问请求进行继续访问;若所述请求类别为预警请求,则对所述待预测的访问请求进行预警标识,并控制预警标识后的访问请求进行继续访问;若所述请求类别为安全请求,则控制所述待预测的访问请求进行继续访问。
以下,将结合图7对本公开示例实施例的访问请求的决策方法进行进一步的解释以及说明。具体的,参考图7所示,该访问请求的决策方法可以包括以下步骤:
步骤S701,用户发起请求,包括正常请求、未知请求和攻击请求,通过WAF等边界防护手段过滤部分攻击请求;
步骤S702,以Agent的方式,在服务器启动时,动态修改字节码,对敏感操作的函数进行hook,获取数据;
步骤S703,RASP防护模块,此模块通过API接口获取hook点得到的数据,并进行数据处理、数据分析、模型训练并给出决策结果;
步骤S704,将决策结果反馈给客户端服务器,阻断攻击请求,并将该访问请求的特征数据存入数据库。
基于此,可以毫无疑问的得知,本公开示例实施例所记载的访问请求的决策方法,至少具有以下优点:
一方面,智能识别攻击请求:利用可解释XGBoost模型,替换传统基于规则匹配的方法,使得RASP不再拘泥于设置的规则,增强分析思路的灵活性,不断更新特征数据库,提升应用自我防护能力;另一方面,模型自我更新迭代:XGBoost模型本身会不断学习迭代,以降低出错概率;再一方面,利用treeSHAP解释XGBoost模型:选取treeSHAP算法针对模型训练时各特征的贡献率进行解释,辅助开发人员进行调参,并依据解释结果设置报警装置,若有异常及时告警,以减弱XGBoost模型本身问题对应用自我防护能力的不利影响;进一步的,该方法能够更加精确防护用户攻击请求,防护范围更广,有效减少漏报,增强防护0day漏洞的能力。
本公开示例实施例还提供了一种预测模型的训练装置。具体的,参考图8所示,该预测模型的训练装置可以包括预处理模块810、损失函数构建模块820、参数调整模块830以及模型校正模块840。其中:
预处理模块810,可以用于获取历史访问请求,并对所述历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;
损失函数构建模块820,可以用于将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,并根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数;
参数调整模块830,可以用于基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,并计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;
模型校正模块840,可以用于根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。
在本公开的一种示例性实施例中,将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,包括:
利用所述待训练的请求类型预测模型计算所述标准请求特征在所述待训练的请求类型预测模型中的内节点中的第一线性回归部分;
利用所述待训练的请求类型预测模型的叶子节点所在的归一化层对所述第一线性回归部分进行归一化处理,得到所述第一线性回归部分在所述待训练的请求类型预测模型中的当前决策树所在的叶子节点的输出值;
根据所述第一线性回归部分的输出值,得到与所述历史访问请求对应的请求类型预测结果。
在本公开的一种示例性实施例中,根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数,包括:
根据所述请求类型预测结果以及所述特征标签,计算所述待训练的请求类型预测模型中所包括的当前决策树的局部损失函数;
根据所述局部损失函数计算所述待训练的请求类型预测模型的全局损失函数。
在本公开的一种示例性实施例中,基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,包括:
根据所述全局损失函数计算所述待训练的请求类型预测模型的内节点的第一梯度,根据所述第一梯度对所述内节点的参数进行更新;
根据所述全局损失函数计算所述待训练的请求类型预测模型的叶子节点的第二梯度,并根据所述第二梯度对所述叶子节点的参数进行更新;
根据更新后的内节点的参数以及更新后的叶子节点的参数,得到参数调整后的请求类型预测模型。
在本公开的一种示例性实施例中,计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率,包括:
基于预设的树模型解释器,计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率。
在本公开的一种示例性实施例中,基于预设的树模型解释器,计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率,包括:
从所述标准请求特征中任意选取一特征作为目标特征,并根据所述标准请求特征中除去所述目标特征以外的其他特征,构建特征集合;
根据所述特征集合构建特征子集,并基于所述预设的树模型解释器,计算将所述标准请求特征输入至所述参数调整后的请求类型预测模型后得到的预测值的第一期望值,以及将所述特征子集输入至所述参数调整后的请求类型预测模型后得到的预测值的第一期望值;
根据所述特征子集中所包括的特征个数、所述特征子集的个数、所述目标特征的数量、第一期望值以及第二期望值,计算所述目标特征的在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;
依次循环所述目标特征的贡献率的计算步骤,得到所述标准请求特征的在所述待训练的请求类型预测模型进行参数调整过程中的贡献率。
在本公开的一种示例性实施例中,根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型,包括:
若任一所述标准请求特征的贡献率大于第一预设阈值,或者任一所述标准请求特征的贡献率小于第二预设阈值,则对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。
本公开示例实施例还提供了一种访问请求的决策装置。具体的,参考图9所示,该访问请求的决策装置可以包括请求过滤模块910、请求类型预测模块920以及请求决策模块930。其中:
请求过滤模块910,可以用于接收终端设备发送的应用程序的访问请求,并对所述应用程序的访问请求进行过滤,得到待预测的访问请求;
请求类型预测模块920,可以用于将所述待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中,得到与所述待预测的访问请求对应的预测结果;其中,所述训练完成的请求类型预测模型是通过上述任意一项所述的预测模型的训练方法得到的;
请求决策模块930,可以用于根据所述预测结果确定所述待预测的访问请求所属的请求类别,并根据所述请求类别对所述待预测的访问请求进行决策。
在本公开的一种示例性实施例中,对所述应用程序的访问请求进行过滤,得到待预测的访问请求,包括:
通过网站应用级入侵防御系统对所述应用程序的访问请求中已知的攻击请求进行过滤,得到所述待预测的访问请求。
在本公开的一种示例性实施例中,所述访问请求的决策装置还包括:
待预测特征获取模块,可以用于在所述应用程序的客户端服务器中挂载Hook点,并基于所述Hook点获取所述待预测的访问请求中包括的待预测特征;其中,所述待预测特征包括用户统一资源定位符、用户上传数据、函数参数以及函数调用栈中的多种。
在本公开的一种示例性实施例中,根据所述请求类别对所述待预测的访问请求进行决策,包括:
若所述请求类别为阻断请求,则阻断所述待预测的访问请求的访问;
若所述请求类别为净化请求,则对所述待预测的访问请求进行净化,并控制净化后的访问请求进行继续访问;
若所述请求类别为预警请求,则对所述待预测的访问请求进行预警标识,并控制预警标识后的访问请求进行继续访问;
若所述请求类别为安全请求,则控制所述待预测的访问请求进行继续访问。
上述预测模型的训练装置以及访问请求的决策装置中各模块的具体细节已经在对应的预测模型的训练方法以及访问请求的决策方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图10来描述根据本公开的这种实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030以及显示单元1040。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1010执行,使得所述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1010可以执行如图1中所示的步骤S110:获取历史访问请求,并对所述历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;步骤S120:将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,并根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数;步骤S130:基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,并计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;步骤S140:根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。
又例如,所述处理单元1010可以执行如图4中所示的步骤S410:接收终端设备发送的应用程序的访问请求,并对所述应用程序的访问请求进行过滤,得到待预测的访问请求;步骤S420:将所述待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中,得到与所述待预测的访问请求对应的预测结果;其中,所述训练完成的请求类型预测模型是通过上述任意一项所述的预测模型的训练方法得到的;步骤S430:根据所述预测结果确定所述待预测的访问请求所属的请求类别,并根据所述请求类别对所述待预测的访问请求进行决策。
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元(ROM)10203。
存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里发明的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未发明的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

Claims (12)

1.一种预测模型的训练方法,其特征在于,包括:
获取历史访问请求,并对所述历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;
将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,并根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数;
基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,并计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率,包括:从所述标准请求特征中任意选取一特征作为目标特征,并根据所述标准请求特征中除去所述目标特征以外的其他特征,构建特征集合;根据所述特征集合构建特征子集,并基于预设的树模型解释器,计算将所述标准请求特征输入至所述参数调整后的请求类型预测模型后得到的预测值的第一期望值,以及将所述特征子集输入至所述参数调整后的请求类型预测模型后得到的预测值的第一期望值;根据所述特征子集中所包括的特征个数、所述特征子集的个数、所述目标特征的数量、第一期望值以及第二期望值,计算所述目标特征的在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;依次循环所述目标特征的贡献率的计算步骤,得到所述标准请求特征的在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;
根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型,包括:若任一所述标准请求特征的贡献率大于第一预设阈值,或者任一所述标准请求特征的贡献率小于第二预设阈值,则对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。
2.根据权利要求1所述的预测模型的训练方法,其特征在于,将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,包括:
利用所述待训练的请求类型预测模型计算所述标准请求特征在所述待训练的请求类型预测模型中的内节点中的第一线性回归部分;
利用所述待训练的请求类型预测模型的叶子节点所在的归一化层对所述第一线性回归部分进行归一化处理,得到所述第一线性回归部分在所述待训练的请求类型预测模型中的当前决策树所在的叶子节点的输出值;
根据所述第一线性回归部分的输出值,得到与所述历史访问请求对应的请求类型预测结果。
3.根据权利要求1所述的预测模型的训练方法,其特征在于,根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数,包括:
根据所述请求类型预测结果以及所述特征标签,计算所述待训练的请求类型预测模型中所包括的当前决策树的局部损失函数;
根据所述局部损失函数计算所述待训练的请求类型预测模型的全局损失函数。
4.根据权利要求3所述的预测模型的训练方法,其特征在于,基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,包括:
根据所述全局损失函数计算所述待训练的请求类型预测模型的内节点的第一梯度,根据所述第一梯度对所述内节点的参数进行更新;
根据所述全局损失函数计算所述待训练的请求类型预测模型的叶子节点的第二梯度,并根据所述第二梯度对所述叶子节点的参数进行更新;
根据更新后的内节点的参数以及更新后的叶子节点的参数,得到参数调整后的请求类型预测模型。
5.一种访问请求的决策方法,其特征在于,包括:
接收终端设备发送的应用程序的访问请求,并对所述应用程序的访问请求进行过滤,得到待预测的访问请求;
将所述待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中,得到与所述待预测的访问请求对应的预测结果;其中,所述训练完成的请求类型预测模型是通过权利要求1-4任一项所述的预测模型的训练方法得到的;
根据所述预测结果确定所述待预测的访问请求所属的请求类别,并根据所述请求类别对所述待预测的访问请求进行决策。
6.根据权利要求5所述的访问请求的决策方法,其特征在于,对所述应用程序的访问请求进行过滤,得到待预测的访问请求,包括:
通过网站应用级入侵防御系统对所述应用程序的访问请求中已知的攻击请求进行过滤,得到所述待预测的访问请求。
7.根据权利要求5所述的访问请求的决策方法,其特征在于,在将所述待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中之前,所述访问请求的决策方法还包括:
在所述应用程序的客户端服务器中挂载Hook点,并基于所述Hook点获取所述待预测的访问请求中包括的待预测特征;其中,所述待预测特征包括用户统一资源定位符、用户上传数据、函数参数以及函数调用栈中的多种。
8.根据权利要求5所述的访问请求的决策方法,其特征在于,根据所述请求类别对所述待预测的访问请求进行决策,包括:
若所述请求类别为阻断请求,则阻断所述待预测的访问请求的访问;
若所述请求类别为净化请求,则对所述待预测的访问请求进行净化,并控制净化后的访问请求进行继续访问;
若所述请求类别为预警请求,则对所述待预测的访问请求进行预警标识,并控制预警标识后的访问请求进行继续访问;
若所述请求类别为安全请求,则控制所述待预测的访问请求进行继续访问。
9.一种预测模型的训练装置,其特征在于,包括:
预处理模块,用于获取历史访问请求,并对所述历史访问请求中包括的历史请求特征进行预处理,得到标准请求特征;
损失函数构建模块,用于将所述标准请求特征输入至待训练的请求类型预测模型中,得到与所述历史访问请求对应的请求类型预测结果,并根据所述请求类型预测结果以及所述历史访问请求的特征标签,构建损失函数;
参数调整模块,用于基于所述损失函数对所述待训练的请求类型预测模型中包括的模型参数进行调整,得到参数调整后的请求类型预测模型,并计算所述标准请求特征在所述待训练的请求类型预测模型进行参数调整过程中的贡献率,包括:从所述标准请求特征中任意选取一特征作为目标特征,并根据所述标准请求特征中除去所述目标特征以外的其他特征,构建特征集合;根据所述特征集合构建特征子集,并基于预设的树模型解释器,计算将所述标准请求特征输入至所述参数调整后的请求类型预测模型后得到的预测值的第一期望值,以及将所述特征子集输入至所述参数调整后的请求类型预测模型后得到的预测值的第一期望值;根据所述特征子集中所包括的特征个数、所述特征子集的个数、所述目标特征的数量、第一期望值以及第二期望值,计算所述目标特征的在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;依次循环所述目标特征的贡献率的计算步骤,得到所述标准请求特征的在所述待训练的请求类型预测模型进行参数调整过程中的贡献率;
模型校正模块,用于根据所述标准请求特征的贡献率对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型,包括:若任一所述标准请求特征的贡献率大于第一预设阈值,或者任一所述标准请求特征的贡献率小于第二预设阈值,则对所述参数调整后的请求类型预测模型进行矫正,得到训练完成的请求类型预测模型。
10.一种访问请求的决策装置,其特征在于,包括:
请求过滤模块,用于接收终端设备发送的应用程序的访问请求,并对所述应用程序的访问请求进行过滤,得到待预测的访问请求;
请求类型预测模块,用于将所述待预测的访问请求中包括的待预测特征输入至训练完成的请求类型预测模型中,得到与所述待预测的访问请求对应的预测结果;其中,所述训练完成的请求类型预测模型是通过权利要求1-5任一项所述的预测模型的训练方法得到的;
请求决策模块,用于根据所述预测结果确定所述待预测的访问请求所属的请求类别,并根据所述请求类别对所述待预测的访问请求进行决策。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4任一项所述的预测模型的训练方法以及权利要求5-8任一项所述的访问请求的决策方法。
12.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-4任一项所述的预测模型的训练方法以及权利要求5-8任一项所述的访问请求的决策方法。
CN202210828332.3A 2022-07-13 2022-07-13 预测模型的训练、访问请求的决策方法、装置、介质 Active CN115102779B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210828332.3A CN115102779B (zh) 2022-07-13 2022-07-13 预测模型的训练、访问请求的决策方法、装置、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210828332.3A CN115102779B (zh) 2022-07-13 2022-07-13 预测模型的训练、访问请求的决策方法、装置、介质

Publications (2)

Publication Number Publication Date
CN115102779A CN115102779A (zh) 2022-09-23
CN115102779B true CN115102779B (zh) 2023-11-07

Family

ID=83296821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210828332.3A Active CN115102779B (zh) 2022-07-13 2022-07-13 预测模型的训练、访问请求的决策方法、装置、介质

Country Status (1)

Country Link
CN (1) CN115102779B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117035125B (zh) * 2023-10-09 2024-01-02 中电科大数据研究院有限公司 一种分布式人工智能模型的决策系统、方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744928A (zh) * 2013-12-30 2014-04-23 北京理工大学 一种基于历史访问记录的网络视频分类方法
CN109242143A (zh) * 2018-07-31 2019-01-18 中国电力科学研究院有限公司 一种神经网络风电功率预测方法及系统
CN110543932A (zh) * 2019-08-12 2019-12-06 珠海格力电器股份有限公司 基于神经网络的空调性能预测方法和装置
CN112784157A (zh) * 2021-01-20 2021-05-11 网易传媒科技(北京)有限公司 行为预测模型的训练方法、行为预测方法及装置、设备
CN113780479A (zh) * 2021-10-29 2021-12-10 北京沃东天骏信息技术有限公司 周期预测模型的训练方法及装置、周期预测方法、设备
CN114169401A (zh) * 2021-11-15 2022-03-11 阿里巴巴(中国)有限公司 数据处理、预测模型训练方法和设备
CN114693352A (zh) * 2022-03-30 2022-07-01 中国工商银行股份有限公司 一种客户访问量预测方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019182590A1 (en) * 2018-03-21 2019-09-26 Visa International Service Association Automated machine learning systems and methods
CN109547546B (zh) * 2018-11-12 2020-06-05 网宿科技股份有限公司 一种请求任务的调度方法及调度中心服务器
US20220103589A1 (en) * 2020-09-29 2022-03-31 Equifax Inc. Predicting data tampering using augmented machine learning models

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744928A (zh) * 2013-12-30 2014-04-23 北京理工大学 一种基于历史访问记录的网络视频分类方法
CN109242143A (zh) * 2018-07-31 2019-01-18 中国电力科学研究院有限公司 一种神经网络风电功率预测方法及系统
CN110543932A (zh) * 2019-08-12 2019-12-06 珠海格力电器股份有限公司 基于神经网络的空调性能预测方法和装置
CN112784157A (zh) * 2021-01-20 2021-05-11 网易传媒科技(北京)有限公司 行为预测模型的训练方法、行为预测方法及装置、设备
CN113780479A (zh) * 2021-10-29 2021-12-10 北京沃东天骏信息技术有限公司 周期预测模型的训练方法及装置、周期预测方法、设备
CN114169401A (zh) * 2021-11-15 2022-03-11 阿里巴巴(中国)有限公司 数据处理、预测模型训练方法和设备
CN114693352A (zh) * 2022-03-30 2022-07-01 中国工商银行股份有限公司 一种客户访问量预测方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于自适应遗传算法和BP神经网络的云服务器请求量预测模型;胡晔明;李强;;通信技术(第04期);全文 *

Also Published As

Publication number Publication date
CN115102779A (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
EP3534284B1 (en) Classification of source data by neural network processing
CN111046027B (zh) 时间序列数据的缺失值填充方法和装置
CN109743311B (zh) 一种WebShell检测方法、装置及存储介质
CN112291098B (zh) 一种网络安全风险预测方法及其相关装置
CN115221516B (zh) 恶意应用程序识别方法及装置、存储介质、电子设备
CN115102779B (zh) 预测模型的训练、访问请求的决策方法、装置、介质
EP4120137A1 (en) System and method for molecular property prediction using edge conditioned identity mapping convolution neural network
CN110730164A (zh) 安全预警方法及相关设备、计算机可读存储介质
CN114297475A (zh) 一种对象推荐方法、装置、电子设备及存储介质
CN114070642A (zh) 网络安全检测方法、系统、设备及存储介质
CN112100617A (zh) 一种异常sql检测方法及装置
CN115345279B (zh) 多指标异常检测方法、装置、电子设备及存储介质
CN115622793A (zh) 一种攻击类型识别方法、装置、电子设备及存储介质
CN114282218A (zh) 一种攻击检测方法、装置、电子设备及存储介质
CN114915502B (zh) 资产异常行为检测方法、装置、终端设备以及存储介质
CN113822313A (zh) 图节点异常检测方法及装置
CN116708313B (zh) 流量检测方法、流量检测装置、存储介质和电子设备
CN116760644B (zh) 一种终端异常判定方法、系统、存储介质及电子设备
CN116910756B (zh) 一种恶意pe文件的检测方法
CN111338318B (zh) 用于检测异常的方法和装置
Santoso et al. Malware Detection using Hybrid Autoencoder Approach for Better Security in Educational Institutions
US20240064170A1 (en) Suspicious domain detection for threat intelligence
CN117896098A (zh) 异常行为检测方法、装置、设备、介质和程序产品
CN117938455A (zh) 攻击检测方法、装置、设备和计算机可读存储介质
CN116015763A (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