信息安全风险评估服务资质认证发现
2018-10-18成林芳翟亚红
王 笑 成林芳 翟亚红
1(中国网络安全审查技术与认证中心 北京 100020)2(湖南省电子信息产业研究院 长沙 410001)
(wangx@isccc.gov.cn)
信息安全风险评估(以下简称“风险评估”)是从风险管理角度,运用科学的方法和手段,系统地分析信息系统所面临的威胁及其存在的脆弱性,以及评估安全事件一旦发生可能造成的危害程度,提出有针对性的抵御威胁的防护对策和整改措施的过程,为防范和化解信息安全风险,将风险控制在可接受的水平,为最大限度地保障信息安全提供科学依据[1-7].
随着信息技术的发展和互联网应用的普及,民众对信息化技术手段的依赖程度也越来越强,网络和信息系统面临着前所未有的潜在威胁和信息安全风险,风险评估作为一种有效的信息安全风险识别与管理手段,越来越受到重视.越来越多的技术服务机构为了能够对外证明自身具备提供风险评估服务的能力,申请了中国网络安全审查技术与认证中心(以下简称“本中心”)的风险评估服务资质,同时,也借助申请资质的过程,按照本中心发布的《信息安全服务规范》进行自我对标和符合性检查,寻找及弥补自身在对外开展风险评估服务过程中的短板,提升服务能力,提高服务公信力.从2017年以来,特别是《中华人民共和国网络安全法》颁布以后,申请风险评估服务资质的组织数量迅猛提升,截至2018年4月1日,本中心对外颁发的风险评估服务资质证书共277张,其中3级资质137张、2级资质86张、1级资质54张.
本中心在对外开展风险评估资质认证的过程中,发现大部分组织使用的是GB T 20984—2007《信息安全技术 信息安全风险评估规范》中明确的风险分析模型,将风险评估项目实施分为4个阶段,分别是准备阶段、风险识别阶段、风险分析和控制阶段及项目验收阶段,具体评估流程如图1所示:
图1 风险评估服务流程图
在GB T 20984—2007《信息安全技术信息安全风险评估规范》4.2节——风险分析原理中,明确了对资产、威胁和脆弱性进行赋值,是进行风险计算与分析的前提,但是,对于赋值的方法,该标准只是提供了基本的思路和原则,在风险评估的实际操作层面不具备指导意义.另外,在该标准中,对于“已有安全措施确认”工作的成果如何作为风险计算阶段的输入,并没有进行明确解释.同时,该标准对于如何有效地识别威胁也未作具体说明,仅给出一些参考性的方法.
本中心在对外开展风险评估资质认证的过程中,发现大多数组织在开展风险评估项目时,对于赋值、已有安全措施确认、威胁识别等环节的工作,在实施过程中往往存在缺乏依据、不够客观、说服性不足等问题,另外,在输出的风险评估报告中,往往偏重于各种图表及计算模型的罗列,而相应的文字解释说明不够具体,报告的可读性不强.在下文中,将分别对上述问题进行列举及分析,同时,介绍本中心基于风险评估工作实践总结得出的问题解决和处理思路.
1 应强化资产赋值过程中的关键业务功能和关键业务流程分析
本中心发现,大部分组织对评估对象业务应用的调研工作做得不够细致,对业务应用的分析不是很到位.在风险评估项目的准备阶段,往往会使用类似“信息系统基本情况调查表”的调研表格,来对评估对象的基本情况、物理环境情况、信息系统网络结构(环境)情况、外联线路及设备端口(网络边界)情况、网络设备情况、安全设备情况、服务器设备情况等进行调研,但对信息系统承载的业务、涉及的用户、用户的分布范围、应用系统的可用性要求、重要程度、系统运行产生的数据等,并未开展细致的调研工作,因此在后续的资产赋值过程中,往往会脱离业务应用本身进行.
风险评估工作的核心,应当是针对被评估对象所承载的业务应用进行的.IT基础设施,包括物理环境、网络环境(包括防火墙、交换机、路由器等)、主机环境(服务器、操作系统、中间件、数据库等),都是为了支撑业务应用的运行而存在,如果没有业务应用,这些基础设施也就没有存在的价值和必要.在开展风险评估工作的初期,首先应当识别信息系统处理的业务功能,重点识别出关键业务功能和关键业务流程,根据业务特点和业务流程识别出关键数据和关键服务,识别处理数据和提供服务所需的关键系统单元和关键系统组件,对数据的流向进行分析,并以此为基础,对资产的重要程度进行分析和评价.
表1是一个对某应用系统进行深度分析的具体实例:
另外,对系统的架构、部署方式、承载的数据形式、用户量,数据流等进行分析如下:
XX系统采用Java平台,B S模式,中间件为Weblogic,服务器为 RedHat-Linux、生产数据库使用一体机(1套,包括2台数据库服务器、存储交换机等),应用服务器采用集群部署,接口服务器进行系统相关接口调用,Oracle数据库采用RAC集群方式.
XX系统数据可分为结构化数据和非结构化数据.结构化数据为与XX系统相关的市场开发、业务办理、合同管理、客户档案、账务、增值服务等关键业务数据.业务数据存放于Oracle数据库中,采用RMAN和逻辑备份方法,总量备份方式,目前数据增量约为1 GB 天.
目前XX系统用户为XX万,用户类型为集团内网用户,即具备账户权限的XX公司员工,涉及集团及下属成员公司.XX系统目前为内网应用,系统后期会增加外网访问网上营业厅功能,即系统存在外网终端、内网终端、银行终端、短信网关4种系统模块数据流.
其中主系统数据流为内网终端访问.内网终端访问的数据流向为:XX系统内网终端请求,经过成员公司防火墙后,通过专线访问总部防火墙,数据流经过核心交换机,再过负载均衡,最后到应用服务器,应用服务器会与数据库交互.
外网终端访问的数据流向为:网上营业厅外网终端请求,经过DMZ防火墙,请求到网上营业厅应用服务器,网上营业厅应用会调用XX系统应用接口,请求经接入交换机,再过内网防火墙,经核心交换机,与网上营业厅数据库交互,并经负载均衡,调用XX应用服务器接口,XX应用服务器会与数据库交互.
通过以上的分析过程,对该应用系统承载业务的重要性、涉及到的资产和用户接口、产生的数据流向有了较为清晰的介绍,在进行资产赋值时,应参考资产承载业务的重要程度,特别是需要参考数据流向进行,对于重要数据所流经的设备资产,在进行资产赋值的过程中,要参考所流经数据的重要程度,特别要参考保密性方面的要求.另外,也要参考资产在业务应用中起到的实际作用,资产和其他系统、其他资产之间的依赖和被依赖、访问和被访问的关系,资产在网络中的接入位置,资产影响的区域等因素进行.通过这样的分析过程,能够使资产赋值的客观性、准确性大大提升.
2 应细化脆弱性赋值过程中的赋值依据或基线
大部分组织在脆弱性识别过程中,主要从技术和管理2个方面进行评估,脆弱性评估采用工具扫描、配置核查、策略文档分析、安全审计、网络架构分析、业务流程分析、应用软件分析、渗透测试等方法,主要依据表2中明确的脆弱性分类方法来识别资产脆弱性.
表2 脆弱性识别分类表
大部分组织会根据脆弱性严重程度的不同,将脆弱性分为若干个不同的等级,具体的判断准则如表3所示:
表3 脆弱性赋值依据表
一般来说,脆弱性的赋值主要依据脆弱性对资产的暴露程度、技术实现的难易程度、流行程度等,采用等级方式对已识别的脆弱性的严重程度进行赋值,但具体怎么赋值,评估组织往往缺乏足够的依据,存在“拍脑袋”的嫌疑,并且常常不会参考被评估对象已采取的安全防护措施对脆弱性利用难易程度的影响,在表4和表5中分别列举2个脆弱性赋值的例子.
目前大部分组织采用的风险计算分析模型,是将风险识别阶段的赋值结果作为输入,利用一定的计算公式来计算风险.如果前期的赋值不客观、缺乏依据,那么也势必导致利用这些赋值结果计算得出的风险值缺乏根基,经不起推敲和回溯,甚至在评估过程中,很有可能会出现不同评估人员对同一评估对象评估后,得出评估结论不一致的情况.
表4 脆弱性赋值表示例1
表5 脆弱性赋值表示例2
本中心认为,为赋值过程寻找依据,通过制定赋值的标准基线是一个可行的办法,可考察脆弱性被利用后对关键业务系统及关键数据的暴露程度,来确定脆弱性的严重程度,以下举2个例子:
1)脆弱性被利用后对关键业务系统的暴露程度,如表6所示:
表6 关键业务系统的暴露程度对脆弱性的赋值结果
2)脆弱性被利用后对关键业务数据的暴露程度,如表7所示:
表7 关键业务数据的暴露程度对脆弱性的赋值结果
3 应强化已有安全措施有效性分析结果的运用
在开展风险评估工作的过程中,评估人员在识别脆弱性的同时,应对已采取安全措施的有效性进行确认,评估其有效性,即是否真正地降低了系统的脆弱性,抵御了威胁.对有效的安全措施继续保持,以避免不必要的工作和费用,防止安全措施的重复实施.对确认为不适当的安全措施应核实是否应被取消或对其进行修正,或用更合适的安全措施替代.安全措施可以分为预防性安全措施和保护性安全措施2种.预防性安全措施可以降低威胁利用脆弱性导致安全事件发生的可能性,如入侵检测系统;保护性安全措施可以减少因安全事件发生后对组织或系统造成的影响.已有安全措施确认与脆弱性识别存在一定的联系.一般来说,安全措施的使用将减少系统技术或管理上的脆弱性.
大部分组织出具的风险评估报告中,“已有安全措施确认”章节往往是孤立的存在,体现不出该章节的分析结果对脆弱性数值的修正过程,或者对风险计算分析结果的影响.换句话说,具备相同属性的资产(资产价值相同、存在的脆弱性及面临的威胁也相同),无论是否具备了安全措施,很有可能最终计算得出的风险值相同,这样一来,就无法凸显出进行已有安全措施确认工作的价值.
本中心在利用“已有安全措施确认”分析结果方面,提供了一些解决思路,举例如下:
1)通过对脆弱性数值的修正,来体现已有安全措施分析结果的作用,如表8所示.
在表8中,脆弱性严重程度分为“1~5”5个级别,“5”为最高;安全控制措施级别5个级别:0%,25%,50%,75%,100%;脆弱性严重程度(已有安全措施)=脆弱性严重程度(未有安全措施)×(1-控制措施值).
2)通过在风险计算公式中增加已有安全措施分析结果的因子,来体现已有安全措施分析结果的作用,最终在计算风险时,将已有安全措施防护等级的评价结果也作为一项输入,即:
风险值=资产价值×威胁×脆弱性×(5-已有安全措施有效性).
表8 已有安全措施确认分析表
根据公式可以看出,安全措施越有效防护等级越高,那么最终计算得出的风险值也就越低,改变了以往“已有安全措施”确认工作结束后,从形式上来看,对风险计算并没有什么贡献的局面.
4 应重视威胁识别与分析过程中的数据采集及关联分析
几乎所有的组织在进行威胁识别与分析时,都是直接参考GB T 20984—2007《信息安全技术信息安全风险评估规范》,把规范中所提到的所有威胁类型全部一次性列出或者列出其中大部分,当作被评估对象所面临的威胁,而不考虑这些威胁源是否真正对被评估对象能够造成相应的影响.本中心认为,在进行威胁识别时,首先应该结合被评估对象的关键业务路径及数据流可能存在的安全隐患点,然后结合渗透测试结果、已发生安全事件调研、事件日志(包含安全设备、网络设备、服务器、Web请求等)、网络流量分析等方面分析结果,确认被评估对象所真正面临的威胁.
以下通过一个例子,来描述威胁识别与分析的过程:
某单位一个Web应用系统提供对外查询数据的服务,在对该Web应用系统进行风险评估时发现,该系统Web应用目录下存在Webshell,说明该系统曾经受到过攻击.通过进一步对Web访问日志进行分析,发现该应用调用了一个存在漏洞的第三方插件,恶意人员正是通过该插件存在的上传漏洞对服务器中上传了Webshell,并通过该系统的渗透测试验证了该漏洞的存在.因此可以确认,该Web应用系统面临着漏洞利用这一威胁.
5 应强化风险评估报告中的文字解释说明
部分组织在编写风险评估报告的过程中,往往习惯用图表罗列各种赋值的结果,以及风险的计算过程,但相应的文字解释说明不够具体.针对风险评估报告来说,由于具备一定的技术性,牵扯到赋值、计算模型等比较专业的内容时,如果报告的可读性不够好,甲方对风险评估报告内容的理解就不会很到位,对风险评估报告的接受度就不会很高.本中心认为,风险评估报告在用各种图表和计算模型来进行相关分析的同时,一定要配合相应的文字解释和说明,特别是对脆弱性被威胁利用后可能造成的后果要进行着重强调,增强甲方对“风险”的认知.另外,风险评估报告的结论要经得起推敲和溯源,在风险识别阶段所得出的中间结果,一定要有相应的数据支撑.
以下也通过2个例子,来体现对脆弱性和威胁分析结果的描述过程.
1)脆弱性内容:主机未启用安全密码策略.
①脆弱性分析
操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换.
②安全现状
#cat etc security user 查看密码最小长度和有效期,如建议如下设置(或者根据客户密码管理策略):
maxage=8,密码的生命期最大为8周;
maxexpired=2,密码过期锁定时间小于等于2周;
maxrepeats=2,密码中可重复字符的最大数目小于等于2;
minlen=8,root用户的密码最小长度是8个字符;
minother=2,密码包含的非字母字符数目至少是2.
③受影响主机
10.158.5.235,10.158.5.236 密码策略未启用,如图2所示:
2)威胁内容:操作错误.
①威胁分析
图2 脆弱性分析过程截图
这种威胁的主体为管理 维护人员或其他合法用户,威胁的客体为所有信息资产,其中重点是XX系统以及移动应用系统的服务器主机.这种威胁是非故意的行为,此种威胁产生的原因主要是由于业务系统的主机应用比较多,管理人员人数相对较少、负担较重、技术水平及安全意识不均衡造成的.
②评估认为
操作错误发生的可能性较大,但呈下降的趋势.
③解释说明
首先,通过本次调查和访谈了解到,XX公司的服务器维护分为系统、应用和网络3个层面:应用组负责系统应用相关维护、主机操作系统的使用与维护;基础组负责网络相关设备、服务器设备的维护;系统及应用人员比较固定且有相当的管理维护经验,技术能力较强,目前已形成较为规范的维护流程,从客观上降低了误操作的可能性.
以上列举了风险评估服务机构在开展风险评估项目过程中的一些常见问题,以及本中心基于工作实践针对这些问题所提出的解决思路及方法.要做好风险评估,一定要针对被评估对象所承载的业务应用进行深入分析,采取各种评估手段,挖掘评估对象存在的问题和薄弱点,并采用恰当的基准,对问题和薄弱点的严重程度进行量化评价.同时,将分析过程以通俗易懂的语言,体现在最终输出的风险评估报告中.另外,不管采用什么样的风险计算及分析模型,在现阶段,最能体现评估组织技术实力的,往往还是脆弱性的发现能力最为重要.如果不能全面地、深入地挖掘到被评估对象所存在的脆弱性,找不到“痛点”,风险评估工作也就失去了它原本的价值.
本中心在对外开展风险评估服务资质认证业务的过程中,除了按照《信息安全服务规范》中对于风险评估各级别资质的要求,对申请组织进行符合性判标之外,还会派出具有丰富的信息系统风险评估经验或者业内的专家作为现场审核人员.通过认证的过程,将目前风险评估的一些项目最佳实践、技术问题的处理思路和方式以及风险评估的最新发展动向向申请组织进行宣贯,让申请组织明白风险评估不仅仅是识别一堆的资产、脆弱性、威胁以及已有安全措施,而是要在识别关键业务系统及关键数据的基础上,分析关键业务路径及数据流中所存在的风险点,以及这些风险点所涉及的资产、资产脆弱性以及资产所面临的威胁,从而实现风险评估的终极目标——核心业务价值的保护.本中心希望申请组织不仅仅只是获得了一张风险评估资质证书,而是通过资质申请的过程,对自身的服务能力和技术水平有质的提升,为客户的信息系统健康运行保驾护航,对网络安全行业发展起到积极的推动作用.