期刊文献+

基于k近邻最弱前置条件的程序多路径验证方法 被引量:5

Program Multiple Execution Paths Verification Based on k Proximity Weakest Precondition
下载PDF
导出
摘要 程序多路径验证方法是对软件性质进行发掘的重要方法之一,现有的验证方法主要通过求解路径条件或者自动构造不同的输入来触发生成不同的路径,从而分析程序中潜在的安全问题,但存在对路径条件不加选择地进行多路径扩展而生成缺乏针对性的路径的问题,另外由于路径条件过长而难以求解也限制了它的使用范围.该文提出基于k近邻最弱前置条件的程序多路径验证方法,该方法通过后向符号分析对程序调用图的构建过程进行改进,同时对指定的程序检测点生成最弱前置条件,并以该最弱前置条件为引导信息使用符号执行的方法在保证检测点可达的前提下有针对性地生成对程序性质进行验证的精简路径集合.实验结果表明,该方法可以提高程序验证的精度和准确性,并减少误报. Program multiple paths verification is one of the key methods in the exploring of software properties.Current verifications usually trigger the generation of different execution paths via solving the path conditions or constructing inputs automatically to verify the underlying security problems in programs.However,this method extends the multiple paths without choosing the proper path conditions,which leads to the generation of redundant paths,meanwhile,the length of path conditions is usually too long,which restrains its application domain.A method of program multiple paths verification based on kproximity weakest precondition is proposed in this paper,which improves the generation of call graph of the program,and combines the backward symbolic analysis to generate the weakest preconditions in specific checking points.The results of weakest precondition are used as the guidance for symbolic execution to generate proper pathsthat can verify the properties of the program on the premise of reaching the specific checking points.The experimental results demonstrate that this method can enhance the precision and accuracy of program verification,and reduce the false positive.
出处 《计算机学报》 EI CSCD 北大核心 2015年第11期2203-2214,共12页 Chinese Journal of Computers
基金 国家自然科学基金(61332019,61173138,61272452,91118003) 国家“九七三”重点基础研究发展规划项目基金(2014CB340600) 国家“八六三”高技术研究发展计划项目基金(2015AA016002) 湖北省自然科学基金(2014CFB144) 中央高校基本科研业务费专项基金(2662015QC009)资助~~
关键词 程序验证 静态分析 最弱前置条件 符号执行 控制流图 program verification static analysis weakest precondition symbolic execution control flow graph
  • 相关文献

参考文献23

  • 1Nipkow T, Paulson L. Isabelle/HOL: A proof assistant for higher-order logic. Lecture Notes in Computer Science 2283. Berlin: Springer, 2008.
  • 2Cruz J. Constraint Reasoning for Differential Models. Amsterdam: The IOS Press, 2005.
  • 3Clarke M, Grumberg O, Peled D. Model Checking. Massa- chusetts: The MIT Press, 1999.
  • 4张健.精确的程序静态分析[J].计算机学报,2008,31(9):1549-1553. 被引量:36
  • 5King J. Symbolic execution and program testing. Communi- cations of the ACM, 1976, 19(7) : 385-394.
  • 6Dijstra E. A Discipline of Programming. Englewood Cliffs: Prentice Hall, 1976.
  • 7Zhongxian G, Earl T, David J. Has the bug really been fixed//Proceedings of the 32nd Conference on International Conference on Software Engineering (ICSE 2010). Cape Town, South Africa, 2010: 55-64.
  • 8Lahiri S, Qadeer S. Back to the future: Revisiting precise program verification using SMT solvers//Proeeedings of the 35th Conference on Principles of Programming Languages (POPL 2008). San Francisco, USA, 2008:171-182.
  • 9Barrett C, Tinelli C. CVC3//Proceedings of the 19th Inter- national Conference on Computer Aided Verification (CAV 2007). Berlin, Germany, 2007:298-302.
  • 10Willem V, Corina P, Sarfraz K. Test input generation with Java PathFinder//Proceedings of the 5th International Symposium on Software Testing and Analysis (ISSTA 2004). Boston, USA, 2004:97-107.

二级参考文献163

共引文献303

同被引文献37

  • 1季晓慧,张健.约束问题求解[J].自动化学报,2007,33(2):125-131. 被引量:13
  • 2刘杰,余童兰.基于断言的程序正确性检测工具[J].电脑与信息技术,2007,15(5):14-16. 被引量:3
  • 3STAVNYCHA M, YIN H, ROMER T. A large-scale survey on the effects of selected development practices on software correctness [ C]// Proceedings of the 2015 International Conference on Software and SystemProcess. New York: ACM, 2015:117 -121.
  • 4McDONALD J T, TRIGG T H, ROBERTS C E, et al. Security in agile development: pedagogic lessons from an undergraduate software engineering case study[ C[// CSS 2015: Proceedings of the Second International Symposium on Cyber Security. Berlin: Springer, 2015: 127-141.
  • 5D'SILVA V, KROENING D, WEISSENBACHER G. A survey of automated techniques for formal software verification [ J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2008, 27(7) : 1165 - 1178.
  • 6YANG G , DWYER M B , ROTHERMEL G . Regression model checking[ C]// ICSM 2009: Proceedings of the 2009 IEEE Interna- tional Conference on Software Maintenance. Piscataway, NJ: IEEE, 2009: 115-124.
  • 7HARRIS W R, SANKARANARAYANAN S, IVANCIC F, et al. Program analysis via satisfiability modulo path programs[ C]//POPL 2010: Proceedings of the 37th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. New York: ACM, 2010:71-82.
  • 8MUDDULURU R, RAMANATHAN 3,/K. Efficient incremental stat- ic analysis using path abstraction[ M]// Fundamental Approaches to Software Engineering. Berlin: Springer, 2014: 125- 139.
  • 9HENRY J. Static analysis by path focusing[ D]. Grenoble: Greno- ble INP, 2011:15 -41.
  • 10GARG P, NEIDER D, MADHUSUDAN P, et al. Learning invari- ants using decision trees and implication counterexamples [ C]//Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposi- um on Principles of Programming Languages. New York: ACM, 2016:499-512.

引证文献5

二级引证文献11

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部