基于安全知识库的安全需求获取方法

文档序号:6429456阅读:164来源:国知局
专利名称:基于安全知识库的安全需求获取方法
技术领域
本发明提出了一种在软件开发需求阶段的安全需求获取方法,旨在提高软件的安全性和可信程度,属于软件安全领域。
背景技术
随着计算机软件的广泛应用,软件安全问题已成为各行业用户关注的焦点。有效的设计和开发可信软件是当今软件开发者的重要目标。根据经验软件开发过程中,越早发现问题,则修复此问题所耗的代价越小。研究数据也表明当安全分析和安全工程在软件开发的早期就引入软件开发的回报率高达10% 20%。从过程化软件工程角度来讲,需求分析是软件开发的第一步。那么,高质量的需求分析对于高效开发安全软件就有着至关重要的作用。安全需求工程作为可信软件开发生命周期的初始阶段,在安全软件的构建过程中起着举足轻重的作用。当前对安全需求相关领域的研究很多,安全需求工程方法也是百花齐放。比如有面向技术的安全需求方法,面向工具与语言的安全需求方法和面向过程的安全需求方法等。然而目前尚没有统一广泛的安全需求方法,而且这些方法都有一个共同的特征,即都需要安全专家的参与实施。其实质是安全专家根据已有的经验对系统进行分析, 从而达到获取安全需求的目的。由于安全需求的主观性,安全需求的效果过多的依赖于实施者的经验技能,不具有普遍性。CC(Common Criteria)是第一个国际化的安全评估准则,是为软件安全性能的评估而开发的,它将安全需求分为安全功能需求和安全保证需求两部分,提出安全功能组件、 安全保证组件和安全保证等级等概念,安全功能组件给出需求阶段的安全功能需求抽象描述,安全保证组件从需求、设计、编码、测试到运行维护各阶段保证安全功能的实施。CC作为国际安全评估标准,不仅仅用于软件安全评估,而且对于安全软件开发起指导作用。综上所述,先阶段针对安全需求工程方法的研究百花齐放,但没有统一的安全需求分析和获取方法。而且这些方法普遍依赖于安全专家的主观经验,安全需求工程过程的实施耗费大量时间和精力,效率十分低下。CC安全评估标准在国际上影响广泛,并且可以很好的指导安全需求开发,但是它只是作为一个指导原则,并没有形成到系统的安全需求方法中。

发明内容
本发明目的是克服现有技术的上述不足,提出一种效率高,能够快速进行安全需求分析,获取安全需求信息的方法。本发明的安全需求获取方法,基于CC标准,构建资产威胁知识库,从系统功能用例图出发,确定资产威胁,继而使用CC安全功能组件进行威胁缓和,获取安全需求。从而降低安全需求开发成本,提高软件开发效率,进而提高了软件的安全性。一种基于安全知识库的安全需求获取方法,包括下列两个方面
1)构建包括资产、威胁和安全功能组件三部分的资产威胁知识库a.将资产分为角色、数据、资源和服务四类,对于每一类资产,又可以继续划分子类,这样不断细化,从而确定一棵由粗到细的资产树结构;除了类别关系,资产之间还具有包含关系,当一个资产中存在可再分的细粒度实体,且细粒度实体是此资产特有的组成部分,即称此资产包含一个或多个子资产,并将这些子资产称为特殊资产,特殊资产并不考虑类别属性,只与其父资产有关联。b.将威胁分为假冒、否认、数据篡改、信息泄露和拒绝服务五大类,对于每一类威胁,构造其抽象威胁树模型,将威胁不断细化描述,得到一棵威胁树;对于威胁树中每个叶子节点的具体威胁,建立两个属性危害等级和候选安全功能组件,威胁对应的候选安全功能组件的选取一方面通过现有的CC评估文档中典型威胁与特定安全功能组件集得对应, 另一方面从CC文档安全功能组件中获取相应组件进行缓和;C.建立资产和威胁之间的对应关系,进一步还建立资产子类与威胁子树某一节点的对应关系,更进一步的对于特殊资产,建立其与具体威胁和攻击模式之间的对应关系;2)安全需求获取过程a.用例分析对系统的功能用例进行分析;b.确定资产将确定的资产在资产威胁知识库中进行查找匹配,若库中已存在该资产则自动获其相应的威胁信息;若资产库中无对应资产,需根据资产所属类、子类等手动添加资产信息至资产威胁知识库中。资产对应的威胁即为所属层次类别对应的威胁;c.威胁分析根据威胁的危害等级,对于可能造成重要信息数据丢失,系统崩溃或系统功能失效的威胁,结合威胁的候选安全功能组件,选取合适的安全功能组件进行威胁缓和;d.细化安全需求结合应用实例进行对安全功能组件细化描述,形成详细的安全需求;e.安全需求迭代对安全需求进行分析,确定新资产,形成新一轮的安全需求获取。本发明以提高软件系统的安全性为目的,在CC国际安全评估标准的基础上,提出了一种基于资产威胁知识库的安全需求获取方法,以期尽早的发现软件系统中可能存在的安全威胁,降低修补成本,提高软件的安全性。预期的有益效果包括1)本发明结合CC国际标准,引入安全功能组件描述安全需求,具有一定的权威性,更有利于指导进一步的设计开发。同时基于本发明可以很方面的生成CC评估的ST文档,为进行CC安全评估打下了良好的基础。2)传统的安全需求获取过程需要专业的安全专家全人工分析,而本发明只需要确定系统资产后与知识库中进行自动化匹配分析,就可获得相关解决方法雏形,从而大幅度降低了安全需求分析的成本,提高了安全软件的开发效率。3)资产威胁知识库系统化的存储相关资产威胁信息,对于软件安全来说是一笔宝贵的资产,可以为软件安全相关的诸多工具提供数据支持。


附图1 资产树结构。
附图2:假冒威胁树。附图3 资产威胁对应关系。附图4 安全需求过程概图。附图5 网上银行注册用户查看账户用例图。
具体实施例方式本发明提出了一种基于CC的安全需求获取方法,在软件需求阶段针对软件系统中资产可能存在的安全威胁进行半自动分析检测,一方面提高了软件系统的安全性,另一方面降低了安全漏洞的缓和成本。该方法首先是通过对应用系统常见资产和威胁进行抽象分类从而建立资产威胁知识库。继而针对系统用例图进行分析,获取其中的关键资产,然后将系统关键资产与资产威胁知识库中进行匹配,自动化分析得到威胁和CC安全功能组件, 进一步获得安全需求。介绍如下3)构建资产威胁知识库知识库的构建包括三部分资产、威胁和安全功能组件。在这里根据普遍的定义, 将资产定义为对组织或个人有价值的信息、资源、功能或其他实体;威胁定义为攻击者针对资产潜在的攻击,可能对资产形成危害,造成损失。而安全功能组件在CC中定义为安全功能性要求,在此处可作为针对威胁的解决缓和方案,形成抽象安全需求描述。由于资产和威胁之间的复杂多对多关系,本发明提出将资产和威胁分别进行分类,然后建立对应关系。根据需要,将资产分为以下几类角色(Role)代表与系统交互的外部对象,一般而言,用户或与系统交互的某一外部实体、功能模块都属于此类。数据(Data)系统中需要保护的数据信息,包括用户数据,系统数据等。资源(Resource):—般指硬件资源,诸如处理能力和存储能力等。服务(Service)—般指软件提供的服务,例如已有的软件,API,协议等。对于每一类资产,又可以继续划分子类,这样不断细化,从而确定一棵由粗到细的资产树结构(如图1所示)。除了类别关系,资产之间还具有包含关系,当一个资产中存在可再分的细粒度实体,且细粒度实体是此资产特有的组成部分,即称此资产包含一个或多个子资产。我们将这些子资产称为特殊资产,特殊资产并不考虑类别属性,只与其父资产有关联。例如对于服务类协议子类下的HTTP协议这一资产,其中就包含Cookie和Session 两个特殊资产。资产分类体系确保了资产树的条理性,而资产的包含关系确保资产树的完备性。同样,根据需要将威胁分为五大类假冒假冒其他实体进行欺骗活动。否认行为发起者否认自己的身份或行为。数据篡改数据信息被非法篡改。信息泄露数据信息被未授权的窃取、查看。拒绝服务系统功能或服务失效。对于每一类威胁,构造其抽象威胁树模型,将威胁不断细化描述,得到一棵威胁树。例如假冒威胁的威胁树如图2所示,假冒可以有三种实现方式a、不充分的认证;b、伪造凭证;C、获取合法凭证,而伪造凭证又可以继续细化为猜测凭证和凭证等价这两种具体方法。图中的圆圈表示常用的攻击模式,对于猜测凭证,可以采用暴力破解的方式进行攻
击O对于威胁树中每个叶子节点的具体威胁,考虑其两个属性危害等级和候选安全功能组件。危害等级描述该威胁的危害程度,在这里将攻击造成的危害程度分为以下三级高攻击极易实施,无需专业技能,造成重要信息数据丢失,系统崩溃,或系统功能失效,遭遇后无法恢复。中攻击实施需要特殊工具,或需要一定技能,造成密码等重要信息丢失,会导致系统功能失效,遭遇后较难恢复。低攻击实施需要专业技能及特殊工具,造成对系统性能有轻微影响,较容易恢
Μ. ο威胁对应的候选安全功能组件的选取一方面通过现有的CC评估文档中典型威胁与特定安全功能组件集得对应,另一方面通过人工分析从CC文档安全功能组件中获取相应组件进行缓和。确定资产、威胁的分类体系之后,建立二者之间的层次映射关系。资产与威胁之间是多对多的关系,这里主要是建立资产与威胁的层次对应关系。首先资产类与威胁类之间的对应关系如图3所示,对于角色资产类,其对应的威胁为假冒和否认;对于数据资产类, 其威胁一般来源于数据篡改和信息泄漏;对于资源类资产,其对应于拒绝服务威胁;对于服务类资产,由于服务本身的多样性,其对应的威胁包含假冒、否认、数据篡改、信息泄漏和拒绝服务。进一步的可建立资产子类与威胁子树某一节点的对应关系,更进一步的对于特殊资产(服务类资产居多),可建立其与具体威胁和攻击模式之间的对应关系。4)安全需求获取过程安全需求的获取是一个迭代递增的过程。本发明从系统用例图出发,对每个系统功能用例进行分析,获取其中涉及到的关键资产。在资产威胁知识库的辅助下对资产进行威胁分析,并针对威胁选取安全功能组件进行缓和,从而获取安全需求(如图4)。具体步骤如下a、用例分析对系统的功能用例进行分析,系统的参与者、所涉及到的功能、所需要的服务、用到的软硬件资源等。分析确定的资产可能是抽象的,也可能是具体的。b、确定资产将确定的资产与资产库中进行查找匹配,若库中已存在该资产则自动获其相应的威胁信息;若资产库中无对应资产,需根据资产所属类、子类等手动添加资产信息至库中。资产对应的威胁即为所属层次类别对应的威胁。C、威胁分析根据威胁的危害等级,对与等级为高及或等级为中的威胁,如果实施后可能造成重要信息数据丢失,系统崩溃或系统功能失效,使得系统无法恢复或难以恢复, 结合威胁的候选安全功能组件,选取合适的安全功能组件进行威胁缓和。d、细化安全需求结合应用实例进行对安全功能组件细化描述,形成详细的安全需求。e、安全需求迭代对安全需求进行分析,确定新资产,形成新一轮的安全需求获取。
下面通过一个示例来展示基于资产威胁知识库的安全需求的获取方法。如图5所示是一个最简单的用例图,用例描述一个合法用户远程访问网上银行查看账户。分析此用例可知,注册用户远程查看账户,其中包含的资产包括注册用户和账户信息。而根据资产定义可知,注册用户属于角色类资产,而账户信息属于数据类资产。为简单起见,此处仅考虑注册用户这一资产。由资产威胁知识库可知,角色类资产对应的威胁类别有假冒类和否认类,对于假冒类对应的具体威胁如下
权利要求
1. 一种基于安全知识库的安全需求获取方法,包括下列两个方面1)构建包括资产、威胁和安全功能组件三部分的资产威胁知识库a.将资产分为角色、数据、资源和服务四类,对于每一类资产,又可以继续划分子类,这样不断细化,从而确定一棵由粗到细的资产树结构;除了类别关系,资产之间还具有包含关系,当一个资产中存在可再分的细粒度实体,且细粒度实体是此资产特有的组成部分,即称此资产包含一个或多个子资产,并将这些子资产称为特殊资产,特殊资产并不考虑类别属性,只与其父资产有关联;b.将威胁分为假冒、否认、数据篡改、信息泄露和拒绝服务五大类,对于每一类威胁,构造其抽象威胁树模型,将威胁不断细化描述,得到一棵威胁树;对于威胁树中每个叶子节点的具体威胁,建立两个属性危害等级和候选安全功能组件,威胁对应的候选安全功能组件的选取一方面通过现有的CC评估文档中典型威胁与特定安全功能组件集得对应,另一方面从CC文档安全功能组件中获取相应组件进行缓和;c.建立资产和威胁之间的对应关系,进一步还建立资产子类与威胁子树某一节点的对应关系,更进一步的对于特殊资产,建立其与具体威胁和攻击模式之间的对应关系。2)安全需求获取过程a.用例分析对系统的功能用例进行分析;b.确定资产将确定的资产在资产威胁知识库中进行查找匹配,若库中已存在该资产则自动获其相应的威胁信息;若资产库中无对应资产,需根据资产所属类、子类等手动添加资产信息至资产威胁知识库中,资产对应的威胁即为所属层次类别对应的威胁;c.威胁分析根据威胁的危害等级,对于可能造成重要信息数据丢失,系统崩溃或系统功能失效的威胁,结合威胁的候选安全功能组件,选取合适的安全功能组件进行威胁缓和;d.细化安全需求结合应用实例进行对安全功能组件细化描述,形成详细的安全需求;e.安全需求迭代对安全需求进行分析,确定新资产,形成新一轮的安全需求获取。
全文摘要
本发明属于可信计算领域,涉及一种基于安全知识库的安全需求获取方法,包括两个部分1)资产和威胁分别进行分类,然后建立对应关系,并构建包括资产、威胁和安全功能组件三部分的资产威胁知识库;2)具体的安全需求获取过程,包括用例分析、确定资产、威胁分析、细化安全需求、安全需求迭代几个步骤。本发明主要用于在需求分析阶段利用CC标准对软件进行安全需求分析和信息获取,以减少软件开发初期的安全漏洞。
文档编号G06F21/00GK102236758SQ20111021108
公开日2011年11月9日 申请日期2011年7月26日 优先权日2011年7月26日
发明者冯志勇, 李晓红, 胡昌, 胡静, 许光全 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1