会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 计算机网络 / 知识库 / 基于安全知识库的顺序图缺陷检测方法

基于安全知识库的顺序图缺陷检测方法

阅读:1146发布:2020-08-27

IPRDB可以提供基于安全知识库的顺序图缺陷检测方法专利检索,专利查询,专利分析的服务。并且本发明属于可信计算领域,涉及一种基于安全知识库的顺序图缺陷检测方法:利用UML顺序图描述设计阶段中的某一业务逻辑,首先对这些顺序图添加安全属性的扩展,然后对这些业务逻辑进行FSA建模并从模型中提取出所有的攻击路径,最后借助由攻击模式库、缺陷库及两者的二元关系所构建的安全知识库,进行缺陷检测,最终生成威胁分析报告。采用本发明可以有效地检测顺序图隐藏的系统缺陷,能够在软件开发的早期发现这些漏洞并作修补,从而降低了软件开发和维护的成本,提高了软件的安全系数,增强可信性。,下面是基于安全知识库的顺序图缺陷检测方法专利的具体信息内容。

1.一种基于安全知识库的顺序图缺陷检测方法,包括下列步骤:

1)顺序图的安全扩展:通过UML扩展机制,为顺序图中的对象与消息添加一些与安全相关的属性,这些与安全相关的属性用于对软件系统组件进行抽象和分类,并用于在信息图中对与安全相关的信息进行形式化;

2)从以XMI形式保存的顺序图中提取安全信息,并对顺序图进行FSA建模,将顺序图中的对象建模成FSA中的状态节点,顺序图中的消息调用建模成FSA中的状态转移的条件,得到FSA模型;

3)采用深度优先搜索算法从FSA模型中提取出所有可能的攻击路径;

4)建立包括攻击模式库、缺陷库、攻击模式与缺陷的二元关系库在内的安全知识库;

5)通过将步骤(2)中提取的攻击路径与安全知识库中的攻击模式进行匹配度计算,找到与各个攻击路径所关联的攻击模式,并通过攻击模式与缺陷的二元关系找到相关联的缺陷,最后生成威胁信息报告。

2.根据权利要求1所述的基于安全知识库的顺序图缺陷检测方法,其特征在于,步骤5)中,对匹配度计算方法如下:

1)首先判断当前攻击路径是否跟安全知识库中的某一个攻击模式的正则表达式完全相等,如果完全相等,则此次匹配为匹配度为100%的匹配;否则,将攻击路径分解成各个节点,通过下列的加权方法求取该攻击模式与当前的攻击路径的匹配度:以最后一个节点作为攻击的终点,即潜在攻击目标,设定其权重最大,为50%,距离该潜在攻击目标越远的攻击节点的权重越小,权值呈1/2指数减小趋势;

2)若匹配度大于预设的匹配度阈值,则将该攻击模式的名称,匹配度和该攻击模式关联到的缺陷组成三元组,加入威胁信息集合中。

3.根据权利要求2所述的基于安全知识库的顺序图缺陷检测方法,其特征在于,匹配度阈值设定为75%。

说明书全文

技术领域

本发明以可信软件开发设计阶段中的绘制的顺序图作为主要检测对象,致力于提高软件开发和后期维护成本、提高软件的可信度,属于软件安全领域。

背景技术

随着互联网的发展,软件安全问题日益引起大家的关注。软件系统潜在的漏洞给使用者带来很大的安全隐患,从而引发对安全软件思想的重视。如何生产高性能可靠的软件成为当前社会的一个热门话题。传统软件工程往往注重于软件的高效性、实用性和可靠性,而忽略了软件的可信度。且无法满足在各环节的安全需求,使得在需求和设计阶段中出现的安全问题不能够及时发现,不能保证开发高可信的软件,从而导致开发的软件易受攻击。然而安全软件工程提出一种在软件开发周期的每个环节加入安全的理念,对系统潜在的缺陷及早发现,及时解决,以确保各环节产品的高可靠性和安全性。
统一建模语言UML的提出,很好的规范和统一了软件的开发过程。在软件开发的设计阶段,设计人员往往会利用UML中的顺序图来绘制软件系统中各个对象的交互过程。顺序图重点说明了各对象在相互交互过程中的时间顺序,反映了系统的某一业务逻辑。顺序图主要包含对象跟消息两部分。对象反映了在这一业务逻辑中参与到的所有成员,分为一股形态和实例形态;消息则是对象之间的一种通信,可以传递信息并期望相关动作被执行。顺序图能够表示业务逻辑的执行方式和过程。但顺序图同样能够暴露系统的潜在威胁。由于顺序图的过程化合时序化,可能存在一些潜在的,攻击者能够利用的漏洞,即攻击路径。攻击者利用它们完成一个一个既定的攻击目标,最终实现对软件系统的攻击。
FSA(有限状态自动机”finite state automation”)是为研究有限内存的计算过程和某些语言类而抽象出的一种计算模型。有限状态自动机由系统的状态和这些状态之间的迁移构成,通过对顺序图进行FSA的建模能够更好的表述软件设计阶段中业务流程。
攻击模式是一种抽象概念,攻击模式所针对的问题即为软件产品攻击者的目标对象,描述的是攻击者用来破坏软件产品的技术。使用攻击模式的动机为软件开发者通过将自己想象为攻击者,参与到威胁中去,从而有效提高软件的安全性。一种攻击模式一股对应若干种软件缺陷,即一种攻击模式可以对软件的若干个缺陷产生影响,导致系统的这些缺陷暴露,遭受攻击。攻击模式是攻击者达到攻击目标的必经之路,所以检测出这样的一个攻击模式,就能够发现软件的存在的缺陷,避免遭受攻击者的攻击,提高软件的安全系数。
在软件开发过程中,设计阶段显得尤为重要,它定义了系统的整体架构,功能模块,技术路线等,是对整个软件项目的宏观描述。随着安全软件工程的发展,软件的设计阶段也越来越被软件安全专家所关注。正是由于设计阶段在整个软件项目的作用,致使设计阶段能够展现和暴露软件潜在的缺陷和安全漏洞,在软件开发的设计阶段发现这些缺陷和安全漏洞,成为安全软件工程的重要一环。

发明内容

本发明首先利用顺序图来表述软件设计阶段中的某一业务逻辑,然后对顺序图进行安全分析,生成一份威胁分析报告,从而提出在软件开发初期的弥补建议和方案。这样能够减少软件开发和维护的成本,提高软件的可信度。为此,本发明采用如下的技术方案。
一种基于安全知识库的顺序图缺陷检测方法,包括下列步骤:
1)顺序图的安全扩展:通过UML扩展机制,为顺序图中的对象与消息添加一些与安全相关的属性,这些与安全相关的属性用于对软件系统组件进行抽象和分类,并用于在信息图中对与安全相关的信息进行形式化;
2)从以XMI形式保存的顺序图中提取安全信息,并对顺序图进行FSA建模,将顺序图中的对象建模成FSA中的状态节点,顺序图中的消息调用建模成FSA中的状态转移的条件,得到FSA模型;
3)采用深度优先搜索算法从FSA模型中提取出所有可能的攻击路径;
4)建立包括攻击模式库、缺陷库、攻击模式与缺陷的二元关系库在内的安全知识库;
5)通过将步骤2)中提取的攻击路径与安全知识库中的攻击模式进行匹配度计算,找到与各个攻击路径所关联的攻击模式,并通过攻击模式与缺陷的二元关系找到相关联的缺陷,最后生成威胁信息报告。
上述的步骤5)中,对匹配度计算方法可以如下:
1)首先判断当前攻击路径是否跟安全知识库中的某一个攻击模式的正则表达式完全相等,如果完全相等,则此次匹配为匹配度为100%的匹配;否则,将攻击路径分解成各个节点,通过下列的加权方法求取该攻击模式与当前的攻击路径的匹配度:以最后一个节点作为攻击的终点,即潜在攻击目标,设定其权重最大,为50%,距离该潜在攻击目标越远的攻击节点的权重越小,权值呈1/2指数减小趋势;
2)若匹配度大于预设的匹配度阈值,则将该攻击模式的名称,匹配度和该攻击模式关联到的缺陷组成三元组,加入威胁信息集合中。
匹配度阈值最好设定为75%。
本发明在安全软件开发架构的基础上,针对设计阶段的顺序图进行安全的检测。其中顺序图的安全扩展将半形式化的UML语言完全形式化,这样就能够对逻辑含义进行精确地描述,消除了二义性,有利于对顺序图进行处理和安全检测;顺序图的扫描和建模能够从顺序图中提取出与缺陷检测密切相关的信息,并将这些信息进行FSA的建模,将设计阶段的业务逻辑存储在有向图中,有向图的节点代表顺序图中的对象,有向图的边代表顺序图中的消息,能够很好的反映该业务逻辑中的各对象之间的关系,而且便于计算机进行操作处理;攻击路径的提取能够提取出顺序图中隐藏的,可能被攻击者所利用的对象跟消息序列的过程。它是有向图中的一条路径,能够反映攻击者有目的性的从起点,通过若干攻击手段,一步一步的攻破系统节点,实现最后的攻击目标的过程。为缺陷的检测提供了数据的支持;借助安全知识库的缺陷检测利用了攻击路径跟攻击模式之间的相似运算,可以获取与攻击路径类似的攻击模式,进而获得缺陷信息,能够为软件的设计开发提供威胁分析。
本发明通过上面的四部分工作,可以有效地检测顺序图隐藏的系统缺陷,能够在软件开发的早期发现这些漏洞并作修补,从而降低了软件开发和维护的成本,提高了软件的安全系数,增强可信性。

附图说明

图1顺序图缺陷检测方法的整体架构图。
图2攻击路径提取流程图。
图3安全知识库结构图。
图4示意顺序图。
图5顺序图转变为FSA模型。

具体实施方式

针对上述目标,本发明提出的方法大致分为四个部分,即顺序图的安全扩展、顺序图扫描和建模、攻击路径的提取和借助安全知识库的缺陷检测。其中整体的架构图如附图1所示。
1.顺序图的安全扩展:通过UML扩展机制,将顺序图中的对象与消息添加一些安全的属性。这些属性可自M.Gegick的博士论文《Analyzing Security Attacks to Generate Signaturesfrom Vulnerable Architectural Patterns》的系统组件图。安全属性是对软件系统组件的抽象和分类,能够对顺序图中的组件进行抽象化和形式化的表示。如Apache可以抽象为Web服务器,MySQL可以抽象为数据库服务器。这些安全属性能够更好的对顺序图的信息进行形式化,便于后面缺陷的检测。
2.顺序图扫描和建模:顺序图中的安全信息存储在各个对象和对象之间的消息里,对顺序图的安全信息的扫描首先要将以XMI形式保存的顺序图中的各个对象和这些消息提取出来。本发明所做的顺序图的FSA建模过程是将顺序图中的对象建模成FSA中的状态节点,顺序图中的消息调用建模成FSA中的状态转移的条件。
3.攻击路径的提取:在顺序图建模FSA模型中,已经成功将顺序图转化成了FSA,后面的工作需要在FSA中提取出所有可能的攻击路径。因为建模成的FSA是以有向图的形式进行存储的,需要对有向图进行分析,找到一条完整的攻击路径。
获取攻击路径可以采用深度优先搜索算法。首先将入度为零的节点加入队列(入度为零的节点是攻击路径的起始点),然后顺次遍历这些节点,递归加入相连接的节点至出度为零的节点作为攻击路径的终点。提取攻击路径的基本流程如附图2所示,详细算法描述如下:
输入:顺序图建模后的FSA
输出:攻击路径集合AttackPathSet={AttackPath}
攻击路径提取主体程序:
(1).初始化
(2).遍历所有入度为零的节点S
(2.1)通过深度优先搜索获得攻击路径
(2.2)将攻击路径加入集合
AttackPathSet=AttackPathSet∪AttackPath
深度优先搜索程序DFS(Si,AttackPath):
输入:节点Si,正在构建的攻击路径AttackPath
(1).首先查看Si是否已经在AttackPath中存在,如果是进行第2步,否则进行第3步。
(2).将Si加入到AttackPath,返回AttackPath,结束程序。
(3).遍历FSA中的所有条件转化I:Si×I=Sj
(3.1)将该条件转化加入到AttackPath中
(3.2)递归调用深度优先搜索,传入参数分别为Sj和AttackPath
4.借助安全知识库的缺陷检测:安全知识库是存储攻击模式、软件缺陷和缓和方案的关系数据库。本发明借助该数据库进行软件缺陷的检测,需要对这个数据库进行相关的知识查询操作。安全知识库的结构如附图3所示。攻击模式库(AttackPattern)中的属性分别代表:攻击模式的ID,攻击模式的名称,描述,正则表达和缓和方案。缺陷库(Weakness)中的属性分别代表缺陷的ID,缺陷的名称,描述,作用领域,发生可能性应用平台,引入阶段和缓和方案。攻击模式与缺陷的二元关系库(Relationship)中的属性分别代表攻击模式的ID和缺陷的ID。提取出攻击路径后,我们就获得了对此业务逻辑的缺陷检测的中间媒介,通过这些攻击路径跟安全知识库中的攻击模式进行匹配度计算,就能够找到该业务逻辑所关联的攻击模式,最终通过攻击模式与缺陷的二元关系找到相关联的缺陷,最后生成威胁信息报告。攻击路径跟攻击模式之间的匹配度计算方法为:首先判断当前攻击路径是否跟安全知识库中的某一个攻击模式的正则表达式完全相等,如果完全相等,则此次匹配是100%的匹配,将该攻击模式的名称,100%和该攻击模式关联到的缺陷组成三元组,加入威胁信息集合中;否则计算该攻击模式跟该攻击路径的匹配度。将攻击路径分解为一个一个的节点。最后的节点为业务的终点,是潜在的攻击目标,所以在一次攻击中的威胁权重最大,设为50%。这个潜在攻击目标可能需要通过多个潜在攻击子节点达到,这些潜在攻击节点距离最终节点越大,威胁的权值越小,并呈1/2指数减小趋势,匹配度计算算法如下:
输入:攻击路径集合AttackPathSet,攻击模式集合AttackPatternSet
输出:威胁信息集合WeaknessSet
算法描述:
(1).初始化缺陷信息集合
(2).遍历攻击路径集合AttackPathSet
(2.1).遍历攻击模式集合AttackPatternSet
(2.1.1).如果当前攻击路径与当前攻击模式的正则表达相等,则为全匹配,进行第2.1.2步,否则进行第2.1.3步。
(2.1.2).将当前攻击模式,100%和跟攻击模式所关联的缺陷加入到威胁信息集合中,继续第2.1步。
(2.1.3).将攻击路径分解成若干节点,初始化precision←0,temp←50%
(2.1.4).遍历攻击路径中的各个节点
(2.1.5).如果当前攻击模式包含该节点,那么precision+=temp,temp/=2;
(2.1.6).如果precision(匹配度)大于75%,那么为部分匹配,将攻击模式,precison和攻击模式所关联的缺陷加入到威胁信息中。
下面以图4中的顺序图为例来说明本发明。
5.首先需要对顺序图进行安全扩展,为顺序图中的四个对象和五个消息添加安全属性:
对象:
用户→Client
Web服务器→Server
数据库服务器→Database
内存→Buffer
消息:
发送消息→HTTPRequest
发送查询消息→SendQueryString
内存操作→BufferWrite
返回结果→SendMessage
处理返回结果→HTTPMessageHandle
6.然后对顺序图进行扫描和FSA的建模,获得结构如图5所示。
7.从FSA模型中运用攻击路径的提取算法可以提取出三条攻击路径
(1)Client→HTTPRequest→Server→SendQueryString→Database→BufferWrite→Buffer
(2)Client→HTTPRequest→Server→HTTPMessageHandle→Server
(3)Client→HTTPRequest→Server→SendQueryString→Database→SendMessage→Server
8.借助安全知识库中存储的攻击模式,将这些攻击路径与攻击模式的正则表达式进行匹配度计算,最终能够获取到匹配度大于75%的若干攻击模式,通过攻击模式与缺陷的关联,最终生成威胁分析报告,提交给系统的分析设计人员,及时将漏洞修补,提高最终软件的可信度。
其中缓冲区溢出Overflow Buffers(正则表达式为
(Client)(SendMessage)(Server)(BufferWrite)(Buffer))即为匹配到的攻击模式,匹配度为92.5%。该攻击模式相关联的缺陷主要有Data Handling,Failure to Constrain Operations withinthe Bounds of a Memory Buffer,Buffer Copy without Checking Size of Input(‘Classic BufferOverflow’),Integer Overflow to Buffer Overflow.通过这些缺陷提供的信息,系统分析和设计人员能够及时的采取措施来修补这些漏洞和缺陷。最终提高了软件的可信度,降低了软件开发和维护的成本。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用