[发明专利]基于软件功能层对软件异常行为溯源的方法无效
申请号: | 201410018348.3 | 申请日: | 2014-01-16 |
公开(公告)号: | CN103744786A | 公开(公告)日: | 2014-04-23 |
发明(设计)人: | 赖英旭;霍淑啸;杨震;李健 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 软件 功能 异常 行为 溯源 方法 | ||
技术领域:
本发明旨在建立软件功能模型,判别出异常软件行为,并对异常行为溯源的过程。
背景技术:
软件的行为是指软件运行表现形态和状态演变的过程。软件行为定义为软件运行时作为主体,依靠其自身的功能对客体的施用、操作或者动作。软件存在的不可信行为会对社会造成不同程度的损坏,所以研究软件行为的可信性成为一种必要。软件的行为可以从底层的二进制指令到高层的程序语句、函数、系统调用等不同层次刻画软件行为,根据某一层次的行为信息而构建的行为状态序列以及状态变迁,可以表征软件的正常行为特征,并用于软件行为的异常检测。一般的软件行为研究方法分为静态和动态两种。静态方法直接分析程序的源代码或二进制代码,建立相应的行为模型。源代码通过对程序代码的执行路径进行分析来建立程序正常行为模式。或者通过分析软件的二进制文件,不仅可以得到程序的控制流图并且可以模拟程序运行栈机制。动态方法是通过分析程序运行过程中的参数来表征软件的行为的方法。主要是基于系统调用的方法,利用定长或者不定长的序列来发现系统调用序列的基本模式为软件行为进行建模分析。
现有的方法已经从不同的角度表征了软件的行为过程,可以在一定程度上检验出软件的异常行为,增强了软件行为的可信性。但是,没有从根源上发掘软件异常行为产生的根源,即软件异常行为的根源在其源代码中。
发明内容:
基于软件功能层对软件异常行为溯源的方法,其特征在于,所述方法包括:
监视软件运行时的系统调用序列,在每一个单独的软件功能执行过程中提取出软件功能的标准操作序列;
从待检测状态序列中匹配出相关软件功能序列的方法;
使用计算两个字符串之间距离的方法来确定此软件功能的测试序列和标准操作序列之间的相似度以判断该功能是否异常;具体为:计算测试序列和标准操作序列之间多组相似度,对多组相似度进行数理统计,估算正常操作序列的相似度范围;正常相似度序列符合正态分布,求出此正态分布的置信区间;如果落在此范围区间则判断为正常操作,如果未落在此区间范围则为异常操作;
以软件功能和功能参数为程序切片规则,基于此规则在源代码中抓取软件功能相关的程序切片;
将建立的软件正常运行时的模型图和待测功能序列做匹配,检测是否存在异常状态;确定所监视的软件行为是否为可信行为或者异常行为;如果出现软件异常行为,则回溯到可能发生错误的源代码中。
本文通过挖掘软件运行时的系统调用序列转换为状态层状态序列,通过检测软件行为的状态序列检测出软件异常行为,并通过设置兴趣点对软件的异常行为在源代码中溯源,找出软件异常行为的根源,以求从根源上解决软件的异常行为。
附图说明
图1RSS软件正常状态转移图。
图2图2为判断相似度的流程图。
图3为软件架构图,是一个软件的建模过程以及基于图示的检测软件行为为正常行为或者异常行为的过程。
具体实施方式:
本发明是一种基于软件系统调用序列经过状态层处理后得到的状态序列,判断出软件功能序列和使用程序切片对软件功能序列做程序切片进行溯源的方案。该方案包含四个模块,即1频繁项集挖掘模块、2软件功能判定模块、3软件功能状态序列相似度计算、4程序切片生成模块。
定义1场景SC(Sence):SC指软件运行过程中在操作后对软件的当时状态的完整性度量,当软件运行到检查点位置时采集场景信息。该模型通过引入场景这一概念来描述软件运行路径上各阶段功能实现的完整性,并结合数据挖掘领域中关联规则和序列模式算法,从已知的场景信息集合中提取潜藏的有价值的关联信息用于软件行为可信检测。
定义2状态序列SS(State Seqence):用来描述软件的运行状态。软件运行时截取到的系统调用序列推导出状态层的状态序列,以代替系统调用序列来表达软件的行为。
SS=<s1,s2,……sn>,其中s1,s2,……sn为状态层的状态
定义3标准操作序列SO(Standard Operation):表示每一个操作的标准状态序列。软件每一个操作都会有其相对应的状态序列,但是由于软件的操作环境以及多种因素的影响,得到的状态序列会有一定程度的误差,为了消除这种误差需要找出一个标准操作状态序列。标准操作序列SO属于一种特殊的状态序列,需要对多组操作序列分析得到。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410018348.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据存储的方法及装置
- 下一篇:一种基于符号化函数摘要的静态分析方法及系统