基于威胁树的IT产品安全关键件识别研究*
2019-03-22陶文卿张俊彦陈清明
陶文卿,张俊彦,陈清明
(上海市信息安全测评认证中心,上海 200011)
0 引言
信息技术(Information Technology,IT)产品作为信息系统的核心部件之一,其安全性直接影响到整个信息系统的可靠性。信息安全产品认证认可是根据国家标准、行业标准或技术规范,由具有检测能力和政府授权检测认证资格的权威机构,按照严格的程序,对其进行测试试验及监督检查的一种客观公正的评价活动,是应对信息技术快速更新、技术表现日趋融合、安全保障需求迫切等态势的有效途径。
我国的信息安全产品认证认可体系自2004年开始建设[1],至今已形成相对完善的认证体系,但随着技术的发展,在认证过程中,产品更新换代的周期逐渐缩短与用户的安全保障需求增加之间的矛盾日益突出,因此,在认证过程中识别安全关键件,判断产品更新对认证结果的影响,以便更科学地实施变更控制,成为一个需要研究的重点方向。
目前,研究人员在不同的领域提出了关键件识别方法,如袁林[2]提出了对网络应用中的关键事件进行识别和跟踪的方法,盛洁谞[3]等人提出了对软件关键件识别的方法,李伟刚等人[4]提出了在项目工程的质量管理中关键件控制的方法;而在信息安全领域,关键件识别的研究相对较少。在现有研究中,关键件识别一般用故障树方法进行分析,但此方法在确定顶层故障时即区分出关键故障和一般故障,将关键故障对应的元件识别为关键件,缺乏导出关键故障的过程。
威胁树一般应用在风险评估领域,本文针对IT产品认证领域的安全关键件识别问题,首次将威胁树引入到了关键件识别领域,并定义了安全重要度概念,用来对IT产品资产的安全重要程度进行定量分析,提出了基于威胁树分析的产品安全关键件识别方法,并以智能卡芯片为例进行了应用示范。
1 安全关键件定义
传统的关键件定义多从可靠性分析的角度进行,从生产的角度来说,关键件被定义为生产周期长、加工复杂、占用资源多、需要单独安排生产的部件,从功能和性能的角度来说,关键件指的是产品的主要功能部件[5],在信息安全领域,定义IT产品的安全关键件为:在安全方面对产品产生重要影响、可能会造成安全问题的核心部件。
2 安全关键件识别方法
2.1 威胁树的基本概念
威胁树是指针对威胁分析的攻击树。攻击树模型是SCHNEIER B在1999年提出的一种图形化风险建模方法[6]。它采用树状结构,描述系统可能受到的各种攻击行为。攻击树的根节点表示攻击者要达到的目标,中间节点表示需要完成的中间步骤或者子目标,叶子节点表示具体的攻击手段。子节点之间具有AND、OR、SAND三种关系。
2.2 安全关键件识别流程
对IT产品来说,首先将其划分为不同的模块,也即资产;识别哪些资产为安全关键件,出发点即为识别不同资产面临的安全问题,也即安全威胁。
威胁树技术从对一个给定产品的所有威胁的通用抽象的描述开始,KOHNFELDER L和GARG P提出的STRIDE模型[7]定义了六类通用威胁,可以用来识别每个资产的根节点,其中,STRIDE分别代表六种威胁的首字母组合,即身份欺骗威胁(Spoofing identify)、数据篡改威胁(Tampering with data)、否认威胁(Repudiation)、数据泄露威胁(Data disclosure)、拒绝服务威胁(Denial of service,Dos)和特权提升威胁(Elevation of privilege)。
安全威胁实现的风险越大,易受此安全威胁影响的部件就越关键。风险评估中提出风险由事件造成的损失和事件发生的概率来评价[8],借鉴这一概念,将其引入关键件识别的过程中。因此本文做如下定义。
定义1:安全重要度。安全重要度是衡量IT产品的资产在安全方面的重要程度的指标。安全重要度通过如下方式计算:安全重要度=威胁发生概率×威胁造成损失严重程度。
对资产的安全威胁进行分析,根据威胁被利用成功的脆弱性计算攻击成功的概率,再结合威胁的严重程度进行打分,计算资产的安全重要度,从而识别出安全关键件。
安全关键件识别的流程图如图1所示。
其具体步骤如下:
(1)将产品按照不同的实现模块进行划分,即识别出产品的所有资产Ai(i=1,2,…,m);
图1 安全关键件识别流程图
(2)对每个资产分析其威胁树:采用STRIDE模型识别出其面临的根威胁RT,将根威胁RT进行第二层的分析,识别其面临的攻击威胁,记为STij,(i=1,2,…,m;j=1,2,…,n),对攻击方式STij进行第三层分析,识别实现STij的具体攻击手段,记为基本事件Eijk,(i=1,2,…,m;j=1,2,…,n;k=1,2,…,s);在威胁树识别过程中,为了简化计算,识别至第三层时即定义为基本事件,并且识别出的基本事件均为完整的攻击事件,不存在先验步骤,同时,基本事件均为独立事件,即子节点之间均为逻辑OR的关系;
(3)对基本事件Eijk进行攻击代价分析,计算其发生的概率P(Eijk);
(4)根据基本事件发生概率,计算步骤(2)中STij发生的概率P(STij),由于基本事件之间为逻辑OR的关系,因此计算STij威胁发生的概率:
P(STij)=max {P(Eij1),P(Eij2),…,P(Eijk)}
(1)
(5)分析STij威胁发生造成的损失严重程度Dij,并对其进行权重赋值;
(6)对每个资产,根据其面临的威胁STij发生的概率大小和损失严重程度,计算安全重要度:
(2)
(7)对安全重要度Vi进行排序,从而识别出安全关键件。
2.3 攻击基本事件的指标量化
由安全关键件识别的流程可知,当识别出威胁树和具有自证性的基本事件,对基本事件赋予一定的指标元素后,就可以对其进行相应的风险分析。信息技术安全性评估方法CEM[9]中提出了对于通用产品的攻击潜力计算方法,列出了计算攻击潜力的五个要素,从时间、技术专长、设计和操作知识、评估对象(Target of Evaluation,TOE)访问、分析设备五个方面进行了评价。参考这一思路,本文将基本事件从消耗时间、设备、专业技能水平、资料及访问四方面对基本时间进行衡量,引入如下定义:
定义2:基本事件Eijk的安全威胁攻击代价为一个四元组,Costijk=
对基本事件的攻击发生概率评价需要对四元组进行打分。在评分过程中,可以采用专家经验法,也可采用层次分析法[10](Analytic Hierarchy Process,AHP)进行评分。为方便计算,本文采用专家经验法进行打分。打分评价依据表1进行。
表1 等级评分标准
根据多属性效用理论[11-12],基本事件发生的攻击代价为:
Cost=WTi×UTi+WDe×UDe+WSk×USk+WKn×UKn
(3)
其中,WTi、WDe、WSk、WKn分别代表基本事件Eijk在消耗时间、设备、专业水平、资料及访问上的权重,而UTi、UDe、USk、UKn分别代表基本事件在四元素上的效用值。
针对不同的攻击事件,其在四元素上的权重值均有不同,因此做出如下规定:
(1)WTi+WDe+WSk+WKn=1;
(4)
(2)UTi、UDe、USk、UKn与Ti、De、Sk、Kn成正比关系,取Ux=x,即效用值即为基本事件在对应项上的赋值。
(3)根据公式(3)计算出基本事件的攻击代价,由于攻击概率与攻击代价之间成反比关系,因此取基本事件发生的概率:
P(Eijk)=1/Costijk
(5)
2.4 安全重要度计算
根据基本事件的指标量化,计算出其发生概率,由公式(1)就可以推算出攻击威胁ST发生的概率。评价威胁发生后,对产品造成的损失严重程度时,由于根威胁采用的STRIDE模型为通用威胁,其损失严重程度不易衡量,因此,本文对威胁树第二层即攻击威胁STij造成的损失严重程度进行量化,记为Dij。对安全重要度的计算也在此层面进行。攻击威胁造成的损失严重程度也需根据专家经验法进行评价和赋值,赋值范围为1~5。
依据2.2节中描述的安全关键件识别的步骤,对每个资产,将攻击威胁发生概率及威胁造成的损失严重程度进行相乘并求和,即可计算出此资产的安全重要度。将安全重要度进行排序,便可识别出产品的安全关键件。
3 关键件识别应用实例
为验证安全关键件识别方法的有效性,本节以智能卡芯片为例,按照2.2节提出的识别方法进行分析。智能卡芯片是具有中央处理器的集成电路卡芯片,广泛应用于金融、社保、公交、身份鉴别等领域。针对智能卡芯片的安全关键件识别分析步骤如下:
(1)识别智能卡芯片的资产,形成资产列表;智能卡芯片资产识别的粒度,由分析者来决定。本文识别出的智能卡芯片资产共14个,分别为中央处理器(Central Processing Unit,CPU)、复位/中断模块、时钟控制模块、看门狗计时器、总线、环境检测(电压/频率/光照/温度等)传感器、主动/被动防护层、存储器、存储器管理单元(Memory Management Unit,MMU)、算法模块、随机数模块、模式控制模块、自检模块、校验模块。
(2)针对每个资产进行威胁树分析,根威胁使用STRIDE模型进行识别,进一步识别出六类针对智能卡芯片的具体ST攻击威胁,分别为:ST1非侵入式攻击、ST2半侵入式攻击、ST3侵入式攻击、ST4环境攻击、ST5测试模式重激活、ST6访问控制破坏。
(3)针对ST攻击威胁进一步识别实现攻击的17类基本事件,并针对每个资产绘制威胁树攻击图,如图2~图5所示。其中,针对每个资产的威胁均用一个虚线框表示,从根威胁的角度,算法模块和存储器模块均面临信息泄露和篡改两种威胁,而其他模块均面临一种根威胁;在图5中,构造出的威胁树相同的多个模块用同一威胁树来表示,这些模块分别为CPU、复位/中断模块、时钟控制模块、看门狗计时器、自检模块、校验模块、主/被动防护层。
图2 算法模块威胁树分析
图3 存储器威胁树分析
图4 环境检测传感器及存储器管理单元威胁树分析
图5 其他模块威胁树分析
(4)将基本事件的攻击代价在时间、设备、专业水平、资料及访问四元素上进行打分及权重赋值,根据公式(3)及公式(5)计算出基本事件的发生概率,识别出的基本事件及其发生概率值如表2所示。由于对智能卡芯片的攻击对设备和人员水平的依赖性较强,对于E1~E16,将权重赋值WTi=WKn=0.2,WDe=WSk=0.3。对于E17访问控制破坏,其攻击成功更依赖于人员水平和对TOE的资料及访问,将权重赋值WTi=WDe=0.2,WSk=WKn=0.3。
表2 基本事件列表及概率值计算
(5)根据公式(1)计算出STij威胁发生的概率,并对其损失严重程度Dij进行赋值,然后根据公式(2)对每个资产分别计算安全重要度并排序,计算结果如表3所示。
表3 智能卡芯片模块安全重要度
根据表3结果,可以看出,安全重要度数值的大小对于资产的安全重要程度提供了区分参考,分析者可根据实际应用情况来决定安全关键件筛选的阈值。本例中取安全重要度为1以上的模块作为安全关键件,则针对智能卡芯片的安全关键件即为:算法模块、存储器、环境检测传感器、存储器管理单元、总线、模式控制、随机数,分析表明,此类模块面临的安全威胁更严峻,因此智能卡芯片的设计者需要多加关注此类模块,对其设计更多的防护机制。同时,在产品认证过程中,若上述模块发生变化,则被认为是安全关键件发生了变化,在产品认证的变更控制环节中需要多加关注。值得注意的是,从传统意义上来说,CPU被认为是智能卡芯片的核心部件,而根据本文提出的安全关键件识别方法,CPU并没有被识别为安全关键件,这是因为CPU在智能卡芯片中,主要完成计算和处理功能,但其面临的安全威胁却有限,因此也证实了安全关键件的识别和功能关键件之间是存在差异的。
4 结论
针对信息安全认证中的关键件识别问题,本文提出一种基于威胁树分析,对IT产品进行安全关键件识别的方法,并以智能卡芯片为例进行了示范应用,证明了此方法的有效性,为信息安全认证中产品的变更控制提供了依据。下一步研究的重点在于:计算基本事件发生概率及威胁造成损失严重程度时,减少主观因素的影响,如采用模糊层次分析法或神经网络等技术手段来量化计算,更精确地评估IT产品的安全关键件。