||
《安全通论》(7)
------黑客篇之“战术研究”
杨义先,钮心忻
北京邮电大学信息安全中心
摘要:本文精确地描述了黑客的静态形象,即,黑客可用一个离散随机变量X来描述,这里X的可能取值为{1,2,…,n},概率Pr(X=i)= pi,并且,p1+p2+…+pn=1。此外,还给出了在一定假设下,黑客的最佳动态攻击战术,即,当黑客的资源投入比例为其静态概率分布值时,黑客的“黑产收入”达到最大值。特别是,在投入产出比均匀的前提下,黑客X的熵若减少1比特,那么,他的“黑产收入”就会翻一倍,换句话说,若黑客X的熵H(X)越小,那么,他就越厉害,他能够通过攻击行为获得的“黑产收入”就越高!
(一) 前言
如果说安全的核心是对抗,那么,在对抗的两个主角(攻方与守方)中,攻方(黑客)又是第一主角,因为,红客(守方)是因黑客(攻方)而诞生的。所以,很有必要对黑客,特别是他的攻击策略,进行更深入的研究。
广义地说,系统(或组织)的破坏者,都统称为“黑客”。他(它)们以扰乱既有秩序为目的。因此,癌细胞、病菌、敌对势力、灾难、间谍等都是黑客。但是,为了聚焦,本文以常言的“网络黑客”为主要研究对象,虽然这里的结果和研究方法其实适用于所有黑客。
黑客的攻击肯定是有代价的,这种代价可能是经济代价、政治代价或时间代价。同样,黑客想要达到的目标也可能是经济目标、政治目标或时间目标。因此,至少可以粗略地将黑客分为经济黑客、政治黑客和时间黑客。
经济黑客:只关注自己能否获利,并不在乎是否伤及对方。有时,自己可以承受适当的经济代价,但是,整体上要赢利。赔本的买卖是不做的,他们肯定不是“活雷锋”。因此,经济黑客的目标就是:以最小的开销来攻击系统,并获得最大的收益。只要准备就绪,经济黑客随时可发动进攻。
政治黑客:不计代价,一定要伤及对方要害,甚至有时还有更明确的攻击目标,不达目的不罢休。他们随时精确瞄准目标,但是只在关键时刻,才“扣动板机”。最终成败取决于若干偶然因素,比如,目标突然移动(红客突然出新招)、准备不充分(对红客的防御情况了解不够)、或突然刮来一阵风(系统无意中的变化)等。
时间黑客:希望在最短的时间内,攻破红客的防线,而且,使被攻击系统的恢复时间尽可能地长。
从纯理论角度来看,其实没必要去区分上述三种黑客。下面为了形象计,也为了量化计,我们重点考虑经济黑客,即,黑客想以最小的经济开销来获取最大的经济利益。
(二)黑客的静态描述
先讲一个故事:我是一个“臭手”,面向墙壁射击。虽然,我命中墙上任一特定点的概率都为零,但是,只要板机一响,我一定会命中墙上某点,而这本来是一个“概率为零”的事件。因此,“我总会命中墙上某一点”这个概率为1的事件,就可以由许多“概率为零的事件(命中墙上某一指定点)”的集合构成。
再将上述故事改编成“有限和”情况:我先在墙上画满(有限个)马赛克格子,那么,“我总会命中某一格子”这个概率为1的事件,便可以由有限个“我命中任何指定格子”这些“概率很小,几乎为零的事件”的集合构成。或者,更准确地说,假设墙上共有n个马赛克格子,那么,我的枪法就可以用随机变量X来完整地描述:如果我击中第i(1≤i≤n)个格子的事件(记为X=i)的概率pi,那么,p1+p2+…+pn=1。
现在,让黑客代替“我”,让(有限)系统代替那面墙。
安全界有一句老话,也许是重复率最高的话,说:“安全是相对的,不安全才是绝对的”。可是,过去大家仅将这句话当成“口头禅”,而没有意识到它其实是一个很重要的公理:
安全公理:对任何(有限)系统来说,安全都是相对的,不安全才是绝对的,即,“系统不安全,总可被黑客攻破”这个事件的概率为1。
根据该安全公理,我们可知,虽然黑客命中“某一点”(攻破系统的指定部分)的概率虽然几乎为零,但是,黑客“击中墙”(最终攻破系统)是肯定的,概率为1。
黑客可以有至少两种方法在“墙上”画马赛克格子:
画马赛克格子的第一种办法:锁定目标,黑客从自己的安全角度出发,画出系统的安全经络图(见参考文献[1]),然后,以每个“元诱因”(或“穴位”)为一个“马赛克格子”。假如,系统的安全经络图中共有n个“元诱因”,那么,黑客的(静态)攻击能力就可以用随机变量X来完整地描述:如果黑客摧毁第i(1≤i≤n)个“元诱因”,记为X=i,的概率为pi,那么,p1+p2+…+pn=1。
这种“元诱因马赛克画法”的根据是:在文献[1]中,已经知道,系统出现不安全问题的充分必要条件是某个(或某些)“元诱因”不安全。
“元诱因马赛克”的缺点是参数体系较复杂,但是,它的优点很多,比如,可以同时适用于多目标攻击,安全经络可以长期积累、永远传承等。根据安全经络图,我们可知:“安全”同时具有“波”和“粒子”的双重性质,或者说,具有“确定性”和“概率性”两种性质。更具体地说,任何不安全事件的“元诱因”的“确定性”更浓,而“素诱因”和“素事件”的“概率性”更浓。充分认识安全的波粒二象性,将有助于深刻理解安全的实质,有助于理解《安全通论》的研究方法和思路。
画马赛克格子的第二种办法:经过长期准备和反复测试,黑客共掌握了全部n种可能攻破系统的方法,于是,黑客的攻击能力可以用随机变量X完整地描述为:当黑客用第i种方法攻破系统,记为X=i(1≤i≤n),的概率为pi,这里,p1+p2+…+pn=1,0<pi<1(1≤i≤n)。
说明:能够画出这“第二种马赛克格子”的黑客,肯定是存在的,比如,长期以“安全检测人员”这种红客身份掩护着的卧底,就是这类黑客的代表。虽然,必须承认,要想建立完整的武器库,即,掌握攻破系统的全部攻击方法,或完整地描述上述随机变量X,确实是非常困难的,但是,从理论上看是可行的。
当然,也许还有其它方法来画“马赛克格子”,不过它们的实质都是一样的,即,黑客可以静态地用一个离散随机变量X来描述,这里X的可能取值为{1,2,…,n},概率Pr(X=i)= pi,并且,p1+p2+…+pn=1。
(三) 黑客的动态描述
上节中用离散随机变量来表示的“黑客的静态描述”,显然适合于包括经济黑客、政治黑客、时间黑客等各种黑客。由于政治黑客的业绩很难量化,比如,若黑客获取了元首的私人存款金额,那么,这样的业绩对美国来说一钱不值,而对朝鲜等后封建国家来说,就是无价的国家机密。因此,本节中的量化分析主要针对经济黑客。
黑客的动态行为千变万化,必须首先清理场景,否则,根本无法下手。
为使相关解释更形象,本节采用上述第一种“马赛克格子画法”,即,黑客是一个离散随机变量,他攻破第i个“元诱因”,记为X=i(1≤i≤n),的概率为pi,这里,p1+p2+…+pn=1,0<pi<1(1≤i≤n)。特别强调,其实下面的内容适用于包括第二种方法在内的所有“马赛克格子画法”。
任何攻击都是有代价的,并且,如果黑客已经技术最牛了,那么,整体上来说是“投入越多,收益越多”。
设黑客攻破第i个“元诱因”的“投入产出比”为di (1≤i≤n),即,若为攻击第i个“元诱因”,黑客投入了1元钱,那么,一旦攻击成功(其概率为pi)后,黑客将获得di元的收入;当然,如果攻击失败,那么,黑客的这1块钱就全赔了。
根据文献[1]可知,任何一个“元诱因”被攻破后,系统也就被攻破了,不再安全了。因此,为了尽量避免被红客发现,尽量少留“作案痕迹”,我们假定:在攻击过程中,黑客只要发现有一个“元诱因”被攻破了,那么,他就立即停止本次攻击,那怕继续攻破其它“元诱因”还可以获得额外的收入,那怕对其它“元诱因”的“攻击投资”被浪费。
设黑客共有M元用于攻击的“种子资金”,如果他把这些资金全部投入到攻击他认为最有可能成功的某个“元诱因”(比如,最大的那个pi),那么,假如黑客最终成功地攻破了第i个“元诱因”(其概率为pi),则此时黑客的资金总数就变成(Mdi),但是,假如黑客的攻击失败(其概率为1-pi),则他的资金总数就瞬间变成了零。可见,从经济上来说,黑客的这种“孤注一掷”战术的风险太大,不宜采用。
为增加抗风险能力,黑客改变战术,将他的全部资金分成n部分,b1、b2、…、bn,其中bi是用于攻击第i个“元诱因”的资金在总资金中所占的比例数,于是,∑ni=1bi=1,这里0≤bi≤1。如果在本次攻击中,第i个“元诱因”首先被攻破(其概率为pi),那么,本次攻击马上停止,此时,黑客的总资产变为(Mbidi),同时,投入到攻击其它“元诱因”的资金都白费了。由于∑ni=1pi=1,即,肯定有某个“元诱因”会被首先攻破,所以,只要每个bi>0,那么,本次攻击结束后,黑客的总资产肯定不会变成零,因此,其抗风险能力确实增强了。
我们还假定:为了躲开红客的对抗,黑客选择红客不在场时,才发起攻击,比如,黑客每天晚上对目标系统进行(一次)攻击。当然,这里还有一个暗含的假设,即,黑客每天晚上都能够成功地把系统攻破一次,其实,这个假设也是合理的,因为,如果要经过K个晚上的艰苦攻击才能攻破系统,那么,把这K天压缩成“一晚”就行了。
单看某一天的情况,很难对黑客的攻击战术提出任何建议。不过,如果假定黑客连续m天晚上对目标系统进行“每日一次”的攻击,那么,确实存在某种攻击战术,能使得黑客的盈利情况在某种意义上,达到最佳。
为简化下足标,本文对bi和b(i)交替使用,不加区别。
如果黑客每天晚上,都对他的全部资金按相同的分配比例b=(b1,b2,…,bn),来对系统的各“元诱因”进行攻击。那么,m个晚上之后,黑客的资产就变为:
Sm=M∏i=1mS(Xi)= M∏i=1m[b(Xi)d(Xi)]
这里S(X)=b(X)d(X),Xi是1到n之间的某个正整数,它表示在第i天晚上,被(首先)攻破的那个“元诱因”的编号,所以,X1、X2、…、Xm是独立同分布的随机变量,设该分布是p(x),于是有如下定理,
定理1:若每天晚上黑客都将其全部资金,按比例b=(b1,b2,…,bn)分配,来对系统的各“元诱因”进行攻击,那么,m天之后,黑客的资产就变为:
Sm=M2mw(b,p)
这里W(b,p)=E(logS(X))=∑k=1mpklog(bkdk),称为“双倍率”。
证明:由于独立随机变量的函数,也是独立的;所以,logS(X1)、logS(X2)、…、logS(Xm)也是独立同分布的,由弱大数定律,可得:
logSm/m=[∑i=1m logS(Xi)]/m →E(logS(X)),依概率
于是,Sm=M2mw(b,p)。证毕。
由于黑客的资产按照2mw(b,p)方式增长(这也是把W(b,p)称为“双倍率”的根据),因此,只需要寻找某种资金分配战术b=(b1,b2,…,bn),使得双倍率W(b,p)能够最大化就行了。
定义1:如果某种战术分配b,使得双倍率W(b,p)达到最大值W*(p),那么,就称该值为最优双倍率,即,
W*(p)=maxbW(b,p)=maxb∑k=1mpklog(bkdk)
这里的最大值max是针对所有可能的满足∑ni=1bi=1,0≤bi≤1的b=(b1,b2,…,bn)而取的。
双倍率W(b,p)作为b的函数,在约束条件∑ni=1bi=1之下,求其最大值。可以写出如下拉格朗日乘子函数并且改变对数的基底(这不影响最大化b),则有,
J(b)=∑pkln(bkdk)+λ∑bi
关于bi求导得到
∂J/∂bi=pi/bi+λ, i=1,2,…,n
为了求得最大值,令偏导数为0,从而得出
bi=-pi/λ
将它们带入约束条件∑ni=1bi=1,可得到λ=-1和bi=pi。从而可知,b=p为函数J(b)的驻点。
定理2:最优化双倍率W*(p)=∑ni=1pi logdi-H(p),并且,按比例b*=p=(p1,p2,…,pn)分配攻击资金的战术进行攻击,便可以达到该最大值。这里H(p)是描述静态黑客的那个随机变量的熵,即,H(p)=-∑ni=1pi logpi。
证明:将双倍率W(b,p)重新改写,使得容易看出何时取最大值:
W(b,p)=∑pklog(bkdk)
=∑pklog[(bk/pk)pkdk)]
=∑pklogdk-H(p)-D(p│b)
≤∑pklogdk-H(p)
这里D(p│b)是随机变量p和b的相对熵[7]。而当b=p时,可直接验证上述等式成立。证毕。
从定理2可知:对于一个可用离散随机变量X(Pr(X=i)= pi,并且,p1+p2+…+pn=1)来静态描述的黑客,他的动态最佳攻击战术也是(p1,p2,…,pn),即,他将其攻击资金按比例(p1,p2,…,pn)分配后,可得到最多的“黑产收入”。
下面再对定理2进行一些更细致的讨论,我们有:
定理3:如果攻破每个“元诱因”的投入产出比是相同的,即,各个di彼此相等,都等于a,那么此时的最优化双倍率W*(p)= loga-H(p),即,最佳双倍率与熵之和为常数,并且,若按比例b*=p分配攻击资金,那么,此种战术的攻击业绩便可达到该最大值。此时,第m天之后,黑客的财富变成Sm=M2m[loga-H(p)]。而且,黑客的熵若减少1比特,那么,他的财富就会翻一倍!
如果并不知道每个di的具体值,而只知道∑1/di=1,此时,记ri=1/di于是,双倍率可以重新写为:
W(b,p)=∑pklog(bkdk)
=∑pklog[(bk/pk)pkdk)]
= D(p│r)-D(p│b)
由此可见双倍率与相对熵之间存在着非常密切的关系。
由于黑客每天晚上都要攻击系统,他一定会总结一些经验来提高他的攻击效果。更准确地说,可以假设黑客知道了攻破系统的某种边信息Y,它也是一个随机变量。
设X∈{1,2,…,n}为第X个“元诱因”,攻破它的概率为p(x),而攻击它的投入产出比为d(x)。设(X,Y)的联合概率密度函数为p(x,y)。用b(x│y)≥0,∑xb(x│y)=1记为已经边信息Y的条件下,黑客对攻击资金的分配比例。此处b(x│y)理解为:当得知信息y的条件下,用来攻击第x个“元诱因”的资金比例。对照前面的记号,将b(x)≥0,∑xb(x)=1表示为无条件下,黑客对攻击资金的分配比例。
设无条件双倍率和条件双倍率分别为
W(X)=maxb(x)∑xp(x)log[b(x)d(x)]
W(X│Y)=maxb(x│y)∑x,yp(x,y)log[b(x│y)d(x)]
再设
ΔW= W(X│Y)- W(X)
对于独立同分布的“攻击元诱因”序列(Xi,Yi),可以看到:当具有边信息Y时,黑客的相对收益增长率为2mw(X│Y);当黑客无边信息时,他的相对收益增长率为2mw(X)。
定理4:由于获得攻击“元诱因”X的边信息Y,而引起的双倍率增量ΔW满足ΔW=I(X;Y)。这里I(X;Y)是随机变量X和Y的互信息。
证明:在有边信息的条件下,按照条件比例分配攻击资金,即,b*(x│y)=p(x│y),那么关于边信息Y的条件双倍率W(X│Y)可以达到最大值。于是
W(X│Y)=maxb(x│y)E[logS]=maxb(x│y)∑p(x,y)log[d(x)b(x│y)]
=∑p(x,y)log[d(x)p(x│y)]=∑p(x)logd(x)-H(X│Y)
当无边信息时,最优双倍率为:
W(X)=∑p(x)logd(x)-H(X)
从而,由于边信息Y的存在,而导致的双倍率的增量为:
ΔW=W(X│Y)-W(X)=H(X)-H(X│Y)=I(X;Y)。证毕。
此处双倍率的增量,正好是边信息Y与“元诱因”X之间的互信息。因此,如果边信息Y与“元诱因”X相独立,那么,双倍率的增量就为0。
设Xk是黑客第k天攻破的“元诱因”的序号,假如各{Xk}之间不是独立的,又假设每个dk彼此相同,都等于a。于是,黑客根据随机过程{Xk}来决定第(k+1)天的最佳攻击资金分配方案(即,最佳双倍率)为
W(Xk│Xk-1,Xk-2,…,X1)=E[maxE[logS(Xk)│Xk-1,Xk-2,…,X1]]
=loga –H(Xk│Xk-1,Xk-2,…,X1),
这里的最大值max是针对所有满足如下条件的边信息攻击资金分配方案而取的:b(x│Xk-1,Xk-2,…,X1)≥0,∑xb(x│Xk-1,Xk-2,…,X1)=1。
而且,该最优双倍率可以在b(xk│xk-1,xk-2,…,x1)=p(xk│xk-1,xk-2,…,x1)时达到。
第m天晚上的攻击结束后,黑客的总资产变成
Sm=M∏i=1mS(Xi)
并且,其增长率的指数为
(ElogSm)/m=[∑Elog(S(Xi))]/m
=[∑(loga- H(Xi│Xi-1,Xi-2,…,X1))]/m
=(n/m)loga–[H(X1,X2,…,Xm)]/m
这里[H(X1,X2,…,Xm)]/m是黑客m天攻击的平均熵。对于熵率为H(χ)的平衡随机过程,对上述增长率指数公式的两边取极限,可得
Limm→∞[ElogSm]/m+ H(χ)=loga
这再一次说明,熵率与双倍率之和为常数。
(四)结束语
文献[1]至[6]奠定了《安全通论》的两个重要基石:安全经络、安全攻防。
本文开始,我们将努力奠定《安全通论》的第三块重要基石:黑客。
没有黑客就没有安全问题,也更不需要《安全通论》。可惜,黑客不但有,而且还越来越多,而且其外在表现形式还千奇百怪,因此,有必要专门对黑客进行系统深入的研究。
本文虽然彻底解决了黑客的静态描述问题,即,黑客其实就是一个随机变量X,它(他)的破坏力由X的概率分布函数F(x)(或概率密度函数p(x))来决定。但是,关于黑客的动态描述问题,还远未解决,本文只是在若干假定之下,给出了黑客攻击的最佳战术。欢迎有兴趣的读者来研究黑客的其它攻击行为的最佳战术。
特别说明:这本该是一篇高影响因子的SCI论文,但是,如今国人已被SCI绑架了,所以,老夫想带头摆脱SCI的束搏,故将此文在这里发表。本文欢迎所有媒体转载。
参考文献
[1]杨义先,钮心忻,安全通论(1)之“经络篇”,见杨义先的科学网实名博客(http://blog.sciencenet.cn/blog-453322-944217.html )
[2]杨义先,钮心忻,安全通论(2):攻防篇之“盲对抗”,见杨义先的科学网实名博客,(http://blog.sciencenet.cn/blog-453322-947304.html )
[3]杨义先,钮心忻,安全通论(3):攻防篇之“非盲对抗”之“石头剪刀布游戏”,见杨义先的科学网实名博客,(http://blog.sciencenet.cn/blog-453322-948089.html )
[4]杨义先,钮心忻,安全通论(4):攻防篇之“非盲对抗”之“童趣游戏”,见杨义先的科学网实名博客,(http://blog.sciencenet.cn/blog-453322-949155.html )
[5]杨义先,钮心忻,安全通论(5):攻防篇之“非盲对抗”收官作及“劝酒令”,见杨义先的科学网实名博客,(http://blog.sciencenet.cn/blog-453322-950146.html)
[6]杨义先,钮心忻,安全通论(6):攻防篇之“多人盲对抗”,见杨义先的科学网实名博客,http://blog.sciencenet.cn/blog-453322-954445.html
[7]Thomas M. Cover, Joy A. Thomas著,信息论基础,机械工业出版社出版,2007年11月,北京。阮吉寿,张华译;沈世镒审校。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 19:55
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社