本发明专利技术属于软件安全技术领域,涉及一种基于安全缺陷知识库的可信软件开发方法,包括:(1)建立基于安全缺陷知识库;(2)将设计人员的用例图及需求说明文档作为信息收集的载体,找到设计中相关的误用例,并提供可度量效果及代价分析的缓和方案;(3)针对用例图中的每一个用例,绘制活动图,通过对活动图的结构分析,得到设计阶段即会显现出的软件缺陷;(4)通过对顺序图的分析给出软件中的脆弱点及潜在的攻击模式;(5)针对具体的编程语言及环境选择合适的工具检测代码的编写缺陷;(6)通过对软件成品的安全性评估,得出软件的可靠程度;(7)对所述知识库中的内容进行及时更新。本发明专利技术有利于降低开发成本,提高软件的可信度和开发效率。
【技术实现步骤摘要】
本专利技术属于软件安全领域,涉及一种可信软件的开发方法。
技术介绍
在信息化席巻全球的现代社会,软件已渗透到现代生活的方方面面,这就使得软件安全 问题成为广大用户极为关注的问题。从软件开发的角度讲,使用经实践验证的、相对可靠的 、可重用流程,有利于实现软件可靠程度的提升。因此,软件开发人员必须采用一种更严格 的、更关注安全性的软件开发流程,这种流程旨在尽量减少设计、编码和文档编写过程中出 现的漏洞,并在开发生命周期中尽可能早地检测到并消除这些漏洞。如今,有关软件安全的 相关问题已经成为软件工程领域的热点。以构建安全可靠的应用程序和系统为出发点,微软 公司在传统软件工程流程的基础上提出了安全软件开发生命周期,在软件开发的需求、设计 、编码和测试发布等各个阶段都加入了有关安全的讨论。这使得软件在开发过程中就把安全 作为其重要组成部分,而不是把安全作为软件功能以外的附加属性。软件缺陷是指系统或系统成分中,那些可能导致其整体或局部无法实现预期功能的不足 点。从这个角度讲,软件缺陷与软件产品本身的功能需求直接相关,系统对特定功能的需求 导致了潜在的安全隐患。但大部分的软件缺陷是通过设计的改良、实现的优化来减缓、甚至 避免的。2009年CWE/SANS发布了25个最危险的编程错误。这些错误之所以是危险的,是因为 他们可能导致攻击者完全接管软件、窃取数据,甚至导致软件系统崩溃。CWE秧〈毕萘斜 恚-ommon Weakness Enumeration)是美国的MITRE公司(一个非盈利机构)继CVE (Common Vulnerabilities and Exposures)之后的又一个安全漏洞词典。它们收集了到目前为止, 已经发现的在整个软件开发生命周期的所有安全漏洞。除此以外,CWE网站还包含了700多个 额外的编程错误、设计错误和导致开发漏洞的结构错误等数据。为了更有针对性的研究攻击者的攻击行为,安全分析专家提出攻击模式的概念,以此来了解并预测可能的攻击行为。简单的讲,攻击模式是一种抽象机制,用来描述一种观察到的 攻击是如何被执行的。它所针对的问题即为软件产品攻击者的目标对象,描述的是攻击者用 来破坏软件产品的技术。依据攻击范式,攻击模式还提供了本身的适用范围的上下文描述以 及缓和攻击的方案。使用攻击模式的动机为软件开发者通过将自己想象为攻击者,参与到威 胁中去,从而有效提高软件的安全性。软件缺陷是软件工作产品中不满足指定要求的成分,其产生过程贯穿于整个软件项目开 发生命周期。而攻击模式是安全专家针对网络中发生的大量攻击行为案例进行抽象和总结出 的一套攻击某类软件缺陷的模式化方法,也可以说是攻击者利用软件系统中的漏洞展开的一 次攻击行为来达到自己的某种不可告人的目的。软件缺陷和攻击模式的关系可以很好的描述 为因果联系,前者的多样性决定了后者的复杂性。目前,在软件安全研究领域,国内外专家 对两者关系的研究缺乏针对性和全面性,没有一个从工程角度宏观把握安全问题的规范化思 路。在工程实践中,软件开发人员对软件缺陷及软件产品面对的各种潜在威胁缺乏充分了解 ,这也正是导致许多软件产品安全性能严重不足的重要原因。
技术实现思路
本专利技术针对这种现状,克服现有技术的缺陷,提出一种基于软件缺陷库、贯穿软件开发 生命周期的、面向软件安全性能的整体软件开发方案,用以及时发现在软件开发过程各阶段 当中可能出现的安全漏洞,依据本专利技术提出的方法开发的软件系统,可以帮助软件开发人员 修正设计内容、完善实现方法,对软件开发过程提供一种全局性的技术支持并提出带有定量 、可行性及代价分析的缓和建议。提高软件的可信度,有效提高软件产品的质量和开发效率为此,本专利技术给出如下的技术方案一种,包括(1) 建立基于安全缺陷知识库,该知识库包含缺陷用例、误用例、缓和用例以及它 们之间的关联关系,满足对活动图、顺序图进行检测及完善的需要的自动机形式的攻击模式 及软件缺陷,常用代码检测工具的接口,与软件缺陷及攻击模式相关的各项信息及测试用例 生成器等,并在该库的基础上,实施以下各个步骤;(2) 将设计人员的用例图及需求说明文档作为信息收集的载体,找到设计中相关的误4用例,并提供可度量效果及代价分析的缓和方案;(3) 针对用例图中的每一个用例,分析其自身功能需求及使用边界,绘制活动图,通过 对活动图的结构分析,得到设计阶段即会显现出的软件缺陷;(4) 将顺序图作为对象实体间交互信息的主要载体,通过对顺序图的分析给出软件中 的脆弱点及潜在的攻击模式;(5) 针对具体的编程语言及环境选择合适的工具检测代码的编写缺陷;(6) 通过对软件成品的安全性评估,得出软件的可靠程度,以此作为成品软件的安全 性指标,生成针对具体情况的安全性能测试用例;(7) 对所述知识库中的内容进行及时更新。 本专利技术提出的一种基于安全缺陷知识库的软件开发方法,有益效果包括 通过对用户用例图的分析检测,找出需求分析阶段显现出的安全漏洞,并将改进方案分层次提供给用户,让用户综合自身的实际情况酌情修改。由于需求阶段是整个开发活动的源 头,这一阶段的正确性是后面一切工作可以顺利开展的基本保证。同时,从软件开发者的角 度讲,在与其客户交流需求设计时,将待开发软件面对的各种潜在威胁发现出来、陈其利弊 ,从根本上也有利于保护软件开发者的权益。通过对活动图的检测,找到用例功能流程上或用例边界中可能出现的安全漏洞,这些漏 洞是由软件设计本身的缺陷导致的。针对检测出的问题,将可行建议提供给用户,为用户的 不同安全需求提供不同的缓和意见。通过对顺序图的检测,找到软件实现设计中的缺陷。这些缺陷往往是通过顺序图的结构 反应出来。将检测出的缺陷告知给用户,并建议用户结合其本身的安全性需求及开发预算, 来决定采用何种缓和办法。由于顺序图中包含的信息非常丰富,对其的检测往往可以发现一 些在前阶段无法发现的安全问题。同时,顺序图也是编码实现的重要指导,对顺序图的完善 对于后续编码阶段有非常重要的意义。前期的全部设计都是通过具体编码来实现的,对代码的检测就显得尤为重要。通过代码 检测,可以找到编码中的语法错误、易出错函数的不当使用及不可靠调用关系等安全问题, 这些问题的及时修改对软件产品最终的安全性能实现起到决定性作用。针对前期检测中检测出的各种安全问题,为用户生成用于安全性能测试的用例。这些测 试用例可以带有针对性的检测用户前期曾出现过的安全漏洞,更有针对性的进行测试。同 时也让用户对安全性能的表现有一个直观的认识,从而更全面的考虑其产品的安全性能。附图说明图l:本专利技术的可信软件开发方法整体流程框图。图2:网上银行的用例图(基本功能)。图3:用户修改后的用例图。图4:用例"访问在线银行"的对应活动图。图5:ArgoUML绘制的"访问在线银行"动作的顺序图。图6:安全性能测试过程。图7:最终用例图。图8:"访问网上银行"的最终活动图。具体实施例方式本专利技术提出一种基于安全缺陷知识库的软件开发方法,主要包括下列步骤(1) 针对需求分析阶段,将设计人员的用例图及需求说明文档作为信息收集的载体。 通过针对这些信息的分析,找到设计中相关的误用例,并根据实际情况,提供可度量效果及 代价分析的缓和方案。(2) 针对用例图中的每一个用例,本文档来自技高网...
【技术保护点】
一种基于安全缺陷知识库的可信软件开发方法,包括: (1)建立基于安全缺陷知识库,该知识库包含:缺陷用例、误用例、缓和用例以及它们之间的关联关系,满足对活动图、顺序图进行检测及完善的需要的自动机形式的攻击模式及软件缺陷,常用代码检测工具 的接口,与软件缺陷及攻击模式相关的各项信息及测试用例生成器等,并在该库的基础上,实施以下各个步骤; (2)将设计人员的用例图及需求说明文档作为信息收集的载体,找到设计中相关的误用例,并提供可度量效果及代价分析的缓和方案; (3) 针对用例图中的每一个用例,分析其自身功能需求及使用边界,绘制活动图,通过对活动图的结构分析,得到设计阶段即会显现出的软件缺陷; (4)将顺序图作为对象实体间交互信息的主要载体,通过对顺序图的分析给出软件中的脆弱点及潜在的攻击模式; (5)针对具体的编程语言及环境选择合适的工具检测代码的编写缺陷; (6)通过对软件成品的安全性评估,得出软件的可靠程度,以此作为成品软件的安全性指标,生成针对具体情况的安全性能测试用例; (7)对所述知识库中的内容进行及时更 新。...
【技术特征摘要】
【专利技术属性】
技术研发人员:李晓红,王翔宇,杜洪伟,潘东,曹燕,
申请(专利权)人:天津大学,
类型:发明
国别省市:12[中国|天津]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。