首页 | 本学科首页   官方微博 | 高级检索  
     

数值稳定性相关漏洞隐患的自动化检测方法
引用本文:沈维军,汤恩义,陈振宇,陈鑫,李彬,翟娟.数值稳定性相关漏洞隐患的自动化检测方法[J].软件学报,2018,29(5):1230-1243.
作者姓名:沈维军  汤恩义  陈振宇  陈鑫  李彬  翟娟
作者单位:南京大学 计算机软件新技术国家重点实验室, 江苏 南京 210023;南京大学 软件学院, 江苏 南京 210093,南京大学 计算机软件新技术国家重点实验室, 江苏 南京 210023;南京大学 软件学院, 江苏 南京 210093,南京大学 计算机软件新技术国家重点实验室, 江苏 南京 210023;南京大学 软件学院, 江苏 南京 210093,南京大学 计算机软件新技术国家重点实验室, 江苏 南京 210023;南京大学 计算机科学与技术系, 江苏 南京 210023,南京大学 计算机软件新技术国家重点实验室, 江苏 南京 210023;南京大学 计算机科学与技术系, 江苏 南京 210023,南京大学 计算机软件新技术国家重点实验室, 江苏 南京 210023;南京大学 软件学院, 江苏 南京 210093
基金项目:国家自然科学基金(61772260,61402222,61373013);国家重点基础研究发展计划973(2014CB340700)
摘    要:安全漏洞检测是保障软件安全性的重要手段.随着互联网的发展,黑客的攻击手段日趋多样化,且攻击技术不断翻新,使软件安全受到了新的威胁.本文描述了当前软件中实际存在的一种新类型的安全漏洞隐患,我们称之为数值稳定性相关的安全漏洞隐患.由于黑客可以利用该类漏洞绕过现有的防护措施,且已有的数值稳定性分析方法很难检测到该类漏洞的存在,因而这一新类型的漏洞隐患十分危险.面对这一挑战,本文首先从数值稳定性引起软件行为改变的角度定义了数值稳定性相关的安全漏洞隐患,并给出了对应的自动化检测方法.该方法基于动静态相结合的程序分析与符号执行技术,通过数值变量符号式提取、静态攻击流程分析、以及高精度动态攻击验证三个步骤,来检测和分析软件中可能存在的数值稳定性相关安全漏洞.我们在业界多个著名开源软件上进行了实例研究,实验结果表明,本文方法能够有效检测到实际软件中真实存在的数值稳定性相关漏洞隐患.

关 键 词:漏洞检测|数值稳定性|程序分析|软件安全
收稿时间:2017/7/1 0:00:00
修稿时间:2017/8/29 0:00:00

Method for Automated Detection of Suspicious Vulnerability Related to Numerical Stability
SHEN Wei-Jun,TANG En-Yi,CHEN Zhen-Yu,CHEN Xin,LI Bin and ZHAI Juan.Method for Automated Detection of Suspicious Vulnerability Related to Numerical Stability[J].Journal of Software,2018,29(5):1230-1243.
Authors:SHEN Wei-Jun  TANG En-Yi  CHEN Zhen-Yu  CHEN Xin  LI Bin and ZHAI Juan
Affiliation:State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China;Software Institute, Nanjing University, Nanjing 210093, China,State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China;Software Institute, Nanjing University, Nanjing 210093, China,State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China;Software Institute, Nanjing University, Nanjing 210093, China,State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China;Department of Computer Science and Technology, Nanjing University, Nanjing 210023, China,State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China;Department of Computer Science and Technology, Nanjing University, Nanjing 210023, China and State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China;Software Institute, Nanjing University, Nanjing 210093, China
Abstract:Vulnerability detection is an important way of improving the security of software. However, the development of the Internet makes it possible for hackers to attack software systems with new techniques. So the software is still vulnerable. This paper describes a new kind of vulnerability. We call it the vulnerability related to numerical stability. As hackers are able to bypass the security protection by the new kind of vulnerability, and numerical analysis is difficult to detect such a vulnerability, it is dangerous. In this paper, we define the vulnerability related to numerical stability from the perspective of software behavior variation caused by numerical errors, and further propose an automatic detection approach. The approach combines the static analysis and symbolic execution, and detects the vulnerability by three steps: symbolic extraction, static attack analysis, and dynamic attack verification with high precision values. We evaluate our approach on a few famous open source projects. The results show that our approach effectively detects the vulnerabilities related to numerical stability hidden in the real-world projects.
Keywords:vulnerability detection|numerical stability|program analysis|software security
点击此处可从《软件学报》浏览原始摘要信息
点击此处可从《软件学报》下载全文
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号