期刊文献+

基于约束分析与模型检测的代码安全漏洞检测方法研究 被引量:6

Detection of Code Vulnerabilities via Constraint-Based Analysis and Model Checking
下载PDF
导出
摘要 与传统的程序分析相比,模型检测具有较高的检测精度,但无法将其直接应用于缓冲区溢出、代码注入等安全漏洞的检测.为解决此问题,提出了基于约束分析与模型检测相结合的安全漏洞自动检测方法.首先,通过约束分析跟踪代码中缓冲区的信息,在涉及缓冲区操作的危险点生成相应的属性传递和属性约束语句,并将安全漏洞检测问题转化为模型检测方法可接受的可达性检测问题.然后,采用模型检测方法对安全漏洞的可达性进行判断.同时采用程序切片技术,以减少状态空间.对6个开源软件的检测结果表明,基于该方法实现的CodeAuditor原型系统发现了18个新漏洞,误报率为23%.对minicom的切片实验显示,检测性能有较大提高. Compared with traditional program analysis, model checking is preponderant in improving the precision of vulnerabilities detection. However, it is hard to directly apply model checking to detect buffer overflow, code injection and other security vulnerabilities. To address this problem, an approach that combines the constraint-based analysis and the model checking together to detect vulnerabilities automatically is proposed in this paper. At first we trace the information of the buffer- related variables in source code by the constraint-based analysis, and instrument the code with corresponding attribute transfer and constraint assertions of the buffers before the potential vulnerable points that are related to the buffers. And then the problem of detecting vulnerabilities is converted into the problem of verifying the reachability of these constraint assertions. Model checking is used to verify the reachability of the security vulnerabilities. In addition, we introduce program slicing to reduce the code size in order to reduce the state space of model checking. CodeAuditor is the prototype implementation of our methods. With this tool, 18 previously unknown vulnerabilities in six open source applications are discovered and the observed false positive rate is at around 23 %. The result of minicom's slicing shows that the performance of detection is improved.
出处 《计算机研究与发展》 EI CSCD 北大核心 2011年第9期1659-1666,共8页 Journal of Computer Research and Development
基金 国家"八六三"高技术研究发展计划基金项目(2007AA01A127) 航空科学基金项目(2009ZD51039)
关键词 约束分析 模型检测 安全漏洞 程序切片 静态分析 constraint-based analysis model checking security vulnerability program slicing static analysis
  • 相关文献

参考文献22

  • 1Dhurjati D, Adve V. Backwards-compatible array bounds checking for C with very low overhead[C]//Proc of the 28th Int Conf on Software Engineering. New York: ACM, 2006: 162-171.
  • 2Livshits V, Lain M. Tracking pointers with path and context sensitivity for bug detection in C programs [C] //Proc of the 9th European Software Engineering Conf Held Jointly with 11th ACM SIGSOFT Int Syrup on Foundations of Software Engineering. New York: ACM, 2003: 317-326.
  • 3Zitser M. Securing software: An evaluation of static source code analyzers [D]. Cambridge: MIT, 2003.
  • 4Clarke E M, Grumberg O, Peled D. Model Checking [M]. Boston: MIT, 1999.
  • 5Cousot P. Formal language, grammar and set-constraint- based program analysis by abstract interpretation [C]//Proc of the 7th Int Conf on Functional Programming Languages and Computer Architecture. New York: ACM, 1995: 170- 181.
  • 6FSF. GCC, the GNU compiler collection FEB/OLd. [2009- 10-17]. http://gcc, gnu. org/.
  • 7Henzinger T, Jhala R, Majumdar R, et al. Lazy abstraction [C] //Proe of the 29th ACM SIGACT Syrup Principles of Programming Languages. New York: ACM, 2002:58-70.
  • 8Weiser M. Program slicing [C]//Proc of the 5th Int Conf on Software Engineering. New York: ACM, 1981:439-449.
  • 9DeKok A. Pscan: A limited problem scanner for C source files [EB/OL]. [2009-10-17]. http://deployingradius.com/ pscan/.
  • 10Viega J, Bloch J, Kohno Y, et al. ITS4: A static vulnerability scanner for C and C++ code [C]//Proc of ACSAC'00 16th Annual Conf. New Orleans: ACSAC, 2000:245-257.

二级参考文献1

共引文献5

同被引文献59

  • 1方凯彬,闫巍.移动互联网应用代码安全测试方法的使用[J].中国检验检疫,2013(11):31-32. 被引量:2
  • 2VON RIEGEN M, HUSEMANN, FINK S, et al. Rule-based coordination of distributed Web service transactions[J]. IEEE Transactions on Services Computing, 2010, 3(1): 60-72.
  • 3WARAWOOT P, TOSHIAKI A, ATHASIT S, et al. Conformance verification between Web service choreography and implementation using learning and model checking[C]//2011 IEEE 9th International Conference on Web Services. Hawaii, USA: IEEE, 2011: 722-723.
  • 4SYLVAIN H, ROGER V, OMAR C. Specifying and validating data-aware temporal Web service properties[J]. IEEE Transactions on Software Engineering, 2009, 35(5): 669-683.
  • 5FENG Y Z, MARKUS K. Verifying OWL-S service process models[C]//2011 IEEE 9th International Conference on Web Services. Hawaii, USA: IEEE, 2011:307-314.
  • 6CLARKE E M. The birth of model checking[M]. Berlin Heidelberg: Springr-Verlag, 2008..
  • 7SCHUPPAN V, BIERE A. Liveness checking as safety checking for infinite state spaces[J]. Electronic Notes in Theoretical Computer Science, 2006, 149(1): 79-96.
  • 8RAMASWAMY M, SARKAR S, YES C. Using directed hypergraphs to verify rule-based expert systems[J]. IEEE Transactions on Knowledge and Data Engineering, 2007, 19(2): 221-237.
  • 9YANG S J H, TSAI J J P, CHYUN C C. Fuzzy rule base systems verification using high-level Petri nets[J]. IEEE Transactions on Knowledge and Data Engineering, 2003, 15(2): 457-473.
  • 10CHAVARRIA-BAEZ L, LI X O. Structural error verification in active rule-based systems using Petri nets [C]//Fitth Mexican International Conference on Artificial Intelligence. Mexico City: IEEE, 2006: 12-21.

引证文献6

二级引证文献25

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

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