基于安全漏洞分析的风险度量方法
2014-08-27本刊编辑
在信息安全风险管理领域,存在如下三个需求或问题:
企业高层管理者需要从宏观视角看到企业信息安全风险的整体态势;
信息安全风险度量方法客观性不足,现有度量方法包含的主观因素太多,导致度量结果难以得到广泛的认可;
信息安全风险的处置策略和方案选择缺少客观的选择依据,风险控制结果的有效性难以评价;
本文试图提供一种相对客观的信息安全风险度量方法,尝试在一定程度上解决上述问题。
度量模型
信息安全风险是威胁利用脆弱点对一个信息资产或一组信息资产造成损失的可能性。通常,信息安全风险值的大小和信息资产的价值、面临的威胁及其具有的脆弱点相关。
难以获得信息安全风险整体态势的关键是难以识别信息资产面临的所有风险。如果不能将信息资产面临的所有风险都识别出来,所谓的整体态势就失去了基础。所以,要解决的第一个问题是信息安全风险识别的完备性问题,即如何将一个或一组信息资产面临的所有风险都识别出来。
为解决这个问题,多年实践发现需要将信息安全风险度量模型进行简化,而风险三要素中,信息资产价值及其面临的威胁具有作为常量的可能。
将信息资产的价值及其面临的威胁看作常量是具有现实意义的简化。一般情况下,描述整体风险态势是针对具体信息资产展开的,也就是说,在具体场景下,信息资产这个对象是明确的,其价值也是明确的,本来就是个常量。而威胁由于具体威胁方具有偶发性,它的不确定性导致对它的评估难以精准,建议取最大值,因此,可以将它看作常量。这种简化本身也指明了信息安全风险处置的方向。通常来讲,风险三要素中最能立竿见影见到成效的风险处置都是针对脆弱点进行的。所以,对脆弱点的深入分析对降低信息安全风险具有现实意义,它能够为信息安全风险处置提供具体可行的实现方案。
脆弱点vs安全漏洞
在现实的业务场景中,威胁利用单一脆弱点并不能对信息资产造成实际的危害。例如:某服务器存在0day漏洞,这是个脆弱点,但黑客要真能利用这个脆弱点对这台服务器实施入侵,至少还需要具备另一个前提条件,能从网络上或者物理上访问或接触到存在0day漏洞的服务或应用。也就是说,任何一个实际的信息安全风险能发生至少需要具备两个前提条件:路径可达和权限可达。即,首先要能接触到目标对象,无论是网络接触还是物理接触,至少需要某种形式上的接触;另一方面,目标对象上有能够被利用的越权获得访问目标信息权限的脆弱点。就好像取钱,首先要能接触到取款机,然后还得有银行帐号和密码,这两个条件缺一不可。
因此,为了描述方便,给安全漏洞下了个新定义,即,安全漏洞是按照一定顺序排列能被威胁利用且会对信息造成影响的充分必要的脆弱点集合。
举例来讲,某服务器对外网暴露了23端口,且该服务器管理员口令为弱口令。这种情况可称之为,该服务器存在一个可被外部黑客利用的安全漏洞,该漏洞包含两个脆弱点:1、对外网暴露23端口,2、管理员口令为弱口令。这两个脆弱点中的任何一个不存在了,则该安全漏洞就不成立。也就是说,如果这台服务器的管理员口令虽然是弱口令,但因为没有对外网暴露23端口,则该安全漏洞就不存在;同理,如果这台服务器虽然对外网暴露了23端口,但管理员口令不是弱口令,该安全漏洞也一样不存在。
由上可知,单一脆弱点并不能在实质上造成信息资产的损失,需要不同类型的脆弱点按照一定的顺序进行适当的组合,才可能形成对信息资产的实际危害。这种按照一定顺序进行排序,能够被威胁利用对信息资产产生实际危害的脆弱点的充分必要集合,称之为安全漏洞。
安全风险的穷举与比较
安全漏洞定义中引入的路径概念,为完整的识别信息资产面临的所有信息安全风险带来理论和现实双重意义上的可行性。网络空间中,安全漏洞路径天然地与网络链路对应,任意两点间的有向网络链路路径在理论上是有限的,因此,从威胁到信息资产的安全漏洞路径沿着网络链路有了穷举的可能性。
由于安全漏洞包含的各脆弱点之间是串行关系,因此,安全漏洞被利用的可能性为各脆弱点被利用可能性的乘积。
为简化风险比较,假设各脆弱点被利用的可能性相同,在这个前提下,能得到一个具有较强实际操作意义的风险比较原则:
风险比较原则:安全漏洞包含的脆弱点越少,被威胁利用的可能性越高,其安全风险也就越大。
这样,不同安全风险的比较被转化为比较不同安全漏洞包含的脆弱点数。
这种简化的现实意义在于,一方面,简化计算的结果与部分实际业务场景下的风险比较结果相一致。由3个高可能性脆弱点构成的安全漏洞比由2个低可能性脆弱点构成的安全漏洞风险大的场景的确存在,但这种场景相对较少。多数情况下,这种简化计算的结果符合实际;另一方面,这种简化将安全风险的计算过程客观化和透明化,避免了不同人对同一个风险进行评估,结果迥异的问题,同时,过程的透明和客观使得评估结果能够获得更为广泛的理解和认同,为后续如何选择风险处置措施奠定了一个良好的基础。
处置安全风险
基于安全漏洞的定义,可以得到如下风险处置原则:
风险处置原则1:构成安全漏洞的任一脆弱点被破坏则该漏洞即被破坏。
即,消灭一个安全漏洞并不需要将构成该安全漏洞的所有脆弱点都消灭,只要消灭其中的一个,该安全漏洞就可以说被消灭了。
基于风险比较原则,可以得到另一个风险处置原则:
风险处置原则2:包含的脆弱点越少的安全漏洞处置优先级越高。
既然包含的脆弱点越少的安全漏洞带来的安全风险越大,那么,从处置的优先级来看,当然也就是包含的脆弱点越少的安全漏洞应该越被优先进行处置。
如果同一个脆弱点被多个安全漏洞所包含,按照第一个风险处置原则,该脆弱点一旦被消灭,就会同时有多个安全漏洞被消灭。因此,可以得到第三个风险处置原则:
风险处置原则3:优先处置多个安全漏洞路径的汇聚点。
基于上述风险处置原则,安全风险的处置过程可归纳成如下几个步骤:
第一步:基于威胁和信息资产之间的网络链路,识别所有最短路径,假设当前最短路径上包含n个节点;
第二步:对最短路径逐一进行审视,确认最短路径上的每个节点是否都具有权限可达的脆弱点,从而获得所有安全漏洞,形成安全风险整体视图;
第三步:处置安全风险:首先对安全漏洞路径的汇聚点进行处置,其次,遵从由易入难的原则,优先处置路径可达的脆弱点,最后处置权限可达的脆弱点,直到所有安全漏洞全部被消灭;
第四步:最短路径为n的安全风险全部处理完毕,是否满足业务需求,达到安全风险的可接受水平,如果达到,则终止,如果没达到,则n+1,返回第一步,进入下一轮循环。