分布式协作频谱感知网络中恶意节点检测和定位方法研究
2022-07-02吴晓晓李刚强张胜利
吴晓晓,李刚强,张胜利
(1. 深圳大学电子与信息工程学院,广东深圳 518060;2. 鹏城实验室,广东深圳 518055;3. 黄淮学院信息工程学院,河南驻马店 463000)
1 引言
频谱资源是有限的,在含有主要用户(Primary User,PU)和认知用户(Secondary User,SU)的无线通信网络中,提高频谱的利用率对于通信技术的发展具有重要的意义[1]. 传统固定分配模式下,PU节点的“独占”现象使得授权频段处于空闲模式时无法被网络中的SU用户有效利用,导致频谱利用效率低下. 因此,需要对现有的固定频谱分配策略,实施动态频谱管理[2]. 认知无线电(Cognitive Radio,CR)[3]由Joseph Mitola等于1999年提出,SU节点通过实时监测无线环境,利用感知结果在网络中可以自适应地检测频谱,实现自动进行频谱管理以及提高频谱利用率的目的.CR 过程包含频谱感知、频谱管理和频谱共享3 个主要阶段,其中频谱感知阶段是实现认知过程的关键[4]. 相较于单用户的独立感知,SU节点之间的协作频谱感知,能够通过信息交互克服多径效应、阴影衰落和隐藏终端等问题.
协作频谱感知根据信息共享方式的不同,可以简单分为集中式、中继式和分布式3 种. 其中,不同于依赖数据融合中心的集中式和中继式协作方法,分布式协作方法下的SU 节点仅需要点对点通信的方式进行数据交换[5],大大提高了感知系统的自由度和鲁棒性.然而,分布式协作感知的扁平式结构增加了频谱感知的危险性,面临着恶意节点数据注入攻击的威胁,后者可能导致SU 节点收敛至错误的感知结果,做出错误的决策,从而影响整体认知网络的性能. 因此,针对分布式协作认知网络中存在的恶意节点的检测和定位尤为重要.
一般来讲,恶意节点对协作感知过程的攻击取决于特定的攻击方式,常见的攻击有主用户伪造攻击(Primary User Emulation,PUE)和拜占庭攻击(Spectrum Sensing Data Falsification,SSDF)[4]. 本文中考虑的攻击方式是拜占庭攻击的自然延伸,主要涉及能量检测值的协作感知,其中数据注入攻击的影响可以通过测量的误差值来衡量. 本文对于基于共识的频谱感知算法脆弱性的见解在于认识到共识算法在一定条件下类似于DeGroot 动态意见模型[6],恶意节点通过向其邻居节点发送包含恒定偏差的消息,明智地调整预期的收敛速度及加入随机噪声,来达到扰乱网络收敛的目的[7~9]. 文献[9,10]证明,网络总是收敛到等于偏置的最终状态,这将给基于共识的频谱感知算法带来严重的安全问题. 因此,需要一种良好的恶意节点检测和定位方法来保护这些算法免受数据注入攻击.
在实际的应用中,一个好的攻击检测方法需要对问题进行不同的设置,并且通过观察多个独立的认知过程来确定网络中恶意节点的存在并进行定位. 文献[8]中讨论了基于平均共识算法下的数据注入攻击场景,提出了一个时间差分的检测方法用于检测和定位恶意节点,该方法依赖攻击目标和最优收敛目标之间的差异. 文献[9,11]提出了2 种统计分数的方法用于恶意节点的检测和定位,通过多次运行算法来观察其邻居节点的异常. 文献[10]讨论了投影次梯度算法下的内部攻击检测方法,设计了本地的度量函数,通过观察邻居节点的状态差分来统计各节点的得分,以检测和定位恶意节点. 以上文献方法可以概括为分数方案,虽然具有合理的性能,但严重依赖专家来设计复杂的决策函数,存在论证复杂、阈值设置难度大、模型无学习能力以及无法有效给出网络出现攻击行为(或某个节点为恶意节点)的程度等问题.
针对此类问题,本文利用神经网络模型的自动学习能力实现复杂非线性函数的拟合,映射输出连续的概率来表示恶意的程度,从而更好地来检测和定位恶意节点,最终实现将恶意节点全部踢出分布式认知网络的目的. 具体地,本文提出了2 种基于神经网络的方法:(1)基于神经网络的时间差分方法,利用分布式网络节点收敛状态在攻击前后的不一致来检测网络的异常;(2)基于神经网络的空间差分方法,考虑了共识迭代过程中的过渡状态,通过计算认知节点与邻域节点在时间上的差分累积来检测和定位恶意节点. 在此基础上,本文进而提出一种基于Gossip Learning 的联合学习策略促进神经网络模型的训练,使节点在本地局部数据的基础之上能够学习到与全局模型接近的局部模型,以此缓解网络中部分节点存在训练数据不足和邻域攻击数据分布不一致的情形. 最后,本文在9 节点的曼哈顿网络上模拟了基于一致性共识分布式协作感知过程,并采集用于神经网络训练和测试所需的样本,仿真验证了所提方法的有效性.
2 分布式协作频谱感知与攻击模型
2.1 基于共识的频谱感知算法
分布式对等交互的频谱感知模型中,每个SU 节点可以看作独立的融合中心,通过与邻居节点的信息交互做出PU 节点是否占用频谱的判决. 考虑一个由N个SU 节点组成的认知网络G=(V,E),其中V={1,2,…,N}表示网络中SU 节点的集合,如图1 所示.E ⊆V×V 表示网络中SU 节点边的集合,节点(i,j)∊E 则表示网络中节点i和节点j可以直接通信,共享感知信息. 定义Ni∊V表示节点i的邻居集合,即Ni={j∊V:(i,j)∊E},∀i∊V.
图1 分布式对等交互频谱感知模型
任意节点i∊V 独立运行能量检测算法得到关于PU 节点的能量感知值xi(0),然后与邻居节点交互迭代直至所有参与协作的节点能量值趋于一致. 其中,一致性共识融合过程可以使用如下迭代更新规则来描述[12]:
事实上,以上的认知过程可以认为SU 节点在共识过程中根据对邻居节点的状态加权达成最终的共识状态. 则式(1)可以写成如下形式[13]:
其中,Aij(t)为时间t上节点i分配给其邻居节点j的聚合权重. 将网络内SU 节点的状态写成向量形式,令x(t)=[x1(t),x2(t),…,xN(t)] ∊RN,式(2)可写成以下形式:
其中,Aij(t)= [A(t)]ij表示权值矩阵中的第(i,j)个元素,A∊RN×N是一个N×N的对称矩阵. 通常情况下矩阵A是一个双随机矩阵,满足1ΤA(t)=1Τ,A(t)1=1,AΤ(t)=A(t),即每一行和列分别满足和为1.
图2 分布式频谱感知过程中各SU节点的感知状态演化
引入概率矩阵P∊RN×N,定义[P]ij=Pij≥0 表示节点i选择与邻居节点j信息交换的概率. 则对于式(3)中的矩阵A(t),其算法迭代过程中的期望形式如下:
2.2 恶意节点协同攻击方案
假设网络G=(V,E)中存在一些协同恶意的SU 节点Vs⊆V,恶意节点Vs={1,2,…,Ns}的数量远小于网络节点的数量Ns 图3 恶意协同攻击下各SU节点的感知状态演化 本文针对频谱感知过程中的恶意节点检测和定位问题,定义以下2个本地任务,正常节点i∊Vr以分布式的方式独立地执行,具体如下. (1)邻域检测任务-正常节点邻域内是否存在恶意节点: (2)邻域定位任务-正常节点检查邻居节点是否为恶意节点: TD和SD方法将节点i∊Vr获得的状态向量x͂k i融合成一个标量分数来检测和定位网络中的恶意节点. 而函数拟合是神经网络的一种自然应用,它将多层神经元连接起来,以完成复杂的功能. 本文将恶意节点检测和定位过程看作对节点i∊Vr观察到的状态向量的分类问题,使用神经网络检测和定位网络内的恶意节点.为方便表述,令|Ni| =M表示神经网络模型的特征输入维度. 3.2.1 基于神经网络的时间差分方法 对于正常节点处的邻域检测和定位任务,神经网络的模型结构如图4 所示. 该神经网络模型的输入为M维的向量. 根据式(13)中的度量指标,邻域检测和定位任务的输入如下: 图4 基于神经网络的恶意节点检测和定位模型结构 其中,a0和ȃ0分别为邻域检测和定位神经网络的输入特征向量. 对于邻域内的检测任务,输出yi是一个标量,表示恶意节点是否出现在正常节点i的邻域内. 这可以视为简单的二分类问题,即如果邻域内含有恶意节点,则yi=1,否则输出为yi=0. 基于神经网络的检测任务对应数学式表示如下: 其中,Wh∊RLh×Lh-1为第h-1 层和第h层之间的权值参数;bh∊RLh为第h层的偏置向量;ah表示第h层神经单元的激活输出值;Lh为第h层含有的神经元个数,其中L0=M,Ln=1;f(∙)为隐含层的激活函数,常用ReLU;输出层的激活函数为g(∙)= 1(1+e-x),能够将检测模型的输出映射到区间[0,1],可用于表示事件发生的概率;yi表示神经网络的期望输出;δNN为判断邻域任务中事件Hi1和Hi0发生的阈值,通常情况下可以设定δNN=0.5. 当节点i在其邻域内检测到恶意节点存在(为真),则下一步是找到恶意节点在邻域内的位置. 为此,本文采用了与检测任务类似的神经网络结构执行定位任务,如图4 所示. 定位神经网络的输入变量与检测模型相同,即输入维度也是M,而输出的大小等于邻居的个数M. 在这种情况下,可以采用类似于One-Hot 编码的形式进行编码[17],即当某个邻居为恶意节点时,则对应位置为1,否则为0. 例如,当对应于ζi2的邻居是攻击者时,则应训练该模型以生成输出z=e2. 在数学上,邻域的定位模型可以描述为 3.2.2 基于神经网络的空间差分方法 TDNN仅考虑了邻居节点的初始状态和稳定状态.如果能够充分地利用算法运行中的过渡状态信息,那么它有望探索更多的动态特性,从而进一步提高恶意节点的检测和定位性能. 因此,本文利用基于神经网络的空间差分(Neural Network-based Spatial Difference,SDNN)方法,通过观察邻居节点在时间上的差分累积获取用于神经网络的输入特征,模型结构与图4类似. 式(6)下,恶意节点一直尝试引导正常的邻居节点偏离认知网络的真实收敛值,随着时间t的增加,网络中正常节点的状态逐渐收敛至恶意节点的期望值α. 本小节对SDNN 方法的洞见来自TDNN 方法中ζij的计算,式(13)重新写为 其中,过渡状态随着t→T在计算中被抵消,未得到充分利用. 式(13)中考虑了节点之间的初始状态和收敛状态之间的差异,则可以考虑更多的过渡状态信息,计算过渡状态在时间t上的累积绝对差分来统计节点在不同事件和下的异常,生成SDNN 的输入特征.因此,定义以下度量用于邻域的检测任务: 考虑类似于式(19)对于检测任务的洞见,通过观察节点i和其邻居节点j在时间t上的绝对差分累积来提取过渡状态信息包含的特征. 因此,定义以下度量用于邻域的定位任务: 3.3.1 神经网络联合学习框架 分布式联合学习的目标是让参与的节点充当本地的学习者,每个节点仅交换学习到的神经网络参数,而不分享可能包含其隐私信息的本地局部的训练数据. 对于分布式的联合训练,机器学习(或者神经网络)使用的标准无约束经验风险最小化问题[21]可以描述为 其中,W表示神经网络模型的参数;L(∙)是节点i的局部目标函数,定义为局部数据集的期望损失. 本地节点i的目标是将其当地样本的预期损失降至最低,即 其中,ς表示一对变量,由输入特征和对应标签组成,遵循未知概率分布Ii,该概率分布依赖节点i的本地样本集;ℓ(∙)是一个损失函数,用于量化ς上的预测误差. 定义Di={ς1,ς2,…,ςq}表示任意节点i∊V 处的训练数据集,其中包含q个样本. 对于全局的训练数据来说,完整数据集为D=D1∪D2∪…∪DN,则式(26)中的优化目标可以写为 3.3.2 神经网络模型参数更新 Gossip Learning 是一种无需控制中心即可从分布式的数据学习模型参数的方法,各节点仅与其邻居节点交换模型参数而不分享其隐私的训练数据,其协议框架图如算法1所示. 算法1 基于对等协议的分布式联合学习算法流程输入:初始化各节点本地模型参数Wi=W和学习率η输出:联合学习神经网络参数Wi REPEAT⋅模型聚合:节点i ∊V根据式(29)融合邻居模型参数⋅参数更新:节点i ∊V根据式(28)更新本地模型⋅参数发送:节点i ∊V随机选择邻居节点j ∊Ni发送模型END 在训练阶段,每个节点i具有结构相同的神经网络模型,各节点使用随机梯度下降(Stochastic Gradient De⁃scent,SGD)算法来估计节点的局部模型参数Wi. 节点本地参数更新过程可以表示为 其中,0 ≤μj≤1 为本地参与聚合过程模型的权重系数,本地节点i和邻居节点系数之和为1. 该方法不存在中央控制节点,可以从完全分布式的数据中学习可靠模型参数. 对于邻域检测和定位任务,可以通过设置不同的参考阈值δNN和ϵNN对检测和定位任务中的不同事件进行预测分类. 为了评估相关决策函数的性能,定义以下评估指标: 在邻域检测和定位任务中,本文神经网络模型含有3个隐含层,神经元数量分别为100,60和40. 采用小批量随机梯度下降(mini-batch SGD)法更新神经网络模型的参数,学习率为0.1,mini-batch 的大小为50,最大训练轮数为200. 为了训练和测试所提方法,曼哈顿9节点网络在不同事件和下多次运行感知算法收集所需的样本信息. 对于每一个用于训练或者测试的样本,均由观察节点考虑K轮邻居节点的状态轨迹,然后在观察节点处进行融合生成,训练集、测试集及相应标签如表1 所示. 用于定位任务的训练和测试样本是在已经确认网络中存在一个攻击者的情况下收集的,这样做的主要目的是让观察节点能够准确识别邻域内的邻居节点是恶意节点. 同时,为了防止神经网络模型出现退化或者出现走捷径的情况,在模型训练的过程中随机调整攻击者特征值在输入向量中的位置以及对应的标签的位置. 表1 神经网络的训练和测试数据集 图5 给出了TDNN 和TD 方法的邻域检测性能和定位性能,由图可知,随着观察次数K的增加,TDNN 和TD方法的检测性能和定位性能均得到明显提高. 在K=5时,TDNN的检测性能和定位性能相比TD方法有着显著的提升,在虚警概率小于0.4时,TDNN 方法有着较高的检测成功率和较低的虚警概率. 当K=25时,TDNN的检测和定位任务下的ROC 曲线均位于TD 方法的左上方,在虚警概率小于0.2时,TDNN 已经可以提供可靠的检测和定位结果. 显然,在同样的特征提取方式下,使用神经网络来拟合邻域任务下的决策函数具有更好的优势. 图5 TDNN与TD方法的ROC曲线 图6 给出了K=5 时SDNN 和SD 方法的检测和定位ROC曲线. 可以看到,SDNN和SD方法均有着不错的检测和定位性能,在K=5时这2种方法的ROC曲线已经位于图5 中TDNN 和TD 方法ROC 曲线的左上方,例如在虚警概率为0.2 时TDNN 和TD 方法的检测(定位)概率在0.8 左右,而SDNN 和SD 检测(定位)概率均在0.9 以上. 这表明,基于共识的感知算法迭代中的过渡状态确实为准确检测和定位恶意节点提供了更多的有效信息. 图6中,SDNN 的ROC 曲线完全位于SD方法的左上方,在任意虚警概率下,SDNN 方法均有着较好的检测(定位)概率. 这表明本文所提出的SDNN 方法可以显著改善邻域任务下的检测和定位性能. 图6 SDNN与SD方法的ROC曲线 本节测试了神经网络模型在联合学习策略下的性能,参数设置与第4.1 节相同,分别测试了TDNN 和SDNN 这2 种方法的邻域检测性能. 图7~9 中通过对比节点在独立学习和联合学习下的性能,验证联合学习方法的有效性. 独立学习指的是每个节点基于其本地数据训练来本地的模型参数,而不与邻居节点共享模型参数;联合学习指的是节点在训练神经网络模型的过程中,通过与邻居节点分享模型参数促进本地模型的训练. 图7给出了一个简单的联合学习测试场景,即节点存在训练数据不足无法训练出有意义的检测模型. 考虑了曼哈顿网络中的节点2 和节点3,其中节点2 含有充足的训练样本,节点3 本地含有较少的训练数据,测试样本数量设置与表1 相同.TDNN 模型的参数设置与4.1 节相同,观察次数设置为K=5. 图7 中的(a)和(b)子图分别为联合学习和独立学习下的ROC 曲线. 由图可知,在样本数据不足以完成有意义的训练时,独立学习方案下的TDNN在邻域检测任务中的性能表现很差,而联合学习方案下TDNN有着不错的检测性能. 图7 本地训练数据不足时的联合学习和独立学习下的ROC曲线 图8 给出了节点含有不同数量样本情况下的联合学习性能. 考虑了曼哈顿网络中的节点2、节点3 和节点4. 训练样本数量的设置依次增加,分别为200,400和600. 由图8 可知,独立学习方式下各节点由于样本数量设置的不同,其邻域检测性能有着明显的变化,节点4 的性能最好(黄色曲线)、节点3 次之(蓝色曲线),节点2 最差(红色曲线). 联合学习方式下,虽然各节点的检测性能有着相同的趋势,如图8(a)小窗口所示,但节点2 和节点3 仍然有着良好的检测性能. 总的来说,联合学习使节点能够从其邻居节点那里学习到有效模型,在自身模型性能不足的情况下通过合并邻居节点的模型参数能够提高其检测性能.图9给出了SDNN方法在K=1的邻域检测性能,其中“next to”数据是指在恶意节点旁边的正常节点:j∊Ni收集的样本,而“far from”数据是指在远离恶意节点的正常节点:j∉Ni处收集的样本. 考虑了曼哈顿网络中的“next to”(2,3,4 和7)节点以及“far from”(5,6,8 和9)节点. 图9(a)为联合学习(实线)方式以及独立学习(虚线)方式下各节点在“next to”数据下的性能测试. 类似地,图9(b)为联合学习(实线)方式以及独立学习(虚线)方式下各节点在“far from”数据下的性能测试. 由图可知,各节点在联合学习方式下在“next to”或者“far from”均有着相近的检测性能,独立学习方式下各节点的检测性能有着不同的变化. 可以看出,不同类型的节点(“next to”和“far from”)在本地节点局部样本数据存在不一致的情形下也能通过联合学习获得较好的模型性能. 图8 本地训练数据不同时的联合学习和独立学习下的ROC曲线 图9 K=1 时SDNN 方法在联合学习和独立学习方式下的检测性能曲线 本节采用树莓派构建了含9个SU 节点的曼哈顿网络,如图10 所示. 各节点之间通过一个公用WIFI 热点互相连接,通过给树莓派写入分布式共识算法运行的脚本文件,让树莓派模拟网络中的正常节点或者恶意节点. 节点状态的收集以及恶意节点的检测和定位均基于树莓派平台完成,考虑了基于共识协作感知算法下的恶意节点检测和定位,令设备1 为恶意节点. 图10 基于树莓派模拟的9节点曼哈顿认知网络实物图 图11 给出了TDNN 在K=5 和K=25 的邻域检测性能和定位性能. 图中“真实数据”是神经网络模型在树莓派环境下获取样本数据进行训练和测试的性能.“仿真数据”是神经网络模型在MATLAB 环境下模拟感知算法运行得到,然后进行训练和测试的性能. 可以看到,邻域检测任务和定位任务下TDNN 方法在真实数据和仿真数据下ROC 性能几乎没有差别. 图12 给出了SDNN 方法在K=5 时的性能比较.观察可知,SDNN 方法在真实环境和仿真环境下的性能表现极为接近,在K=25 时可以提供较好的检测定位性能. 总的来说,将神经网络模型部署在树莓派上也能很好地工作,并且与仿真环境下的性能表现非常接近. 图11 TDNN的真实性能和仿真性能对比 图12 SDNN的真实性能和仿真性能对比 本文研究了基于共识的分布式频谱感知算法受到数据注入攻击的情形,利用神经网络模型的自动学习能力实现复杂非线性函数的拟合,利用TDNN和SDNN这2种方法检测和定位网络中的恶意SU节点,从而帮助SU网络正确地感知频谱占用情况. 针对网络节点存在训练数据不足及数据分布不一致的问题,本文提出了一种基于Gossip Learning的联合学习策略促进本地神经网络模型的训练.在曼哈顿9节点网络上模拟了分布式频谱感知过程,并对所提方法进行了仿真验证. 与传统的统计分数方法TD和SD相比,基于神经网络的方法能够显著提高攻击者的检测和定位性能. 同时,联合学习策略下各节点能够学习到与全局模型接近的局部模型,具有更好的鲁棒性.3 面向恶意用户的检测和定位方案
3.1 面向恶意节点的邻域检测和定位任务
3.2 基于神经网络的恶意用户检测和定位方法
3.3 面向神经网络模型的分布式联合学习策略
4 仿真分析
4.1 训练和测试参数设置
4.2 恶意节点检测和定位性能分析
4.3 分布式联合学习性能分析
4.4 树莓派模拟下的性能分析
5 结束语