2. 北京邮电大学 信息安全中心, 北京 100876
影响网络空间安全的主角是黑客,控制住了黑客就掌握了安全.而控制黑客的最有效手段,就是控制黑客的生态环境;为此,需要首先设法了解这个生态环境.试图在最简单的情况下(即,单种黑客工具),揭示黑客群体的诞生、发展、合作、竞争、迁移、死亡等生态环节的动力学特性,如黑客数目或密度的解析公式、平衡态的局部或全局稳定性、周期系统的周期解的存在性和稳定性、持续生存性等.同时,还给出了控制黑客生态环境的一些建议,如何时动手,何时放手,第一道防线设在哪,第二道防线设在哪等.
2. Information Security Center, Beijing University of Posts and Telecommunications, Beijing 100876, China
The protagonist of Cyber-space security is Hacker. In order to control the security, we have to control hackers at first. The most effective means to control the hacker, is to control the ecological environment of the hacker; for this, we need to first try to understand the ecological environment. This article aims to reveal the ecological dynamics, in the simplest case (i. e., single hacking tools), from the aspects of hacker group's birth, development, cooperation, competition, migration, death etc. for example, the analytical formula for the hacker'snumber or density, the equilibrium state of the local or global stability, the existence and stabilityof periodic solutions for the periodic systems, the permanence etc.. At the same time, some suggestions to control the hacker ecological environment are proposed, for example, when to start the controlling, when to give up the controlling, where the first line of defense is located, where the second line of defense is located, etc..
关于黑客,外行看热闹,看到的是一个个绝顶聪明、行为怪诞的稀有动物;内行看门道,看到的却是一个个冷冰冰的黑客工具,因为,离开了工具,黑客就什么也不是了.所以,下面只关心黑客工具,当然,把工具也当作生物来描述,在不引起混淆的情况下,也用黑客之名来称呼.
除极个别顶级黑客会自己开发工具之外,绝大部分黑客,都只会使用现成的黑客工具(其实就是一些特殊软件).而且,顶级黑客的杀手锏工具是绝不外传的,所以,它不在本文的研究范围之内,让法律和红客去单挑这种顶级黑客吧.本文不研究的黑客工具还包括:预装类和广告类.比如,某些免费手机中已经悄悄预装了偷钱软件,这便是预装类的例子;某些靠广告支撑的畅销软件中的漏洞(有意或无意),便是广告类的例子.更严谨地说,这里只研究那些依靠口口相传,在网上广泛流行,并被普通黑客经常使用的黑客工具.这是因为,一方面,它们才是破坏力量的主体,虽然其媒体出镜率并不高;另一方面,这类黑客工具的传播具有明显的生物特性,从而,可以借用现成的生物动力学成果.为简捷计,除非特别说明,后面所说的黑客工具,都限指这种依靠口口相传的黑客软件.
在现实中,一个黑客所拥有并随时使用的,肯定不止一种黑客工具,但是,为了研究方便,假定所有黑客都只用同一种黑客工具.当然,这里所说的一种工具,也并非仅仅是一个工具,而至少是一类工具,比如,若以黑客目标为准来分类的话,那么,所有试图获得正常用户的密码口令的工具,都可以当作一种工具.另外,这里说只有顶级黑客才会开发自己的工具,并不意味着普通黑客不对其工具做任何个性化的处理,但是,这种大同小异的修改,忽略不计.
1 单工具黑客动力学当某种黑客工具,即一种软件,被开发出来并被放在网上后,还不能算作黑客就诞生了(最多只能算作黑客的首枚卵产出了),因为,没人用的软件等于不存在.只有当某人,下载并使用该软件去攻击别人时,才说一个黑客诞生了.这个黑客也许又会将该款软件推荐给他的一批朋友(相当于他又下了一批蛋),这批朋友中的某些人又去下载该软件并攻击别人,那么,又诞生了若干新一代,儿子代,黑客.这些新黑客又再向他们的朋友推荐,如此循环往复,于是,更新一代,孙子代的黑客就源源不断地诞生了.你看,黑客的诞生模式,其实与鸡鸭猪狗等的诞生模式并无二异,都可用一棵树图来表示,该树图中的点就代表相应的黑客(或生物).而且,最终的黑客总数会非常庞大,黑客代际之间的重叠会非常严重,以至于t时刻的黑客数目或密度N(t) 可以用t的连续函数来近似.
再确认一次,本文只考虑用同一种黑客软件的情形,相当于单种群的生物动力学.一来是因为,单工具黑客的研究相对容易,可以得到一些比较深入的结果;二来因为,单工具黑客是多工具情形(相当于多种群生物) 的基础;三来,如果被攻击的目标互不相关(比如,有的黑客是想获得隐私信息,有的黑客是想篡改别人的网页等),那么,就可以将这些黑客看做并列的几批使用单工具的黑客,从而,本文的所有成果对每批黑客都有效.
1.1 Malthus模型记N(t) 表示t时刻的黑客数目或密度,即正在用该工具攻击别人的黑客数量或密度(由于密度等于黑客数与总用户数的比值,所以在总数不变的情况下,密度和黑客数是等价的,不必刻意区分).如果黑客的增长率是常数,或单位时间内黑客增长量与当时的黑客数量成正比,那么,就可用b和d分别表示黑客的出生率和死亡率(这里的所谓“死亡”,包括两大部分,其一,某人卸载了此软件,从而黑客总数减少一个;其二,某人虽拥有该工具,但是,此时此刻并未使用它去攻击别人,相当于生物的迁出,效果上也等于黑客数减少了一个.所谓“出生”,也包括两大部分,其一,就是某个新人下载并正使用该软件攻击别人,从而黑客总数增加一个;其二,前一时刻未出手的黑客,此刻发力了,相当于生物的迁入,效果上也等于黑客数增加了一个.) 于是,在任意小的时间区间Δt内,N(t) 的变化量满足等式:N(t+Δt)-N(t)=bN(t)Δt-dN(t)Δt.对该公式两边同除Δt并令Δt→0取极限,得到了著名的Malthus微分方程
| $ {\rm{d}}N(t)/{\rm{d}}t = rN(t), $ |
其中r=b-d称为内禀增长率.
该微分方程的解析解为N(t)=N(0)ert,于是,根据b和d的大小,在Malthus模型下,黑客的最终数量将为limt→∞N(t)=0,当r < 0(即死亡率大于出生率时);limt→∞N(t)=N(0),当r=0(即死亡率等于出生率);limt→∞N(t)=∞,当r>0(即出生率大于死亡率).由此可见,无论r多么小,只要r>0(即出生率大于死亡率),那么,活跃黑客的最终数量将为无穷大,但是,实际情况显然不是这样的,因为,当黑客数量或密度大到某种程度后,合法用户的安全防护措施一定会加强,从而,使得该黑客工具失灵,导致黑客们不得不放弃该工具(转而寻求其他攻击手段),这相当于该黑客死亡,于是,死亡率会迅速超过出生率,黑客总数又会大减.
更准确地说,Malthus模型仅仅适用于黑客工具刚刚出现的早期阶段,那时,黑客数量相对较少(或密度相对较小),红客的防护措施还比较薄弱,黑客攻击的成功率和利润都较高,从而,又会刺激更多的黑客诞生或迁入,即出生率增加,死亡率减少.但是,随着黑客数量和密度的增大,觉醒并采取防卫措施的合法用户会增多,黑客的可攻击对象会减少,黑客彼此之间的竞争会加剧……总之,死亡率增加,出生率减少,即内禀增长率减少,由此可见,不能永远假设r为常数,于是,便引出了下一小节(1.2节) 的Logistic增长模型.
在单工具情形下,还需要引入另一个重要参数,称为黑客的最小生存数量(或密度),记为K0,它意指,如果黑客数N(t) 永远小于K0时,那么,黑客数将逐步减少,并最终灭亡,即趋于0.参数K0的存在性可以这样来推理:由于黑客软件是(经朋友介绍后) 自愿获取的,如果利用此工具去发动攻击会得不偿失,那么,他就会放弃该工具(即死掉一个黑客) 并且不再向其朋友推荐;当越来越多的黑客死亡时,该种黑客工具便被淘汰了.相反,如果事实证明,该工具有利可图,那么,黑客就会继续拥有并使用该工具,并有可能向其朋友推荐,从而,黑客数将超过K0.
在“不亏本”的前提下,人类本来就有相互合作的天性,特别是当N(t) 较小时,更会互相帮助(这便是“老乡见老乡,两眼泪汪汪”的人性依据),因为,帮助的结果对自己并无害(至少是害处很小),最终便导致提升黑客数量的增长率,甚至达到标准Malthus模型的指数增长速度.当然,当N(t) 较大时,情况就相反了,便会互相竞争(这便是“文人相轻”的人性依据),最终结果便是抑制黑客数量的增长率,这便是下一小节(1.2节) Logistic模型要考虑的问题.
设A为黑客数的最大平均改变率,当N(t) 较小且N(t)>K0,生物学的经验已经告诉我们:黑客的内亶增长率r可以直观地替代为r=A[1-K0/N(t)],于是,标准Malthus模型就变形为如下微分方程:
| $ {\rm{d}}N(t)/{\rm{d}}t = AN(t)[1-{K_0}/N(t)] $ |
当A为正时,该微分方程存在零平衡态和正平衡态K0,而且零平衡态是局部稳定的,即当N(t) < K0后,黑客数N(t) 会不断减少,并最终趋于0,于是该黑客工具被淘汰;但是,正平衡态K0却是不稳定的,即当N(t)>K0时,黑客数呈增加态势;而当N(t) < K0时,黑客数将不断减少并最终趋于0.
根据上述分析,对守护安全的红客们有如下启发:
1) 消灭黑客要宜早不宜迟,即在黑客数还没有达到最小生存量K0时就动手,效果最好;2) 如果成本较大,那么不必对黑客斩尽杀绝,只需要将其问题控制在K0之内,黑客便会自动灭亡;3) 如果错过了最佳时机(即黑客数已经超过K0),那么黑客数将在随后的短时间内,呈现指数级的爆炸性增长,此时,不必与黑客硬拼,而应该充分运用黑客之间的竞争机制,让他们互相制约(见下面的Logistic模型);4) 控制黑客的关键是控制内禀增长率r,这又有两种思路:其一是减少出生率b;其二是增加死亡率d.如果能够使r < 0,那么就胜券在握;如果能够使r=0,那么,就要考虑“任由N(0) 个黑客为非作歹”和“将黑客数量控制在K0之内”的成本谁高谁低,取成本低者而行动;如果没法控制内禀增长率而出现了r>0,那么,红客的这第一道防线就崩溃了,只能转战由Logistic模型构建的下一道防线.
1.2 Logistic增长模型及变形每一款黑客工具都不可能永远通吃所有合法用户,换句话说,每个网络能够承受的活跃黑客数都是有限的,该数称为环境容纳量,记为K(正数),即,当N(t)=K时,黑客数将出现零增长(当然,不难看出,一定有K0 < K).其实,在实践中,往往不是黑客工具有多么厉害,而是合法用户太懒或太大意,比如,他们懒于安装相关的漏洞补丁或缺乏安全意识等;但是,一旦活跃黑客数量或密度过大,以致在某合法用户身边出现了受害者时,他就会积极加强防护,从而扼制了黑客的生存环境.
黑客数的内禀增长率当然不会突然陡减为0,合理的假定是:随着活跃黑客数逐渐靠近环境容量K时,r逐渐变小并最终靠近0.最简单的情况是:每增加一个黑客,就均匀地对内禀增长率产生1/K抑制影响;于是,N(t) 个黑客就产生N(t)/K的抑制影响,从而,未被影响的部分就剩下1-N(t)/K,换句话说,内禀增长率就由r减少为r[1-N(t)/K],于是,内禀增长率为常数的Malthus模型,便被改进为内禀增长率为变数r[1-N(t)/K]的如下微分方程所表示的标准Logistic模型:
| $ {\rm{d}}N(t)/{\rm{d}}t = rN(t)[1-N(t)/K] $ |
其中r是内禀增长率,K为环境容纳量.
该微分方程的解析解为N(t)=KN(0)/{N(0)-[N(0)-K]e-rt},它完全由r、K和黑客数量的初值N(0) 确定.根据此解析解得知:
若N(0)>0时,当t→∞,黑客数N(t) 将最终趋于容纳量K;
而且,当初值N(0) 满足0 < N(0) < K/2(即黑客初值数不超过容纳量的一半) 时,黑客数量的曲线N(t) 将呈现S形;并且在K/2点处,出现唯一的拐点:当N(t) 很小时,在一定的时间范围内,黑客数将成指数增长模式;然后,抑制影响开始发挥作用,并在容纳量K处,黑客数量将最终达到饱和.更详细地说,此处的S曲线,可以划分为5个阶段:1) 开始期,也称为潜伏期,黑客数量很少,数量和密度增长缓慢;2) 加速期,随着黑客数的增加,密度也迅速增加;3) 转折期,当黑客数达到饱和密度的一半(K/2) 时,密度增长最快;4) 减速期,当黑客数超过K/2以后,密度增长逐渐变慢;5) 饱和期,黑客数量达到K值而饱和,这意味着K是稳定的.
上述标准的Logistic模型更适合于黑客数量和密度N(t) 较大时的情况,它已经考虑到了黑客彼此之间的竞争,以及由此导致的对内禀增长率的抑制情况.而当N(t) 较小时,黑客之间又是相互帮助的,并将导致内禀增长率变大,所以,若同时考虑“人少时的合作”和“人多时的竞争”,那么,标准Logistic模型便可改进为如下“具有Allee效应的Logistic模型”:
| $ {\rm{d}}N(t)/{\rm{d}}t = rN(t)[N(t)/{K_0}-1][1-N(t)/K] $ |
此时,便存在着三个非负平衡态:0、K0和K.具体地说:
当0 < N(t) < K0时,dN(t)/dt < 0,即黑客数量不断减少;
当K0 < N(t) < K时,dN(t)/dt>0,即黑客数量不断增加;
当N(t)>K时,dN(t)/dt < 0,即黑客数量又不断减少.
因此,0和K(最大容纳量) 是局部稳定的平衡态;黑客的最小生存数量K0是不稳定的平衡态,并且它有两个稳定平衡态的分界点,即当黑客数量的初值N(0)>K0时,黑客数量将最终趋于K;而当N(0) < K0时,黑客数将最终趋于零,该黑客工具被淘汰.
除了考虑黑客合作时的改进型Logistic模型(即具有Allee效应的Logistic模型) 之外,还可以再考虑正常用户合作时的改进Logistic模型.此时,当某个用户被攻击后,他不但会自身加强保护措施,还会将其经验和教训传播给身边人员,提醒他们注意,于是,黑客可能攻击的对象数就会减少,形象地说,黑客的“食物”就减少了.极端情形是:如果所有用户都觉悟并采取防护措施后,那么,该黑客工具就失灵了,从而黑客就无目标可攻击,当然也就只好灭亡了.
记S为黑客数达到饱和时,正常用户的觉悟率(即他们采取了安全措施,使得该款黑客工具失效);记F(t) 为t时刻(黑客数为N(t) 时) 的用户觉悟率.将标准Logistic方程等价地重新写为(1/N(t))[dN(t)/dt]=r[K-N(t)]/K,若保持该公式的左边不变,但将其右边的“饱和量K”替换为“饱和时的用户觉悟率S”,将右边的“黑客数N(t)”替换为“用户觉悟率”,于是,便得到标准Logistic模型的如下另一种改进“用户合作时的Logistic模型”:
| $ (1- N(t))[{\rm{d}}N(t)/{\rm{d}}t] = r[S-F(t)]/S $ |
它的左边表示“t时刻,黑客的平均增长率”;而它的右边则表示“t时刻,用户的未觉悟率”.该公式的直观解释是:“黑客增长率”与“用户未觉悟率”成正比.这种解释显然是有道理的,因为未觉悟的用户越多,黑客的利润就越大,就越能刺激更多的黑客发动进攻;反之亦然.
再注意到F(t) 应该与黑客N(t) 和黑客的变化数dN(t)/dt有关,为简便计,假定这种关系是线性关系,即F(t)=c1N(t)+c2dN(t)/dt,这里c1,c2>0,即黑客越多,黑客增长越快,那么,觉悟的用户也会更快地增长.由于在饱和状态时,同时成立dN(t)/dt=0、N(t)=K和F(t)=S,所以在公式F(t)=c1N(t)+c2dN(t)/dt中,让时间趋于无穷大后,便有S=c1K.于是,上面的“用户合作时的Logistic模型”便可以更具体地表述为
| $ {\rm{d}}N(t)/{\rm{d}}t = rN(t)[K-N(t)][K + rcN(t)], $ |
这里c=c2/c1
该微分方程的解析解为N(t)=Aert[|K-N(t)|1+rc],其中A是由初始条件确定的常数.注意到当时间趋于无穷时,左边为有限;而右边的ert为无穷大,所以要使整个右边有限的话,就必须有|K-N(t)|1+rc]趋于0,即N(t) 趋于K.
该微分方程还可看出:当黑客数N(t) 较小时,黑客数的增加反而会使得黑客的增长率dN(t)/dt减少;当黑客较大时,黑客数的增加才会同时促进黑客增长率也增加.这再一次印证了消灭黑客宜早不宜迟.
根据上述分析,可以给红客如下启发:1) 如果治理黑客的成本高于“任由K (容纳量) 个黑客肆虐”的成本,那么就不必治理了,否则就是吃力不讨好;2) 如果未能在开始期消灭黑客(即设置在K0处的第一道防线被突破),那么第二道最佳防线就应该设置在N(t)=K/2处的转折期;3) 如果第二道防线也被突破了,那么就应该重点保护关键用户,不必再设置第三道防线了,除非有特殊的非经济因素;4)“用户彼此合作,提升觉悟率”也是对付黑客的另一个有效手段.
1.3 非自治单工具模型标准Logistic模型的一个重要假设就是:内禀增长率r和容纳量K均为常数.这种假设的优点是:直观简洁且逼近实际.当然,严格说来,r和K不会永远都是常数,也会变化,比如,当黑客的期望值变大时,更多的黑客将因无利可图而放弃攻击(当然也就放弃工具了),那么,容纳量将变小;当合法用户变得更麻木时,黑客能够获得的利润将更多,从而将有能力滋养更多的黑客,即容纳量就会增大.不过,每一种模型都有不够精确的地方,我们必须在取舍之间寻找折中,毕竟当模型过于精细后,相应的微分方程就无法求解了,更不能为了精细而精细.
若将r和K分别用分段连续的时间函数r(t) 和K(t) 来替代,那么标准Logistic模型就变成了如下非自治的Logistic模型:
| $ {\rm{d}}N(t)/{\rm{d}}t = r(t)N(t)[1-N(t)/K(t)] $ |
该微分方程的解析解为
| $ \begin{array}{l} N(t) = N(0){\rm{exp}}\left[{\int_0^t {r(s){\rm{d}}s} } \right]/\\ \left\{ {1 + N(0)\int_0^t {\left[{\exp (\int_0^t {r(f){\rm{d}}f)r(s)/K(s)} } \right]{\rm{d}}s} } \right\} \end{array} $ |
如果0 < inft>0r(t)≤r(t)≤supt>0r(t) < ∞并且0 < inft>0K(t)≤K(t)≤supt>0K(t) < ∞,那么非自治的Logistic模型就有一个全局稳定的解:
| $ \begin{array}{l} {N^*}(t) = \left\{ {\int_0^\infty {\left\{ {\exp } \right.} } \right.\left[{-\int_0^s {r(t-f){\rm{d}}} } \right] \cdot \\ \;\;\;\;\;\;\;\;\;\left. {r(t -s)/K(t -s)} \right\}{\left. {{\rm{d}}s} \right\}^{ -1}} \end{array} $ |
并且,当r(t) 和K(t) 是周期函数时,N*(t) 也是周期的.下面再进一步地分成一些特殊情况,来讨论非自治Logistic模型:
情况1 环境退化
所谓环境退化,就是指黑客的生存条件越来越差,即黑客的容纳量K(t) 虽非负,但随着时间的推进K(t) 越来越小,甚至limt→∞K(t)=0.此时已经证明:
如果内禀增长率满足
如果内禀增长率满足
情况2 周期性的考虑
黑客世界中也有一些有趣的周期现象,比如,在无外界干扰时,从宏观上看,当内禀增长率r(t) 越来越大时,黑客的数量会增多,因此,每个黑客的利润会越来越少,这就会反过来促进越来越多的黑客放弃攻击,从而使r(t) 开始变小;换句话说,r(t) 会不断地周期性振荡.同样,容纳量K(t) 也具有这种周期特性.为数学上处理方便,干脆假设r(t) 和K(t) 就是周期为T的连续函数,并且,还做出如下3个合理的假设:
假设1 黑客数越来越多时,他们会彼此竞争,从而会越来越严重地抑制黑客数量的增长;
假设2 当黑客数超过一定的值后,平均到每个黑客的利润会越来越低,因此,黑客数目将不会再增加;
假设3 在一个周期里,内禀增长率是受控的,即,
于是,此时非自治的Logistic模型微分方程dN(t)/dt=r(t)N(t)[1-N(t)/K(t)]存在着周期解析解:N(t+T)=N(t),N(0)=N(t) 为黑客的初始值,并且当0 < t < T时,
| $ \begin{array}{l} N(t) = \left[{\exp \int_0^T {r(f)-1} } \right] \cdot \\ {\left\{ {\int_t^{t + T} {\left[{r(s){\rm{exp}}\left[{-\int_s^t {r(f){\rm{d}}f} } \right]/K(s)} \right]{\rm{d}}s} } \right\}^{ -1}} \end{array} $ |
情况3 时滞因素的考虑
在标准Logistic模型中,t时刻黑客数的平均变化率(1/N(t))[dN(t)/dt]只与该时刻的黑客数有关,即等于r[1-N(t)/K].但是,如果考虑得更精细一点,将会发现,其实存在着某种时滞现象,即t时刻黑客数的平均变化率,应该与t-τ时刻的黑客数有关,于是,标准Logistic模型便可以改进为(1/N(t))[dN(t)/dt]=r[1-N(t-τ)/K],或者等价地就有带时滞的Logistic模型:
| $ {\rm{d}}N(t)/{\rm{d}}t = rN(t)[1-N(t-\tau )/K] $ |
它存在着零平衡态,并且,当r>0时,零平衡态是不稳定的.此外,它还有一个正平衡态N=K,其稳定性为:当0≤rτ < π/2时,平衡态N=K是渐近稳定的;当rτ>π/2时,平衡态N=K不稳定,此时,黑客N(t) 存在一个周期解,即黑客数的变化呈周期性起伏.
根据上述分析,可以给红客如下启发:1) 如果能够控制黑客的生存环境,那么增长态势越猛的黑客工具可能越短命;而增长缓慢的黑客工具可能会更命长,不过,如果他们的危害不高于治理成本的话,那么,就可以不理他们;2) 黑客的增长率、网络对黑客数量的容量值、黑客数等都可能呈现出周期起伏的现象,因此,如果红客要想稳准狠地消灭黑客的话,最好在这些周期的低潮时下手!
2 单工具随机模型在研究黑客动力学时,忽略了所有随机因素.但是,在实际情况下,随机因素显然是存在的,因此下面来重点考虑随机性.
为减轻阅读负担,几乎省略了所有复杂的数学推导.这是因为,虽然微分方程的求解很难,但是,给出解析解后,验证其正确性却很容易,所以,省略一点也没影响文章的严谨性和正确性,只是把大量的推导工作隐没在了后台而已.但是,这里有些数学推导就无法省略了,希望这些必不可少的公式不会给读者增添过多的困难.
2.1 纯生过程这里的所谓“纯生”,就是假定没有死亡(含迁出,下同),即黑客只增不减.记t时刻黑客数为N(t),并有如下假定:
1) 每个黑客的诞生(含迁入,下同) 是互相独立的;
2) 在任意小的时间段Δt内,每个黑客诞生一个新黑客的概率为λΔt+o(Δt),没有新黑客诞生的概率为1-λΔt+o(Δt),多于一个新黑客诞生的概率为o(Δt).
如果已知N(t)=n,那么,在区间(t, t+Δt]内诞生的新黑客个数,服从参数n和λΔt的二项分布的随机变量.当Δt非常小时,可以忽略o(Δt) 的影响.于是,当k=0, 1, …, n时,有
| $ \begin{array}{l} P\{ k个新黑客在区间(t, t + \Delta t]\left. {诞生} \right|\\ N(t) = n\} = C(n, k){(\lambda \Delta t)^k}{(1 -\lambda \Delta t)^{n -k}} \end{array} $ |
记该概率为P(k),这里和今后C(n, k) 都表示组合数公式,即C(n, k)=n!/(k!(n-k)!).于是,P(0)=(1-λΔt)n=1-λnΔt+o(Δt);P(1)=λnΔt(1-λΔt)n-1=λnΔt+o(Δt);并且,当k≥2时,P(k)=o(Δt).换句话说,这意味着随机过程N={N(t), t≥0}是一个连续时间Markov过程.记N(0)=a>0,现在考虑黑客数的转移概率pn(t)=P(N(t)=n|N(0)=a),a>0, t>0,它显然只依赖于时间差,从而是一个平稳随机过程.
现在考虑pn(t) 和pn(t+Δt) 的关系.如果N(t+Δt)=n>a且当Δt→0时,忽略多于一个新黑客诞生的可能性,那么,在t时刻,N(t) 就满足:N(t)=n,若在(t, t+Δt]时间段内没有新黑客诞生;N(t)=n-1,若在(t, t+Δt]时间段内有一个新黑客诞生.应用全概率公式,便有
| $ \begin{array}{l} {p_n}(t + \Delta t) = (1-\lambda n\Delta t){p_n}(t) + \\ \lambda (n-1)\Delta t{p_{n-1}}(t) + o(\Delta t), n > a \end{array} $ |
将该公式等价地变形为
| $ \begin{array}{l} [{p_n}(t + \Delta t)-{p_n}(t)]/\Delta t = \\ [(n-1){p_{n-1}}(t)-n{p_n}(t)] + o(\Delta t)/\Delta t \end{array} $ |
其中,令Δt→0取极限,便有
| $ \begin{array}{l} {\rm{d}}{p_n}(t)/{\rm{d}}t = \lambda [(n-1){p_{n-1}}(t)-n{p_n}(t)], \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;n = a + 1, a + 2, \cdots \end{array} $ |
当n=a时,由于此前黑客数为a-1的概率为0(因为纯生),所以,由全概率公式就有P{N(t+Δt)=a}=P{N(t+Δt)=a|N(t)=a}P{N(t)=a},所以
| $ {\rm{d}}{p_a}(t)/{\rm{d}}t =-\lambda a{p_a}(t) $ |
求解此微分方程后,就有pa(t)=e-λat,据此和前面已有的公式dpn(t)/dt=λ[(n-1)pn-1(t)-npn(t)]可以得到,在t时刻,有k个新黑客诞生的概率为
| $ {p_{a + k}}(t) = C(a + k-1, a-1){e^{-\lambda at}}{(1 - {e^{ - \lambda t}})^k} $ |
这里k=0, 1, 2, …并且C(m, n) 为组合数公式.提醒:这个公式实际上就给出了在“0时刻黑客数为a”的条件下,t时刻的黑客数达到a+k的概率pa+k(t);因此,在该时刻黑客数的均值μ(t) 就为
| $ \mu (t) = E(N(t)\left| N \right.(0) = a) = \sum\limits_{n = a}^\infty {n{p_n}(t) = a{e^{\lambda t}}} $ |
此处前两个等式来源于均值的定义和pa+k(t) 的表达式,最后一个公式中略去了详细的计算过程[17].该公式示出了一个有趣的结果:在纯生过程中,t时刻黑客的平均个数为aeλt,它与出生率为b=λ的Malthus模型的解析式完全一样!仔细想来也是有道理的,因为Malthus模型更适用于黑客数(密度) 较小的初期,此时死亡(放弃工具) 和迁出(有工具却不用) 的黑客几乎不存在,这当然可以看作一个纯生过程了.
2.2 纯灭过程与纯生相反,此时只有死亡(放弃或不用黑客工具).假定某黑客t还存活但在时间段(t, t+Δt]内死亡的概率为μΔt+o(Δt),现在考虑条件转移概率
| $ \begin{array}{l} {p_n}(t) = P(N(t) = n\left| {N(0) = a} \right.), \\ \;\;\;\;\;\;\;n = a, a-1, \cdots, 2, 1, 0 \end{array} $ |
先看一个特殊情况a=1,那么,p1(t) 就是单个黑客在t时刻仍然存活的概率,并且有
| $ {p_1}(t + \Delta t) = {p_1}(t)(1-\mu \Delta t) + o(\Delta t) $ |
其中1-μΔt是单个黑客在时间段(t, t+Δt]内没有死亡的概率.令Δt→0取极限,便有如下微分方程dp1(t)/dt=-μp1(t), t>0,它对初值p1(0)=1的解为p1(t)=e-μt.
如果在初始时刻的黑客数a>1,则在t时刻仍然存活的黑客数是一个服从参数a和p1(t) 的二项分布的随机变量,所以有
| $ \begin{array}{l} {p_n}(t) = C(a, n){{\rm{e}}^{-\mu nt}}{(1-{{\rm{e}}^{-\mu t}})^{a - n}}, \\ \;\;\;\;\;\;\;n = a, a - 1, \cdots, 2, 1, 0 \end{array} $ |
其相应的数学期望值和方差分别是
| $ E[N(t)] = a{{\rm{e}}^{ - \mu t}}H{\rm{Var}}[N(t)] = a{{\rm{e}}^{ - \mu t}}[1-{{\rm{e}}^{-\mu t}}] $ |
可见,此时黑客数量的变化规律与Malthus增长模型中d=μ, b=0(有死无生) 的情形相似.
在纯灭过程中,黑客数要么保持常数,要么递减,最终有可能变为0(即灭绝).精确地说,这种黑客工具灭绝的概率为
| $ \begin{array}{l} {p_0}(t) = P(N(t) = 0\left| {N(0) = a} \right.) = \\ \;\;\;\;\;\;\;\;\;{(1-{e^{-\mu t}})^a} \to 1, t \to \infty \end{array} $ |
换句话说,此时黑客灭绝的概率为1,一定灭亡.
2.3 线性出生和死亡的生灭过程现在考虑同时有生也有死的情况,为简单计,假设生死速度均为线性.
设初始黑客数为a且在时刻t时,黑客个数为N(t),在时间区间(t, t+Δt]内有一个新黑客诞生的概率为λΔt+o(Δt),有一个黑客死亡的概率为μΔt+o(Δt).于是,在“N(t)=n”的条件下,在区间(t, t+Δt]内出生一个黑客的概率为λnΔt+o(Δt);死亡一个黑客的概率为μnΔt+o(Δt);黑客数不变的概率为1-(λ+μ)nΔt+o(Δt).所以,仿前面,记pn(t)=P(N(t)=n|N(0)=a),那么,利用全概率公式,便有
| $ \begin{array}{l} {p_n}(t + \Delta t) = {p_{n- 1}}(t)\lambda (n- 1)\Delta t + \\ {p_n}(t)[1-(\lambda + \mu )n\Delta t] + \\ {p_{n + 1}}(t)\mu (n + 1)\Delta t + o(\Delta t) \end{array} $ |
该式两边同除Δt,并令Δt→0,于是,在n≥1时便得微分方程
| $ \begin{array}{l} {\rm{d}}{p_n}(t)/{\rm{d}}t = \lambda (n-1){p_{n-1}}(t)-\\ (\lambda + \mu )n{p_n}(t) + \mu (n + 1){p_{n + 1}}(t) \end{array} $ |
若n=0,则有dp0(t)/dt=μp1(t),相应的初始条件为若n=a,则pn(0)=1;若n≠a,则pn(0)=0.
至此得到了有生有死情况下,黑客个数的随机过程pn(t) 所应该满足的微分方程,由于求解此方程很复杂,只给出最终结果如下:
记
当λ=μ时,Φ(s, t)={[1-(λt-1)(s-1)]/[1-λt(s-1)]}a.
现在分析黑客被灭绝的概率,即p0(t)=P(N(t)=0|N(0)=a),它其实就是Φ(0, t),所以
当λ≠μ时,p0(t)=Φ(0, t)={[μ(1-e-(λ-μ)t)]/[λ-μe-(λ-μ)t]}a.若更进一步分析,当λ < μ时,在此式中令t→∞,那么就有p0(t)→1,即该种黑客工具以概率1被灭绝(这是可以理解的,因为新黑客出生的概率小于死亡概率时,当然最终会灭绝);当λ>μ时,在此式中令t→∞,那么就有p0(t)→(μ/λ)a,即该种黑客数量将最终稳定在(μ/λ)a.
当λ=μ时,p0(t)=Φ(0, t)=[λt/(λt+1)]a,而且当t→∞时,也有p0(t)→1,即该种黑客以概率1被灭绝.初看起来,当出生概率等于死亡概率时,好像很难理解为什么它一定会灭绝.其实仔细分析后就知:0(灭绝) 是一个吸引状态,且与N(t) 的距离是有限的,又由于黑客数量的轨迹的随机性,所以掉进吸引子(灭绝) 当然就成为必然了.
经认真计算后,还知道在此处有生有死的情况下,在黑客数初值为N(0)=a的条件下,N(t) 的条件数学期望值(即平均黑客数)
| $ E[N(t)\left| {N(0) = a} \right.] = a{{\rm{e}}^{(\lambda -\mu )t}} $ |
它与确定性的Malthus模型的增长情况一样.
在黑客数初值为N(0)=a的条件下,N(t) 的条件方差值为:
当λ≠μ时,Var[N(t)|N(0)=a]=a(λ+μ) e(λ-μ)t[e(λ-μ)t-1]/(λ-μ)
当λ=μ时,Var[N(t)|N(0)=a]=2aλt.
2.4 非自治线性生灭过程2.3节中考虑出生概率和死亡概率时,故意忽略了时间和黑客数,其实黑客数越多时,其出生和死亡的概率也就越大,因此,更精细地假设:在t时刻,当黑客数为n时,相应的出生概率为λn=λ(t)n和死亡概率为μn=μ(t)n,于是,类似地可知条件概率pn(t)=P(N(t)=n|N(0)=a) 满足如下微分方程:
| $ \begin{array}{l} {\rm{d}}{p_n}(t)/{\rm{d}}t =- n[\lambda (t) + \mu (t)]{p_n}(t) + \\ \;\;\;\;\;\;\;\;\;(n -1)\lambda (t){p_{n -1}}(t) + \\ \;\;\;\mu (t)(n + 1){p_{n + 1}}(t), n = 1, 2, \cdots \end{array} $ |
和dp0(t)/dt=μ(t)p1(t),pa(0)=1,且当n≠a时有pn(0)=0.
并最终求出(详见文献[17]的5.3.5节),在初始黑客数为a的条件下,t时刻黑客数N(t) 的数学期望值为
假如黑客的出生率和死亡率都只与黑客个数有关,而与时间无关,不妨记:当有n个黑客时,出生率和死亡率分别为λn和μn;N(t)∈{0, 1, 2, …, K}为t时刻的黑客个数,那么与前面类似,在t时刻,N(t) 满足如下Markov方案
| $ \begin{array}{l} P\{ N(t + \Delta t) = n + 1\left| {N(t) = } \right.n\} = {\lambda _n}\Delta t + o(\Delta t)\\ P\{ N(t + \Delta t) = n-1\left| {N(t) = } \right.n\} = {\mu _n}\Delta t + o(\Delta t)\\ \;\;\;\;\;\;\;\;\;\;\;P\{ N(t + \Delta t) = n\left| {N(t) = n} \right.\} = \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;1-({\lambda _n} + {\mu _n})\Delta t + o(\Delta t) \end{array} $ |
令Δt→0,取极限便得到黑客数的条件转移概率所满足的如下两个微分方程:
| $ \begin{array}{l} {\rm{d}}{p_0}(t)/{\rm{d}}t = {\mu _1}{p_1}(t)\\ {\rm{d}}{p_n}(t)/{\rm{d}}t = {\lambda _{n-1}}{p_{n-1}}(t)-\\ ({\lambda _n} + {\mu _n}){p_n}(t) + {\mu _{n + 1}}{p_{n + 1}}(t) \end{array} $ |
求解这个微分方程很难,有关黑客何时会灭绝的结果描述如下[17]:所谓灭绝时间,就是指当黑客数首次为0的时间,也可以理解为此种黑客在被最终淘汰前的持续时间.若记Tn为初始黑客数为n的情况下,黑客被灭绝的时间,它显然是一个随机变量,但是,该随机变量的均值为
| $ E[{T_n}] = \sum\limits_{i = 1}^n {\sum\limits_{j = 1}^K {(1/{\mu _j})} } \prod\limits_{h = i}^{j -1} {({\lambda _h}/{\mu _h})} $ |
形象地说,对E[Tn]越小的黑客工具,其寿命就越短.
3 结束语在对付病虫害的长期过程中,人类已经知道:直接灭虫只是治标;控制害虫的生态环境,才是治本.对付网络黑客其实也是这个道理,但是,由于黑客们来无踪,去无影,所以,要想完全搞清其生态链,绝非易事.笔者虽然在一些(比较合理的) 人为假设下揭示了黑客的部分生态特性,但是别太乐观,因为万里长征才迈出第一步,有待解决的问题还很多,例如,如何用实测数据来验证相关模型的逼真程度?(这需要大型,甚至国家级的安全监测机构的数据支持;普通用户无能为力) 各种模型中的相关参数如何来确定,现有的参数回归方法是否有效?模型是否能够进一步优化?如何利用已知的黑客生态学结果,去完成某款黑客工具的实际控制?等等.
另一方面,读者也别太悲观.因为,虽然黑客生态很复杂,但是,可以站在巨人肩上,借鉴生物数学家们过去一百多年来积累的众多成果.坦率地承认,目前生物学家的这些成果,对网络安全专家来说,还有点像天书.幸好安全专家都是善于攻坚克难的跨界精英,相信在不远的将来,一定会把天书破译.随着黑客生态学研究的逐步深入,必有更多的秘密被发现.假如有幸能把某些生物学家吸引到网络安全领域来,那么,跨学科的合作将如虎添翼.
笔者创立《安全通论》的最终目标是,为网络空间安全学科的各分支,建立统一的基础理论.因此,本系列的每篇文章,都必须站得安全界的最高点,以便从宏观上研究普遍的共性问题,而忽略细枝末节.但是,不少方法和思路其实都可用于解决一些更具体的问题.读者若意识到这一点,也许会有助于在自己的安全分支中,获得意外丰收.例如,笔者的研究成果几乎可以完全照搬地应用于电信诈骗、非法传销、网络欺诈等具体安全问题的治理.而且,在解决电信诈骗等问题时,描述其安全生态的检测数据更容易获得,相关模型更容易验证,相关参数也更容易确定.甚至,这些局部成果可能会反过来帮助建立通用的黑客生态学.但是,为了保持《安全通论》结构的整洁性,就不纠缠这些细节了.欢迎有特殊兴趣的读者将《安全通论》应用于解决任何具体的安全问题,我们将毫无保留地提供力所能及的帮助.
这里多次强调“单工具”,是想避免陷入不必要的细节纠纷.其实,假如有多种黑客工具,那么由于每种工具的传播都具有生物繁殖特性,所以,粗略地说,各位黑客汇聚在一起时,也可以看作一类“单种群生物”,从而,所有思路和结果都仍然有效.当然,如果把黑客、正常用户和红客放到一起时,就不能再把他们看成同一个“物种”了,毕竟他们彼此之间的对抗多于协作.
包括本文在内的《安全通论》系列论文,还特别注意尽量不越界,即始终以安全为对象.其实,许多思路和结果也可以在安全之外的领域发挥作用,例如,其实除了普通的黑客软件之外,包括微信、高德地图等在内的几乎所有App和其他非预装类软件都具有本文揭示的共同生物繁殖特性,所以,关于它们的生态学特性,完全可以借用本文的结果.这显然对这些软件经营的商业模式、用户分布、升级维护和产品推广等方面都是很有帮助的.
| [1] | |
| [2] | |
| [3] | |
| [4] | |
| [5] | |
| [6] | |
| [7] | |
| [8] | |
| [9] | |
| [10] | |
| [11] | |
| [12] | |
| [13] | |
| [14] | |
| [15] | |
| [16] | |
| [17] | 唐三一, 肖燕妮. 单种群生物动力系统[M]. 北京: 科学出版社, 2015. |

