一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种信息物理系统软件致错输入生成方法

2023-01-15 07:51:39 来源:中国专利 TAG:


1.本发明属于软件测试领域,涉及一种信息物理系统(cps)软件测试方法,尤其是涉及一种基于深度强化学习模型的cps软件致错输入生成方法。


背景技术:

2.信息物理系统(cyber physical system,cps)是通过计算元素和物理组件的无缝整合而建立起的工程系统
1.。现如今,cps被广泛应用于安全性至上的领域和重要的城市基础设施中,如自动驾驶汽车、医疗监测、水处理系统和智能电网等
2.。它们在遭受重大破坏后往往会导致严重后果,因此这些系统引起了网络攻击者的极大关注。近年来,已经有大量成功的攻击案例被报道出来
[3-5]

[0003]
cps所面临的巨大威胁激发了cps测试
[6],[7]
、攻击和防御方法
[8-11]
等研究的发展。针对这些研究工作,其中的一个核心问题是生成测试套件来发现cps中的缺陷和漏洞。研究的难点一方面在于cps中的不安全状态通常具有稀疏性,很难到达;另一方面,cps只有接收一组特定的输入序列才能发现其中的故障。造成这些研究难点的原因,一方面在于cps自身属于复杂系统,其内部逻辑结构繁杂;另一方面,部分cps输入动作空间维度较高,巨大的动作空间难以开展有效的致错输入搜索。
[0004]
cps接收动作空间中的动作作为输入,依据内部机制执行动作后生成新的环境状态作为输出。依据动作空间类型划分,cps可以分为离散动作空间cps和连续动作空间cps。对于离散动作空间cps,现有的一些方法采用学习和反馈引导的模糊测试技术
[7],[12]
来探索潜在的cps致错输入。模糊测试技术通过突变来获得离散的cps输入,并通过用历史数据训练
[12]
或用在线观察的数据包加强
[7]
得到的机器学习模型来选择潜在的致错输入,这类方法需要一个预先训练好的模型。针对连续动作空间cps,可将致错输入生成问题纳入优化问题,并采用不同的优化策略。例如,借助模拟退火
[13]
,遗传算法
[14]
,梯度下降
[15]
,交叉熵
[16]
,和高斯回归
[17-19]
等算法来寻找解决方案。yamagata等人
[20]
首次提出使用深度强化学习来搜索致错的输入。他们对三种cps模型的评估结果表明,两种深度强化学习模型(即ddqn模型
[21]
和a3c模型
[22]
),在所有模型上的表现都优于现有的优化方法,但在一个模型上却比随机策略差。
[0005]
考虑到cps有不同的动作空间,即离散的或连续的,而现有的方法都没有同时考虑这两种动作空间类型。模糊测试方法的目标是离散的动作空间,并且需要系统日志或网络数据包来训练一个预测模型,但是这些数据并不总是可用的(例如,第三方cps会对日志和网络数据包保密)。而优化的方法在不同的cps上表现出不稳定的成功率。
[0006]
在强化学习中,可将cps等具有感知与动作的系统作为环境,并通过与环境的交互来训练强化学习智能体搜索最优动作的策略。然而当动作空间维度变得很高时,使用传统的强化学习解决问题会变得比较困难。深度强化学习结合了深度学习的高维信息感知能力与强化学习的决策规划能力,针对高维离散动作的感知与生成这一挑战性任务具有较好的解决能力。ddqn算法和a3c算法是经典的深度强化学习算法,但其仍具有难以主动探索新状
态的缺陷。


技术实现要素:

[0007]
本发明的目的是为了克服现有技术中cps测试领域的不足,针对cps软件输入动作空间类型多样的问题,提供一种基于深度强化学习的cps致错输入生成的方法,该方法针对离散动作空间cps和连续动作空间cps提供一个统一的解决方案,有助于提升cps软件测试的效率与效果。
[0008]
本发明的目的是通过以下技术方案实现的:
[0009]
一种信息物理系统软件致错输入生成方法,包括:
[0010]
s1.给定一个信息物理系统cps作为待测试对象,读取cps的当前状态输出,并根据当前状态输出以及给定cps的输入动作空间,通过深度强化学习智能体产生相应的输入动作;所述深度强化学习智能体包括ddpg模型和rnd模型;
[0011]
s2.将输入动作输入至cps,cps根据输入动作执行相应的内部指令,从而得到下一时刻cps的状态输出;并根据相应的致错阈值判断状态输出是否为致错状态,致错状态指状态输出超出阈值;同时根据下一时刻cps的状态输出计算总奖励;
[0012]
s3.将cps当前状态,输入动作、下一时刻状态输出以及相应的总奖励作为一条数据存入经验回放区;当循环迭代过程中,经验回放区大小超过限定值时,开始训练深度强化学习智能体;使用训练后的深度强化学习智能体继续与cps交互,保持持续训练深度强化学习智能体,直到cps达到目标的致错状态或者超出时间限制。
[0013]
进一步的,所述ddpg模型包括经验回放区单元、动作者单元中和评判者单元;所述动作者单元由估计动作者网络、目标动作者网络、动作者优化器构成,评判者单元由估计评判者网络、目标评判者网络、评判者优化器构成;rnd模型包括预测网络、目标网络、rnd模型优化器;所述估计动作者网络、估计评判者网络、预测网络、目标网络均通过随机生成初始化参数;目标动作者网络是由估计动作者网络完全复制而得,二者网络结构与参数完全一致;目标评判者网络是由估计评判者网络完全复制而得,二者网络结构与参数完全一致。
[0014]
进一步的,所述输入动作空间包括离散动作空间和连续动作空间;针对连续动作空间的cps,使用ddpg模型作为搜索模型生成连续动作空间中的连续空间动作,同时使用rnd模型进一步增强生成致错输入;
[0015]
针对离散动作空间的cps,使用ddpg模型与k最近邻算法结合作为搜索模型,k最近邻算法用于将连续空间动作映射到离散空间动作,实现了对离散空间动作的生成,同时使用rnd模型进一步增强生成致错输入。
[0016]
进一步的,将连续空间动作映射到离散空间动作的过程,包括:
[0017]
(1)深度强化学习智能体中的ddpg模型通过动作者单元中的估计动作者网络直接生成初始连续空间动作;
[0018]
(2)以生成的初始连续空间动作为中心,寻找与之距离最小的k个近邻候选动作形成候选动作集,候选动作集属于离散动作空间;
[0019]
(3)将候选动作集中的k个近邻候选动作分别送入估计评判者网络进行评判,选取得分最高的候选动作作为选定的离散空间动作,以此完成将初始连续空间动作映射到选定的离散空间动作。
[0020]
进一步的,所述总奖励包括外部奖励和内部奖励,外部奖励反映了cps当前所处状态与可能致错的不安全状态之间的距离;内部奖励反映了cps当前所处状态在所有状态中的新颖程度,即尚未被探索到的未知状态的程度。
[0021]
进一步的,所述总奖励的计算公式如下:
[0022]rt
=inr*inw extr*extw[0023]
其中,r
t
表示t时刻的总奖励,inr与extr分别为内部奖励与外部奖励,inw与extw分别为预先设定的内部奖励权重与外部奖励权重;
[0024]
外部奖励extr公式如下:
[0025]
extr=distance(state
cps
,state
limit
)
[0026]
其中,state
cps
与state
limit
分别为cps当前状态与可能致错的不安全状态,distance(
·
)表示两状态间的距离计算函数;
[0027]
内部奖励inr采用rnd模型定义,通过rnd模型设置一个目标网络和一个预测网络,目标网络将观察到的下一状态s
t 1
∈s映射为一个实数其网络参数θn只在起始时做一次随机初始化,而后不再更新;预测网络利用梯度下降法来训练预测网络的参数以最小化和之间的预测误差;采用均方误差计算预测误差以作为内部奖励,公式为:
[0028][0029]
其中,inr为内部奖励,和表示预测网络和目标网络的输出,和θn分别表示预测网络和目标网络的参数,s
t 1
表示下一状态,||
·
||2表示均方误差。
[0030]
进一步的,训练深度强化学习智能体的步骤如下:
[0031]
s301.给定并初始化待测试cps;建立并初始化深度强化学习智能体中的ddpg模型和rnd模型;
[0032]
s302.估计动作者网络根据当前cps状态产生当前时刻动作;将当前时刻动作输入cps,cps接收输入后执行内部指令,输出下一时刻状态;
[0033]
s303.由cps下一时刻状态输出计算外部奖励,并将cps当前时刻状态、外部奖励、cps下一时刻状态送入深度强化学习智能体中;
[0034]
s304.深度强化学习智能体中的rnd模型根据cps下一时刻状态更新预测网络,并计算内部奖励输入到ddpg模型中;
[0035]
s305.根据外部奖励与内部奖励计算总奖励,总奖励连同cps当前时刻状态、当前时刻动作、下一时刻状态形成四元组,四元组作为一条数据加入到经验回放区中;
[0036]
s306.从经验回放区中采样若干四元组形成一次训练的样本,送入ddpg模型的动作者单元与评判者单元中;
[0037]
s307.目标动作者网络生成下一时刻动作,目标评判者网络接收cps下一时刻状态与下一时刻动作,输出评判结果;根据总奖励与该评判结果计算目标q值;
[0038]
s308.评判者优化器通过q梯度来更新估计评判者网络的参数;
[0039]
s309.动作者优化器通过f梯度来更新估计动作者网络的参数;
[0040]
s310.对目标评判者网络和目标动作者网络的参数进行软更新;
[0041]
s311.使用更新后的估计动作者网络生成下一时刻动作,转至步骤s2,直至产生的
输入动作使待测试cps致错,或超过设定的最大迭代次数从而终止迭代。
[0042]
进一步的,所述目标q值包括样本中的当前时刻总奖励及目标评判者网络对下一时刻状态下生成动作优劣的评判;
[0043]
q梯度由目标q值与估计评判者网络对当前动作评判的均方误差作为损失函数求导函数而得;
[0044]
f梯度根据确定性策略梯度定理确定得到;
[0045]
针对目标评判者网络和目标动作者网络参数的软更新,通过估计评判者网络和估计动作者网络参数延迟更新而得;即每过一定训练迭代轮数,将估计评判者网络参数赋值给目标评判者网络参数、将估计动作者网络参数赋值给目标动作者网络以完成更新。
[0046]
本发明还提供一种信息物理系统软件致错输入生成装置,基于所述信息物理系统软件致错输入生成方法,包括:
[0047]
输入动作生成单元,用于产生输入动作并输入至cps;
[0048]
计算单元,用于计算总奖励;
[0049]
训练单元,用于训练深度强化学习智能体。
[0050]
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述信息物理系统软件致错输入生成方法的步骤。
[0051]
还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述信息物理系统软件致错输入生成方法的步骤。
[0052]
与现有技术相比,本发明的技术方案所带来的有益效果是:
[0053]
1.本发明方法由于采用了k最近邻算法将连续空间动作映射到离散空间动作,可以适用于连续动作空间和离散动作空间的cps软件致错输入的生成,适用范围广、准确高效。
[0054]
2.本发明方法由于采用了深度强化学习模型生成cps软件致错输入,可以适用于高维动作空间cps,同时针对较低维度动作空间cps软件的致错输入生成具有兼容性,也有良好的效果。
[0055]
3.本方法在三个具有代表性的cps模拟器(swat、at、ptc)上进行了实验验证,并与现有方法的结果进行了对比。本方法在连续动作空间以及高维离散动作空间上都表现出了更好的性能。本方法可以达到比现有方法更高的成功率,并且可以在更短的时间内获得成功。
[0056]
4.本方法还在针对swat模拟器的验证过程中找到了两个现有方法找不到的攻击。这两个攻击在一个人工标注的攻击测试集中被列出来,而现有的方法并不能成功地找到它们,突显出本发明方法所带来的显著效果。
[0057]
5.现实中存在的cps一般均作为基础设施或关键部件,在相关领域内承担着至关重要的作用,若直接对真实cps进行测试往往会付出较大的代价。而本发明方法既可以针对计算机上可运行的cps模拟器软件进行测试,又具有在真实cps上测试的能力。
附图说明
[0058]
图1为实施例中信息物理系统软件致错输入生成方法的流程示意图。
[0059]
图2为本发明方法的深度强化学习智能体训练流程示意图。
[0060]
图3为本发明方法中通过k最近邻算法从连续空间动作到离散空间动作的映射过程。
[0061]
图4a为在采样间隔为3s的情况下,figcpsd rnd探索lit101上溢和下溢攻击时lit101读数的变化情况,实线为lit101上溢攻击,虚线为lit101下溢攻击。
[0062]
图4b为在采样间隔为3s的情况下,figcpsd和figcpsd rnd探索lit301上溢攻击时lit301读数的变化情况,实线为figcpsd rnd,虚线为figcpsd。
具体实施方式
[0063]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0064]
本实施例提供一种信息物理系统软件致错输入生成方法,见图1,涉及动作空间映射流程(k最近邻算法部分)、总奖励计算流程和深度强化学习智能体训练流程,具体包括以下步骤:
[0065]
s1.给定一个信息物理系统(cps)作为待测试对象,读取cps的当前状态输出,并根据当前状态输出以及给定cps的输入动作空间,通过深度强化学习智能体产生相应的输入动作;深度强化学习智能体包括ddpg模型、rnd模型、经验回放区;
[0066]
s2.将输入动作输入至cps,cps根据输入动作执行相应的内部指令,从而得到下一时刻cps的状态输出;并根据相应的致错阈值判断状态输出是否为致错状态,致错状态指状态输出超出阈值;同时根据下一时刻cps的状态输出计算总奖励;
[0067]
s3.将cps当前状态,输入动作、下一时刻状态输出以及相应的总奖励作为一条数据存入经验回放区;当循环迭代过程中,经验回放区大小超过限定值时,便开始训练深度强化学习智能体;在深度强化学习智能体开始训练后,使用训练后的深度强化学习智能体继续与cps交互,同时继续训练深度强化学习智能体,直到cps达到目标的致错状态或者超出时间限制。
[0068]
具体的,本方法的测试对象是cps,包括其控制系统、通信网络等各个部分。本实施例中cps的真实系统或模拟器软件被视作一个黑盒,只需要一些可以提供传感器和制动器/控制器读数的接口。对于真实的cps系统,需要一个接口来通过网络通信与系统进行交互(用于注入数据和读取系统状态),这种接口通常是用于系统诊断的目的。对于模拟器软件,这一接口可通过软件编程接口实现。
[0069]
cps按照输入的动作空间可以分为离散动作空间cps和连续动作空间cps。前者以安全水处理系统(swat)
[24]
为典型,后者有自动变速器控制器(at)
[25]
和动力系统控制器(ptc)
[26]
等。由于ddpg模型采用了策略梯度来更新,这就限制了ddpg模型产生的动作只能是连续动作空间中的动作,不适用于离散动作空间cps。本方法参考了wolpertinger
[23]
的工作,通过k最邻近算法将连续动作空间动作映射到离散空间动作,使得针对两种动作空间均适用。因此,本方法对待测cps具有普适性,即测试对象可以是任意cps。
[0070]
本实施例中采用k最邻近算法将连续空间动作映射到离散空间动作,算法过程见
图2,cps为待测试的信息物理系统,虚线框内为深度强化学习智能体部分,包括ddpg模型部分和rnd模型部分,具体如下:
[0071]
(1)估计动作者网络生成初始连续空间动作其中n表示动作维度。初始连续空间动作在实数集上有效,这意味着它是连续的。一方面,初始连续空间动作无法直接作为离散动作空间cps的输入;另一方面,所代表的连续空间动作,在离散动作空间中的直接映射不一定是最有效的。
[0072]
(2)在动作空间中,以初始连续空间动作为中心,通过映射寻找与初始连续空间动作最近邻的k个候选动作,候选动作是离散的:
[0073][0074]
其中,为映射函数,表示使距离
·
最小的k个候选动作a,ak表示k个候选动作a组成的候选动作集,为长度为n的实数向量集。
[0075]
(3)将候选动作集ak中的k个候选动作a分别输入估计评判者网络中,根据估计评判者网络输出的评分选取最优的候选动作a作为选定离散空间动作。
[0076]
具体的,深度强化学习中的奖励是所要实现目标的量化表示,是深度强化学习智能体不断完善自己的直接经验来源。本方法待测对象为cps,一方面,寻找cps中的不安全状态被视为直接的测试目标;另一方面,探索cps全新的未知状态有助于不安全状态的寻找,避免在已知状态上过多停留是本测试工作的间接目标。
[0077]
因此,本实施例中的总奖励设计为外部奖励与内部奖励的总和,即外部奖励与内部奖励按照分别给定的系数加权计算后得到最终的总奖励,它将用于深度强化学习智能体中各个神经网络的训练。总奖励的计算公式如下:
[0078]rt
=inr*inw extr*extw[0079]
其中,r
t
表示t时刻的总奖励,inr与extr分别为内部奖励值与外部奖励值,inw与extw分别为内部奖励权重与外部奖励权重。
[0080]
一方面,外部奖励直接反映了cps当前所处状态与可能致错的不安全状态之间的距离,即:
[0081]
extr=distance(state
cps
,state
limit
)
[0082]
其中,state
cps
与state
limit
分别为cps当前状态与可能致错的不安全阈值状态,distance(
·
)表示两状态间的距离计算函数,参数中两状态越接近,函数值越大,反之越小,它将根据不同的环境与任务进行相应的定义。这样一来,方法将对更接近不安全边界的状态施加更多奖励,从而鼓励生成致错输入。
[0083]
另一方面,为了解决cps中不安全状态通常是稀疏的、难以探索的问题,本方法利用rnd模型为深度强化学习智能体定义了内部奖励,从而鼓励深度强化学习智能体对环境中未探索到的状态进行探索。通过rnd模型设计了两个神经网络:一个固定的、随机初始化的目标网络和一个预测网络目标网络将观察到的下一状态s
t 1
∈s映射为一个实数其网络参数θn只在起始时做一次随机初始化,而后不再更新;而预测网络利用梯度下降法来训练它的参数从而最小化n和之间的预测误差。预测误差可以表示状态的新颖性,较高的误差对应较罕见的状态,因为网络会对那些之前探索过的状态或者相似的状态提供更为准确的预测。本实施例用均方误差来计算预测误差
[28]

并通过最大化均方误差来鼓励模型去探索更多未见过的状态。均方误差被广泛用作回归问题中的损失函数,与其他回归问题中的损失函数相比,均方误差对异常数据更加敏感,所以选择均方误差来作为内部奖励。因此,内部奖励的计算公式如下:
[0084][0085]
其中,inr为内部奖励,和表示预测网络和目标网络的输出,和θn分别表示预测网络和目标网络的参数,s
t 1
表示下一状态,||m-n||2表示m与n之间的均方误差,本实施例中m为n为
[0086]
具体的,训练深度强化学习智能体的具体流程见图3,包括:
[0087]
s301.给定一个待测试对象cps,并初始化其起始状态s0。建立ddpg模型中的估计动作者网络和估计评判者网络并使用随机的方式初始化这两个网络的参数θ
π
与θq。将上述两个网络结构与参数复制一份,成为目标动作者网络和目标评判者网络即估计动作者网络与目标动作者网络连同动作者优化器组成ddpg模型中的动作者单元;估计评判者网络与目标评判者网络连同评判者优化器组成ddpg模型中的评判者单元。设立一个空的集合作为经验回放区。动作者单元、评判者单元、经验回放区三者组成ddpg模型。建立rnd模型中的预测网络和目标网络并使用随机的方式初始化这两个网络的参数与θn,这两个网络连同rnd模型优化器组成rnd模型。ddpg模型与rnd模型共同组成深度强化学习智能体。
[0088]
s302.如图3中流程

所示,由当前时刻估计动作者网络产生动作a
t
。针对离散动作空间cps,先使用k最近邻算法将产生的动作a
t
由连续动作空间映射到离散动作空间,而后再输入cps中;针对连续动作空间cps,所生成动作a
t
可直接作为cps的输入。将a
t
输入cps后,cps根据当前时刻状态s
t
和当前时刻输入动作a
t
执行相应的内部指令,得到cps下一时刻状态输出s
t 1

[0089]
s303.如图3中流程

所示,由步骤s2中下一时刻状态s
t 1
通过外部奖励计算公式计算得到外部奖励extr。将cps当前时刻状态s
t
、外部奖励extr、cps下一时刻状态s
t 1
输入到深度强化学习智能体中。
[0090]
s304.如图3中流程

所示,由s3步骤中得到的下一时刻cps状态s
t 1
被输入到强化学习智能体的rnd模型中。rnd模型的预测网络接收s
t 1
作为输入,计算后输出实数值rnd模型的目标网络同样接收s
t 1
作为输入,计算后输出实数值计算上述两个网络输出与的均方误差,rnd模型优化器将该均方误差作为损失函数,通过随机梯度下降法对预测网络的参数进行更新,而目标网络的参数θn保持不变。该均方误差也被作为内部奖励inr输入ddpg模型中。
[0091]
s305.如图3中流程

所示,首先将步骤s3得到的外部奖励extr与步骤s4得到的内部奖励inr加权求和,得到总奖励r
t
;而后将总奖励r
t
连同由步骤s2得到的当前时刻动作a
t
、由步骤s3得到的当前时刻状态s
t
和cps下一时刻状态s
t 1
共同组合成为四元组(s
t
,a
t
,r
t
,s
t 1
),该四元组被作为一条数据存放进经验回放区中。若经验回放区大小超过限定值时,便继续以下步骤训练深度强化学习智能体,否则直接跳转至步骤s2循环迭代。当经验回放区数量已满时,先随机剔除一条旧数据再插入新的四元组数据。
[0092]
s306.如图3中流程

所示,从经验回放区选取若干条四元组数据形成样本n
*
(si,ai,ri,s
i 1
),将样本送入动作者与评判者中。
[0093]
s307.如图3中流程

所示,目标动作者网络接收样本n
*
中下一时刻状态s
i 1
作为输入,输出生成下一时刻的动作。目标评判者网络接收二元组作为输入,输出作为下一时刻状态下生成动作优劣的评判。通过样本n
*
中的总奖励ri与所得到的可计算出目标q值yi。
[0094]
s308.如图3中流程

所示,估计动作者网络接收样本n
*
中当前时刻状态si作为输入,输出生成当前时刻的动作。估计评判者网络接收二元组作为输入,输出作为当前时刻状态si下生成动作优劣的评判。由步骤s7得到的目标q值yi与上述之间的差值可作为损失函数。评判者优化器根据该损失函数指明的q梯度来更新估计评判者网络的参数θq。
[0095]
s309.如图3中流程

所示,依据动作者中的估计动作者网络与步骤s8中更新完成的估计评判者网络来确定策略梯度公式,动作者优化器根据策略梯度公式给出的f梯度信息更新估计动作者网络的参数θ
π

[0096]
s310.如图3中流程

所示,待步骤s8中估计评判者网络与步骤s9中估计动作者网络均更新完毕后,对目标评判者网络与目标动作者网络分别进行软更新。
[0097]
s311.使用更新后的估计动作者网络生成下一时刻动作a
i 1
,转至步骤s2,直至产生的动作输入使待测cps致错,或超过设定的最大迭代次数从而终止迭代。
[0098]
具体的,动作者中的估计动作者网络与目标动作者网络用于生成动作,它们均接收状态s
t
作为输入,输出在当前状态s
t
下最有可能对cps产生致错的动作或评判者中的估计评判者网络与目标评判者网络用于评判某一状态下所做动作对cps产生致错的优劣,它们均接收状态s
t
与动作a
t
作为输入,输出状态s
t
下执行动作a
t
的评价或
[0099]
具体的,目标q值yi的计算一方面依赖当前时刻奖励ri,它考虑当前动作已被cps执行后的致错输入生成现实效果;另一方面依赖下一时刻状态下生成动作优劣的评判它考虑对未来探索致错输入优劣的预测。因此目标q值yi将现实效果与打折后的未来预测效果整合,反映的是当前深度强化学习智能体探索致错输入的处境优劣,其值越大表示越有希望探索到致错输入,反之希望越小。其计算公式为:
[0100][0101]
其中,yi为目标q值,ri为当前时刻总奖励,γ为预设的折扣率,为目标评判者网络输出,s
i 1
为下一时刻状态,为目标动作者网络输出。
[0102]
具体的,估计评判者网络的参数θq通过梯度下降法更新,更新时需要依赖q梯度,q梯度来源于损失函数l(θq)的导函数,损失函数l(θq)被定义为目标q值yi与估计评判者
网络输出之间的差值。目标q值yi反映当前动作执行后基于现实的预测结果,而估计评判者网络输出反映了只通过深度强化学习智能体的预测结果。由于前者引入了现实,应当比后者预测结果更准确。因此,损失函数l(θq)体现了估计评判者网络做评判时与准确评判的距离,从而指导参数θq的更新。损失函数l(θq)公式如下:
[0103][0104]
其中,l(θq)为损失函数,n为样本n
*
中四元组数据的数量,i为样本中第i条四元组数据,∑i·
为在i上求和,yi为目标q值,为估计评判者网络输出,si为当前时刻状态,ai为当前时刻动作。
[0105]
具体的,估计动作者网络的参数θ
π
通过梯度上升法更新,更新时需要依赖f梯度,f梯度是一种确定性策略梯度
[31]
,它的思想是向着性能优化目标的方向更新参数θ
π
,从而使估计动作者网络在生成动作的策略上更优。根据确定性策略梯度定理,计算公式为:
[0106][0107]
其中,表示对该神经网络求梯度,j为性能优化目标,n为样本n
*
中四元组数据的数量,i为样本中第i条四元组数据,∑i·
为在i上求和,为估计评判者网络输出,为估计动作者网络输出,s与a为神经网络输入的状态与动作,si为当前时刻状态,ai为当前时刻动作,f(
·
)|.表示条件求值。
[0108]
具体的,目标评判者网络与目标动作者网络两个目标网络通过软更新来更新参数θq′
和θ
π

。软更新指的是不在每轮迭代训练中更新网络参数,而是采用延迟更新的方法,每当迭代够一定训练轮数时对网络参数进行更新。ddpg模型中目标评判者网络与估计评判者网络结构相同,而更新频率不同。每当训练够一定轮数时,将估计评判者网络的参数θq赋值给目标评判者网络的参数θq′
以更新θq′
。同样的,ddpg模型中目标动作者网络与估计动作者网络结构相同,而更新频率不同。每当训练够一定轮数时,将估计动作者网络的参数θ
π
赋值给目标动作者网络的参数θ
π

以更新θ
π

。因此,目标评判者网络与目标动作者网络的参数θq′
和θ
π

更新公式如下:
[0109][0110]
其中,θq′
和θq分别为目标评判者网络和估计评判者网络的参数,θ
π

和θ
π
分别为目标动作者网络和估计动作者网络的参数,epoch为当前训练迭代的总轮数,period为每过多少轮迭代进行软更新,%为除法取余数。
[0111]
为描述简洁,下述描述过程中将本方法命名为figcps(failure-inducing input generation for cyber-physical systems),即cps软件致错输入生成。更详细地,根据不同的cps输入类型,对本实施例进行了细分:
[0112]
对于连续动作空间cps使用的方法定义为figcpsc(下标c表示连续)。它将基础的
ddpg模型作为搜索模型来生成连续的输入动作。同时使用rnd模型
[27]
进一步增强了figcpsc,从而增加搜索的随机性,并命名为figcpsc rnd。
[0113]
对于离散动作空间cps使用的方法定义为figcpsd(下标d表示离散)。它将基础的ddpg模型与k最近邻算法结合起来作为搜索模型来生成离散的输入动作。同样地,figcpsd rnd是指加入rnd模型的figcpsd。
[0114]
具体的,针对离散动作空间cps和连续动作空间cps,本实施例选择了若干具有代表性的cps模拟器软件进行实施与评估。
[0115]
1.测试对象
[0116]
安全水处理系统(swat)
[24]
作为一个典型的离散动作空间cps,它是一个由新加坡科技与设计大学建立的测试平台,目的是进行网络安全研究。本实施例使用一个python编程语言实现的swat模拟器软件进行测试,该swat模拟器有3个水位传感器(lit),即lit101、lit301和lit401。lit101的读数在500到800之间,而lit301和lit401的读数在800和1000之间。模拟器有26个制动器用于控制模拟器,它们中的每一个都可以被设置为0或1。因此模拟器的输入是一个26位的向量,每一位都对应于一个制动器。模拟器的输出是一个五维向量,由三个水位传感器的读数和两个时间戳组成。
[0117]
针对连续动作空间cps,自动变速器控制器(at)
[25]
是一个由mathworks支持的模拟器软件,作为matlab/simulink实例。at模拟器的输入是油门和刹车的读数,它们是连续值。at模拟器的输出包含三个值,即发动机转速(每分钟转数)、齿轮档位和车辆速度。发动机转速和车辆速度是实数,并且大于或等于0,而齿轮档位是一个取值为g1,g2,g3,g4的离散值。
[0118]
动力系统控制器(ptc)
[26]
是一个由丰田技术中心提供的模拟器软件,它模拟了一个内燃机空气燃料(a/f)比率的控制器。ptc模拟器以连续的踏板角度和发动机速度作为输入,输出是连续的验证测量值以及启动、正常、动力、故障四种离散的ptc操作模式。本实施例选择swat系统的原因是,它的动作空间为26维,是高维离散动作空间的一个代表性的例子。at和ptc作为连续动作空间cps的代表,在相关研究中被广泛采用。
[0119]
对于swat模拟器,不安全的状态是由传感器读数的值决定的。对于at和ptc模拟器,不安全状态定义为违反了文献[20]中的安全属性,at和ptc的安全属性如表1和表2所示。其中,

表示持续满足,

表示最终满足,中括号[]表示在指定的起止时间内,∧表示合取,v表示析取,表示否定,

或表示导致。表1中,ω表示发动机转速,v表示车辆车速,gi表示齿轮档位位于i档。表2中,μ表示控制误差,rise、fall分别为踏板抬起和落下,power、normal表示电源模式和正常模式。
[0120]
表1 at的安全属性
[0121][0122]
表2 ptc的安全属性
[0123]
[0124][0125]
2.奖励计算
[0126]
对于swat,需要对每个传感器(即模拟器中的lit)分别定义奖励计算公式。对于每个传感器,均有两种致错状态,即下溢和上溢。设定s
i 1
表示后一状态传感器的读数,si表示前一状态传感器的读数,ls表示该传感器的安全阈值下限,hs表示该传感器的安全阈值上限。di表示传感器读数与其安全阈值之间的距离,ds表示前后两个状态的传感器读数之间的距离。
[0127]
对于下溢的情况,外部奖励定义如下:
[0128][0129]
其中,对于下溢的情况,距离的计算公式是:di=s
i 1-ls,ds=s
i 1-si。
[0130]
对于上溢的情况,外部奖励的定义如下:
[0131][0132]
其中,对于上溢的情况,距离的计算公式是:di=h
s-s
i 1
,ds=s
i-s
i 1
。针对下溢和上溢,考虑到di与ds通常有着数量级上的差距,设定了100作为系数来平衡di和ds在奖励中
的影响大小。
[0133]
对于at和ptc,采用了yamagata等人的奖励定义
[20]
,根据系统中未来可到达的安全属性的鲁棒性来定义系统的不安全状态,当安全属性被违反时,就认为系统到达了不安全的状态。相应的,外部奖励定义如下:
[0134][0135]
其中,s表示一个有限的状态序列,i表示时刻在离散化后的计数,表示系统的一个安全属性。
[0136]
3.研究问题
[0137]
为了评估本发明方法的性能,针对以下问题进行了实验研究。
[0138]
问题1:对于连续动作和高维离散动作,figcps是否都能有效地生成致错输入?
[0139]
问题2:figcps能否有效地探索所有的不安全状态?
[0140]
问题3:rnd模型是否提高了探索不安全状态的性能?
[0141]
问题4:figcps与现有的方法相比表现如何?
[0142]
第一个问题是衡量本发明方法的通用性,即本发明方法是否能够有效地作用于连续的和高维离散的动作空间。第二个问题是评估本发明方法能够稳定地、快速地探索出多少种不同的不安全状态。第三个问题是衡量rnd模型的有效性。最后一个问题是对本发明方法与现有的方法进行比较,从而横向验证本发明方法的有效性。
[0143]
4.使用figcps进行cps致错输入生成
[0144]
4.1实验设置
[0145]
在一个拥有6核2.9ghz cpu和128g字节内存的计算机上进行实验,软件方面使用了windows10和matlab 2018b。本方法是用python3.5以及tensorflow1.8.0实现的,另外由于真实的cps系统难以直接用于测试实验,所以选择了三个具有代表性的cps模拟器(swat、at、ptc)来进行实验。对于swat模拟器,将探索率、学习率以及内部奖励的系数分别设定为0.3、0.0001、0.00001。对于系统的每一个可能的不安全状态,例如lit101下溢,进行了10次重复实验,从而消除随机性带来的影响。在每次实验中,将最大的迭代次数设定为10次。此外,设置了不同的采样时间间隔(1s、2s、3s),用来观察时间间隔对实验结果造成的影响。对于at模拟器,将探索率、学习率以及内部奖励的系数分别设定为0.3、0.0001、25。对于ptc模拟器,将探索率、学习率以及内部奖励的系数分别设定为0.7、0.0001、0(figcpsc)和0.3、0.0001、25(figcpsc rnd)。这些参数都是基于调参实验的结果最终确定的。对于at模拟器和ptc模拟器的每个安全属性,进行了100次重复实验,每次实验的最大迭代次数设定为200次。
[0146]
4.2实验结果
[0147]
表3列出了在swat模拟器上,figcpsd和figcpsd rnd在不同的采样时间间隔下达到不安全状态的成功率和所需时间。为了消除由初始状态随机性导致的影响,对每个目标的不安全状态重复10次实验,并计算出中位数作为最终的结果。 ∞表示尽管接近了目标的不安全状态,但是没有一次迭代能够使得系统状态超过阈值。从表3可以看出,在3s的采样间隔下,本方法表现出了最稳定的性能。对于lit401上溢,lit101下溢和lit301下溢,本方法在所有的采样间隔下都能达到100%的成功率。而对于lit101上溢、lit301上溢和lit401下溢,本方法在较大的采样间隔下可以达到更高的成功率。一般来说,本方法在对具有高维离
散输入的cps进行致错输入生成方面是有效的。对swat模拟器来说,在采样间隔为3s的情况下,本方法能够以100%的成功率探索到除了lit401下溢以外所有的不安全状态。就执行时间而言,应用本方法可以在几分钟内探索到三个不安全状态,另外两个状态也可以在一小时内探索到。
[0148]
表3对于swat模拟器,在不同采样间隔生成致错输入的成功率和所用时间的中位数
[0149][0150][0151]
表4列出了在at模拟器上采样间隔为1的100次实验中,发现攻击的成功率和所需迭代次数的中位数。表5列出了在ptc模拟器上采样间隔为5的100次实验中,发现攻击的成功率和迭代次数的中位数。其中,-表示未成功产生致错输入,粗体标识出结果表示每个安全属性的最佳结果。从表4和表5可以看出,figcpsc在at模拟器和ptc模拟器上可以达到最高的平均成功率。对于at模拟器和ptc模拟器的大多数安全属性,figcpsc和figcpsc rnd所需要的迭代次数最小。
[0152]
表4对于at模拟器,在采样间隔为1时生成致错输入的成功率和所用迭代次数的中位数
[0153][0154]
表5对于ptc模拟器,在采样间隔为5时生成致错输入的成功率和所用迭代次数的中位数
[0155][0156][0157]
从表3还可以看出,在大多数情况下,figcpsd rnd需要的探索时间比figcpsd更少,并且可以达到比figcpsd更高的成功率。这说明了rnd模型可以提高对于不安全状态的探索性能。然而,表4和表5的结果显示,在at模拟器和ptc模拟器上,figcpsc的表现要优于figcpsc rnd。这是因为在at模拟器和ptc模拟器的状态中,都存在着离散的变量(at:齿轮、ptc:运行模式)。对于这样的变量,需要很长的时间来产生适当的输入。根据文献[27],rnd
模型足以处理局部探索的问题,即探索短期决策的序列,而涉及长时间范围内协调决策的全局探索则超出了rnd模型的适用范围。因此,对于某些需要系统在很长一段时间内保持离散变量不变的属性来说,rnd模型会产生反作用,例如ptc模拟器中的第34条安全属性。
[0158]
表6列出了本发明方法与现有的方法smart fuzz
[12]
在swat模拟器上的结果的对比。 ∞表示的含义与表3中相同。此外参照图4a和图4b,可以看出figcpsd rnd在lit101下溢攻击上的表现与smart fuzz相当,而在lit401上溢攻击和lit301下溢攻击上取得了更好的表现。其中,lit301下溢攻击和lit401下溢攻击,是在swat网络攻击的一个人工标注的基准中被识别出,但是没有被现有的方法成功探索到。而本方法以100%的成功率找到了lit301下溢攻击,并且也探索到了lit401下溢攻击。值得注意的是,smart fuzz需要收集4天的数据来训练预测模型,其中,lstm的训练需要2天,svr的训练需要0.5天。而本方法在线学习策略,将训练过程与搜索过程相结合。所以,本方法需要的时间包含了训练时间与搜索时间。因此,在表6中加入了smart fuzz的训练时间来做对比。
[0159]
表6对于swat模拟器,生成致错输入所用时间的中位数与smart fuzz对比
[0160][0161][0162]
表4和表5中还列出了复现的文献[20]中的方法结果作为对比。从表4中可以看出,本方法对于at模拟器的大多数安全属性,在成功率和迭代次数上都优于其他方法。而表5的结果表示,本方法在ptc模拟器上的表现优于其他方法,其中,figcpsc在大多数属性上都有着最好的表现。而rnd模型也在某些属性上表现出了它的作用,例如ptc模拟器的第32条属性。
[0163]
基于以上实验结果以及分析,对上述研究问题做出回答:
[0164]
问题1:对于具有连续或高维离散输入的cps,本发明方法均可以有效地生成致错输入。
[0165]
问题2:本发明方法可以有效地覆盖不安全状态,表现在较高的成功率以及所用时间或迭代次数方面。
[0166]
问题3:rnd模型通常会提高探索的性能,但对于特定的需要在很长时间范围内保持稳定的不安全状态例外。
[0167]
问题4:本发明方法对于具有连续输入和高维离散输入的cps都有着优于现有方法的表现。特别地,本方法在swat模拟器上成功探索到了两个现有其他方法探索不到的不安全状态。
[0168]
4.3假设检验
[0169]
为了消除实验中随机性的影响,并验证实验结果的可信性,选择对实验结果进行了进一步的统计检测。检测使用相对影响大小的衡量标准
[29]
来对表4和表5中实验的迭代次数进一步检验。两个随机变量x、y之间的相对影响大小衡量标准定义为如下:
[0170][0171]
如果p《0.5,表示x可能比y大,反之亦然。p与cliff’s delta有着密切的关联
[30]
,它是一种影响大小的测量值,用于衡量两组数据之间的差异。相对影响大小的测量是基于序数统计的,根据不同数据集的相对顺序来计算,不需要假设被测数据具有正态分布
[30]
,因此可以适用于本问题。更进一步,检测过程使用假设检验以验证影响大小的测量的显著性
[29]
。将显著性水平设定为0.05,并在本方法与
[20]
中的方法之间进行了多重的比较。
[0172]
表7和表8分别了列出了at模拟器和ptc模拟器的结果的相对影响大小衡量标准p以及假设检验的显著性水平p-value。p是相对影响大小的衡量标准,小于0.5的值(用粗体加下划线标出)表示行中列出的方法优于列中的列出的方法。p-value衡量了p的显著性,小于0.05的值(用粗体标出)表示两组数据之间有着显著的差异。rand表示随机搜索致错输入,ddqn算法与a3c算法为现有的算法。
[0173]
表7 at模拟器实验结果的相对影响大小的衡量以及置信度p-value
[0174][0175]
表8 ptc实验结果的相对影响大小的衡量以及置信度p-value
[0176]
[0177][0178]
从表7可以看出,对于at模拟器,figcpsc分别在6、5、7个属性上明显优于rand、ddqn、a3c,figcpsc rnd分别在6、4、5个属性上明显优于rand、ddqn、a3c。从表8可以看出,对于ptc模拟器,figcpsc分别在5、7、7个属性上明显优于rand、ddqn、a3c,figcpsc rnd分别在3、7、4个属性上明显优于rand、ddqn、a3c。
[0179]
综上,本发明方法能够有效地为cps软件生成致错输入。该方法针对具有连续输入或者高维离散输入的cps,设计了可以适用于这两种类型输入的方法。此外,特别地加入了一种好奇心机制模型——rnd模型,从而提高本方法对于一些罕见的系统状态的探索能力。在三个cps模拟器上对本方法进行实验评估,并与现有的方法(smart fuzz算法、a3c算法、ddqn算法)进行了对比。实验结果表明,本方法能够有效地生成致错输入,能够以较高的成功率覆盖绝大多数目标的不安全状态。此外,本方法在成功率和时间(迭代次数)都优于现有的方法。特别是,本方法成功地在swat模拟器上探索到了两个现有方法探索不到的不安全状态。
[0180]
本技术的实施例还提供能够实现上述实施例中的信息物理系统软件致错输入生成方法中全部步骤的一种电子设备的具体实施方式,电子设备具体包括如下内容:
[0181]
处理器(processor)、存储器(memory)、通信接口(communications interface)和总线;
[0182]
其中,处理器、存储器、通信接口通过总线完成相互间的通信;通信接口用于实现服务器端设备、计量设备以及用户端设备等相关设备之间的信息传输。
[0183]
处理器用于调用存储器中的计算机程序,处理器执行计算机程序时实现上述实施例中的信息物理系统软件致错输入生成方法中的全部步骤。
[0184]
本技术的实施例还提供能够实现上述实施例中的信息物理系统软件致错输入生成方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的信息物理系统软件致错输入生成方
法的全部步骤。
[0185]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件 程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0186]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0187]
虽然本技术提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
[0188]
虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
[0189]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0190]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0191]
本发明并不限于上文描述的实施方式。以上对具体实施方式的描述旨在描述和说明本发明的技术方案,上述的具体实施方式仅仅是示意性的,并不是限制性的。在不脱离本发明宗旨和权利要求所保护的范围情况下,本领域的普通技术人员在本发明的启示下还可做出很多形式的具体变换,这些均属于本发明的保护范围之内。
nonparametric multiple comparisons and simultaneous confidence intervals."journal of statistical software 64.1(2015):1-17.
[0222]
[30]cliff,norman.ordinal methods for behavioral data analysis.psychology press,2014.
[0223]
[31]d.silver,g.lever,n.heess,t.degris,d.wierstra,and m.riedmiller,"deterministic policy gradient algorithms",p.9.
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献