基于可信联邦学习多域DDoS攻击检测方法与装置

阅读: 评论:0

著录项
  • CN202210711457.8
  • 20220622
  • CN115102763A
  • 20220923
  • 北京交通大学
  • 周华春;殷紫玮;李坤;李曼;王玮琳;刘欧阳
  • H04L9/40
  • H04L9/40 G06N20/00

  • 北京市海淀区西直门外上园村3号
  • 北京(11)
  • 北京市商泰律师事务所
  • 邹芳德
摘要
本发明提供基于可信联邦学习多域DDoS攻击检测方法与装置,属于网络安全检测技术领域,利用区块链进行联邦学习参与方注册和初始信誉设定,等待并处理任务申请;申请通过后分别对本地联邦学习数据集进行预处理,利用预处理后的本地数据集对机器学习或深度学习方法进行训练,得到本地模型;将本地模型参数加密上传至聚合服务器生成全局模型,迭代训练生成最终全局模型;将任务的相关信息上传至区块链进行审计,利用智能合约计算综合信誉值并对参与方的信誉进行更新。本发明根据参与方的交互状态、数据状态和资源状态来计算参与方的综合信誉,在可信条件下联合多域训练DDoS检测模型,使每个域学习到所有域的DDoS攻击知识,提高了每个域对DDoS攻击的检测能力。
权利要求

1.一种基于可信联邦学习多域DDoS攻击检测方法,其特征在于,包括:

各域在区块链进行联邦学习参与方身份注册,区块链初始化参与方信息如信誉值并处理接收到的任务申请,并对申请中的各参与方信息进行反馈,通过信誉评估后开始训练任务;

各域参与方对本地联邦学习数据集进行预处理,分别利用预处理后的数据集对神经网络等机器学习或深度学习模型进行本地训练,得到本地模型;

利用安全聚合算法进行模型的安全传输与参数聚合,参与方分别将本地模型参数加密上传至聚合服务器,由聚合服务器对所有模型进行加权聚合或平均聚合得到全局模型,并将全局模型分发至每个参与方进行迭代训练生成最终全局模型;

利用区块链对本次任务的相关信息进行审计,利用智能合约综合评估参与方的最新的交互信誉、数据信誉和资源信誉并对参与方进行信誉度更新和信息管理。

2.根据权利要求1所述的基于可信联邦学习多域DDoS攻击检测方法,其特征在于,所述的参与方身份注册需将账户ID、域名称发送至区块链,调用智能合约将申请参与到联邦学习训练任务的参与方信息写入区块链中进行注册,同时智能合约对初始信誉值等信息进行默认设置,注册完毕后等待任务申请方提出任务请求;所述的任务申请包括申请方的身份ID、聚合方的身份ID和协同参与方的身份ID,以便区块链提供反馈,反馈的信息包括所有参与方的注册状态、在线状态、数据描述和信誉值,信誉评估通过后开始联邦学习任务。

3.根据权利要求2所述的基于可信联邦学习多域DDoS攻击检测方法,其特征在于,所述的联邦学习任务所使用的数据集由原始数据集进行标签划分生成,原始数据集为捕获的攻击和正常流量的pcap数据包经cicflowmeter转换后生成的包含84种特征的csv文件,所述的攻击类型包括ACK、UDP、SYN、SlowBody、Shrew、SlowHeaders、SlowRead;Ares、BYOB、Miral、Zeus、IRC-Botnet、TFTP、Memcached、DRDoS_SSDP、DRDoS_NTP、Chargen、DRDoS_SNMP、CC、HTTP-Get、HTTP-Flood、HTTP-Post,原始的csv数据集经种类划分将23种攻击类型转为网络层/传输层DDoS攻击、低速率DDoS攻击、僵尸网络DDoS攻击、反射型DDoS攻击、应用层DDoS攻击和正常流量。

4.根据权利要求1或3所述的基于可信联邦学习多域DDoS攻击检测方法,其特征在于,训练过程包括:数据预处理用于消除数据不规范的影响,包括去除不规范值以及特征归一化;特征分析将使用合适的特征选择方法联合其他参与方选出有意义的特征;本地训练将使用本域内的数据集对本地的机器学习模型进行训练;安全聚合使用加权聚合或平均聚合方案对加密过的各方模型参数进行安全聚合生成全局模型并将其反馈给各参与方,各参与方继续使用本地数据集训练刚得到的全局模型以生成下一轮模型,最终经过多次迭代至模型收敛或达到最大迭代次数后结束训练。

5.根据权利要求4所述的基于可信联邦学习多域DDoS攻击检测方法,其特征在于,所述的本地训练模型所使用的训练数据仅为本域的DDoS攻击数据,所述的全局模型为使用聚合算法把其他域的本地模型安全聚合并进行多次迭代后的模型;所述的训练任务结束后各参与方的最终全局模型交叉熵任务信息需上传至区块链进行审计,利用智能合约对参与方进行信誉评估并更新其信誉;信誉评估包括综合计算参与方的交互信誉、数据信誉以及资源信誉以判断参与方是否为恶意节点,确定在训练开始前该参与方是否满足可信条件,以确定其是否可以协同完成训练。

6.根据权利要求5所述的基于可信联邦学习多域DDoS攻击检测方法,其特征在于,所述的参与方的交互信誉由最新模型的交互信誉分数SLATEST与历史模型交互信誉分数SHISTORY加权构成;SLATEST与SHISTORY的评估指标均为训练模型的交叉熵,交叉熵的计算公式为:

其中,(xi,yi)是评估模型所用的数据集,fi(xi)是每个参与方训练好的最终全局模型,N是评估数据集的数量;

所述的参与方的数据信誉由用户所有数据集的数据量分数SNd和用户的所有数据集的数据熵分数SHd加权构成;SNd的评估指标为数据集的数量,SHd的评估指标为数据集的信息熵,信息熵的计算公式为:

其中,p(yi)为当前数据集中每个标签yi的概率;

所述的参与方的资源信誉由用户的在线时间占比Sti决定,为该设备的在线时长Tonline与其从注册时起至当前时刻的时间间隔T的比值。

7.基于可信联邦学习多域DDoS攻击检测装置,其特征在于,包括:

区块链信誉评估模块和联邦训练模块;

所述的区块链信誉评估模块,用于在区块链注册联邦学习训练方,并对所有已注册的训练方的身份状态、数据状态和参与任务状态进行管理,利用智能合约对信誉进行计算、对请求的信息进行处理和反馈;

所述的联邦训练模块,用于提出任务申请并协同其他域进行联邦学习训练任务,并对各攻击域的数据集进行预处理和特征选择,利用预处理后的本地数据集对神经网络等机器学习或深度学习模型进行训练,得到本地模型;将本地模型参数加密上传至聚合服务器生成全局模型,迭代训练生成最终全局模型。

8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质用于存储计算机指令,所述计算机指令被处理器执行时,实现如权利要求1-6任一项所述的基于可信联邦学习多域DDoS攻击检测方法。

9.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序当在一个或多个处理器上运行时,用于实现如权利要求1-6任一项所述的基于可信联邦学习多域DDoS攻击检测方法。

10.一种电子设备,其特征在于,包括:处理器、存储器以及计算机程序;其中,处理器与存储器连接,计算机程序被存储在存储器中,当电子设备运行时,所述处理器执行所述存储器存储的计算机程序,以使电子设备执行实现如权利要求1-6任一项所述的基于可信联邦学习多域DDoS攻击检测方法的指令。

说明书
技术领域

本发明涉及网络安全检测技术领域,具体涉及一种基于可信联邦学习多域DDoS攻击检测方法与装置。

随着5G和互联网的快速发展,网络场景和规模正在不断扩大,随之而来的网络安全问题也呈现增长之势,分布式拒绝服务(Distributed Denial of Service,DDoS)尤其具有破坏性。DDoS攻击按照不同的角度可以划分为不同的种类,从攻击来源来看,绝大部分DDoS攻击都是由僵尸网络产生,此类攻击称为僵尸网络DDoS攻击;根据攻击的手段,可以分为直接型DDoS和反射攻击(DRDoS);从攻击频率和速度划分,包括洪水攻击和慢速攻击(LDDoS);根据攻击数据包所在的网络层次来看,可以分为网络层/传输层DDoS攻击和应用层DDoS攻击。

目前,现有技术中的对DDoS攻击的检测方法研究主要以基于机器学习和深度学习的方法为主,这两种方法通过选择合适的机器学习模型或深度学习模型构建入侵检测分类器,分析网络正常的流数据和异常的流数据在特征方面的差异来判断攻击种类,但这两种方法需要大规模数据,因此存在如下问题:(1)上传数据延时较高。(2)敏感数据在上传时面临泄露等隐私安全问题。(3)检测的攻击类别有限。

基于联邦学习DDoS检测方法有效解决了隐私泄露问题,其利用各个参与方掌握的数据训练本地模型并共享模型参数实现多方共同建模,无需上传数据即可完成联合训练。但是目前联邦学习也存在一些安全问题,如多方信任问题,即拜占庭攻击,是最为突出的安全问题。

现有技术提出信誉评估方法对联邦学习参与方进行信誉评估,在一定程度上缓解了多方信任问题,其主要以交互信誉为主,需要区块链对每轮的训练模型进行评估,但此类信誉评估方法涉及模型在区块链上的频繁交互,会导致消耗大量通信资源,且模型在评估时容易被恶意推理,同时,目前未有装置针对多域DDoS检测提出高效且安全的联合检测方案。

本发明的目的在于提供一种可实现在不共享各自完整数据集的前提下,协同可靠参与方,准确检测出多域的DDoS攻击类别的基于可信联邦学习多域DDoS攻击检测方法与装置,以解决上述背景技术中存在的至少一项技术问题。

为了实现上述目的,本发明采取了如下技术方案:

一方面,本发明提供一种可信联邦学习的多域DDoS(Distributed Denial ofService)攻击检测方法,包括:

各域在区块链进行联邦学习参与方身份注册,区块链初始化参与方信息如信誉值并处理接收到的任务申请,并对申请中的各参与方信息进行反馈,通过信誉评估后开始训练任务;

各域参与方对本地联邦学习数据集进行预处理,分别利用预处理后的数据集对神经网络等机器学习或深度学习模型进行本地训练,得到本地模型;

利用安全聚合算法进行模型的安全传输与参数聚合,参与方分别将本地模型参数加密上传至聚合服务器,由聚合服务器对所有模型进行加权聚合或平均聚合得到全局模型,并将全局模型分发至每个参与方进行迭代训练生成最终全局模型;

利用区块链对本次任务的相关信息进行审计,如训练好后的最终全局模型的交叉熵等,利用智能合约综合评估参与方的最新的交互信誉、数据信誉和资源信誉并对参与方进行信誉度更新和信息管理。

优选的,所述的参与方身份注册需将账户ID、域名称等发送至区块链,调用智能合约将申请参与到联邦学习训练任务的参与方信息写入区块链中进行注册,同时智能合约对初始信誉值等信息进行默认设置,注册完毕后等待任务申请方提出任务请求。

优选的,所述的任务申请包括申请方的身份ID、聚合方的身份ID和协同参与方的身份ID,以便区块链提供反馈,反馈的信息包括所有参与方的注册状态、在线状态、数据描述和信誉值,信誉评估通过后开始联邦学习任务。

优选的,所述的联邦学习任务所使用的数据集由原始数据集进行标签划分生成,原始数据集为捕获的攻击和正常流量的pcap数据包经cicflowmeter转换后生成的包含84种特征的csv文件,所述的攻击类型包括ACK、UDP、SYN、SlowBody、Shrew、SlowHeaders、SlowRead;Ares、BYOB、Miral、Zeus、IRC-Botnet、TFTP、Memcached、DRDoS_SSDP、DRDoS_NTP、Chargen、DRDoS_SNMP、CC、HTTP-Get、HTTP-Flood、HTTP-Post等,原始的csv数据集经种类划分将23种攻击类别转为5大攻击种类以及正常流量,分别为网络层/传输层DDoS攻击、低速率DDoS攻击、僵尸网络DDoS攻击、反射型DDoS攻击、应用层DDoS攻击和正常流量。

优选的,所述的训练过程包括:

数据预处理用于消除数据不规范的影响,包括去除不规范值以及特征归一化;特征分析将使用合适的特征选择方法联合其他参与方选出有意义的特征;本地训练将使用本域内的数据集对本地的机器学习模型进行训练;安全聚合使用加权聚合或平均聚合方案对加密过的各方模型参数进行安全聚合生成全局模型并将其反馈给各参与方,各参与方继续使用本地数据集训练刚得到的全局模型以生成下一轮模型,最终经过多次迭代至模型收敛或达到最大迭代次数后结束训练。

优选的,所述的本地训练模型所使用的训练数据仅为本域的DDoS攻击数据,因此其对DDoS的检测能力较弱。所述的全局模型为使用聚合算法把其他域的本地模型安全聚合并进行多次迭代后的模型,其拥有了多个域的DDoS攻击知识,除了识别本地数据集中包括的攻击外,也能对其他域出现的攻击类型进行检测。

优选的,所述的训练任务结束后各参与方的最终全局模型交叉熵等任务信息需上传至区块链进行审计,利用智能合约对参与方进行信誉评估并更新其信誉。信誉评估包括综合计算参与方的交互信誉、数据信誉以及资源信誉以判断参与方是否为恶意节点,确定在训练开始前该参与方是否满足可信条件,以确定其是否可以协同完成训练。

优选的,所述的参与方的交互信誉由最新模型的交互信誉分数SLATEST与历史模型交互信誉分数SHISTORY加权构成。SLATEST与SHISTORY的评估指标均为训练模型的交叉熵,交叉熵的计算公式如下所示,其中(xi,yi)是评估模型所用的数据集,fi(xi)是每个参与方训练好的最终全局模型,N是评估数据集的数量:

所述的参与方的数据信誉由用户所有数据集的数据量分数SNd和用户的所有数据集的数据熵分数SHd加权构成。SNd的评估指标为数据集的数量,SHd的评估指标为数据集的信息熵,信息熵的计算公式如下所示,其中p(yi)为当前数据集中每个标签yi的概率:

所述的参与方的资源信誉由用户的在线时间占比Sti决定,为该设备的在线时长Tonline与其从注册时起至当前时刻的时间间隔T的比值。

优选的,所述的信息管理包括对所有已在区块链注册的联邦学习训练方的身份信息、参与方数据的使用情况以及参与方协同训练的任务信息进行记录以及增、删、改、查等管理操作,同时提供信息反馈,为上述信息提供输出接口函数。

优选的,所述的信息管理具体包括:

身份信息管理负责在参与方身份注册后,对注册的身份信息进行管理,管理的相关属性包括该参与方的在线状态、所有的数据描述、可用数据的总量以及信誉值等;

数据信息管理负责对已注册的参与方增加数据描述说明,数据描述的相关属性包括该数据拥有方的以太坊地址、该数据拥有方的账户id、该数据的描述namespace和table_name、该数据的信息熵以及该数据的数量等;

任务信息管理负责对每次训练任务进行审计,只能由任务申请方负责将其已提交申请并完成的任务上传至区块链,任务的相关属性包括任务的id、任务申请方id、任务聚合方id和任务中所有模型的交叉熵等信息,均存储于区块链,以便于所有参与方进行检索。

第二方面,本发明提供一种可信联邦学习的多域DDoS(Distributed DenialofService)攻击检测装置,包括区块链信誉评估模块和联邦训练模块。

所述的区块链信誉评估模块包括参与方注册子模块、参与方管理子模块和参与方信誉计算子模块;用于在区块链注册联邦学习训练方,并对所有已注册的训练方的身份状态、数据状态和参与任务状态进行管理,利用智能合约对信誉进行计算、对请求的信息进行处理和反馈。

所述的联邦训练模块包括本地训练子模块和安全聚合子模块;用于提出任务申请并协同其他域进行联邦学习训练任务,并对各攻击域的数据集进行预处理和特征选择,利用预处理后的本地数据集对神经网络等机器学习或深度学习模型进行训练,得到本地模型;将本地模型参数加密上传至聚合服务器生成全局模型,迭代训练生成最终全局模型,在无需共享数据集的前提下训练得到拥有所有域的检测能力。

第三方面,本发明提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质用于存储计算机指令,所述计算机指令被处理器执行时,实现如上所述的基于可信联邦学习多域DDoS攻击检测方法。

第四方面,本发明提供一种计算机程序产品,包括计算机程序,所述计算机程序当在一个或多个处理器上运行时,用于实现如上所述的基于可信联邦学习多域DDoS攻击检测方法。

第五方面,本发明提供一种电子设备,包括:处理器、存储器以及计算机程序;其中,处理器与存储器连接,计算机程序被存储在存储器中,当电子设备运行时,所述处理器执行所述存储器存储的计算机程序,以使电子设备执行实现如上所述的基于可信联邦学习多域DDoS攻击检测方法的指令。

本发明有益效果:基于具有信誉评估的联邦学习算法使多域协同构建具有全局检测能力的学习模型,通过规范数据集的标签,减少数据非独立同分布带来的影响,各参与方得到适合横向联邦学习的数据集;各参与方在信誉评估通过后进行数据预处理、特征选择、本地训练、加密传输与安全聚合等步骤协同训练得到全局联邦学习模型;将训练任务的相关信息上传至区块链,由智能合约进行管理与反馈。因此,能够在保护参与方数据隐私的情况下学习其他参与方的流量特征,训练好的全局模型具有检测本域未出现而其他域出现过的攻击类别的能力,达到多域协同训练DDoS检测模型、提高每个攻击种类的检测准确性的目的。

本发明附加方面的优点,将在下述的描述部分中更加明显的给出,或通过本发明的实践了解到。

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所述的可信联邦学习的多域DDoS攻击检测方法的处理流程图。

图2为本发明实施例所述的横向联邦学习的一般步骤示意图。

图3为本发明实施例所述的多域DDoS联邦学习训练流程示意图。

图4为本发明实施例所述的本地训练时的全连接神经网络模型示意图。

图5为本发明实施例所述的基于一次性掩码与加权聚合的安全聚合方案示意图。

图6为本发明实施例所述的可信联邦学习的多域DDoS攻击检测装置的结构图。

下面详细叙述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。

还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件和/或它们的组。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

为便于理解本发明,下面结合附图以具体实施例对本发明作进一步解释说明,且具体实施例并不构成对本发明实施例的限定。

本领域技术人员应该理解,附图只是实施例的示意图,附图中的部件并不一定是实施本发明所必须的。

实施例1

本实施例1提供一种可信联邦学习的多域DDoS攻击检测方法,该方法处理流程如图1所示,包括如下的处理步骤:

步骤S101:各域在区块链进行联邦学习参与方身份注册,区块链初始化参与方信息如信誉值并处理接收到的任务申请,并对申请中的各参与方信息进行反馈,通过信誉评估后开始训练任务;

可选地,使用以太坊作为在区块链进行身份注册的平台,使用solidity进行智能合约的编写。

具体地,联邦学习的每个参与方终端对应以太坊节点,终端负责训练模型并存储本地数据集以及本地训练过程中模型,以太坊节点负责调用智能合约,以对参与方终端的身份进行注册。

具体地,区块链调用智能合约将申请参与到联邦学习训练任务的参与方信息写入区块链中,同时智能合约对其他信息进行默认设置,具体参数如表1所示,注册完毕后等待任务申请方提出任务请求。

表1

名称 说明 默认值 owner_ethaddress 参与方以太坊地址 调用创建函数的地址 timestamp 该设备创建时的时间戳 调用创建函数的时间 latest_online_timestamp 该设备最新在线的时间戳 调用创建函数的时间 party_id 参与方账户id 需设置 online 在线状态 True domain_name 攻击域名称 需设置 data_qutitity 每个设备存有的数据量 0 frequency 参与训练的次数 0 reputation 信誉值 70

任务申请包括申请方的身份ID、聚合方的身份ID和协同参与方的身份ID,以便区块链提供反馈,反馈的信息包括所有参与方的注册状态、在线状态、数据描述和信誉值。信誉评估通过后开始联邦学习任务。

步骤S102:对本地数据集进行预处理,参与方分别利用预处理后的数据集对神经网络等机器学习或深度学习模型进行本地调参训练,得到本地模型;

本实施例中,利用横向联邦学习对数据集进行训练,其特点是参与方数据集的特征和标签信息相同,但样本ID不同。针对DDoS检测,各域的本地数据集应具有不同的数据流ID与相同特征空间。

具体地,所述数据流ID应保证每条数据流使用的ID不同于其他流;所述特征空间包括时间特征、流报头特征和有效载荷特征,时间特征包括流处于活跃时间的统计特征,流中两数据包间隔时间的统计特征、前向两数据包间隔时间的统计特征以及流处于空闲时间的统计特征;流报头特征包括流持续时间、每秒的流字节数、前向/反向数据包头部长度和每秒流中的数据包数;有效载荷特征包括每秒的前/反向数据包数目、数据包长度的统计特征、标志位计数,所述统计特征包括平均值、标准偏差、最大值和最小值。

本实施例1中,联邦学习训练任务为多个域协同训练得到全局检测DDoS攻击的模型,训练的标签类别为网络层/传输层DDoS攻击、低速率DDoS攻击、僵尸网络DDoS攻击、反射型DDoS攻击、应用层DDoS攻击和正常流量,其能检测的具体攻击类型包括ACK、UDP、SYN、SlowBody、Shrew、SlowHeaders、SlowRead;Ares、BYOB、Miral、Zeus、IRC-Botnet、TFTP、Memcached、DRDoS_SSDP、DRDoS_NTP、Chargen、DRDoS_SNMP、CC、HTTP-Get、HTTP-Flood、HTTP-Post等,检测结果以具体攻击类型所属类别的形式反馈,如ACK、UDP、SYN均为网络层/传输层DDoS攻击。

本实施例中采用数据预处理过程对异常数据和不规范数据进行操作,首先进行数据清洗,对数据集中的异常值进行处理,删除缺失值所在的行或将缺失值设置为定值;其次采用min-max标准化,将数据转换到[0,1]区间上,以提升模型收敛速度。

本实施例中,使用HomoSecureBoost算法来进行特征重要性排序以实现特征选择。该算法由微众银行提出,首先各参与方在本地进行特征分箱以及计算相关的一阶梯度和二阶梯度生成本地直方图,并将本地直方图加密上传至聚合方,其次聚合方将所有参与方的直方图进行聚合并选择最优的分割点将其返回各参与方,然后参与方为当前分类树构建下一层并重新分配样本,直到达到最大深度或满足停止条件时完成一棵决策树的拟合;最后,重复上述过程,如果树数达到最大数目,或者损失收敛,则HomoSecureBoost拟合过程将停止。

本实施例1中,采用全连接神经网络进行本地模型的训练。全连接神经网络一般模型由输入层、隐藏层以及输出层构成。输入层的每个神经元分别代表一个特征,输出层的每个神经元分别代表预测的不同种类,隐藏层的可解释性较差,因此无需了解隐藏层内部神经元的执行过程,通常,增加隐藏的层数有利于提高模型的训练精确度,但是也使得神经网络模型的训练时间延长且易出现过拟合。如图4所示,本发明示例设计两个全连接层以及两个Dropout层作为隐藏层,Dropout层可以有效缓解过拟合。

步骤S103:利用安全聚合算法进行本地模型的安全传输与聚合。参与方分别将加密后的本地模型参数上传至聚合服务器,由聚合服务器对所有模型进行加权聚合或平均聚合得到全局模型,迭代本地训练过程与安全聚合过程生成最终全局模型;

具体地,安全聚合算法的聚合步骤如下:首先,参与方u和v之间依据参与方的总顺序商定加密密钥su,v。其次,在将模型参数加密时,每个参与方都将使用他们与其他所有参与方共同构建的秘密来屏蔽他们的模型参数xu,如果u

使用一次性随机掩码对加权后的模型参数进行加密,即参与方u和v之间依据参与方的总顺序商定一次性的随机数作为加密密钥su,v。

使用加权聚合的方法,依据当前训练数据的总量对所有参与方模型进行加权聚合。需要注意的时,仅对模型参数部分进行加权,不会影响加密密钥su,v将被抵消的结果。

具体地,本实施例1中,基于步骤S102训练好的本地全连接神经网络与步骤S103使用一次性掩码与加权聚合的安全聚合算法进行迭代训练,图5为一次迭代过程的示意图。首先,使用掩码加密模型的参数,使用数据量对模型进行加权,其次,发送加密后的模型参数Ci(t)发送数据量ni,得到聚合模型后将模型广播至所有参与方进行一次迭代更新。其中Ci(t)表示第t次迭代时第i个参与方的加密加权模型,ni表示第i个参与方使用的数据量大小,同时也是权重;∑j≠iRij(t)为第i个参与方与其他所有参与方商定的密钥。

步骤S104:利用区块链对最终训练的模型交叉熵等任务信息进行审计,通过更新其交互信誉重新评估其综合信誉,以保证再次申请任务时反馈最新的综合信誉评估结果。

具体地,利用智能合约综合评估参与方的最新的交互信誉、数据信誉和资源信誉,并将评估后的各参与方信誉值进行更新。

具体地,参与方的交互信誉由最新模型的交互信誉分数SLATEST与历史模型交互信誉分数SHISTORY加权构成,最新模型的交互信誉分数与历史模型交互信誉分数的计算方式如下所示,其中,b1和k1为智能合约将上传至区块链的交叉熵H映射为交叉熵分数S的系数,(xi,yi)是评估模型所用的数据集,fi(xi)是每个参与方训练好的最终模型,n是该参与方所拥有模型的数量。

SLATEST=b1-k1×Hn(fi(xi),yi)

其中,交叉熵H的计算方式如下所示。

具体地,参与方的数据信誉由用户所有数据集的数据量分数SNd和用户的所有数据集的数据熵分数SHd加权构成,公式如下所示,其中,N是数据集的数量,b2,k2为智能合约将上传至区块链的数据数量映射数据量分数的系数,j是标签yi的种类。

具体地,参与方的资源信誉由用户的在线时间占比Sti决定,其中Tonline是该设备的在线时长,T是自参与方注册时起至当前时刻的时间间隔。

利用智能合约对所有已在区块链注册的联邦学习训练方的信息进行管理,包括参与方的身份信息、参与方的数据描述信息以及参与方的任务信息进行记录以及增、删、改、查等管理操作,同时提供信息反馈,为上述信息提供输出接口函数。

参与方信息管理包括身份信息管理、数据管理和任务管理三个方面。联邦学习参与方在进行身份注册后,可以分别对其身份信息、数据描述信息以及任务与任务的具体信息进行增、删、改、查等管理操作。

具体地,参与方身份信息管理负责在参与方身份注册后,对注册的身份信息进行管理。除了身份注册外,还包括参与方身份注销,以及对参与方信息属性的修改与反馈,本实施例对参与方身份信息管理的具体的相关属性如表2所示。

表2

名称 说明 owner_ethaddress 参与方以太坊地址 timestamp 该设备创建时的时间戳 latest_online_timestamp 该设备最新在线的时间戳 party_id 参与方账户id online 在线状态 domain_name 攻击域名称 data_qutitity 每个设备存有的数据量 frequency 参与训练的次数 reputation 信誉值

数据信息管理负责对已注册的参与方增加数据描述说明,数据描述的相关属性包括数据拥有方的以太坊地址、数据拥有方的账户id、数据描述namespace和table_name、数据的信息熵、数据的数量,具体的相关属性如表3所示。

表3

名称 说明 owner_ethaddress 数据拥有方的以太坊地址 owner_partyid 数据拥有方的账户id namespace 数据描述namespace table_name 数据描述table_name data_entropy 数据的信息熵 data_qutitity 数据的数量

任务信息管理负责对每次训练任务进行审计,需要任务申请方在完成训练任务并对接收到的其他参与方训练好的模型进行评估后,把评估分数及其对应的任务的id、参与方id等信息上传至区块链,以便于检索任务及任务的相关信息。任务描述的相关属性包括任务的id、任务申请方id、任务聚合方id和任务中所有模型的交叉熵等。具体的相关属性如表4所示。

表4

名称 说明 job_id 任务的id guest 任务申请方id arbiter 任务聚合方id host 其他任务参与方id job_data 任务所使用的数据 cross_entropy 任务中所有模型的交叉熵

本实施例1中,在任务申请方的请求通过信誉评估并完成所有参与方的数据集描述和参与方id等配置信息后开始训练任务;分别对数据集进行预处理,进行利用预处理后的本地数据集对神经网络等机器学习或深度学习模型进行训练,得到本地模型;将本地模型参数加密上传至聚合服务器安全聚合生成全局模型,并迭代训练生成最终全局模型;将最终训练的模型交叉熵等任务参数和训练数据描述上传至区块链进行审计,利用智能合约综合评估参与方的交互信誉、数据信誉和资源信誉并对参与方的信誉进行更新。

本实施例1中,如图3所示,多域DDoS联邦学习训练过程中的特征选择以及模型生成过程均需要多域协作来完成,此过程不传输原始数据以及完整模型,传输的中间量为加密后的特征的分箱结果以及模型参数。

利用min-max标准化对数据进行归一化处理,利用特征选择算法在不泄露原始数据的情况下交互特征信息进行联邦学习下的特征重要性排序,得到预处理后的本地数据集;预处理后的本地数据集对神经网络等机器学习或深度学习模型进行训练,得到本地模型;将本地模型参数加密上传至聚合服务器生成全局模型,迭代训练生成最终全局模型。

利用全连接神经网络作为本地学习的模型,模型示意图如图4所示。包括两个全连接层与两个dropout层,最后连接sigmoid层作为分类器的输出。

利用使用一次性掩码与加权聚合的安全聚合算法进行迭代训练过程,每次迭代训练示意图如图5所示,包括模型参数由本地加密上传、聚合方解密下发和本地模型更新等重要步骤。

若分类结果较差,可调整特征选全连接神经网络的层次及各参数,或调整学习器的超参数。

实施例2

如图6所示,本实施例2中,提供一种基于可信联邦学习的多域DDoS攻击检测装置,该装置包括区块链信誉评估模块601和联邦训练模块602。

区块链信誉评估模块601,用于在区块链注册联邦学习训练方,并对所有已注册的训练方的身份状态、数据状态和参与任务状态进行管理,利用智能合约对信誉进行计算、对请求的信息进行处理和反馈,包括参与方注册子模块603、参与方信誉计算子模块604和参与方管理子模块607;

参与方注册子模块603,使用以太坊作为在区块链进行身份注册的平台,使用solidity进行智能合约的编写,身份注册时需要提供该设备作为联邦学习参与方的id,此id在在联邦学习的初始化配置中与地址绑定,作为联邦学习任务申请以及训练配置时的唯一身份信息。

参与方信誉计算子模块604,利用智能合约设计信誉计算规则,可选地,该子模块采用综合评估参与方的交互信誉、数据信誉以及资源信誉的方式得到综合信誉值;数据信誉由该参与方所上传的数据描述信息计算而得,未上传数据描述的参与方不应具有协同训练的能力;资源信誉由在线时间确定;交互信誉由该参与方每次的训练结果决定,若当该参与方尚未参与任何训练,其交互信誉会被初始化为预设值。

参与方管理子模块607,用于对所有已在区块链注册的联邦学习训练方的身份信息、参与方数据以及参与方协同训练的任务信息进行记录以及增、删、改、查等管理操作,同时提供信息反馈,为上述信息提供输出接口函数

联邦训练模块602,用于联邦学习数据集的生成;提出任务申请并协同其他域进行联邦学习训练任务,首先使用机器学习或深度学习算法对已在完成预处理和特征选择后的数据集进行本地训练;然后将本地模型参数加密上传至聚合服务器生成全局模型,迭代训练生成最终全局模型,本模块包含本地训练605和安全聚合606两个子模块。

本地训练子模块605,用于对联邦学习数据集进行数据预处理和特征选择以及使用机器学习或深度学习算法对特征选择后的数据集进行本地训练。

本实施例2中,需要对原始数据集进行标签划分以生成联邦学习数据集,原始数据集为各域收集到的pcap数据包经cicflowmeter转换后包含具体攻击类型的正常流或攻击流等23种类型的csv文件,标签划分规则对应于表8,如ACK、UDP、SYN均为网络层/传输层DDoS攻击。

表8

安全聚合子模块606,用于将本地模型参数加密上传至聚合服务器生成全局模型,迭代训练生成最终全局模型,在无需共享数据集的前提下训练得到拥有所有域的检测能力。

实施例3

本发明实施例3提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质用于存储计算机指令,所述计算机指令被处理器执行时,实现基于可信联邦学习多域DDoS攻击检测方法,该方法包括:

各域在区块链进行联邦学习参与方身份注册,区块链初始化参与方信息如信誉值并处理接收到的任务申请,并对申请中的各参与方信息进行反馈,通过信誉评估后开始训练任务;

各域参与方对本地联邦学习数据集进行预处理,分别利用预处理后的数据集对神经网络等机器学习或深度学习模型进行本地训练,得到本地模型;

利用安全聚合算法进行模型的安全传输与参数聚合,参与方分别将本地模型参数加密上传至聚合服务器,由聚合服务器对所有模型进行加权聚合或平均聚合得到全局模型,并将全局模型分发至每个参与方进行迭代训练生成最终全局模型;

利用区块链对本次任务的相关信息进行审计,利用智能合约综合评估参与方的最新的交互信誉、数据信誉和资源信誉并对参与方进行信誉度更新和信息管理。

实施例4

本发明实施例4提供一种计算机程序(产品),包括计算机程序,所述计算机程序当在一个或多个处理器上运行时,用于实现基于可信联邦学习多域DDoS攻击检测方法,该方法包括:

各域在区块链进行联邦学习参与方身份注册,区块链初始化参与方信息如信誉值并处理接收到的任务申请,并对申请中的各参与方信息进行反馈,通过信誉评估后开始训练任务;

各域参与方对本地联邦学习数据集进行预处理,分别利用预处理后的数据集对神经网络等机器学习或深度学习模型进行本地训练,得到本地模型;

利用安全聚合算法进行模型的安全传输与参数聚合,参与方分别将本地模型参数加密上传至聚合服务器,由聚合服务器对所有模型进行加权聚合或平均聚合得到全局模型,并将全局模型分发至每个参与方进行迭代训练生成最终全局模型;

利用区块链对本次任务的相关信息进行审计,利用智能合约综合评估参与方的最新的交互信誉、数据信誉和资源信誉并对参与方进行信誉度更新和信息管理。

实施例5

本发明实施例5提供一种电子设备,包括:处理器、存储器以及计算机程序;其中,处理器与存储器连接,计算机程序被存储在存储器中,当电子设备运行时,所述处理器执行所述存储器存储的计算机程序,以使电子设备执行实现基于可信联邦学习多域DDoS攻击检测方法的指令,该方法包括:

各域在区块链进行联邦学习参与方身份注册,区块链初始化参与方信息如信誉值并处理接收到的任务申请,并对申请中的各参与方信息进行反馈,通过信誉评估后开始训练任务;

各域参与方对本地联邦学习数据集进行预处理,分别利用预处理后的数据集对神经网络等机器学习或深度学习模型进行本地训练,得到本地模型;

利用安全聚合算法进行模型的安全传输与参数聚合,参与方分别将本地模型参数加密上传至聚合服务器,由聚合服务器对所有模型进行加权聚合或平均聚合得到全局模型,并将全局模型分发至每个参与方进行迭代训练生成最终全局模型;

利用区块链对本次任务的相关信息进行审计,利用智能合约综合评估参与方的最新的交互信誉、数据信誉和资源信誉并对参与方进行信誉度更新和信息管理。

综上所述,本发明实施例所述的基于可信联邦学习多域DDoS攻击检测方法与装置,鉴于传统机器学习训练中数据量不充分、分布式学习共享数据时面临数据泄露以及联邦学习训练中的拜占庭攻击等问题。本发明实施例提供一种基于联邦学习的多域DDoS攻击的联合检测方案,并提供一种对参与方的信誉评估方案,实现基于可信联邦学习的多域DDoS攻击检测;能够在不共享数据集的情况下,通过可信联邦学习,实现多域协同训练DDoS检测模型,对低速率DDoS攻击、网络层/传输层攻击、DRDoS攻击、僵尸网络、应用层等具体23种攻击类别实现种类的划分。具体地,以ACK攻击为例,能够在本域内的数据集只存在其他类型的网络层/传输层攻击而不包括ACK攻击的情况下,通过联邦训练学习到其他域包含的ACK攻击知识,从而检测出ACK属于网络层/传输层攻击。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明公开的技术方案的基础上,本领域技术人员在不需要付出创造性劳动即可做出的各种修改或变形,都应涵盖在本发明的保护范围之内。

本文发布于:2023-04-15 00:43:43,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/86952.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图