Print

基于模型检查的系统程序的可靠性与安全性验证

论文摘要

软件复杂度呈指数上升,BUG数量的不断增多,人工测试已经不堪重负。理论界专家纷纷指出,模型检查(ModelChecking)将会成会未来的趋势。本文选用了两款各有针对性的模型检查工具CBMC和MOPS,互为补充,对网络应用中大量使用的OpenSSH系统进行检查,利用两款工具的不同特点,对各自产生的检查结果相互校验,并对验证结果进行了一致性证明。CBMC是一个针对ANSI-C和C++的模型检查器,它擅长用来检查程序的可靠性:诸如检查数组边界、缓存溢出、指针安全等程序性质,同时它也允许使用自定义的断言来对程序进行建模验证。MOPS是一个被设计用来查找C程序中安全性BUG的模型检查器。它可以用来验证程序是否满足时序安全性质。时序安全性质是指一组操作是否按照要求的先后顺序执行,这在程序的安全性特点中尤其重要。OpenSSH是一款免费的加密工具软件,它对包括密码在内的所有数据流量进行加密,有效的防御了侦听、连接截取和其他网络级的攻击。在OpenSSH系统中存在的可靠性或安全性BUG很可能导致重大的损失,所以本文以此软件作为实验的对象。本文首先使用两款软件分别对验证对象进行检查,对产生的有效BUG使用另一个软件进行针对性建模进行复查。最后使用形式化方法证明了检查结果的一致性。

论文目录

  • 论文摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 程序验证技术
  • 1.2 模型检查技术
  • 1.3 模型检查工具
  • 1.4 本文研究目的及贡献
  • 1.5 本文结构
  • 第二章 验证对象及验证工具介绍
  • 2.1 OpenSSH验证对象介绍
  • 2.2 CBMC验证工具介绍
  • 2.3 MOPS验证工具介绍
  • 2.4 CSP形式化方法介绍
  • 2.5 本章小节
  • 第三章 可靠性验证
  • 3.1 可靠性需求分析
  • 3.2 使用CBMC工具建模
  • 3.3 实验与检查结果
  • 3.4 本章小节
  • 第四章 安全性验证
  • 4.1 安全性需求分析
  • 4.2 使用MOPS工具建模
  • 4.3 实验与检查结果
  • 4.4 本章小节
  • 第五章 相互验证
  • 5.1 相互验证的意义
  • 5.2 CBMC与MOPS的检查结果对比
  • 5.3 结果一致性实验
  • 5.4 本章小节
  • 第六章 结论与展望
  • 6.1 结论
  • 6.2 展望
  • 参考文献
  • 附录
  • 致谢
  • 相关论文文献

    本文来源: https://www.lw50.cn/article/2a0a040c022d985463c428d4.html