发明名称 基于网络环境软件运行安全性度量与评估方法
摘要 基于网络环境软件运行安全性度量与评估方法属于网络信息安全分析和评估技术。本发明包括:建立度量体系步骤,选取软件安全的评估指标;威胁建模步骤,对网络环境下软件面临的威胁进行建模;软件安全评估步骤,基于所述评估指标,用基于可靠性的软件安全评估方法,基于漏洞的软件安全评估方法和基于风险的软件安全评估方法,对面临网络环境下威胁的软件进行安全评估。所述建立度量体系步骤进一步包括:选取完整性、不可否认性、机密性、可授权性、可用性和身份可验证性为网络环境下软件安全的评估指标。本发明可提前评估出软件的安全漏洞与风险,及时调整软件的功能与安全模块,有效的控制与防止危险事件的发生。
申请公布号 CN102799822B 申请公布日期 2015.06.17
申请号 CN201210240586.X 申请日期 2012.07.11
申请人 中国信息安全测评中心 发明人 吴世忠;赵向辉;刘晖;易锦;刘彦钊;张磊;刘林;吴润浦;李娟
分类号 G06F21/57(2013.01)I 主分类号 G06F21/57(2013.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 刘萍
主权项 一种基于网络环境软件运行安全性度量与评估方法,其特征在于,包括:建立度量体系步骤,选取软件安全的评估指标;威胁建模步骤,对网络环境下软件面临的威胁进行建模;软件安全评估步骤,基于所述评估指标,用基于可靠性的软件安全评估方法,基于漏洞的软件安全评估方法和基于风险的软件安全评估方法,对面临网络环境下威胁的软件进行安全评估;其中软件安全评估步骤,用三种方法进行评估,具体如下:基于可靠性的评估方法基于可靠性的评估方法是,借鉴了软件可靠性的计算方法,计算将软件运行时的状态分成:正常运行状态、运行错误但安全状态和运行错误且不安全状态,利用软件的状态转移概率C,及测试时间t,计算出软件到达运行错误且不安全状态的期望时间MTTUF,得出软件安全性的评估结果;根据独立的伯努利实验,软件由正常状态到达运行错误但安全状态的概率是C,则由正常状态到达运行错误且不安全状态的概率是1‑C;具体步骤如下:1)对软件进行安全测试,或者输入测试报告,提取测试总时间t,软件安全错误数N<sub>s_s</sub>,即软件出现安全错误时,仍能保持正常的运行状态,和软件错误数N<sub>s</sub>;2)根据上步取得的结果,计算软件的状态转移概率C;根据独立的伯努利实验,软件由正常状态到达运行错误但安全状态的概率是C,则由正常状态到达运行错误且不安全状态的概率是1‑C;计算公式如下:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>C</mi><mo>=</mo><mfrac><msub><mi>N</mi><mrow><mi>S</mi><mo>_</mo><mi>S</mi></mrow></msub><msub><mi>N</mi><mi>S</mi></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000667500610000011.GIF" wi="337" he="163" /></maths>3)根据上步得出的状态转移概率C,计算软件处于运行错误但安全状态的平均时间MTTSF,计算公式如下:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>MTTSF</mi><mo>&GreaterEqual;</mo><mfrac><mrow><mi>e</mi><mo>&CenterDot;</mo><mi>t</mi></mrow><msub><mi>N</mi><mrow><mi>s</mi><mo>_</mo><mi>s</mi></mrow></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000667500610000012.GIF" wi="454" he="158" /></maths>4)由软件的运行错误但安全状态的平均时间MTTSF和软件的状态转移概率C,计算出软件运行错误且不安全状态的平均时间MTTUF,计算公式如下:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>MTTUF</mi><mo>=</mo><mfrac><mi>MTTSF</mi><mrow><mn>1</mn><mo>-</mo><mi>C</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000667500610000021.GIF" wi="534" he="150" /></maths>基于漏洞的评估方法将测试完软件所得到的各漏洞参数进行整合,根据不同漏洞对于整个软件完整性、可用性、保密性的影响权重进行计算分析,获得基于漏洞的软件安全性等级结果并将结果参数导入数据库中;具体步骤如下:1)漏洞采集工作;对软件进行漏洞扫描,得出扫描报告,这也是测评系统下一步的主要输入;2)使用漏洞评分系统中的基本标准群里的保密性Integrity影响、完整性Confidentiality影响、可用性Availability影响、攻击途径、攻击复杂度和认证这六个方面作为基本度量量;3)分析漏洞这几个基本安全属性,先是根据报告对每一个漏洞的描述,选出漏洞对软件安全性的保密性影响,完整性影响和可用性影响的分数级,选择某一漏洞对该软件三个方面影响的偏重,即W<sub>I</sub>,W<sub>A</sub>,W<sub>C</sub>;漏洞的基本安全属性分数BI的计算公式如下:BI=BaseImpact=I<sub>x</sub>×W<sub>I</sub>+A<sub>y</sub>×W<sub>A</sub>+C<sub>z</sub>×W<sub>C</sub>     (4)I<sub>x</sub>,A<sub>y</sub>,C<sub>z</sub>的中x,y,z分别代表三个安全属性的等级,其数值通过现有技术可知;W<sub>I</sub>,W<sub>A</sub>,W<sub>C</sub>分别为完整性、可用性和保密性的权重;4)利用另外三个安全属性:攻击途径、攻击复杂度和认证,得出漏洞的可利用率分数,可利用率就是体现软件中存在漏洞的可被利用概率,计算公式如下:EX=Exploitability=AV×AC×AU  (5)AV(Access Vector)代表攻击途径,AC(Access Complexity)代表攻击复杂度,AU(Authentication)代表认证;他们都是介于0到1的一个小数;其数值通过现有技术可知;5)由以上两步得出了BI和EX,两者相乘即为一个漏洞对安全性的最终实际影响分数;如下式:ImpactScore=BI×EX  (6)6)根据扫描报告得到的漏洞等级,提取出报告中每一个等级的漏洞数量,然后为四个等级分别附上权重;每一级漏洞算出平均分数再线性加权得出最终的结果;具体计算公式如下:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>SRS</mi><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mn>4</mn></munderover><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>j</mi></msub></munderover><mrow><mo>(</mo><mfrac><msub><mi>IS</mi><mi>i</mi></msub><msub><mi>n</mi><mi>j</mi></msub></mfrac><mo>&times;</mo><msub><mi>W</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000667500610000031.GIF" wi="702" he="210" /></maths>j即对应报告中漏洞的四类等级:致命、高、中、低;n为每类等级的漏洞数量,i从1取到n<sub>j</sub>;W为每类等级漏洞对应的权重;线性加权计算后所得结果SRS即为security risk score,分数越高表明软件系统越不安全,危险越大;基于风险的评估方法基于风险的软件安全评估方法是将软件面临的威胁风险,定义为威胁危害等级和威胁发生概率的一个函数;计算公式如下:R<sub>c</sub>=P<sub>c</sub>I<sub>c</sub>  (8)c,是一个具体的威胁事件;P<sub>c</sub>是威胁事件c发生的概率;I<sub>c</sub>是威胁的影响因子,威胁事件c发生时,对软件的危害程度;R<sub>c</sub>是威胁事件c发生时被评估软件面临的威胁风险;扫描软件,或通过输入测试报告的扩展方式,提取软件在网络环境下面临的威胁,并取得威胁的权重危害影响因子I<sub>c</sub>根据历史统计数据或专家打分法,取得威胁事件发生的概率P<sub>c</sub>;计算有m个威胁事件影响的软件安全指标B面临的风险R<sub>B</sub>,对m个事件的风险总和取平均数,计算公式如下:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>R</mi><mi>B</mi></msub><mo>=</mo><mfrac><mn>1</mn><mi>m</mi></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>c</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msub><mi>P</mi><mi>c</mi></msub><msub><mi>I</mi><mi>c</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000667500610000032.GIF" wi="539" he="136" /></maths>由上步计算结果,加入每个软件安全指标所占被测对象的安全权重,计算出网络环境下软件面临的风险,计算公式如下:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>R</mi><mo>=</mo><msubsup><mi>&Sigma;</mi><mi>B</mi><mn>6</mn></msubsup><msub><mi>W</mi><mi>B</mi></msub><msub><mi>R</mi><mi>B</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000667500610000041.GIF" wi="423" he="100" /></maths>W<sub>B</sub>是分配在每个软件安全指标的权重。
地址 100085 北京市海淀区上地西路8号院1号楼