当前位置: 首页 > 专利查询>天津大学专利>正文

一种软件系统安全缺陷检测方法技术方案

技术编号:3983177 阅读:245 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于软件安全领域,涉及一种软件系统安全缺陷检测方法,通过对大量安全缺陷的研究,抽象出安全缺陷的基本结构并对其进行形式化;然后,基于形式化之后的安全缺陷构建了一个可用于验证的安全缺陷数据库;接着,用扩展了的Z语言对软件开发过程中的各种制品进行形式化,形成一份Z规格;最后,基于可验证的安全缺陷数据库对Z规格进行安全缺陷的自动检测。本发明专利技术能够实现在软件开发过程中对安全缺陷进行自动检测,进而提高软件的安全性。

【技术实现步骤摘要】

本专利技术以软件的可信性质为主要研究对象,致力于量化度量软件的可信性质及可 信程度,属于软件安全领域。
技术介绍
当今社会,随着计算机的不断普及,软件已经深入到了我们生活的方方面面。正因为如此,人们对于软件安全性的要求也变的越来越高。软件之所以面临着各种各样的安全 性问题,是因为软件自身存在着安全缺陷。因此,如何能够发现进而缓和这些软件中存在的 安全缺陷对于软件安全来说就显得尤为重要。目前主要有两种方式来发现软件中的安全缺 陷一是在开发过程中,开发人员通过对各种软件制品的人工分析和测试来找出可能存在 的安全缺陷;二是在部署之后,当系统遭遇攻击时,安全人员逆向分析系统可能存在的安全 缺陷。然而,这些方法有以下共同缺点一、安全缺陷的发现都是通过人工来完成的,因而对 相关人员的要求比较高;二、安全缺陷一般都是在软件生命周期的晚期才发现的,所以缓和 的成本也比较高。所有的这些问题导致的一个直接结果就是,极大地提高了可信软件的开 发门槛。为了解决这些问题,进而降低可信软件的开发门槛,如何能够在软件开发的早期自 动地对软件系统中可能存在的安全缺陷进行检测就成为了软件安全领域研究的重点之一。 然而,由于现有软件开发过程中软件本身具有的非形式化的特点以及业界对安全缺陷研究 的不够深入的现状,导致在软件开发过程的早期对安全缺陷进行自动检测成为一项非常困 难的任务。软件开发无论采用何种方法学基本都要经历需求分析、设计、编码、测试、部署、维 护这样一个生命周期。在这个过程中(尤其是在需求分析和设计阶段),软件往往是以文档 的方式存在的。具体地说,这一过程中的软件是采用非形式化的自然语言和半形式化的建 模语言进行描述的。然而非形式化的信息是计算机所不能接受和处理的,所以计算机也就 无法对以这种方式存在的软件进行安全缺陷的自动检测。软件安全缺陷,就是指系统或系统成分中,那些可能导致其整体或局部无法实现 预期安全目标的不足点。业界当前对于安全缺陷的研究,主要就是考虑如何对形形色色的 安全缺陷进行分类和管理,以便以缺陷库的形式来为广大的软件开发人员、安全咨询人员 甚至是安全软件相关的工具提供服务。目前国内外相关的机构对安全缺陷按照分类的目 的、观察角度、复杂度等不同进行了多种分类,并形成了几个比较著名的安全缺陷数据库, 如 CVE(Common VulnerabilityEnumeration)禾口 CWE (Common Weakness Enumeration)。然 而,这些数据库都有一个共同的特征,那就是安全缺陷都是采用非形式化的自然语言表示 的。这就意味着只有那些安全专家才能读懂理解这些安全缺陷,而计算机则无法对安全缺 陷进行自动验证(即不可通过计算机自动的对软件系统中可能存在的安全缺陷进行识别、 检测以及缓和)。综上所述,在软件开发过程的早期对安全缺陷进行自动检测,就目前来看主要面 临以下两个方面的问题一、在开发过程中,软件往往是采用非形式化的自然语言以及半形式化的建模语言(如UML)来进行描述的,这就意味着计算机本身无法对开发过程中的软件进行有效的“理解”;二、目前,业界对安全缺陷的研究还不够深入,且在安全缺陷的描述上 也是采用的非形式化的自然语言,这就意味着计算机无法对安全缺陷进行自动验证。
技术实现思路
本专利技术针对现有技术的上述问题,提出一种可在软件开发过程的早期对安全缺陷 进行自动检测的方法。为此,本专利技术采用如下的技术方案,包括下列步骤1)软件安全缺陷基本结构的抽象及形式化首先,定义三个可枚举有限集合①DataType 是数据类型的可枚举有限集合;②Operation 是对数据进行操作即系统行为的可枚举有限集合;③Violation 是系统行为违反的安全约束的可枚举有限集合;其次,定义三个关系①DT(x,y)是一个二元关系,表示数据χ具有类型y,其中,y e DataType ;②INTENT(x,y):是一个二元关系,表示在数据χ上进行操作y,其中 y e Violation ;③VI0LATE(x,y)是一个二元关系,表示对数据χ没有实施安全约束y,其中,y e 安全约束Violation ;基于上述定义,采用以下公式来对安全缺陷进行形式化 3x3y3z3w,其中,y e DataType, ζ e Operation, w e Violation2)基于上述的安全缺陷基本结构及形式化方法,构建可用于验证的安全缺陷数据 库;3)用扩展的Z语言形式化描述软件系统并形成Z规格说明对Z语言进行扩充,在Z原来的基础上,以库的形式增加了对以下的类型和操作模 式的定义将DataType集合中的每个元素定义为一个类型,将Operation和Violation集 合中每个元素定义为一个操作模式,使得采用扩展之后的Z语言书写的规格说明具有足够 的检测安全缺陷的信息,由软件开发人员利用使用扩展之后的Z对软件开发过程中的各种 软件制品进行形式化描述,形成规格说明文档;4)基于安全缺陷数据库对Z规格说明进行安全缺陷的检测根据软件系统的Z规格说明文档,在可验证安全缺陷数据库的支持下,对Z规格中 是否存在安全缺陷进行如下的检测首先需要针对软件系统的Z规格生成一个AST树;然 后遍历AST树查看是否出现了安全缺陷数据库中某一安全缺陷的关键字序列,如果是则说 明系统存在该安全缺陷;最后生成检测报告。本专利技术以提高软件系统的安全性为目的,提出了一种在软件开发过程中对安全缺 陷进行自动检测的方法,以期尽早的发现软件系统中可能存在的安全漏洞,降低修补成本, 提高软件的安全性。有益效果有1)能够检测出软件系统中的安全缺陷从而提高了软件系统的安全性。本专利技术提供了一种可行的方法用以检测软件开发过程中可能引入的安全缺陷,以指导软件开发人员开发出安全、健壮的软件系统,极大的提高软件系统的安全性。2)能够在开发的早期发现系统中的安全缺陷,降低了缺陷修复的成本。总所周知, 软件中安全缺陷发现的越晚,修复安全缺陷所付出的代价就越高。本专利技术能够在软件系统 开发的早期(需求分析和设计阶段)就检测到安全缺陷的存在,使得开发人员可以尽早的 以较低的成本对其进行修复。3)检测过程可以使用计算机实现自动化,提高了安全软件的开发效率。在开发人 员为软件系统编写好Z规格后,安全缺陷检测的工作完全可以交给计算机自动完成。这样 一方面提高了安全缺陷的查准率和查全率,另一方面提高了软件开发的效率、缩短了软件 开发的周期。4)可验证安全缺陷数据库的构建可以为其他工具提供服务。安全缺陷数据库对于 软件安全来说是一笔宝贵的资产,可以为软件安全相关的诸多工具提供数据支持。附图说明附图1 安全缺陷结构图;附图2 可验证安全缺陷数据库E-R图;附图3 用户登录的UML顺序图;附图4 用户登录顺序图的Z规格(1);附图5 用户登录顺序图的Z规格(2);附图6 对Z规格生产的AST树片段。具体实施例方式对软件开发过程中的安全缺陷进行检测之所以困难,主要是因为一方面软件在开 发过程中的存在形式是非形式化的,另一方面现有对安全缺陷的研究无法满足缺陷检测的 要求。为了解决这些问题,本专利技术首先通过对大量安全缺陷的研究抽象出安全缺陷的基本 结构并对其进行形式化,从而以形式化的方式从深层次刻画了安全缺陷的本文档来自技高网
...

【技术保护点】
一种软件系统安全缺陷检测方法,包括下列步骤:1)软件安全缺陷基本结构的抽象及形式化:首先,定义三个可枚举有限集合:①DataType:是数据类型的可枚举有限集合;②Operation:是对数据进行操作即系统行为的可枚举有限集合;③Violation:是系统行为违反的安全约束的可枚举有限集合;其次,定义三个关系:①DT(x,y):是一个二元关系,表示数据x具有类型y,其中,y∈DataType;②INTENT(x,y):是一个二元关系,表示在数据x上进行操作y,其中y∈Violation;③VIOLATE(x,y):是一个二元关系,表示对数据x没有实施安全约束y,其中,y∈安全约束Violation;基于上述定义,采用以下公式来对安全缺陷进行形式化:*x*y*z*w[DT(x,y)^INTENT(x,z)^VIOLATE(x,w)],其中,y∈DataType,z∈Operation,w∈Violation2)基于上述的安全缺陷基本结构及形式化方法,构建可用于验证的安全缺陷数据库;3)用扩展的Z语言形式化描述软件系统并形成Z规格说明:对Z语言进行扩充,在Z原来的基础上,以库的形式增加了对以下的类型和操作模式的定义:将DataType集合中的每个元素定义为一个类型,将Operation和Violation集合中每个元素定义为一个操作模式,使得采用扩展之后的Z语言书写的规格说明具有足够的检测安全缺陷的信息,由软件开发人员利用使用扩展之后的Z对软件开发过程中的各种软件制品进行形式化描述,形成规格说明文档;4)基于安全缺陷数据库对Z规格说明进行安全缺陷的检测:根据软件系统的Z规格说明文档,在可验证安全缺陷数据库的支持下,对Z规格中是否存在安全缺陷进行如下的检测:首先需要针对软件系统的Z规格生成一个AST树;然后遍历AST树查看是否出现了安全缺陷数据库中某一安全缺陷的关键字序列,如果是则说明系统存在该安全缺陷;最后生成检测报告。...

【技术特征摘要】

【专利技术属性】
技术研发人员:李晓红王建刚曹燕邢金亮杜洪伟
申请(专利权)人:天津大学
类型:发明
国别省市:12[中国|天津]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1