掌桥专利:专业的专利平台
掌桥专利
首页

一种暴露面攻击检测方法

文献发布时间:2024-04-18 20:01:23


一种暴露面攻击检测方法

技术领域

本发明属于涉及暴露面攻击检测技术领域,具体是一种暴露面攻击检测方法。

背景技术

暴露面是指系统中与外部环境相连或可被外部访问的接口或功能点,而应用程序编程接口(API)暴露面因为涉及系统中公开的API接口,用于与其他应用程序进行集成和交互,且允许其他应用程序访问系统的功能和数据,因其开放性,往往成为被网络攻击的重灾区;

当前对应用程序编程接口(API)暴露面的攻击形式的识别往往是对每种攻击进行单独检测,而部分类型的攻击可能存在结合攻击,例如重放攻击和会话劫持攻击;结合使用会话劫持和重放攻击的好处包括:欺骗性更强、操作执行更广泛以及持久性更强;而会话劫持攻击和重放攻击在被检测出来后,一般是采用对用户的所有请求都拒绝响应的方式,从而导致正常的用户请求被拒绝,降低了正常用户的体验感;

为此,本发明提出一种暴露面攻击检测方法。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种暴露面攻击检测方法,该方法在提高系统对重放攻击的防御力的基础上,避免了对用户正常的请求的拒绝,从而提高了系统安全性和用户体验。

为实现上述目的,根据本发明的第一方面的实施例提出一种暴露面攻击检测方法,包括以下步骤:

步骤一:服务器后台预先收集测试环境的历史请求训练数据;

步骤二:基于历史历史请求训练数据,服务器后台训练识别会话劫持攻击的第一机器学习模型以及训练识别重放攻击的第二机器学习模型;

步骤三:将第一机器学习模型和第二机器学习模型载入待检测平台;待检测平台收集每个用户的历史行请求数据;

步骤四:待检测平台收集每个用户的实时请求数据,基于实时请求数据判断是否存在重放攻击风险,若判断存在重放风险,转正步骤五;

步骤五:待检测平台基于实时请求数据和第一机器学习模型和第二机器学习模型,确定当前用户的攻击形式,并进行相应的攻击预警;

其中,所述测试环境为所述测试环境为测试人员通过主动控制每个训练账号的请求模式,以收集每种请求模式下请求的特征和请求的标签的数据收集环境;所述训练账号为在测试环境中使用的账号;

所述历史请求训练数据包括历史会话劫持训练数据以及历史重放训练数据;

所述历史会话劫持训练数据包括每个用户的劫持请求特征集合时间序列;

所述劫持请求特征时间序列中每个元素为对应用户的历史中每次发送请求的劫持请求特征集合以及该劫持请求特征集合的会话劫持标签;所述劫持请求特征集合中每个元素为用户每次发送请求的劫持请求特征数据;所述会话劫持标签为0或1中的一个;

所述历史重放训练数据包括每个用户的重放请求特征集合时间序列;

所述重放请求特征集合时间序列中的每个元素为对应用户的历史中每次发送请求的重放请求特征集合以及该重放请求特征集合的重放标签;所述重放请求特征集合中每个元素为用户每次发送请求的重放请求特征数据;所述重放标签0或1中的一个;

训练识别会话劫持攻击的第一机器学习模型的方式为:

预设会话劫持预测时间步长为1,根据预设的会话劫持滑动步长以及预设的会话劫持滑动窗口长度,使用滑动窗口方法将每个用户的劫持请求特征集合时间序列转化为若干组会话劫持训练样本,将会话劫持训练样本作为第一机器学习模型的输入,第一机器学习模型以未来的会话劫持预测时间步长的预测的会话劫持标签为输出,会话劫持训练样本的后续的会话劫持预测时间步长内对应的会话劫持标签作为预测目标,以预测准确率作为训练目标,使用均方误差或平均绝对误差作为损失函数来衡量预测结果的准确性,通过反向传播算法来更新模型的权重和偏置,生成预测输出功率曲线的第一机器学习模型;所述第一机器学习模型为LSTM神经网络模型;

训练识别重放攻击的第二机器学习模型的方式为:

预设重放预测时间步长为1,根据预设的重放滑动步长以及预设的重放滑动窗口长度,使用滑动窗口方法将每个用户的重放请求特征集合时间序列转化为若干组重放训练样本,将重放训练样本作为第二机器学习模型的输入,第二机器学习模型以未来的重放预测时间步长的预测的重放标签为输出,重放训练样本的后续的重放预测时间步长内对应的重放标签作为预测目标,以预测准确率作为训练目标,使用均方误差或平均绝对误差作为损失函数来衡量预测结果的准确性,通过反向传播算法来更新模型的权重和偏置,生成预测输出功率曲线的第二机器学习模型;所述第二机器学习模型为LSTM神经网络模型;

待检测平台收集每个用户的历史行请求数据的方式为:

待检测平台收集每个用户历史请求中,每个请求的劫持请求特征集合以及重放请求特征集合;

对于待检测平台中,每个用户注册账号后的会话劫持滑动窗口长度内的劫持请求特征集合,将劫持请求特征集合对应的会话劫持标签标记为代表非会话劫持的标签值;

对于待检测平台中,每个用户注册账号后的重放滑动窗口长度内的重放请求特征集合,将重放请求特征集合对应的重放标签标记为代表非重放攻击的标签值;

将待检测平台中,每个用户历史请求中的劫持请求特征集合和劫持请求特征集合对应的会话劫持标签按时间顺序作为一个元素,排列成生产劫持请求特征集合时间序列;

将待检测平台中,每个用户历史请求中的重放请求特征集合和重放请求特征集合对应的重放签按时间顺序作为一个元素,排列成生产重放请求特征集合时间序列;

收集每个用户的实时请求数据的方式为:

待检测平台实时收集每个发送请求的用户对该请求的劫持请求特征集合以及重放请求特征集合;

基于实时请求数据判断是否存在重放攻击风险的方式为:

待检测平台统计该用户对该请求的历史请求次数以及对该请求的平均频率,将历史请求次数标记为N,将最近若干次对该请求的平均频率标记为F,计算重放风险值H,其中重放风险值H的计算公式为H=N*F;若重放风险值H大于预设的重放风险阈值,则判断为存在重放攻击风险;

确定当前用户的攻击形式,并进行相应的攻击预警的方式为:

将判断为存在重放攻击风险对应的用户的生产劫持请求特征集合时间序列使用滑动窗口方法,将最新的会话劫持滑动窗口长度序列转化为会话劫持训练样本,并将会话劫持训练样本输入至第一机器学习模型中,获得第一机器学习模型输出的预测的会话劫持标签;

将判断为存在重放攻击风险对应的用户的生产重放请求特征集合时间序列使用滑动窗口方法,将最新的重放滑动窗口长度序列转化为重放训练样本,并将会话劫持训练样本输入至第二机器学习模型中,获得第二机器学习模型输出的预测的重放标签;

若预测的会话劫持标签为1,且预测的重放标签为1,则说明用户的账号被劫持且且被用于向待检测平台发起攻击,待检测平台向用户的智能移动设备发送账号泄露预警,并拒绝对该用户的后续的重放请求进行响应直至后续请求的预测的会话劫持标签和预测的重放标签均为0;所述重放请求为预测的重放标签为1的请求;

若预测的会话劫持标签为1,且预测的重放标签为0,则说明用户的账号被劫持,向用户的智能移动设备发送账号泄露预警;

若预测的会话劫持标签为0,且预测的重放标签为0,则不发起预警;

若预测的会话劫持标签为0,且预测的重放标签为1,说明重放攻击是由当前用户发起,待检测平台拒绝该用户的所有请求。

与现有技术相比,本发明的有益效果是:

本发明通过预先收集测试环境的历史请求训练数据,基于历史历史请求训练数据,服务器后台训练识别会话劫持攻击的第一机器学习模型以及训练识别重放攻击的第二机器学习模型,将第一机器学习模型和第二机器学习模型载入待检测平台;待检测平台收集每个用户的历史行请求数据,检测平台收集每个用户的实时请求数据,基于实时请求数据判断是否存在重放攻击风险,若判断存在重放风险,基于实时请求数据和第一机器学习模型和第二机器学习模型,确定当前用户的攻击形式,并进行相应的攻击预警;通过综合对用户会话劫持的请求和重放攻击的请求特征的分析,在提高系统对重放攻击的防御力的基础上,避免了对用户正常的请求的拒绝,从而提高了系统安全性和用户体验。

附图说明

图1为本发明的暴露面攻击检测方法的流程图。

具体实施方式

下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

如图1所示,一种暴露面攻击检测方法,包括以下步骤:

步骤一:服务器后台预先收集测试环境的历史请求训练数据;

步骤二:基于历史历史请求训练数据,服务器后台训练识别会话劫持攻击的第一机器学习模型以及训练识别重放攻击的第二机器学习模型;

步骤三:将第一机器学习模型和第二机器学习模型载入待检测平台;待检测平台收集每个用户的历史行请求数据;

步骤四:待检测平台收集每个用户的实时请求数据,基于实时请求数据判断是否存在重放攻击风险,若判断存在重放风险,转正步骤五;若判断为不存在重放风险,不做处理;

步骤五:待检测平台基于实时请求数据和第一机器学习模型和第二机器学习模型,确定当前用户的攻击形式,并进行相应的攻击预警;

其中,所述测试环境为所述测试环境为测试人员通过主动控制每个训练账号的请求模式,以准确收集每种请求模式下请求的特征和请求的标签;所述训练账号为在测试环境中使用的账号,所述请求模式包括正常请求、会话劫持模式以及重放攻击模式;需要说明的是,回话劫持模式是指测试人员通过技术手段实现对账号的会话标识或会话令牌的窃取后,向平台发送的请求;重放攻击模式是指测试人员通过技术手段获取正常用户发送的请求,并向平台重新发送;在实验环境中收集历史请求训练数据,提高训练数据的准确性和可控性;

在一个优选的实施例中,所述历史请求训练数据包括历史会话劫持训练数据以及历史重放训练数据;

在一个优选的实施例中,所述历史会话劫持训练数据包括每个用户的劫持请求特征集合时间序列;

所述劫持请求特征时间序列中每个元素为对应用户的历史中每次发送请求的劫持请求特征集合以及该劫持请求特征集合的会话劫持标签;所述劫持请求特征集合中每个元素为用户每次发送请求的劫持请求特征数据;所述劫持请求特征数据包括但不限于请求的IP地址、距上次请求的时长、使用的设备、使用的浏览器、请求的页面历史访问次数等带有个人风格的特征;所述会话劫持标签为0或1中的一个;当会话劫持标签为0时,表示该请求为会话劫持/非会话劫持,当会话劫持标签为1时,表示该请求为非会话劫持/会话劫持;具体的劫持请求特征集合中的每个元素根据实平台的实际防护经验确定;

所述历史重放训练数据包括每个用户的重放请求特征集合时间序列;

所述重放请求特征集合时间序列中的每个元素为对应用户的历史中每次发送请求的重放请求特征集合以及该重放请求特征集合的重放标签;所述重放请求特征集合中每个元素为用户每次发送请求的重放请求特征数据;所述重放请求特征数据包括但不限于每次请求的历史重复请求次数、上次重复时间、时间戳之差、请求参数修改数以及请求合法性等反映每个请求的重放特性的特征;具体的重放请求特征集合中的每个元素根据实平台的实际防护经验确定;

进一步的,所述重放标签0或1中的一个;当重放标签为0时,表示该请求为重放攻击/非重放攻击,当会话劫持标签为1时,表示该请求为非重放攻击/重放攻击;

训练识别会话劫持攻击的第一机器学习模型的方式为:

预设会话劫持预测时间步长为1,根据预设的会话劫持滑动步长以及预设的会话劫持滑动窗口长度,使用滑动窗口方法将每个用户的劫持请求特征集合时间序列转化为若干组会话劫持训练样本,将会话劫持训练样本作为第一机器学习模型的输入,第一机器学习模型以未来的会话劫持预测时间步长的预测的会话劫持标签为输出,会话劫持训练样本的后续的会话劫持预测时间步长内对应的会话劫持标签作为预测目标,以预测准确率作为训练目标,使用均方误差或平均绝对误差作为损失函数来衡量预测结果的准确性,通过反向传播算法来更新模型的权重和偏置,生成预测输出功率曲线的第一机器学习模型;优选的,所述第一机器学习模型为LSTM神经网络模型;

训练识别重放攻击的第二机器学习模型的方式为:

预设重放预测时间步长为1,根据预设的重放滑动步长以及预设的重放滑动窗口长度,使用滑动窗口方法将每个用户的重放请求特征集合时间序列转化为若干组重放训练样本,将重放训练样本作为第二机器学习模型的输入,第二机器学习模型以未来的重放预测时间步长的预测的重放标签为输出,重放训练样本的后续的重放预测时间步长内对应的重放标签作为预测目标,以预测准确率作为训练目标,使用均方误差或平均绝对误差作为损失函数来衡量预测结果的准确性,通过反向传播算法来更新模型的权重和偏置,生成预测输出功率曲线的第二机器学习模型;优选的,所述第二机器学习模型为LSTM神经网络模型;

需要说明的是,滑动窗口方法作为时间序列预测模型(LSTM模型)的常规技术手段,本发明在此不再做原理性说明;但为了本发明更便于实施,本发明提供如下的关于滑动窗口方法的示例:

假设我们要用历史数据

[[[1,2],0],[[3,4],0],[[5,6],1],[[7,8],1],[[9,10],0],[[11,12],0]]来训练一个时间预测模型,在历史数据中,每组数据包含有两个特征以及一个标签,例如第一组数据第一个特征为1,第二个特征为2,第一组数据的标签为0;设置预测时间步长为1,滑动步长设置1以及滑动窗口长度设置为3;则对每个特征生成3组训练数据和对应的预测目标数据:

[[1,3,5],[2,4,6],[0,0,1]],[[3,5,7],[4,6,8],[0,1,1]],

[[5,7,9],[6,8,10],[1,1,0]]作为训练数据,以[1]、[1]以及[0]分别作为预测目标;

待检测平台收集每个用户的历史行请求数据的方式为:

待检测平台收集每个用户历史请求中,每个请求的劫持请求特征集合以及重放请求特征集合;

对于待检测平台中,每个用户注册账号后的会话劫持滑动窗口长度内的劫持请求特征集合,将劫持请求特征集合对应的会话劫持标签标记为代表非会话劫持的标签值;

对于待检测平台中,每个用户注册账号后的重放滑动窗口长度内的重放请求特征集合,将重放请求特征集合对应的重放标签标记为代表非重放攻击的标签值;

将待检测平台中,每个用户历史请求中的劫持请求特征集合和劫持请求特征集合对应的会话劫持标签按时间顺序作为一个元素,排列成生产劫持请求特征集合时间序列;

将待检测平台中,每个用户历史请求中的重放请求特征集合和重放请求特征集合对应的重放签按时间顺序作为一个元素,排列成生产重放请求特征集合时间序列;

收集每个用户的实时请求数据的方式为:

待检测平台实时收集每个发送请求的用户对该请求的劫持请求特征集合以及重放请求特征集合;

基于实时请求数据判断是否存在重放攻击风险的方式为:

待检测平台统计该用户对该请求的历史请求次数以及对该请求的平均频率,将历史请求次数标记为N,将最近若干次对该请求的平均频率标记为F,计算重放风险值H,其中重放风险值H的计算公式为H=N*F;若重放风险值H大于预设的重放风险阈值,则判断为存在重放攻击风险;若重放风险值H小于或等于预设的重放风险阈值,则判断为不存在重放攻击风险;

确定当前用户的攻击形式,并进行相应的攻击预警的方式为:

将判断为存在重放攻击风险对应的用户的生产劫持请求特征集合时间序列使用滑动窗口方法,将最新的会话劫持滑动窗口长度序列转化为会话劫持训练样本,并将会话劫持训练样本输入至第一机器学习模型中,获得第一机器学习模型输出的预测的会话劫持标签;

将判断为存在重放攻击风险对应的用户的生产重放请求特征集合时间序列使用滑动窗口方法,将最新的重放滑动窗口长度序列转化为重放训练样本,并将会话劫持训练样本输入至第二机器学习模型中,获得第二机器学习模型输出的预测的重放标签;

若预测的会话劫持标签为1,且预测的重放标签为1,则说明用户的账号被劫持且且被用于向待检测平台发起攻击,待检测平台向用户的智能移动设备发送账号泄露预警,并拒绝对该用户的后续的重放请求进行响应直至后续请求的预测的会话劫持标签和预测的重放标签均为0;所述重放请求为预测的重放标签为1的请求;

若预测的会话劫持标签为1,且预测的重放标签为0,则说明用户的账号被劫持,向用户的智能移动设备发送账号泄露预警;

若预测的会话劫持标签为0,且预测的重放标签为0,则不发起预警;

若预测的会话劫持标签为0,且预测的重放标签为1,说明重放攻击是由当前用户发起,待检测平台拒绝该用户的所有请求。

以上的预设的参数或预设的阈值均由本领域的技术人员根据实际情况设定或者大量数据模拟获得。

以上实施例仅用以说明本发明的技术方法而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方法进行修改或等同替换,而不脱离本发明技术方法的精神和范围。

相关技术
  • 一种能够逐个下料的电机定子芯片成型机
  • 一种一体化加工下料机构
  • 一种加工下料出料一体机
  • 一种用于陶瓷喯釉的输送下料一体机
  • 一种下料过滤器一体成型机
  • 一种剪冲一体成型机下料机构
技术分类

06120116555943