斯塔克伯格博弈模型
斯塔克伯格博弈阐述了处于不平等竞争关系的参与者之间的博弈过程。其中占优一方称为leader,弱势的一方称为follower。两者之间的博弈是按次序进行的。在博弈过程中,由leader先选择自己的策略,之后follower根据leader的策略选择自己的最优策略。leader在做出自己的决策时自然而然地会将follower对自己所作决策的反应考虑在内,因此leader在选择自己的最优策略时会以follower的反应函数作为约束条件。从上面的讨论中可以看出,斯塔克伯格博弈模型是一个两阶段的完全信息动态博弈。
举个例子
假设厂商1和厂商2的产量分别为\(p_1\) 和 \(p_2\),市场反需求函数为\(q=a-b(p_1+p_2)\)。两个厂商的生产成本均为\(C\)。厂商1为leader。
则厂商2的利润函数为:
对\(p_1\)求导可得利润最大化条件是:
得反应函数为:
该反应函数将作为后续厂商1决定最优产量的约束条件。
厂商1的利润函数为:
将$$p_2={\frac 1 {2b}}(a-bp_1-C)$$代入上式并求导可得:
所以厂商1利润最大化的产量为:$$p_1={\frac {a-c}{2b}}$$
同理可求得厂商2利润最大化的产量为:
此时博弈达到均衡。
斯塔克博客在CCS安全中的应用
节选自TII的一篇论文,只介绍相关背景以及斯塔克伯格博弈部分。
论文名称:
Stackelberg-Game-Based Defense Analysis Against Advanced Persistent Threats on Cloud Control System.
作者:
Huanhuan Yuan,Yuanqing Xia,Jinhui Zhang,Hongjiu Yang,Magdi S. Mahmoud
论文链接(IEEE Xplore):
Stackelberg-Game-Based Defense Analysis Against Advanced Persistent Threats on Cloud Control System | IEEE Journals & Magazine | IEEE Xplore
关键字:Advanced persistent threats (APTs), cloud control system (CCS), security as a service, Stackelberg game.
背景介绍
CCS即云控制系统,在传统控制系统的基础上加上云计算、大数据处理以及人工智能等新技术而产生的一种新的控制系统。将传感器获取的的海量数据通过上行链路传输到云端,利用云端强大的计算以及存储能力对大数据进行分析、存储、决策、控制等,并将自动形成的控制信号通过下行链路传递给被控对象,从而实现自主智能的控制。
APT(advanced persistent threat)攻击,即高级可持续攻击。是一种高隐蔽性,高针对性的攻击,攻击者通常会采取多种攻击阶段并且提前研究目标系统的防御策略,因此防范此类型的攻击比较困难。
security as a service:即安全即服务,一切皆服务(XaaS)是一个统称,代表 “X as a service”、“anything as a service”或“everything as a service” 。这一缩写指越来越多地通过互联网提供的服务,而不仅仅指本地或现场服务。云计算的本质就是XaaS。
瓦尔德准则(Wald's maximin model):悲观准则亦称“小中取大准则”、“瓦尔德准则”和“保守决策准则”。一种决策方法。其基本思想是假定决策者从每一个决策方案可能出现的最差结果出发,且最佳选择是在最不利的结果中选择最有利的结果。其决策步骤为:(1)求出每个方案在各种自然状态下的最小效益值。(2)求各最小效益值的最大值。(3)最大值对应的行动方案即为所求。
该论文研究如何使用斯塔克伯格博弈模型来分析在CCS的云服务器中防御者和攻击者之间的博弈过程。
防御和攻击博弈设置
如图所示plant1-M表示本地被控对象,sever1-M表示云端的服务器,两者不一定是一一对应关系。Defender表示防御者,Attacker表示攻击者。且假设攻击者可以提前知晓防御者的防御策略。
本文中涉及到最优控制理论,非本人专业领域,因此只关注攻击者与防御者之间博弈过程的分析。
A.攻击模型以及防御模型设置
实际情况下,需要考虑防御者和攻击者的资源预算有限的情况,此时,防御者和攻击者都需要考虑如何采取策略才能使自己的利益最大化。
防御模型
分配给 severi 的防御策略表示为 \(\xi_i\)。 CCS的防御策略可以用如下的向量表示:
其中, $$0\le\xi\le\xi^{max}, i \in M$$
这样一个防御计划的总成本为:$$C_d=1^T \cdot \vec\xi$$
攻击模型
假定攻击者可以利用在每个服务器的固定投资g,但是因为设备设备受限,因此攻击者在同一时刻智能够破坏\(R,R<M\)个服务器单元。攻击者的攻击策略可以用以下向量表示:$$\vec\gamma=[\gamma_1,\gamma_2,...\gamma_M]^T$$ 其中, $$\gamma_i \in {0,1},i \in M$$
当\(\gamma_i=0\)时表示severi没有受到攻击。直观的说,对服务器i的防御投资为\(\xi_i\)且受到攻击时(即\(\gamma_i=1\))的情况下,数据包能够成功传输到被控对象\(i\)的可能性\(\rho_i\)对\(\xi_i\)是单调递增的。\(\rho_i\)可以用函数\(f(\cdot):R^+\cup\{0\} \to R^+\cup\{0\}\)表示。即,$$\rho_i=f_i(\xi_i),f_i(0)=0$$函数\(f_i(\cdot),i \in M\)的选取由服务器的配置以及被控对象的特性决定,该函数被定义为防御者的奖励。
如果攻击者没有对severi发动攻击,即\(\gamma_i=0\),则CCS中被控对象i的包传输率\(\rho_i=c_i\),这是一个不随\(\xi_i\)变化的常量,且满足$$c_i>f_i(\xi_i) \forall0\le\xi_i\le\xi_i^{max} \forall i \in M$$
备注:本文在安全策略设计中并没有分析最优控制系统的成本函数\(J_i^*\),而是将云的Qos即包传输率\(\rho_i\)作为防御者的奖励。因为根据Monte-Carlo模拟,被控对象的成本值随着传输可能性的增大而减小。
B.博弈设置
防御者的目标是最大化包传输率,并将防御策略的整体代价考虑在内,因此防御者的收益函数为:
其中,\(R_d=(\vec 1-\vec\gamma)^T\vec c+\vec\gamma^T\vec f(\vec\xi)\)是服务器i是或否受攻击情况下的奖励函数。\(\beta\)是一个反应防御者偏好的权重参数。防御者采取的动作取自集合\(A_d=[\vec0,\vec\xi^{max}]\)。\(\vec c=[c_1,c_2...,c_M]^T\)是被控对象未受攻击时的包传输率。
攻击者的目标是最小化包传输率,因此攻击者的收益函数为:
文中提出假设,收益函数\(u_a(\vec\xi,\vec\gamma)\)随着策略\(\vec\gamma\)是递增的。简单证明如下:
攻击者的收益函数:
而\(\vec c-\vec f(\vec\xi)\ge\vec0\),由此推断出\(u_a(\vec\xi,\vec\gamma)\)随着\(\vec\gamma\)递增。递增的意思是指,攻击者同时攻击的服务器数量越多,则其收益最大。前面我们说过,攻击者最多可以攻击\(R\)个主机,因此可知,攻击者在最大化自己的收益的考量下,必然会同时攻击\(R\)个服务器。而从\(M\)个服务器选出\(R\)个服务器有\(C_M^R\)中可能。每一种可能都是攻击者可以选择的攻击动作,因此可得攻击者的动作集合如下:
其中,\(L=C_M^R,\vec\gamma\in A_a,l\in\{1,2,3,...,L\}\)
再假设先采取行动的防御者不知道攻击者的策略,而攻击者可能部分或者完全了解防御者的策略。考虑攻击者完全知晓防御者防御策略的最坏的情况。使用斯塔克伯格博弈模型来分析防御者与攻击者之间的博弈过程,其中防御者是leader,攻击者是follower。
斯塔克伯格博弈过程分析
防御者和攻击者的决策是按顺序进行的。首先CCS中的防御者先给出防御策略,之后攻击者观察现有的防御策略选择攻击策略以求对CCS造成最大的破坏。在给定防御\(\vec\xi\)的情况下,攻击者的最优策略可以通过下式计算得出:
然后,防御者根据给定的\(\vec\Gamma(\vec\xi)\)选择最佳策略\(\xi^*\)来最大化其收益,用以下公式表达:
观察防御者的收益函数和攻击者的收益函数,可以得到下列等式:
由此,CCS的斯塔克伯格博弈过程可以转化为求解下式:
利用瓦尔德决策准则(理解下式的关键),上式等价于:
亦即等价于:
若令$$\vec F(\vec\xi)=[F_1(\vec\xi),F_2(\vec\xi),...,F_L(\vec\xi)]^T$$ 其中$$ F_l(\vec\xi)=\sum_{i=1}^M(\gamma_{l,i}f_i(\xi_i)-\beta\xi_i) \forall l\in {1,2,...,L}$$
令$$\vec B=[B_1,B_2,...,B_L]^T$$
其中,$$B_l=(\vec1-\gamma_l)^T\vec c \forall l\in {1,2,...,L} $$
因此,上式可以写成:
得到\(\xi^*\)之后,攻击者的最优决策由下式计算得出:
另外,根据函数\(f(\cdot)\)满足对的条件,在这儿可取其为:
其中\(c_i\gt0,b_i\gt0\)是跟设备i特性相关的额两个参数。在此情况下,
防御资源有限以及同时被保护的服务单元数量受限的拓展情况
A.有限防御资源约束的情况
若防御者的总预算为\(\Omega\),在防御者的收益函数中不考虑投资成本的惩罚项是合理的,即\(\beta=0\)。由此可得,有限防御资源\(\Omega\)下最优的防御资源分配\(\xi^*\)可以通过求解下式得到:
其中,$$ \vec F_l(\vec\xi)=\sum_{i=1}^M\gamma_{l,i}f_i(\xi_i)$$
上式在固定防御约束\(\Omega\)下最大化辅助变量\(\rho\)等价于固定值约束下最小化变量\(\Omega\)。
消除辅助变量\(\Omega\),上式等价于:
在此,参数\(\rho\)可以被看作CCS所需Qos的最低要求。如何在固定的防御预算\(\Omega\)的情况下估计相应的参数\(\rho\)估计。可以由下式确定:
其中,$$\hat b_\gamma=\max_{l\in{1,2,...,L}}\min_{i\in M}\gamma_{l,i}f_i$$
\(\rho\)的值可以根据上述不等式和多个实验来选择。另一方面,在给定性能需求\(\rho\)的情况下,如果最小的防御成本\(\vec1^T\vec\xi^*\)大于可用的预算\(\Omega\),这意味着理想的性能无法达到。
A.受保护的服务器数量受限的情况
考虑受保护的服务单元的数量是有限的情况。直观来说,受保护的服务单元越多,CCS的系统性能就越容易达到。换句话说,如果更多的服务单元被保护,那么达到预定系统性能所需要的防御投资就越少。
设置一个二元变量\(\theta_i\in\{0,1\}\)表示服务单元i是否受到保护。不同情况下防御者对服务单元i的奖励函数如下所示:
Defense \(\theta_i=1\) | No defense\(\theta_i=0\) | |
---|---|---|
Attack\(\gamma_i=1\) | \(f_i(\xi_i)\) | 0 |
no attack\(\gamma_i=0\) | \(c_i\) | \(c_i\) |
在此基础上,通过求解下式获得防御者的最优策略。
其中,$$ \vec F(\vec\xi,\vec\theta)=[F_1(\vec\xi,\vec\theta),F_2(\vec\xi,\vec\theta),...,F_L(\vec\xi,\vec\theta)]^T$$
上述式子可证明是一个凸混合整数问题。
之后找到最优的攻击策略\(\gamma^*\)如下:
其中,$$u_a(\vec\xi,\vec\theta,\vec\gamma)=-\vec F(\vec\xi,\vec\theta)-\vec B$$
文中使用GBD(generalized benders decomposition)方法来求解上述的混合整数问题。使用GBD方法上述的凸混合整数优化问题可以分为:
整数规划主问题:只考虑整数变量和整数约束。$$\min_{\vec\theta\in{0,1}^M,\overline B\in R}\overline B$$
子问题:给定整数变量的值,以求取连续变量的值。$$\min_{\vec\xi\in A_d}\vec1^T\vec\xi$$
可行性检验问题:当上述子问题不可行时,使用可行性检验问题来更新子问题的约束。$$\min_{\vec\xi\in A_d,\tau\in R^+}\tau$$
其中,$$L(\vec\xi,\vec\theta,\vec\lambda)=\vec1^T \vec\xi+\vec\lambda^T(\rho\vec1-\vec F(\vec\xi)-\vec B)$$
是(21)的拉格朗日函数。\(u\)是求解(24)拉格朗日对偶问题的乘子。
求解上述问题的流程图:
其中,ℵ是一个足够大的常量,\(\epsilon\)是一个表示迭代精度的足够小的常量。\(I^{(k)},J^{(k)}\)是带有迭代步骤的两个元素的集合。
结果验证
策略研究
以具有下表中所给参数的3个访问代理组成的CCS为例去验证针对APT的防御策略的性能。
parameter | \(A_i\) | \(B_i\) | \(b_i\) | \(c_i\) |
---|---|---|---|---|
Plant 1 | \(\begin{bmatrix}1.7&-1.3 \\ 1.6&-1.8 \\ \end{bmatrix}\) | \(\begin{bmatrix}1.0 \\ 2.0\\ \end{bmatrix}\) | 1.8 | 0.98 |
Plant 2 | \(\begin{bmatrix}1.8&-1.4 \\ 1.8&-1.9 \\ \end{bmatrix}\) | \(\begin{bmatrix}1.7 \\ 3.4\\ \end{bmatrix}\) | 1.9 | 0.93 |
Plant 3 | \(\begin{bmatrix}1.4&-1.1 \\ 1.3&-1.5 \\ \end{bmatrix}\) | \(\begin{bmatrix}0.8 \\ 1.6\\ \end{bmatrix}\) | 1.6 | 1 |
3个代理访问同一个云,并且被分配给不同的服务单元去收集、处理数据,并为每个代理产生控制信号。在上述情况中,假设攻击者同时只能攻击两个服务单元。
此时$$A_d={[1,1,0]^T, [0,1,1]^T ,[1,0,1]^T}$$
假设代理i的奖励函数为\(f_i(\xi_i)=c_i(1-e^{-b_i\xi_i})\forall i\in\{1,2,3\}\),该函数系数已有上表给出,并且设置\(\xi_1^{max}=\xi_2^{max}=\xi_3^{max}=3\)。
下图展示了防御者的全部投资在参数\(\beta\)和\(b\)的影响下的变化情况,在此假定\(b=b_1=b_2=b_3\)。
从上图中我们可以看到,当\(\beta\)接近1而\(b\)接近0时,总投资接近于零,表示当代价高收益小的时候防御者不太乐意去投资。反之,当\(beta\)接近零而\(b\)较大时,表示不需要投入太多资金来实现高效用,从而降低成本。
最后,为了研究受保护单元受限的影响,论文假设CCS系统中有5个代理。攻击者能同时攻击4个服务单元。此时,攻击者的策略如下:$$A_a={[1,1,1,1,0]^T , [1,1,1,0,1]^T , [1,1,0,1,1]^T , [1,0,1,1,1]^T , [0,1,1,1,1]^T}$$奖励函数\(f_i\forall i\in\{1,2,3,4,5\}\)的系数如下:$$b_1=1.8,b_2=1.9,b_3=1.6,b_4=1.5,b_5=1.6$$
下表呈现了在不同受保护单元数量\(\Theta\)和预期性能\(\rho\)条件下最优策略对应的防御投资。
\(\Theta=5\) | \(\Theta=4\) | \(\Theta=3\) | \(\Theta=2\) | \(\Theta=1\) | |
---|---|---|---|---|---|
\(\rho=1\) | 0.0619 | 0.0619 | 0.0619 | 0.0619 | 0.0619 |
\(\rho=2\) | 0.9677 | 1.056 | 1.3414 | n/a | n/a |
\(\rho=3\) | 2.3168 | 2.8997 | n/a | n/a | n/a |
\(\rho=4\) | 4.8348 | n/a | n/a | n/a | n/a |
从表中得知,受保护单元越多,达到预期性能所需要的投资越少。