基于社区特征选择的ICPS无监督在线攻击检测方法和设备

    专利查询2022-07-07  183


    基于社区特征选择的icps无监督在线攻击检测方法和设备
    技术领域
    1.本发明属于工业信息物理系统技术领域,具体涉及一种基于社区特征选择的工业信息物理系统无监督在线攻击检测方法和设备。


    背景技术:

    2.近年来,由于计算、通信和物联网等相关技术的进步,信息物理系统(cps)在工业领域得到了迅猛发展,并在石油化工、水利、能源、电力等关键工业领域得到了广泛应用,成为工业信息物理系统(icps)。区别于相对独立的传统工业控制系统(ics),icps中信息空间和物理过程的紧密集成使得高效、节能和弹性的工业生产模式成为可能。然而,随着系统内部部件之间的互联性增加并接入外部网络环境,icps在开放的架构下更容易受攻击。攻击者试图通过网络层或物理层进行渗透,以破坏工艺装置或篡改关键控制器参数,导致闭环控制不稳定,并造成更严重的破坏,如经济利益的巨大损失、系统停机甚至安全人员伤亡等。近年来,针对icps的恶意攻击事件不断增加,造成了巨大的经济损失和严重的社会问题。icps的安全问题受到了前所未有的关注。
    3.在icps安全研究中,攻击检测被视为保护系统免受恶意攻击的重要策略之一,其中最常用的方法是基于监控和数据采集(scada)系统收集的系统数据识别不符合系统预期行为的异常事件检测。近年来,随着机器学习(ml)、深度学习(dl)和强化学习(rl)等技术的迅速发展,大数据分析技术被广泛应用于基于数据驱动的攻击检测研究。事实上,开发基于人工智能算法的异常检测系统的一个重要因素就是找到合适的特征集来表征和描述系统的运行模式。否则,系统中的高通量、高维度数据很可能会导致统计模型出现指数爆炸和维度灾难等问题,也就是说,冗余和不相关的特征的存在不仅会导致模型在训练过程中计算复杂度和处理成本(包括离线训练时间和在线部署效率)的增加,还会导致分类器的性能下降。因此,特征选择是基于数据驱动的攻击检测方法的重点研究课题。
    4.目前,尽管在特征选择方面已经有很多尝试,如粒子群优化、遗传算法和模拟退火,但通过特征选择处理冗余和无关信息仍然存在重大挑战,特别是在系统数据具有极高维度和相关性的工业场景中。事实上,icps的物理层通常是多变量、强耦合的复杂工业过程,系统数据具有不同程度的相关性。具有强过程敏感性的变量通常与其他变量密切相关,属于具有安全敏感性的关键变量,它们可以准确反映系统运行状态,对于系统的异常检测至关重要。因此,如何通过高维数据之间的相关性挖掘数据的潜在特征信息从而实现特征降维,对于基于数据驱动的安全检测研究具有重要的意义。
    5.为了适应在高维数据下工业信息物理系统的安全监测,本专利开发了一种基于社区特征选择和自动编码器的icps无监督在线攻击检测方法。该方法主要分为离线阶段的特征约简和检测模型训练以及在线阶段的攻击检测两个部分。其中,在离线阶段的特征约简中,首先对多源特征数据集构建特征网络并进行网络修剪;然后,基于louvain社区检测方法对特征网络进行自动划分,从而得到多个特征子集;最后,通过构建特征选择优化模型,基于最低误分类率标准得到能够准确表征和描述系统运行的关键特征子集,从而实现特征
    约简。在检测模型训练中,首先构建基于自编码器的攻击检测模型,并采用系统历史正常数据对模型进行训练;然后,基于核密度估计方法对系统历史正常数据计算攻击检测阈值。在在线阶段的攻击检测中,首先对在线流式数据进行特征筛选;然后,把特征选择后的数据样本输入到自编码器分类模型中,得到重构误差;最后,通过比较重构误差与攻击检测阈值实现攻击检测。该方法可以基于系统历史正常运行数据自动提取多源特征间潜在的全局结构信息,从而得到准确表征和描述系统运行的关键特征子集,同时采用深度学习的自动编码器监测系统的运行状态,所提方法可以有效缩减系统数据的特征维度,并提升攻击检测的准确率,可实现在线保护工业信息物理系统运行安全,且能够适应未知攻击或高级可持续威胁,有望解决工业信息物理系统运行安全防护的瓶颈问题。


    技术实现要素:

    6.为了适应在高维数据下工业信息物理系统的安全监测,本发明提供一种基于社区特征选择和自动编码器的icps无监督在线攻击检测方法,可以有效缩减系统数据的特征维度,并提升攻击检测的准确率。
    7.为实现上述技术目的,本发明采用如下技术方案:
    8.一种基于社区特征选择的icps无监督在线攻击检测方法,包括:
    9.特征约简与训练数据获取:根据icps的历史多源特征数集构建特征网络,然后基于社区检测方法对特征网络进行自动划分得到多个特征子集,再基于最低误分类率标准选择最佳特征子集,并将历史多源特征数集的最佳特征子集作为训练数据;
    10.模型训练与攻击检测阈值计算:构建基于自编码器的攻击检测模型,使用训练数据作为输入和输出对攻击检测模型进行训练;然后使用训练好的攻击检测模型对训练数据进行重构进而获取对应的重构误差,再基于核密度估计方法根据重构误差计算攻击检测阈值;
    11.在线攻击检测:实时在线获取icps的多源特征数集,将其最佳特征子集作为在线检测输入数据;然后使用训练好的攻击检测模型对在线检测输入数据进行重构,进而得到对应的重构误差;最终将在线检测输入数据的重构误差与攻击检测阈值进行比较,确定icps当前时刻是否受到攻击。
    12.进一步的,所述多源特征数集是指m个传感器收集的数据;所述历史多源特征数集,包括m个传感器分别收集n个数据;实时在线获取的金源特征数集,包括m个传感器分别收集到的当前时刻的数据。
    13.进一步的,将历史多源特征数集表示为x=[x1,x2,...,xm]∈rn×m,其中xi∈rn, i=1,2,...,m,xi表示第i个传感器收集的n个数据样本,m表示icps的传感器个数;则构建特征网络的方法为:
    [0014]
    步骤a1,定义有权无向图g=(v,e,w)的节点集合为v={xi|i=,1,2,...,m},连边集合为 e={(xi,xj):xi,xj∈v};i,j用于区分不同的传感器节点;
    [0015]
    步骤a2,计算权重集合w={w
    ij
    |i,j=,1,2,...,m},其中w
    ij
    定义为两个传感器节点xi和xj之间的相似性测度,采用皮尔森相关性进行计算,即:
    [0016][0017]
    其中,和分别为向量xi和xj的平均值。因此,得到有权无向图g=(v,e,w)的权重矩阵,即
    [0018][0019]
    步骤a3:定义阈值η,用于对有权无向网络g=(v,e,w)的权重元素进行修剪,即
    [0020][0021]
    由此将有权无向图g转化为无权无向图g
    *
    ,且无权无向图g
    *
    的节点集合 v
    *
    ={xi|i=,1,2,...,m}的连边集合e
    *
    ={(xi,xj):xi,xj∈v
    *
    }表示为连边矩阵:
    [0022][0023]
    其中,表示数据集x=[x1,x2,...,xm]∈rn×m的特征xi和xj之间是否具有强判别性关系,如果有强判别性关系,否则至此,历史多源数据集 x=[x1,x2,...,xm]∈rn×m的特征网络g
    *
    =(v
    *
    ,e
    *
    )构建完毕。
    [0024]
    进一步的,基于louvain社区检测方法对特征网络进行自动划分,具体过程为:
    [0025]
    步骤b1,将特征网络g
    *
    =(v
    *
    ,e
    *
    )中每个传感器节点初始化为一个独立的社区,此时社区的数量与传感器节点数相同;
    [0026]
    步骤b2,对每个节点i,依次尝试把节点分配到其每个邻居节点所在的社区c,并计算社区c在分配前与分配后的模块变化度δq,计算方式为:
    [0027][0028]
    其中σ
    in
    表示社区c内边的权值之和,σ
    tot
    表示与社区c内节点相连的边的权值之和,k
    i,in
    表示社区c内各节点与节点i的边的权值之和,ki表示所有与节点i相连的边的权值之和,m 表示所有边的权重之和;
    [0029]
    步骤b3,记录δq最大的那个邻居节点,如果maxδq>0,则把节点i分配给δq最大的那个邻居节点所在的社区,否则保持不变;
    [0030]
    步骤b4,重复步骤b2-b3,直到所有节点的所属社区不再变化;
    [0031]
    步骤b5,将同一社区内的节点压缩为一个新节点,社区内节点之间的边的权重转
    换为新点的环的权重,社区间的边权重转换为新节点间的边权重;
    [0032]
    步骤b6,重复步骤b1-b5,直到社区不再发生变化,得到社区划分结果ω={c1,c2,...,ck}, c1,c2,...,ck为自动划分得到的k个特征子集。
    [0033]
    进一步的,所述基于自编码器的攻击检测模型,包括编码器和解码器;训练攻击检测模型所采用的损失函数为输入与输出之间的重构误差,即:
    [0034][0035]
    式中,x为攻击检测模型的训练数据,y表示攻击检测模型对训练数据进行重构得到的数据,loss表示重构误差。
    [0036]
    进一步的,基于核密度估计方法根据重构误差计算攻击检测阈值的方法为:
    [0037][0038]
    其中,k(l)表示正定核函数,loss=(l1,l2,...,ln)表示训练数据的重构误差,l泛指重构误差,h表示正平滑参数,表示缩放核函数。
    [0039]
    进一步的,若在线检测输入数据的重构误差大于攻击检测阈值,则判定icps当前时刻受到攻击,否则判定icps当前时刻正常。
    [0040]
    一种电子设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现上述任一项所述的基于社区特征选择的icps 无监督在线攻击检测方法。
    [0041]
    与现有技术相比,本发明的有益效果为:
    [0042]
    本发明主要分为离线阶段的特征约简和检测模型训练以及在线阶段的攻击检测两个部分。其中,在离线阶段的特征约简中,首先对多源特征数据集构建特征网络并进行网络修剪;然后,基于louvain社区检测方法对特征网络进行自动划分,从而得到多个特征子集;最后,通过构建特征选择优化模型,基于最低误分类率标准得到能够准确表征和描述系统运行的关键特征子集,从而实现特征约简。在检测模型训练中,首先构建基于自编码器的攻击检测模型,并采用系统历史正常数据对模型进行训练;然后,基于核密度估计方法对系统历史正常数据计算攻击检测阈值。在在线阶段的攻击检测中,首先对在线流式数据进行特征筛选;然后,把特征选择后的数据样本输入到自编码器分类模型中,得到重构误差;最后,通过比较重构误差与攻击检测阈值实现攻击检测。该发明可以基于系统历史正常运行数据自动提取多源特征间潜在的全局结构信息,从而得到准确表征和描述系统运行的关键特征子集,同时采用深度学习的自动编码器监测系统的运行状态,所提方法可以有效缩减系统数据的特征维度,并提升攻击检测的准确率,可实现在线保护工业信息物理系统运行安全,且能够适应未知攻击或高级可持续威胁,有望解决工业信息物理系统运行安全防护的瓶颈问题。
    附图说明
    [0043]
    图1是本发明实施例所述方法的流程图;
    [0044]
    图2是本发明实施例所述方法中基于自编码器的攻击检测模型。
    具体实施方式
    [0045]
    下面对本发明的实施例作详细说明,本实施例以本发明的技术方案为依据开展,给出了详细的实施方式和具体的操作过程,对本发明的技术方案作进一步解释说明。
    [0046]
    本实施例提供一种基于社区特征选择的icps无监督在线攻击检测方法,主要包括三个步骤:特征约简、模型训练、在线攻击检测,其中前两个步骤属于离线运行阶段,最后一个步骤属于在线运行阶段。
    [0047]
    在第一步中,首先对多源特征数据集构建特征网络并进行网络修剪;然后,基于louvain 社区检测方法对特征网络进行自动划分,提取多源特征间潜在的全局结构信息,从而得到多个特征子集;最后,通过构建特征选择优化模型,基于最低误分类率标准得到能够准确表征和描述系统运行的关键特征子集,从而实现特征约简。在第二步中,首先构建基于自编码器的攻击检测模型,并采用系统历史正常数据对模型进行训练;然后,基于核密度估计方法对系统历史正常数据计算攻击检测阈值。在第三步中,首先对在线流式数据进行特征筛选;然后,把特征选择后的数据样本输入到自编码器分类模型中,得到重构误差;最后,通过比较重构误差与攻击检测阈值实现攻击检测。算法流程如图1所示。
    [0048]
    二、离线阶段:特征约简 模型训练
    [0049]
    考虑到实际工业过程,假设本专利已经从m个传感器分别收集到n个数据样本,并且将数据集整体表示为x=[x1,x2,...,xm]∈rn×m,其中xi∈rn,i=1,2,...,m。首先对数据集构建特征网络,步骤如下。
    [0050]
    第1步,按照算法1构建数据集的特征网络。
    [0051]
    [0052][0053]
    通过算法1,本发明可构建数据集x=[x1,x2,...,xm]∈rn×m的特征网络g
    *
    =(v
    *
    ,e
    *
    ),为基于社区检测的特征选择方法提供网络结构。本发明将在下一步将对特征网络g
    *
    =(v
    *
    ,e
    *
    ) 进行合理的社区检测并划分,得到多个特征子集。
    [0054]
    第2步,按照算法2基于louvain社区检测算法进行特征网络划分。
    [0055]
    [0056][0057]
    通过算法2,本专利可得到原数据集x=[x1,x2,...,xm]∈rn×m经过社区检测后得到的特征子集ω={c1,c2,...,ck}。为进一步选择可表征和描述系统准确运行模式的最优特征子集,需要进一步构建如下基于最低误分类率标准的优化模型以选择最佳特征子集,即
    [0058][0059]
    st.c
    *
    ∈{c1,c2,...,ck}
    [0060]
    其中,φ
    normal
    (
    ·
    )表示基于正常数据特征集计算误分类率的统计函数模型。通过优化上述模型得到最优特征子集。
    [0061]
    第3步,训练基于自编码器的攻击检测模型。由于异常样本在实际场景中难以获取,因此本发明将攻击检测问题转化为一分类问题,即根据系统正常运行条件提取系统的正常运行模式,并通过监测系统实际运行过程中的偏差判断是否处于潜在攻击之下。检测模型离线训练过程主要包括以下步骤:
    [0062]
    首先,如图2所示,基于自编码器模型构建编码层和解码层,即
    [0063]
    h=f(x)=sf(wx b)
    ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
    (7)
    [0064]
    y=g(h)=sg(w
    t
    h b
    t
    )
    ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
    (8)
    [0065]
    其中,w∈rm×n和b∈rm分别代表编码器和解码器的权重矩阵和偏置向量,sf(
    ·
    )和sg(
    ·
    ) 分别表示编码层和解码层的激活函数。
    [0066]
    其次,在输入和重构输出之间构建重构误差,定义为
    [0067][0068]
    在公式(9)中以自编码器重构误差为损失函数训练自编码器模型。
    [0069]
    第4步,计算攻击检测阈值。为了在测试阶段判别异常样本,使用非参数统计方法—核密度估计(kde)在历史正常数据集中计算检测阈值如下
    [0070][0071]
    其中,k(l)表示正定核函数,loss=(l1,l2,...,ln)表示训练数据的重构误差,h表示正平滑参数,表示缩放核函数。
    [0072]
    三、在线攻击检测
    [0073]
    在离线学习阶段,本发明可得到最优特征子集标准、自编码器攻击检测模型以及攻击检测阈值。接下来,需要进行在线攻击检测,这个过程主要包括以下步骤:
    [0074]
    第1步,基于最优特征子集标准对测试数据x
    t
    =[x
    1t
    ,x
    2t
    ,...,x
    mt
    ]∈rm进行特征筛
    选,得到关键变量集合
    [0075]
    第2步,将关键变量集合输入至自编码器攻击检测模型,得到重构误差err。
    [0076]
    第3步,将重构误差err与攻击检测阈值thr进行比较,以确定测试数据是否正常。即,测试数据重构误差大于阈值thr,则测试数据判断为系统当前时刻受到攻击;否则,测试数据判断为系统当前时刻正常。
    [0077]
    综上所述,本发明提出了一种基于社区特征选择的工业信息物理系统半监督在线攻击检测方法,可以基于系统历史正常运行数据自动提取多源特征间潜在的全局结构信息,从而得到准确表征和描述系统运行的关键特征子集,同时采用深度学习的自动编码器作为分类器,将异常检测问题转化为一分类问题,通过监测系统当前运行模式的偏离程度进行攻击检测。本发明可以有效降低系统监测数据的特征维度,从而进行准确的攻击异常检测。
    [0078]
    本发明可以应用于监测工业信息物理系统的运行状态,该方法无需过程先验知识,无需过程的标签数据,有效缩减系统数据的特征维度,能够避免人工智能算法在处理高维数据过程中面临的维度灾难和数据不平衡问题,能够准确的监测系统的运行状态并对攻击样本进行检测,提升攻击检测的准确率,实现在线保护工业信息物理系统运行安全,且能够适应未知攻击或高级可持续威胁,有望解决工业信息物理系统运行安全防护的瓶颈问题。
    [0079]
    以上实施例为本技术的优选实施例,本领域的普通技术人员还可以在此基础上进行各种变换或改进,在不脱离本技术总的构思的前提下,这些变换或改进都应当属于本技术要求保护的范围之内。
    转载请注明原文地址:https://tc.8miu.com/read-767.html

    最新回复(0)