无危则安,无损则全。安全意识就在中国古代人文精神中得到了充分体现。在《申鉴》曾有记载:进忠有三术:一曰防,二曰救,三曰戒,先其未然谓之防,发而止之谓之救,行而则之谓之戒。防为上,救次之,戒为下。其认为谋事之道的最高境界是防患未然,在事情没有发生之前就预设警戒;其次是在祸患刚开始显露之际及时采取措施中止其发生,至于事后的惩处训诫是最末等措施。这应是现代安全风险管理预防为先的思想雏形。
古人在很早的时候就已经知道安全风险管理以预防为先,但构建预防体系的基础是什么并没有说明。在我们看来,想要预防,必须先要有安全风险的评估体系,基于整个网络系统提供的各类基础数据,构建风险评估体系,从这个风险评估体系中,我们可以知道整个系统中,哪个部分是由于自身的脆弱性而容易导致被攻破;哪个部分是由于对外暴露而容易被攻击;哪个部分已经处于常常被攻击的场景下。因此,基于此,我们必须有一整套安全风险评估体系,对整个系统有一个从定性到定量的风险呈现。
国标GB/T 20984-2007中定义的信息安全风险评估规范中只给出了风险评估计算的原理和基础模型,但并没有给出从定性到定量的方法论。特别是威胁的量化,如何把威胁的严重性,威胁的热度、威胁情报的影响、威胁严重随时间因素的衰减等因素综合考虑的情况下,实现对威胁的量化。
本文就是基于国标对安全风险评估的定义,绿盟科技提出如何从定性到定量实现单资产风险评估算法,并在此基础之上,如何构建安全风险分层量化体系,实现不同层级安全域风险的聚合及计算。这两个算法绿盟科技都已经申请专利。
一、单资产风险评估算法介绍
国标GB/T 20984-2007中定义的信息安全风险评估规范中只给出了风险评估计算的原理和基础模型,即风险值由威胁值、脆弱性值和资产价值组成并计算,但存在以下问题没有做清晰的定义:
☆并没有给出风险值、威胁值、脆弱性值的具体算法,也即并没有给出从定性到定量的量化评估算法。
本节给出单资产风险值算法,从而计算出资产基于风险三要素:资产价值/脆弱性值/威胁值聚合出风险值的一个量化指标。
风险评估主要考虑如下因素:
脆弱性:反应资产漏洞情况及配置合规性情况。
威胁:通过以往的威胁事件对网络可能受到的威胁攻击进行预测评估。
资产价值:体现资产在客户网络中的重要性,依据资产在机密性、完整性和可用性上的赋值等级,经过综合评定得出。
因此在确定资产的安全风险评估算法之前,我们首先要评估出资产脆弱性、资产的威胁值及资产价值。
1脆弱性评估因素与算法
主机脆弱性值由主机漏洞情况及配置不符合项情况决定。其中,主机漏洞脆弱性由主机系统的所有漏洞风险加权和决定,漏洞危险程度越高的漏洞对主机漏洞脆弱性影响越大,针对漏洞的威胁程度,在绿盟的定义的漏洞库体系中给出了单个漏洞的评分系统,这个评分系统除行业标准定义的CVSS评分外。在CVSS评分不能及时跟进更新的情况下,我们还增加了绿盟自身的Nsfocus评分,作为漏洞评分系统的补充。
而对于某一主机的脆弱性评分,则是基于当前主机漏洞风险值和配置核查风险值来决定的。
主机漏洞风险值的的计算,为了最大体现威胁程度最高的漏洞对主机的威胁,我们假设一个主机共有n个漏洞,按照危险程度及CVSS评分从高到低排列的对漏洞进行排列列表为:a1 ,a2 ,a3 …an ,漏洞风险值rv为则依据绿盟提出的专利算法最终获得:
其中:
a1 为威胁最大漏洞的漏洞评分值
为影响系数
为收敛系数
rv [0,10],最小粒度为0.01
配置核查风险值可以由模版组成,配置脆弱性值rbi 的计算由单模版风险值rbi 计算,计算算法如下:
其中,
其中,wi 为不符合配置项的权重,m为不符合配置项的个数;wi 为配置项的权重,n为所有配置项的个数。
最终获得主机脆弱性值rh 的计算算法如下:
rh=a*rv b*rb
绿盟科技提出的脆弱性算法比较全面的考虑了导致主机产生脆弱性的各个因素,并基于相应的算法,并利用权重系数的调整,最大可能体现了某个严重的漏洞或者配置项对主机脆弱性值得影响。
2 威胁评分因素与算法
在过去几年当中,各厂家威胁评分算法一直被客户诟病,算法存在一系列问题,如:
1、 算法中只考虑了安全威胁事件,其他因素例如是否作用在当前主机、威胁的热度、威胁情报的影响、威胁严重随时间因素的衰减等因素无法动态添加到系统中;
2、 算法将威胁事件对周边节点的影响统一考虑在当前主机威胁值的计算中,造成作用在本机上的威胁权重降低,无法体现作用在当前主机的严重性;
基于以上算法上的缺陷,我们将AHP层次分析法引入到主威胁值算法中,从而实现在威胁的多维度影响下,将影响决策因子基于重要程度进行分层并提出从定性到定量的威胁权重计算算法,并基于配置机制动态添加决策因子。
2.1 AHP层次分析法
层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初,在为美国国防部研究"根据各个工业部门对国家福利的贡献大小而进行电力分配"课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。
层次分析法是指将一个复杂的多目标决策问题作为一个系统,将目标分解为多个目标或准则,进而分解为多指标(或准则、约束)的若干层次,通过定性指标模糊量化方法算出层次单排序(权数)和总排序,以作为目标(多指标)、多方案优化决策的系统方法。
层次分析法是将决策问题按总目标、各层子目标、评价准则直至具体的备投方案的顺序分解为不同的层次结构,然后用求解判断矩阵特征向量的办法,求得每一层次的各元素对上一层次某元素的优先权重,最后再加权和的方法递阶归并各备择方案对总目标的最终权重,此最终权重最大者即为最优方案。
层次分析法比较适合于具有分层交错评价指标的目标系统,而且目标值又难于定量描述的决策问题。
层次分析法根据问题的性质和要达到的总目标,将问题分解为不同的组成因素,并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合,形成一个多层次的分析结构模型,从而最终使问题归结为最低层(供决策的方案、措施等)相对于最高层(总目标)的相对重要权值的确定或相对优劣次序的排定。
AHP分析法计算步骤主要包含如下:
2.2 威胁值评估层次结构建模
利用AHP分析法,基于资产面临的威胁,我们对其进行分层建模:
目标层:最终确定资产威胁值
准则层:我们初步把准则层分为三个层次维度:
第一层:是否作用于本机
第二层:威胁维度,包括威胁事件的威胁度,威胁事件的热度、攻击源的信誉度等。
第三层:时间区间,针对要计算的威胁全量区间,划分时间区间。
方案层:针对不同威胁维度的确定相应的基础威胁值算法/基础热度算法/基础信誉度算法。
2.3 构造分层判定矩阵
在构造判定矩阵之前,我们需要给出从定性到定量的判定准则。在层次分析法中,为了使判定定量化,关键在于设法是的任意两个方案对于某一个判定准则相对优越程度得到定量描述,一般对单一准则来说,两个方案进行比较总能判断出优劣,我们采用1~9标度的方法,对不同情况评比给出数量标度,实现定性到定量的标定。
在此基础上,针对准则层定义的每一子层的判定决策因子,我们构造判定矩阵,矩阵元素具有如下特征:
bii=1
bji=1/bij
bij=bik/bjk
(i,j,k=1,2,3…n)
(i,j,k=1,2,3…n)
判定矩阵中bij是根据资料数据、专家意见和系统分析的人员的经验经过反复研究后确定。应用层次分析法保持判定思维的一致性是非常重要的,只要矩阵中的bij满足上述三条关系式时,就说明判定矩阵局用完全一致性。因此针对威胁值评估的分层建模,我们构建出准则层的矩阵为:
在以上矩阵中元素的的取值依赖于专家意见、系统分析人员或者客户诉求,所以在系统实现时,上述信息的构建通过配置文件,可以动态导入到实现系统中。
针对准则层各个子层的判定矩阵,利用归一化算法得到各层判定因子的权重分配。
因此,资产的威胁值的计算公式为:
其中本机威胁值(非本机威胁值)计算公式为:
资产威胁值=本机威胁值*权重 非本机威胁值*权重
其中威胁度计算公式为:
威胁度=最近10天的威胁度*权重 ... 前80~90天的威胁度*权重
热度计算公式为:
热度=最近10天的热度*权重 ... 前80~90天的热度*权重
信誉度计算公式为:
信誉度=最近10天的信誉度*权重 ... 前80~90天的信誉度*权重
最终,资产威胁值的计算通过准则层权重的逐层迭代计算得出。
2.4 威胁值计算简化
在安全威胁的计算体系中,由于系统中可能无法获取信誉度、热度等信息;同时,针对某一资产的威胁事件也可能是不连续,某个统计时段存在攻击,某些统计时段可能完全没有攻击,基于此,我们在实现时可以简化实现:
1、 通过配置文件,可以简化威胁维度,例如只考虑威胁度;
2、 对于某些统计时段没有威胁攻击时,我们系统中动态降低判定矩阵的维度,从而不再考虑没有攻击的时段
其计算公式也可以做相应的简化。
2.5 准则层的扩展性
同时在具体实现中,我们可以采用配置文件的方式,针对不同准则的重要性,定义扩展准则层中的各个子层或者各个子层中的决策因子,例如,如果我们要将威胁因子-是否阻断添加到判定准则中,由于这个因子和威胁判定维度不再一个层级,所以,我们可以扩展一个层级为“威胁是否已经阻断”,并为其构建一个2维判定矩阵,由于我们认为已经阻断比没有阻断我们极端重要,查上表,我们可以得到这个2维矩阵为
。如图所示:
这样在系统实现中,只需要简单的迭代递归算法,则可以将配置文件中新加的“是否阻断”准则考虑到威胁值的评估算法体系中去。
3 资产价值评估因素与算法
机密性、完整性和可用性是评价资产的三个基本安全属性。风险评估中资产的重要性主要是由资产在这三个安全属性上的达成程度或者其安全属性未达成时所造成的影响程度来决定的。
1
机密性
根据资产在机密性上的不同要求,将其分为五个不同的等级,分别对应资产在机密性上应达成的不同程度或者机密性缺失时对整个组织的影响。下表提供了机密性赋值的参考。
赋值 | 标识 | 定义 |
---|---|---|
5 | 很高 | 包含组织最重要的秘密,关系未来发展的前途命运,对组织根本利益有着决定性的影响,如果泄露会造成灾难性的损害 |
4 | 高 | 包含组织的重要秘密,其泄露会使组织的安全和利益遭受严重损害 |
3 | 中等 | 组织的一般性秘密,其泄露会使组织的安全和利益受到损害 |
2 | 低 | 仅能在组织内部或在组织某一部门内部公开的信息,向外扩散有可能对组织的利益造成轻微损害 |
1 | 很低 | 可对社会公开的信息,公用的信息处理设备和系统资源等 |
2
完整性
根据资产在完整性上的不同要求,将其分为五个不同的等级,分别对应资产在完整性上缺失时对整个组织的影响。
赋值 | 标识 | 定义 |
---|---|---|
5 | 很高 | 完整性价值非常关键,未经授权的修改或破坏会对组织造成重大的或无法接受的影响,对业务冲击重大并可能造成严重的业务中断,难以弥补 |
4 | 高 | 完整性价值较高,未经授权的修改或破坏会对组织造成重大影响,对业务冲击严重,较难弥补 |
3 | 中等 | 中等完整性价值中等,未经授权的修改或破坏会对组织造成影响,对业务冲击明显,但可以弥补 |
2 | 低 | 低完整性价值较低,未经授权的修改或破坏会对组织造成轻微影响,对业务冲击轻微,容易弥补 |
1 | 低 | 完整性价值非常低未经授权的修改或破坏对组织造成的影响可以忽略,对业务冲击可以忽略 |
3
可用性
根据资产在可用性上的不同要求,将其分为五个不同的等级,分别对应资产在可用性上应达成的不同程度。
赋值 | 标识 | 定义 |
---|---|---|
5 | 很高 | 可用性价值非常高,合法使用者对信息及信息系统的可用度达到年度99.9月以上,或系统不允许中断 |
4 | 高 | 可用性价值较高,合法使用者对信息及信息系统的可用度达到每天90%以上,或系统允许中断时间小于10min |
3 | 中等 | 可用性价值中等,合法使用者对信息及信息系统的可用度在正常工作时间达到70%以上,或系统允许中断时间小于30min |
2 | 低 | 可用性价值较低,合法使用者对信息及信息系统的可用度在正常工作时间达到25%以上,或系统允许中断时间小于60 min |
1 | 低 | 可用性价值可以忽略,合法使用者对信息及信息系统的可用度在正常工作时间低于25% |
4
资产价值
资产按如下公式生成资产重要等级(资产价值)
资产重要等级=
赋值 | 标识 | 定义 |
---|---|---|
5 | 很高 | 很高非常重要,其安全属性破坏后可能对组织造成非常严重的损失 |
4 | 高 | 重要,其安全属性破坏后可能对组织造成比较严重的损失 |
3 | 中等 | 比较重要,其安全属性破坏后可能对组织造成比较中等程度的损失 |
2 | 低 | 不太重要,其安全属性破坏后可能对组织造成较低的损失 |
1 | 低 | 不重要,其安全属性破坏后可能对组织造成很小的损失,甚至忽略不计 |
4 资产风险评估算法
一般来说,风险有两个属性:后果(Consequence)和可能性(Likelihood)。最终风险对公司信息系统的影响,也就是风险两个属性权衡作用的结果。不同的资产面临的主要威胁各不相同。而随着威胁可以利用的、资产存在的弱点数量的增加会增加风险的可能性,随着弱点严重级别的提高会增加该资产面临风险的后果。在许多情况下,某资产风险的可能性是面临的威胁的可能性和资产存在的脆弱性的函数,而风险的后果是资产的价值与脆弱性的函数。
实际计算时,我们取
其中:
rh 为主机脆弱性值
t 为威胁值,范围0~10
风险可能性取值范围:0~10
风险后果计算公式
其中:
rh为主机脆弱性值
wp为主机的资产重要等级
风险损失取值范围:0~10
风险值计算公式
其风险值及风险等级映射关系如下表所示:
风险等级 | 风险值 | 标识 | 颜色 | 描述 |
---|---|---|---|---|
5 | 8~10 | 很高 | 红色 | 一旦发生将产生非常严重的经济或社会影响,如组织信誉严重破坏、严重影响组织的正常经营,经济损失重大、社会影响恶劣。 |
4 | 6~8 | 高 | 橙色 | 一旦发生将产生较大的经济或社会影响,在一定范围内给组织的经营和组织信誉造成损害。 |
3 | 4~6 | 中等 | 黄色 | 一旦发生会造成一定的经济、社会或生产经营影响,但影响面和影响程度不大。 |
2 | 2~4 | 低 | 蓝色 | 一旦发生造成的影响程度较低,一般仅限于组织内部,通过一定手段很快能解决。 |
1 | 0~2 | 很低 | 绿色 | 一旦发生造成的影响几乎不存在,通过简单的措施就能弥补。 |
二、安全风险分层量化体系
在安全风险方面,客户面临的问题当前是:由于算法问题, 业务域风险或者总风险可能小于业务单元的风险,也就是总风险不能真实反映安全运营体系中最薄弱的环节。因此,我们基于我们提出单资产风险算法,面向资产的层级体系,我们又提出了安全风险木桶权重聚合算法,利用这个算法,在计算每一层级的聚合风险值之前,我们对当前每个个体风险进行排序,个体风险越大,在计算最终聚合风险值中所占的权重最大,因而使得这个聚合风险值最能反映风险最薄弱的资产。
基于单资产风险评估算法,我们提出风险木桶权重聚合算法,实现安全风险分层量化体系的评估计算:
1木桶权重算法
假设一个资产域有n个资产,每个资产具有属性值,按照大小,从高到低排列的属性值列表为:,系统总体属性的计算算法如下:
– 其中:
–
为影响系数
–
为收敛系数,要保证
计算结果在[0,1]之间
– Ri 和R总 取值范围是 [0,10]
由于本算法的计算使得资产属性值最大的资产在计算中所占权重最大,因而总体属性值最能体现资产属性值最大的资产,并略大于这个值。
2风险量化评估体系
按照木桶权重算法,逐级计算出安全域风险值(包括安全域的脆弱性值及威胁值)和总风险值(包括总脆弱性值及威胁值),体现资产域整体安全风险的最薄弱环节,体系如上图所示:
基于木桶权重算法,形成面向资产风险值、威胁值、脆弱性值的层级量化算法:
- 资产风险值层级量化算法
首先假设一个资产域有n个资产,每个资产具有风险值Ri ,按照风险值Ri 大小,从高到低排列的风险值列表为:R1,R2,R3…Rn,系统总体风险R域的计算算法如下:
– 其中:
–
为影响系数
–
为收敛系数,要保证
计算结果在[0,1]之间
– Ri 和R域取值范围是 [0,10]
通过以上算法计算出某个安全域的域风险值,由于本算法的计算使得风险最大的资产在计算中所占权重最大,因而总体风险值最能体现资产风险值最大的资产,并略大于这个值。
然后,假设一个安全监控系统有n个资产域,每个资产域具有风险值,按照如上相同的算法,最终可以计算出整个系统的总风险值,从而在整个体系中,能够从下到上立体呈现体系的风险值及风险分布情况(如上图所示)。
我们可以利用同样的算法理论计算出资产域内的域脆弱性值和域威胁值及整个体系的总脆弱性值和总威胁值。
这样使得整个系统的风险呈现通过横向维度(风险值、威胁值、脆弱性值)和纵向维度(单资产维度、各层级的安全域维度、总体维度)立体呈现,展现风险全景。
通过木桶权重算法,上层风险由下层风险最大的资产或者安全域来决定;风险值、威胁值、脆弱性值逐层计算量化,整体风险立体呈现,快速定位风险最薄弱环节。
基于这个评估体系为我们整个系统带来如下优势:
优势
1. 根据客户定义的不同类型安全域(资产组、地域、组织架构、业务域),可以方便快捷的逐层计算出风险值、威胁值、脆弱性值;
2. 各个层级的风险值、威胁值、脆弱性值通过木桶权重算法获得,系统安全风险通过各个层级的风险值、威胁值、脆弱性值立体呈现,使得客户可以通过下钻快速定位TOP风险域或者TOP风险资产。
绿盟科技所提出的安全风险评估算法,不仅仅是面向某个主机或者资产,而是一个体系化的解决方案,特别是面临的各类外部威胁是各类复杂多变的因素需要考虑到风险评估中时,绿盟科技给出了一个更加的自适应的从定性到定量的方案,使得体系的安全风险评估结果更能接近于真实的网络安全现状。
内容编辑:绿盟科技 系统架构部 责任编辑:肖晴