[发明专利]面向C源码的自动化形式化验证工具及方法在审
申请号: | 202110007064.4 | 申请日: | 2021-01-05 |
公开(公告)号: | CN112685315A | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 杨霞;郭文生;张冯博;卢秀台;高扬;熊宇;万俊;闫哲;林珍珍;任超;郑旭东 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 源码 自动化 形式化 验证 工具 方法 | ||
本发明公开了面向C源码的自动化形式化验证工具及方法,将编写好的代码功能规范插入C源码中,然后将功能规范和C源码自动转换成程序验证器可处理的中间表示,接着程序验证器将中间表示转换成中间验证语言代码,供形式化验证输入使用;采用形式化方法,可对转换的源代码进行自动化的形式化验证,以验证源代码的功能性和安全性。在各接口函数通过代码功能正确性验证的基础上,利用行为建模语言和组合验证技术构建抽象模型;然后利用模型仿真引擎和属性检测引擎模拟交互行为,验证安全属性,判断代码是否满足安全属性规范。本发明能够以自动化的形式,实现对C源码的形式化验证,其中使用的中间表示生成器可以自动化生成中间表示,程序验证器可以自动化生成中间验证语言代码,模型仿真引擎和属性检测引擎可以自动化验证安全属性,这些措施可以极大的提高C源码验证的效率,减少人工参与度。
技术领域
本发明涉及C语言源代码安全技术领域,具体涉及面向C源码的自动化形式化验证工具及方法。
背景技术
形式化验证方法是使用数学的公式、定理和系统来验证一个系统的正确性。形式化验证过程可以证明一个系统不存在某个缺陷或符合某个或某些属性。软件测试无法证明系统不存在缺陷,也不能证明它符合一定的属性。系统无法被证明或测试为无缺陷,这是因为不可能形式地规定什么是“没有缺陷”。所有可以做的,就是证明一个系统没有任何可以想到的缺陷,并且满足所有的功能规范和安全属性。
C语言是一种通用的编程语言,由于具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐,应用于许多重点领域。如果C语言程序设计出现漏洞,或将产生重大损失。形式化验证方法可以很好的检验和验证C语言代码的漏洞,但传统的形式化验证方法主要依赖于手工验证,工作量大,效率较低,并且对使用形式化验证方法的程序员要求较高。
发明内容
本发明的目的在于提供一种面向C源码的自动化形式化验证工具及方法,解决上述C语言代码面临的安全问题以及传统形式化验证工作量大、验证效率低的问题。
本发明通过下述技术方案实现:
面向C源码的自动化形式化验证工具,包括:
中间表示生成器:用于将C源码和插入的功能规范转换成中间表示,并输入到程序验证器;程序验证器:用于接收中间表示,并将中间表示转换成C代码类型、语义一致的中间验证语言代码,并输入到自动化验证模块,由自动化验证模块的自动化验证器对该中间验证语言代码进行自动化的形式化验证,得出验证结果;
自动化验证模块:用于提供多种自动化验证器,可根据用户的输入参数对自动化验证进行配置;
抽象模型编译器:用于接收建模语言编写的代码,并将建模代码编译成为抽象模型;
模型仿真引擎:用于根据仿真的输入参数对抽象模型进行仿真模拟,输出仿真模拟的过程中抽象模型的各种状态和属性;
属性检测引擎:用于接收用特定语法编写的安全属性公式,并利用模型仿真引擎和生成的抽象模型模拟交互行为,验证安全属性公式定义的安全属性,得出验证结果。
本发明面向C源码的自动化形式化验证工具,将C源码和根据其功能要求编写的功能规范导入形式化验证工具的中间表示生成器,能够自动化地生成程序验证器所需的中间表示,程序验证器接收中间表示后自动转换成中间验证语言代码,然后输入到自动化验证模块进行验证,能够得出代码功能正确性的验证结果;在各接口函数通过代码功能正确性验证的基础上,利用行为建模语言编写建模代码,输入到抽象模型编译器中生成抽象模型,然后利用模型仿真引擎和属性检测引擎模拟交互行为,验证安全属性,能够判断代码是否满足安全属性规范。本发明工具能够以较高程度的自动化,对C源码进行形式化安全验证,其中使用的中间表示生成器可以自动化生成中间表示,程序验证器可以自动化生成中间验证语言代码,模型仿真引擎和属性检测引擎可以自动化验证安全属性,这些措施可以极大的提高C源码验证的效率,减少人工参与度。
面向C源码的自动化形式化验证方法,包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110007064.4/2.html,转载请声明来源钻瓜专利网。