基于损失量的软件强安全性度量方法

著录项
  • CN201310062422.7
  • 20130227
  • CN103198013A
  • 20130710
  • 中国信息安全测评中心
  • 吴世忠;赵向辉;姚尧;罗平;刘晖;易锦;黄雅芳;刘彦钊;张磊;吴润浦;李娟;姚原岗
  • G06F11/36(2006.01)I
  • G06F11/36(2006.01)I G06F21/57(2013.01)I

  • 北京市海淀区上地西路8号院1号楼
  • 中国,CN,北京(11)
  • 北京思海天达知识产权代理有限公司
  • 楼艮基
摘要
基于损失量的软件强安全性预测方法属于软件在特定使用环境下的可信性预测领域,其特征在于,以包括成本和利润在内的金钱损失量为尺度,以自软件发布之日起到预测起始日间公布的损失、累计天数、累计损失为基础的损失至少为一个损失量级的经过编写的软件漏洞损失数据为基础,在假定软件漏洞在设定的预测时间步长内按泊松分布的前提下,以1天为时间步长,再用最大似然估计的方法,通过计算预测间隔内初始损失密度估计值和损失密度下降率的乘积来计算设定预测步长内的损失量,从中安设定的软件漏洞预测数据次数提取损失量至少为一个损失量级的软件漏洞预测数据序列,按误差在[-0.4,0.4]损失量级的标准与已公开的在相同预测次数范围内的数据相比,准确率为70%。
权利要求

1.基于损失量的软件强安全性预测方法,其特征在于,软件安全性预测是一种以资金或利润 损失分类而非以漏洞数或漏洞等级分类的软件安全性度预测方法,是在计算机中依次按下 述步骤实现的:

步骤(1)计算机初始化,设定以下参数:

编号,是指从软件发布之日起,把至少造成一个损失量级的软件漏洞按发现的先后顺序排列 后对发现次数给出的序号,用n表示,其中的损失量级分为c级,c=4,每级损失相当于设定 的钱数,

累计天数,指造成所述至少一个损失量级的软件漏洞的发现日距软件发布日间相差的天 数,

损失,在所述累计天数内,对同一天内金钱的总损失量计算均值后转化成的损失量级数作 为一天的损失程度,

累计损失,自软件发布日起,到指定的至少造成一个损失量级的软件漏洞发现日止的损失 总量,损失量级小于一级的不计入编号;

步骤(2)计算机从中国国家信息安全漏洞库中提取自软件发布日起到最后一次发现造成 至少一个损失量级的软件漏洞所对应的指定日止的至少一个损失量级的所有软件漏洞数据, 每次都形成一个数据组,其中包括:编号、损失、累计天数、累计损失;

采样时刻用一天即24小时作为单位,用τ表示,软件发布日用τ 0表示,所述指定日用τ T‑1 表示,中间的任一日用τ t表示,t=0,1,2…t…T‑1,Δτ t=τ t‑τ t‑1=1天,

编号用n表示,至少造成一个损失量级的软件漏洞的编号所对应的漏洞发现日用 表示, 其中n=0,1,2…n…N‑1,n 0表示软件发布日τ 0时的编号。n 0=0,n N‑1表示最后发现至少一个损 失量级的编号,N为编号的总数,在数值上N=T;

累计损失用m表示,τ 0时m 0=0,τ T‑1时m=m T‑1,中间任何一个编号n所对应的累计损失 为m n;

以所述每一个数据组为行,从而形成一个矩阵形式的用于表示从软件发布日起到所述指定 日止的至少造成一个损失量级的软件漏洞数据组的序列,其中,各参数值时已知的;

步骤(3)依次按以下步骤进行基于损失量的软件强安全性预测:

步骤(3.1)采用下表转换的形式把最后一次发现至少一个损失量级的软件漏洞发现日τ T‑1, 对应的累计损失m T‑1以及对应的编号N‑1的都转换为预测起始日的数据:

令t 0′=T‑1,t′=t 0′,t 1′,…,t T′,

n′ 0=N‑1,n′=n 0′,n 1′,…,n′ N′,

m t 0 = m T - 1 , 其中,

t′下标是预测时刻τ′的编号,预测起始日

n′下标是至少造成一级损失量级的软件漏洞发现次数的序号,N′是设定的总发现次数, 其对应的发现日下标为T′,预测起始日的编号为n 0′,

是预测起始日 的累计损失,已知;

步骤(3.2)从预测初始值 开始,按下式计算下一个预测时间步长 时的累 计损失;

步骤(3.2.1)按下式计算 和ω:

m t 0 φ ^ - { Σ τ t 0 τ t 1 τ t 0 + ω ( τ t 1 - τ t 0 ) φ ^ [ τ t 0 + ω ( τ t 1 - τ t 0 ) ] + 1 } - { m t 0 [ τ T - 2 + ω ( τ T - 1 - Δτ T - 1 ) ] { φ ^ [ τ T - 2 + ω ( τ T - 1 - Δτ T - 1 ) ] + 1 } ln { φ ^ [ τ T - 1 + ω ( τ T - 1 - Δτ T - 1 ) ] + 1 } } = 0 , { - Σ τ t 0 τ t 1 φ ^ ω ( τ t 1 - τ t 0 ) φ ^ [ τ t 0 + ω ( τ t 1 - τ t 0 ) ] } - { m t 0 φ ^ ω ( τ T - 1 - Δτ T - 1 ) { φ ^ [ τ T - 2 + ω ( τ T - 1 - Δτ T - 1 ) ] + 1 } ln { φ ^ [ τ T - 1 + ω ( τ T - 1 - Δτ T - 1 ) ] + 1 } } = 0 Δτ T‑1=τ T‑1‑τ T‑2,

ω为相关系数,待求,相关是指自软件发布之日起相邻两次预测次数时间间隔Δτ t或Δτ′ t′内 与损失量有关的泊松分布系数,是一个变量,

符号“∧”表示是估计值, 是在预测时间间隔内估计的损失密度下降函数, 表示在预测初始值 开始后的各时间间隔Δτ′ t′内损失密度函数λ(Δτ′ t′)的初始损失密度, 是一个与Δτ′ t′有关的变量, μ(Δτ′ t′)为Δτ′ t′内软件漏洞造成的损失的均值 函数,μ(τ′ t′)=∫λ(τ′ t′+ω(τ′ t′))d(τ′ t′+ωΔτ′ t′),Δτ′ t′=τ′ t′‑τ′ t′‑1, 表示与 对应的损失密度下降率。

步骤(3.2.2)按下式计算 在自预测起始日起的一个Δτ′ t′=1内:

θ ^ t 0 = 1 m t 0 ln [ φ ^ ( τ T - 1 + ωΔ τ t 1 ) + 1 ] ,

Δ τ t = τ t 1 - τ t 0 ,

步骤(3.2.3)在Δτ′ t′=1内,按下式计算

为 时的值

步骤(3.2.4)按下式计算 时刻的累计损失量

m t 1 = 1 θ ^ t 0 ln [ φ ^ ( τ T - 1 + ωΔτ t 1 ) + 1 ] ,

步骤(3.2.4)判断

若 小于一个损失量级,则不计入被预测的软件漏洞预测数据组内,但存贮,

若 等于或大于一个损失量级,则纳入被预测的软件漏洞被预测数据组内,存贮,

步骤(3.2.5)用下一预测时刻t 1′+1的 代替 用 代替 用步骤(3.2.1)~步骤(3.2.4) 中所述的方法计算下一步长Δτ′ t′时的 以此类推,一直到设定的至少损失一个量级的漏洞 级数满足N′次为止,得到一个在预测时期T′内的软件漏洞预测数据组序列;

步骤(4)把步骤(3.2.5)得到的结果与步骤(2)中所述中国国家信息安全漏洞库中相 对应编号的结果相比,判断其误差是否在[‑0.4,0.4]损失量级范围内,其统计其预测准确率。

说明书
技术领域

本发明属于软件可信性的分支——软件安全性,具体涉及以损失量为基础,通过概率理 论度量安全性和预测损失的方法。

软件安全性是软件可信性的一个重要分支,国家标准GB/T 11457中对软件安全性的定义 为:通过对软件系统进行防护,阻止针对软件产品的恶意攻击,使软件系统免于受到恶意的 或无意但有害的破坏。软件的漏洞是软件缺陷的一种,Schultz在Responding to computer  security incidents中定义软件漏洞为“一种缺陷,使得入侵者可以绕过安全机制”,Pfieeger在 Security in computing中将漏洞定义为“安全系统中可被用来引起损失或危害的弱点”,Y.Shin 在s complexity really the enemy of software security?中认为“软件漏洞是软件规格、开发或配 置中缺陷的一个实例,它的运行违反潜在或外在的安全策略”。无论怎样定义软件漏洞,都离 不开软件、安全策略或措施、以及入侵者这三方面的参与。因为入侵者是自然人,所以软件 漏洞有了不同于软件安全的其它方面——如可靠性——的一些特性。同时,入侵者通常不是 软件的开发者,所以他们的存在有一定的隐蔽性,他们的活动有一定的随机性,这些因素加 大了漏洞预测的难度。

现有的实际漏洞库给出的最基本的数据都是发现漏洞的个数、类型和严重程度等数据。 虽然这些量在一定程度上可以反映软件质量的高低,但是,单纯的统计漏洞数目意义不大, 我们研究漏洞的目的是明确漏洞对软件安全性乃至可信性等属性的影响。学者们在这方面进 行了许多探索,Alhazmi讨论了软件漏洞的度量、分析和预测等一系列问题的基本方面, Sridhara、Malaiya等讨论了漏洞的量化问题,Yonghee Shin、Chowdhury等讨论了复杂度对漏 洞以及安全性的影响,Caragea、William等提出了一些基于经验的漏洞预测方法,Jinyoo Kim 等人研究了多版本软件中的漏洞的特性。

现有的漏洞分类方法主要从两方面入手,一是按照漏洞的出现原因或利用方式——如缓 冲区溢出,SQL注入,会话劫持等——分类,二是按照漏洞对系统安全造成威胁的严重程度 分类。第一种方法中,相同原因的两个漏洞,如缓冲区溢出,对系统安全性造成的威胁可能 差别很大,例如,两个网银软件,可能各有一个漏洞,使得用户的权限泄露。但是其中一个 不会造成账户被黑客操作,只是泄露信息,用户必须重置账户信息,银行在此过程中只要支 付一定的办公开支;而另一个软件系统则造成账户中的钱被取走或消费,银行可能需要赔付 客户损失。这两个漏洞即使被认定为属于不同的种类,对严重程度的反映也并不直观。而且 在有些分类方法中,由于都属于权限的泄露,这两个漏洞可能被分为同一级。所以,从我们 的目的出发,用第一种方法度量和预测漏洞价值不大。第二种方法看起来很有价值,但是当 我们把漏洞当成可信的一个子属性时,我们发现严重程度只是针对软件系统本身而言的,没 有充分的反应软件的可信属性,还是上面的例子,如果两个漏洞对系统的威胁被认为有同样 的严重程度,但是一个给用户造成比较大的损失,而另一个没有,那么显然后一个可信,但 是漏洞的严重程度分类没有显现出这种差别。

另一个问题是,为了度量不同软件的可信属性,我们有必要统一度量的量纲,而以上两 种分类方法中,第一种显然做不到这一点,第二种勉强可以做到,但没有充分的反应软件的 可信属性。为了使得漏洞的度量能直观有效的反映软件的可信属性,我们有必要重新选择度 量的标准。

我们发现,漏洞对软件安全和软件可信所造成威胁的实际严重程度,既不是与个数直接 相关,也不一定和类型或等级挂钩。那么,有没有一个影响因子,即能比较客观的反映出用 户对软件系统安全性的信任,又能作为一个统一的量纲来度量软件安全性乃至可信性呢?我 们认为,漏洞所造成的经济损失量符合这个要求。

首先,重大的软件安全问题几乎总是直接或间接地造成重大的经济损失,当我们用损失 量来描述这样的事故时,问题的严重程度就一目了然了。其次,损失量——即钱数——本身 就是个量化的值,而且是统一的。例如,两个不同的漏洞各造成了10000美元的损失,尽管 这两个漏洞可能有很大区别,但是10000美元和10000美元总是相等的。由于用户的主管判 断对软件的可信性有着至关重要的影响,而用户通常不关心技术细节,而一般不会忽视损失, 那么使用损失量度量软件安全性乃至可信性可以让用户抛开细节,直接面对他们关心的方面, 从而将软件可信问题的主观因素统一在度量中。设想一下,如果我们可以预测漏洞所造成的 损失,那么软件的开发者和用户在这样直观的预测下,显然会更重视安全问题,并采取措施 避免或减小损失。同时,用户在比较多个软件系统的优劣时,不需要再面对诸如漏洞个数、 类型、严重程度等多个复合指标,只需列出漏洞所造成的损失及其预测结果,就可以直观地 做出判断。而在建立模型时,我们也不用再去量化本来很难表示的用户主观因素。

本发明的目的在于提供一种以金钱损失量为基础的以损失等级来度量的软件强安全性预 测方法。

本发明的特征在于软件安全性预测是一种以资金或利润损失分类而非以漏洞数或漏洞等 级分类的软件安全性度预测方法,是在计算机中依次按下述步骤实现的:

步骤(1)计算机初始化,设定以下参数:

编号,是指从软件发布之日起,把至少造成一个损失量级的软件漏洞按发现的先后顺序排列 后对发现次数给出的序号,用n表示,其中的损失量级分为c级,c=4,每级损失相当于设定 的钱数,

累计天数,指造成所述至少一个损失量级的软件漏洞的发现日距软件发布日间相差的天 数,

损失,在所述累计天数内,对同一天内金钱的总损失量计算均值后转化成的损失量级数作 为一天的损失程度,

累计损失,自软件发布日起,到指定的至少造成一个损失量级的软件漏洞发现日止的损失 总量,损失量级小于一级的不计入编号;

步骤(2)计算机从中国国家信息安全漏洞库中提取自软件发布日起到最后一次发现造成 至少一个损失量级的软件漏洞所对应的指定日止的至少一个损失量级的所有软件漏洞数据, 每次都形成一个数据组,其中包括:编号、损失、累计天数、累计损失;

采样时刻用一天即24小时作为单位,用τ表示,软件发布日用τ0表示,所述指定日用τT‑1 表示,中间的任一日用τt表示,t=0,1,2…t…T‑1,Δτt=τt‑τt‑1=1天,

编号用n表示,至少造成一个损失量级的软件漏洞的编号所对应的漏洞发现日用表示,
其中n=0,1,2…n…N‑1,n0表示软件发布日τ0时的编号。n0=0,nN‑1表示最后发现至少一个损
失量级的编号,N为编号的总数,在数值上N=T;

累计损失用m表示,τ0时m0=0,τT‑1时m=mT‑1,中间任何一个编号n所对应的累计损失 为mn;

以所述每一个数据组为行,从而形成一个矩阵形式的用于表示从软件发布日起到所述指定 日止的至少造成一个损失量级的软件漏洞数据组的序列,其中,各参数值时已知的;

步骤(3)依次按以下步骤进行基于损失量的软件强安全性预测:

步骤(3.1)采用下表转换的形式把最后一次发现至少一个损失量级的软件漏洞发现日τT‑1, 对应的累计损失mT‑1以及对应的编号N‑1的都转换为预测起始日的数据:

令t0′=T‑1,t′=t0′,t1′,…,tT′,

n′0=N‑1,n′=n0′,n1′,…,n′N′,

mt′0=mT‑1,其中,

t′下标是预测时刻τ′的编号,预测起始日

n′下标是至少造成一级损失量级的软件漏洞发现次数的序号,N′是设定的总发现次数, 其对应的发现日下标为T′,预测起始日的编号为n0′,

是预测起始日的累计损失,已知;

步骤(3.2)从预测初始值开始,按下式计算下一个预测时间步长时的累
计损失;

步骤(3.2.1)按下式计算和ω:

<mfenced open='{' close=''> <mtable> <mtr> <mtd> <mfrac> <msub> <mi>m</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> </msub> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> </mfrac> <mo>-</mo> <mo>{</mo> <munderover> <mi>&Sigma;</mi> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>1</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> </munderover> <mfrac> <mrow> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>+</mo> <mi>&omega;</mi> <mrow> <mo>(</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>1</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>-</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>)</mo> </mrow> </mrow> <mrow> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> <mo>[</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>+</mo> <mi>&omega;</mi> <mrow> <mo>(</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>1</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>-</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>)</mo> </mrow> <mo>]</mo> <mo>+</mo> <mn>1</mn> </mrow> </mfrac> <mo>}</mo> <mo>-</mo> <mo>{</mo> <mfrac> <mrow> <msub> <mi>m</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> </msub> <mo>[</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>2</mn> </mrow> </msub> <mo>+</mo> <mi>&omega;</mi> <mrow> <mo>(</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>&Delta;&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>]</mo> </mrow> <mrow> <mo>{</mo> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> <mo>[</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>2</mn> </mrow> </msub> <mo>+</mo> <mi>&omega;</mi> <mrow> <mo>(</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>&Delta;&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>]</mo> <mo>+</mo> <mn>1</mn> <mo>}</mo> <mi>ln</mi> <mo>{</mo> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> <mo>[</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <mi>&omega;</mi> <mrow> <mo>(</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>&Delta;&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>]</mo> <mo>+</mo> <mn>1</mn> <mo>}</mo> </mrow> </mfrac> <mo>}</mo> <mo>=</mo> <mn>0</mn> <mo>,</mo> </mtd> </mtr> <mtr> <mtd> <mo>{</mo> <mo>-</mo> <munderover> <mi>&Sigma;</mi> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>1</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> </munderover> <mfrac> <mrow> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> <mi>&omega;</mi> <mrow> <mo>(</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>1</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>-</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>)</mo> </mrow> </mrow> <mrow> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> <mo>[</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>+</mo> <mi>&omega;</mi> <mrow> <mo>(</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>1</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>-</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>)</mo> </mrow> <mo>]</mo> </mrow> </mfrac> <mo>}</mo> <mo>-</mo> <mo>{</mo> <mfrac> <mrow> <msub> <mi>m</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> </msub> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> <mi>&omega;</mi> <mrow> <mo>(</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>&Delta;&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> </mrow> <mrow> <mo>{</mo> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> <mo>[</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>2</mn> </mrow> </msub> <mo>+</mo> <mi>&omega;</mi> <mrow> <mo>(</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>&Delta;&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>]</mo> <mo>+</mo> <mn>1</mn> <mo>}</mo> <mi>ln</mi> <mo>{</mo> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> <mo>[</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <mi>&omega;</mi> <mrow> <mo>(</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <msub> <mi>&Delta;&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>)</mo> </mrow> <mo>]</mo> <mo>+</mo> <mn>1</mn> <mo>}</mo> </mrow> </mfrac> <mo>}</mo> <mo>=</mo> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced>

ΔτT‑1=τT‑1‑τT‑2,

ω为相关系数,待求,相关是指自软件发布之日起相邻两次预测次数时间间隔Δτt或Δτ′t′内 与损失量有关的泊松分布系数,是一个变量,

符号“∧”表示是估计值,是在预测时间间隔内估计的损失密度下降函数,
表示在预测初始值开始后的各时间间隔Δτ′t′内损失密度函数λ(Δτ′t′)的初始损失密度,
是一个与Δτ′t′有关的变量,μ(Δτ′t′)为Δτ′t′内软件漏洞造成的损失的均值
函数,μ(τ′t′)=∫λ(τ′t′+ω(τ′t′))d(τ′t′+ωΔτ′t′),Δτ′t′=τ′t′‑τ′t′‑1
表示与对应的损失密度下降率。

步骤(3.2.2)按下式计算在自预测起始日起的一个Δτ′t′=1内:

<mrow> <msub> <mover> <mi>&theta;</mi> <mo>^</mo> </mover> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>m</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> </msub> </mfrac> <mi>ln</mi> <mo>[</mo> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> <mrow> <mo>(</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <mi>&omega;&Delta;</mi> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>1</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> <mo>]</mo> <mo>,</mo> </mrow>

<mrow> <msubsup> <mi>&Delta;&tau;</mi> <msup> <mi>t</mi> <mo>&prime;</mo> </msup> <mo>&prime;</mo> </msubsup> <mo>=</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>1</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>-</mo> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>,</mo> </mrow>

步骤(3.2.3)在Δτ′t′=1内,按下式计算

为时的值

步骤(3.2.4)按下式计算时刻的累计损失量

<mrow> <msub> <mi>m</mi> <msubsup> <mi>t</mi> <mn>1</mn> <mo>&prime;</mo> </msubsup> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mover> <mi>&theta;</mi> <mo>^</mo> </mover> <msubsup> <mi>t</mi> <mn>0</mn> <mo>&prime;</mo> </msubsup> </msub> </mfrac> <mi>ln</mi> <mo>[</mo> <mover> <mi>&phi;</mi> <mo>^</mo> </mover> <mrow> <mo>(</mo> <msub> <mi>&tau;</mi> <mrow> <mi>T</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <mi>&omega;&Delta;</mi> <msubsup> <mi>&tau;</mi> <msubsup> <mi>t</mi> <mn>1</mn> <mo>&prime;</mo> </msubsup> <mo>&prime;</mo> </msubsup> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> <mo>]</mo> <mo>,</mo> </mrow>

步骤(3.2.4)判断

若小于一个损失量级,则不计入被预测的软件漏洞预测数据组内,但存贮,

若等于或大于一个损失量级,则纳入被预测的软件漏洞被预测数据组内,存贮,

步骤(3.2.5)用下一预测时刻t1′+1的代替用代替用步骤(3.2.1)~步骤(3.2.4)
中所述的方法计算下一步长Δτ′t′时的以此类推,一直到设定的至少损失一个量级的漏洞
级数满足N′次为止,得到一个在预测时期T′内的软件漏洞预测数据组序列;

步骤(4)把步骤(3.2.5)得到的结果与步骤(2)中所述中国国家信息安全漏洞库中相 对应编号的结果相比,判断其误差是否在[‑0.4,0.4]损失量级范围内,其统计其预测准确率。

本发明用损失程度来代替用严重程度对软件由于漏洞造成的损失,损失量级用金额预测, 使得在具体使用时软件的安全性得到了量化,使用户对所选择的应用软件是否可靠有了更高 的可信性,从而提高了软件使用的安全性。

图1本发明的中流程框图。

图2软件漏洞损失预测过程的子框图。

我们从中国国家信息安全漏洞库中选取了Windows XP操作系统从2001年10月25日发 布,到2005年10月共160个漏洞的数据,这些漏洞按严重程度被分为4类,其中等级4为 最危险。我们假定严重等级越高,损失越大,假定一个等级对应一个损失量级,例如十万元。 则1级对应十万元损失,2级对应二十万元,以此类推。将漏洞按发现日期排列,计算出发 现日期距软件发布日期相差的天数。同时,我们假设一天只发现一次损失,因此将同一天内 的损失量合并取平均值。得到如下表格

编号 损失 累计天数 累计损失

1 3 27 3

2 2 42 5

3 3 53 8

4 2 56 10

5 1 67 11

6 2 134 13

7 3 161 16

8 2 218 18

9 3 251 21

10 2 344 23

11 3 350 26

12 2 351 28

13 3 368 31

14 3 424 34

15 3 427 37

16 2 432 39

17 3 470 42

18 3 482 45

19 2 498 47

20 3 515 50

21 2 524 52

22 2 564 54

23 3 592 57

24 3 651 60

25 4 692 64

26 2 725 66

27 3 753 69

28 3 781 72

29 2 831 74

30 3 860 77

31 2 950 79

32 2 963 81

33 2 986 83

34 3 1016 86

35 2 1028 88

36 3 1069 91

37 2 1093 93

38 3 1105 96

39 2 1147 98

40 2 1155 100

41 2 1163 102

42 3 1173 105

43 4 1174 109

44 2 1227 111

45 2 1265 113

46 3 1280 116

47 3 1285 119

48 2 1301 121

49 2 1314 123

50 2 1315 125

51 3 1327 128

52 3 1328 131

53 2 1363 133

54 3 1371 136

55 2 1385 138

56 1 1407 139

57 2 1442 141

58 3 1448 144

59 3 1449 147

60 2 1457 149

损失 天数 累计损失 估计值

3 1327 128 127.6766

3 1328 131 128.6554

2 1363 133 133.4351

3 1371 136 135.8133

1 1385 137 136.6848

1 1407 138 137.9863

2 1442 140 139.6790

2 1448 142 140.5364

2 1449 144 139.8691

4 1457 148 140.1948

我们规定误差在[‑0.4,0.4]之间的量为预测准确,根据上表的数据,预测的准确率为70%。

本文发布于:2024-09-26 05:16:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/75373.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议