基于安全需求元模型的安全需求模板构建方法与流程

文档序号:11387083阅读:269来源:国知局
基于安全需求元模型的安全需求模板构建方法与流程

本发明属于软件安全问题领域;



背景技术:

随着软件产业的迅速发展和通过网络的快速传播,软件产品的安全问题受到越来越多的关注。那么,如何经济有效的开发出安全的软件,在软件生命周期的需求分析阶段考虑软件安全性是开发安全软件最经济有效的方法。然而,这种方法还没有得到业界的足够重视。调查结果表明,大部分人在实现阶段才考虑软件的安全需求,只有很少的人在软件早期阶段考虑了安全需求,甚至有相当一部分人完全忽略了软件安全需求。来自工业界的另一项调查结果也表明,需求阶段存在的缺陷在设计或者实现阶段被修补的代价是在需求阶段被修补代价的10-200倍,而在需求阶段没有被发现的安全缺陷至少有50%,这些缺陷造成的危害占用了整个项目预算的25%-40%。可见,安全需求的获取对软件的安全开发成本和可信性有着至关重要的作用。

目前由国际标准化组织于1999年颁布的国际标准iso/iec15408《信息技术安全技术信息技术安全性评估准则》(简称cc,commoncriteria)定义了信息技术产品安全性所需的基础准则,是度量信息技术安全性的基准。该标准针对在安全评估过程中信息技术产品的安全问题,在安全功能方面提出了一组通用要求。

现有的软件安全需求获取一般都是由专业安全技术人员制定,且大多数开发者倾向于依据保护机制描述设计解决方案,而不是做出关于保护级别的要求声明,对系统的安全需求抽取缺乏系统性和完备性。本发明在不打破cc标准提供的组件间的关联联系下,以cc标准为指导,根据安全需求元模型中定义的安全需求元素,构建具有普适性的安全需求模板,其中安全需求元模型是以ga/t18336.1《信息技术安全技术信息技术安全性评估准则》提供的安全功能组件和ieeestd830-1998《软件需求规格说明书标准》中给出的软件需求条目为基础,分析安全需求模板构建过程中涉及的概念及其关系而构造的。



技术实现要素:

鉴于上述现有技术软件存在的安全问题日益凸显,且软件安全需求多样化难以收集的问题,本发明提出了一种基于安全需求元模型的安全需求模板构建方法,以国际安全标准iso/iec15408(cc标准)为指导,通过这种安全需求模板构建方法,主要用于在软件生命周期的软件需求分析阶段制定合理的安全需求,构造安全需求模板。

本发明一种基于安全需求元模型的安全需求模板构建方法,该方法包括以下步骤:

步骤1、构造超图模型,且基于超图模型实现的安全功能组件重分类;其中,该步骤所遵循的超图模型构造原则和安全功能组件重分类原则分别为:

超图模型构造原则一、以不同的初始权重来表示四种关联关系的强弱不同,利用{关联关系在先的安全功能组件,关联关系在后的安全功能组件,初始权重}的多元数组形式表示输入的安全功能组件;输入安全功能组件之间的四种关联关系及其强弱关系为:从属关系>直接依赖关系>间接依赖关系>选择依赖关系;

超图模型构造原则二、将安全功能组件以多元组的形式作为构造超图模型时的初始输入;

超图模型构造原则三、将具有共用安全功能组件的从属关系和直接依赖关系的安全功能组件合并,构造超边;

超图模型构造原则四、合并后,计算多条超边权重的平均值;

安全功能组件重分类原则一、断开所有表征间接依赖关系的超边,即断开超边内所有安全功能组件间的关联关系;

安全功能组件重分类原则二、断开选择依赖关系超边中关联度低的安全功能组件间的关联关系;

步骤2、通过进行安全功能组件问题及软件安全保护范围抽取,建立安全功能组件重分类与软件安全保护范围的多对多关联关系,且在需求条目也关联了软件安全保护范围;需满足的抽取条件同时包括评估对象安全功能是否能够检测到潜在的安全侵害?评估对象安全功能检测到潜在的安全侵害后是否能采取相应的防护动作?按照前述的方法,完成所有安全功能组件重分类中安全功能组件的安全功能组件问题的抽取;

步骤3、得到安全功能组件重分类与需求条目之间的映射关系;

步骤4、构建安全需求模板;根据需求条目与安全功能组件问题的多对多关联关系,为每条需求条目构建一个安全需求条目模板;安全需求条目模板由一系列安全功能组件问题和功能需求描述组成。

与现有技术相比,本发明达到如下有益效果:

1)、以cc标准中提供的安全功能组件及组件间的关联关系为基础,构建超图模型能去除干扰安全功能组件并消除自然语言的造成的“共指”问题。

2)、通过深入挖掘安全功能组件间的关联关系来实现对安全功能组件进行重分类,能够充分反映组件间的内在联系,便于用户根据软件功能需求选择安全功能组件。

3)、基于安全需求元模型的安全需求模板构建方法,安全需求模板能够引导用户获得更加全面、准确的安全功能需求。

附图说明

图1为安全需求元模型示意图;

图2为本发明的基于安全需求元模型的安全需求模板构建方法的整体流程实施例示意图;

图3为超图模型描述图

图4为超图模型效果图;

图5为超图模型断开示例图;

图6为本发明的基于安全需求元模型的安全需求模板构建方法整体流程图。

具体实施方式

cc标准中提供的安全功能组件按照安全审计、数据传输、密码支持等安全角度划分为11个安全功能组件类。本发明根据安全功能组件间的从属依赖关系,对136个安全功能组件进行了重分类,重分类后得到了43个安全功能组件类,并将超图理论引入到安全功能组件重分类问题中,构建超图模型来解决自然语言描述的安全功能组件关系带来的共指问题,同时给出一些规则来指导超边关系处理,进而达到对安全功能组件的重分类。

下面结合附图对本发明作进一步详细描述。

如图2所示,为本发明的基于安全需求元模型的安全需求模板构建方法流程图。本发明的主要步骤如下:

步骤1、基于超图模型的安全功能组件重分类,以cc标准中提供的安全功能组件及组件间的关联关系为基础,采用超图模型理论对安全功能组件间的内在关系进行深入挖掘,得到重新划分后的安全功能组件重分类;下面分别给出超图模型的具体构造方法和安全功能组件重分类的具体流程:

(1-1)、以安全功能组件间的四种从属依赖关系为基础,遵照以下原则构造超图模型:

超图模型构造原则一、以不同的初始权重来表示四种关联关系的强弱不同,利用{关联关系在先的安全功能组件,关联关系在后的安全功能组件,初始权重}的多元数组形式表示输入的安全功能组件;其中,输入安全功能组件之间的四种关联关系的强弱为:从属关系>直接依赖关系>间接依赖关系>选择依赖关系。从属关系反映了两个安全功能组件的安全要求是包含关系,而直接依赖关系反映了一个安全功能组件为了更好地完成自身的安全要求必须依赖于另一个安全功能组件,因为包含关系的关联强度要强于依赖关系,所以从属关系的关联强度大于直接依赖关系的关联强度。又因为选择依赖关系和间接依赖关系是由于直接依赖关系产生的,所以二者的关联强度小于直接依赖关系。表1给出了从属依赖关系初始权重关系及初始输入形式。

表1、从属依赖关系初始权重表

超图模型构造原则二、构造超图模型时,初始输入的安全功能组件以多元组的形式输入,例如:{abcd0.1},其中a、b、c、d均为多元组的元素,0.1为该多元组的权重。0.1表征该多元组内的安全功能组件为选择依赖关系,其中安全功能组件a成为选择安全功能组件,组件b、c和d称为被选择安全功能组件。对于元组{a0},0表征安全功能组件a无从属依赖关系;

超图模型构造原则三、将具有共用安全功能组件的从属关系和直接依赖关系的安全功能组件合并,构造超边;构造超图模型的主要目标是去除“共指”同时将关联较紧密的安全功能组件合并,这是因为安全功能组件重分类的最终目的就是将关联关系紧密的安全功能组件归为一类,关联关系不紧密的安全功能组件分开。而在四种关联关系中,从属关系和直接依赖关系是关联较为紧密的两种关联关系,所以需要在构造超图模型时就将具有从属关系的安全功能组件和直接依赖关系的安全功能组件合并。对于关联关系较弱且存在选择问题的安全功能组件将由关联关系挖掘算法解决;

超图模型构造原则四、合并后,计算多条超边权重的平均值;超图模型的每条超边都有自身的权重,这个权重反映了超边在整个超图模型中的权重;多条超边权重的平均值表示合并后超边的权重,例如:多元组a的权重为4,多元组b的权重为5,那么合并后多元组c的权重为(4+5)/2=4.5。

构造超边时,将具有间接依赖关系的安全功能组件归为一条超边,将具有从属依赖关系的安全功能组件归为一条超边,并剔除无关联关系的安全功能组件。因为,在四种关联关系中,间接依赖关系和选择依赖关系是两种关联度较弱的关联关系,因此将其单独归为一条超边,以便后面进行组合优化。这里将不具有关联关系的安全功能组件认为是“噪音点”而剔除,是因为不具有关联关系的安全功能组件会降低下面的关联关系挖掘算法的搜索效率。但这些安全功能组件实际上是被单独分为一个安全功能组件重分类的,只是为了提高算法的搜索效率在构造超图模型时被剔除。

在安全功能组件的超图模型中,将一个安全功能组件sfci看作为图中的一个结点。一般地,设sfc={sfc1,sfc2,…,sfcn}是n个结点的有限集。sfc的某一子集被称为ei,若则p={e1,e2,…,em}为超边集,h=(sfc,p)为超图。则通过权重表征安全功能组件间关联关系的多元组可以看作为的一个带有权重的超边e′i={ei,weight},e′i.weight表示超边e′i的权重。hei={ei,weight},hei表示超图模型构造后的超边,hei.weight是超图模型构造后超边hei的权重。

如图3所示,为超图模型描述图。图中的第1、2和3行分别定义了超边、带权重的超边和合并后超边。第4行描述了超图构造超图模型的原则二和原则三,第五行和第六行描述了构造超图模型的原则四。

超图模型构造过程不仅解决了安全功能组件间的“共指”问题,同时也对安全功能组件进行了简单地初始合并,合并结束后,构造超边模型结束。超边模型构造的效果为:具有从属关系的安全功能组件和具有直接依赖关系的安全功能组件被合并在同一个超边中,具有间接依赖关系的安全功能组件属于一个超边,具有选择依赖关系的安全功能组件属于一个超边。超图模型构造结束后,模型中存在三种类型的超边:表征间接依赖关系的超边、选择依赖关系的超边和合并后的超边,且某些超边间有共同的安全功能组件。这种共享安全功能组件反映了两条超边间的选择依赖关联关系或者间接依赖关系。图4给出了超图模型效果图。

步骤二、进行安全功能组件重分类;以超图模型为基础,遵照以下两条原则对安全功能组件进行重分类:

安全功能组件重分类原则一、断开所有表征间接依赖关系的超边;由于间接依赖关系是由直接依赖关系产生的,那么可以通过直接依赖关系的传递来表征间接依赖关系,且直接依赖关系已经作为强关联关系保留在超边中,那么间接依赖关系已经包含在其他超边中,所以这里将表征间接依赖关系的超边断开。即,若hei.weight=0.5,则断开超边hei。这里的断开超边是指断开超边内所有安全功能组件间的关联关系,例如:e1={sfc1,sfc2,sfc3,sfc4,sfc5},且he1.weight=0.5,那么断开超边he1是指断开安全功能组件sfc1,sfc2,sfc3,sfc4和sfc5间的所有关联关系,如图5所示。

安全功能组件重分类原则二、断开选择依赖关系超边中关联度低的安全功能组件间的关联关系;断开所有表征间接依赖关系超边后,超图模型中只存在两种类型的超边,即表征两种强关联关系超边合并后的超边(hei.weight>1)和表征选择依赖关系的超边(hei.weight=0.1)。由于安全功能组件重分类的实质是断开关联度较弱超边,因此需要保留选择依赖关系超边中与选择安全功能组件所在超边关联关系最强的被选择组件,断开其他被选择组件。例如,在图4中,需要判断sfc2,sfc3,sfc4和sfc5这四个被选择组件与选择组件sfc1所在的超边的关联度大小,来决定断开哪写安全功能组件间的关联关系。用关联度来衡量安全功能组件间的关联关系强弱。关联度反映了一个安全功能组件与一个超边间的关联性,关联度强则安全功能组件与超边间的关联性就很强,否则就很弱。安全功能组件sfcm与超边hei间的关联度可用超边hei中与sfcm有关联关系的安全功能组件个数来衡量。例如:在图4中,安全功能组件sfc3与超边he2中的一个安全功能组件有关联关系,所以安全功能组件sfc3与超边he2间的关联度为1。

安全功能组件重分类得到42个安全功能组件重分类,这比cc标准的提供的12个安全功能组件类的分类结果更详细,且重分类中的安全功能组件更好地保证了组件的关联关系,能够通过软件系统的功能需求选择安全功能组件重分类。这42个安全功能组件重分类分为三种类型:表征无关联关系的安全功能组件重分类、简单的强关联关联关系的安全功能组件重分类和包含三种以上关联关系的安全功能组件重分类。其中9个无关联关系的安全功能组件重分类、19个只有从属关系和直接依赖关系的安全功能组件重分类和21个包含三种以上关联关系的安全功能组件重分类。

表2列出了部分安全功能组件重分类及其包含的安全功能组件。其中,第一个安全功能组件重分类urdnrr中包含的安全功能组件间存在从属关系、直接依赖关系和间接依赖关系,所以它为包含三种以上关联关系的安全功能组件重分类。第二个重分类usifpr为只有从属关系和直接依赖关系的安全功能组件重分类。第三个重分类datfau和第四个重分类vcofia为无从属依赖关系的安全功能组件重分类。

表2、安全功能组件重分类结果表

步骤2、安全功能组件问题及软件安全保护范围抽取;每个安全功能组件问题sfcpk的设置是为了引导用户确定系统是否满足安全功能组件的安全要求,因此分析每个安全功能组件的安全要求即可得到针对这个安全要求的一组安全功能组件问题sfcp。下面以fau_arp.1(安全告警)为例给出安全功能组件问题抽取的分析过程。

安全功能组件fau_arp.1(安全告警)的安全要求是:当检测到潜在的安全侵害时,评估对象安全功能tsf应采取动作。从fau_arp.1的安全要求可知,tsf需要做两件事,首先要检测出潜在安全侵害,然后针对这个安全侵害采取相应的措施。所以,与fau_arp.1关联的安全功能组件问题是两个。即:tsf是否能够检测到潜在的安全侵害?tsf检测到潜在的安全侵害后是否能采取相应的防护动作?按照上述的方法,完成了42个安全功能组件重分类中安全功能组件的安全功能组件问题的抽取。

安全功能组件重分类rsfcn中每个安全功能组件sfcmn的安全要求涉及很多软件安全保护范围pr,分析每个安全功能组件的安全要求得到软件安全保护范围,这些软件安全保护范围的并集就是这个安全功能组件重分类的软件安全保护范围pr。表3给出了安全功能组件重分类urdnrr(用户身份匿名保护)包含的安全功能组件及每个的组件的安全要求。

从表3可以看出,安全功能组件重分类urdnrr的软件安全保护范围为每个安全功能组件的软件安全保护范围的并集,即pr={用户、tsf、动作列表、原发者、接收证据}。

按照上述的方法,完成42个安全功能组件重分类的软件全保护范围抽取。

表3、urdnrr及其所包含安全功能组件表

步骤3、得到安全功能组件重分类与需求条目之间的映射关系;在步骤2中安全功能组件重分类rsfc已经建立了与软件安全保护范围pr的多对多关联关系,且在需求条目ri也关联了软件安全保护范围pr,所以通过软件安全保护范围pr的关联关系传递,安全功能组件重分类rsfc与需求条目ri间建立了多对多关联关系。又由于安全功能组件重分类rsfc包含很多安全功能组件sfc,这些安全功能组件对应于很多安全功能组件问题sfcp,这样,需求条目ri与安全功能组件问题sfcp就建立了多对多的关联关系;

步骤4、安全需求模板构建;根据需求条目ri与安全功能组件问题sfcp的多对多关联关系,为每条需求条目ri构建一个安全需求条目模板rim。安全需求条目模板rim由一系列安全功能组件问题和功能需求描述组成。安全功能组件问题sfcp可以引导用户确定系统是否需要某个安全功能组件,需求描述是系统安全性不关心的具体功能描述。需求描述部分是为了辅助理解安全功能组件问题而且设计的,同时也为了使生成的安全需求说明文档更完善。图6给出了安全需求模板的样例。

表4、安全需求模板样例

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1