APP下载

基于应用视角的缓冲区溢出检测技术与工具*

2019-07-08司徒凌云王林章李宣东

软件学报 2019年6期
关键词:分析检测

司徒凌云, 王林章, 李宣东, 刘 杨

1(南京大学 计算机科学与技术系,江苏 南京 210023)

2(计算机软件新技术国家重点实验室(南京大学),江苏 南京 210023)

3(School of Computer Science and Engineering, Nanyang Technological University, Singapore 210023, Singapore)

软件缓冲区溢出漏洞在CWE/SANS排名的25个最危险软件漏洞中位列第三[1],是当今危害最为广泛和严重的安全漏洞之一.缓冲区溢出是指输入数据超过缓冲区可容纳的最大数据量,进而超出部分溢出到临近存储区域的软件漏洞.其产生的根本原因是使用非安全类型编程语言如 C/C++,强调效率优先,而对内存操作不做边界检查.缓冲区溢出可被恶意利用进而控制主机,获得系统权限,执行任意代码,对安全攸关系统造成重大危害.典型的例子最早可追溯到1988年爆发的MORRIS蠕虫[2],其利用BSD操作系统后台程序的缓冲区溢出漏洞进行攻击,数天之内控制了近6 000台网络主机,几乎导致互联网完全瘫痪,造成了近一千万美元的经济损失;再例如2001年7月爆发的Code Red蠕虫[3]攻击了近36万台服务器,造成超过26亿美元的损失.速度最快的属随后于2003年1月爆发的Slammer蠕虫[4],其基于微软SQL Server的缓冲区溢出漏洞进行攻击,在10分钟之内感染了7.5万台主机,最终感染主机60多万台,造成经济损失达50亿美元之巨.

为了抵御缓冲区溢出漏洞的威胁,一方面,编程人员的安全编程技能不断提升;另一方面,各种缓冲区溢出漏洞的检测、防护技术也相继提出,典型的可分为静态方法和动态方法.静态方法[5-8]不需执行程序,基于源码分析,能够有效发现常见的缓冲区溢出漏洞……

登录APP查看全文

猜你喜欢

分析检测
隐蔽失效适航要求符合性验证分析
电力系统不平衡分析
电力系统及其自动化发展趋势分析
小波变换在PCB缺陷检测中的应用
中西医结合治疗抑郁症100例分析
在线教育与MOOC的比较分析