[发明专利]基于约束分析和模型检验的代码安全漏洞检测方法有效

专利信息
申请号: 200910086938.9 申请日: 2009-06-11
公开(公告)号: CN101571828A 公开(公告)日: 2009-11-04
发明(设计)人: 王雷;陈归;赵朋超;张强 申请(专利权)人: 北京航空航天大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 北京科迪生专利代理有限责任公司 代理人: 李新华;徐开翟
地址: 100191*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 约束 分析 模型 检验 代码 安全漏洞 检测 方法
【说明书】:

技术领域:

发明涉及一种源代码漏洞检测的静态检测方法。

背景技术:

随着信息技术的发展,计算机软件已经渗透到国民经济的各个领域中,并与人们的生产 生活息息相关。软件的安全问题也越来越凸显其重要性,一些关键软件一旦遭到破坏,将会 造成行业性乃至全国性的瘫痪。恶意的用户可以针对特定软件的bug,运行恶意的代码从而 得到访问非法数据的权限。缓冲区溢出漏洞是目前这类安全漏洞中最主要的一种。恶意的用 户可以通过分析程序的输入数据格式,并确定这些数据存放在程序的缓冲区中,这样用户就 有可能通过特殊的输入数据,将栈空间的敏感数据覆盖掉,特别的将保存的返回地址替换为 用户自己定义的非法代码的地址,这样非法用户就可以控制程序流程、执行非法操作。

软件的漏洞可以通过静态方法和动态方法进行检测。静态方法分为一般的静态检测方法 和基于完备理论的形式化验证方法,第一类主要是基于程序分析的方法检查代码中可能存在 的漏洞;第二类方法则以形式逻辑、自动机理论为基础,验证程序是否具有某种性质。程序 分析的方法不能够对程序的所有状态进行穷举,因此精确度欠佳,模型检测可以对所有程序 的状态进行穷举,然而为了验证一个短小程序的性质,需要搜索的程序状态可能就非常庞大, 因此纯模型检测的方法不能有效地进行漏洞检测。目前比较有效的一种模型检测方法是基于 抽象-验证-细化范例的软件模型检测方法,代表工具是加州大学伯克利分校研制的Blast, 这种方法能够适当忽略与安全漏洞属性不相关的代码,从而简化了整个验证过程。这不仅可 以增加检测出的漏洞数目而且可以减小误报率,提高检测精度。与静态检测方法不同的是, 动态检测技术对程序的规模没有限制,可以对大型程序进行检测,然而明显的不足是动态检 测技术对输入的依赖性,只有当特定的输入使程序执行到危险点时,漏洞才会被发现,从而 导致误报率较高。

单纯的模型检测方法一般不能直接检测程序的漏洞,比如Blast曾借助于Securd检测 程序中空指针的引用问题,但是不能检测更复杂缓冲区操作的安全性。而关系到系统安全的 漏洞检测用单纯的模型检测方法就更加困难,所以一般都需要借助于其他的程序分析方法来 配合模型检测对这类的缓冲区溢出漏洞进行检测。

发明内容:

本发明要解决的技术问题是:针对单纯的模型检测难以检测安全漏洞的问题,提出一种 结合约束分析的模型检测的方法来对缓冲区溢出漏洞进行验证,目前该方法能够实际地应用 于中小规模的程序中,并且具有低误报率的优点。

本发明采用的技术方案是:基于约束分析和模型检测的漏洞检测方法,其特征在于:利 用模型检测所具备的可达性分析,对经过约束分析提取后的约束模型进行可达性判定,将安 全漏洞检测问题转变为可达性判定问题,利用一阶谓词公理系统进行模型求解,从而判断和 分析出安全漏洞以及引发路径。

本发明采用语法制导的方法,在GCC的抽象语法树上进行约束分析,建立了一套针对缓 冲区溢出漏洞的约束分析机制,为缓冲区增加属性长度信息,不同的缓冲区操作语句对应于 不同的属性约束生成。为描述整个约束分析过程,首先对C语言进行抽象,分析过程非流敏 感的,不会处理控制流信息,为简化分析本发明将所关心的C语言语法进行抽象,包括指针 变量、整型变量、函数调用、内存分配以及赋值语句。根据这些语法抽象对缓冲区的操作, 生成相应的属性处理语句,而生成规则是由xml配置文件给出,该文件将直接指导缓冲区属 性模型的建立。

整个约束分析过程主要分如下几个部分:

(1)将每个缓冲区与包含最大长度(max_length)和已用长度(used_length)的整数值对 相关联,本发明称此整数值对为相应缓冲区的属性或属性信息;

(2)将与缓冲区相关的语句和函数调用抽象为对缓冲区属性信息的操作,包括属性传递 (更新)和属性验证;

(3)通过(1)(2)的分析建立关于缓冲区属性的约束模型,用模型检测算法对属性约束模 型进行求解,最终确定程序是否存在安全漏洞。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910086938.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top