Java程序静态分析中的漏洞检测技术研究

来源 :北京邮电大学 | 被引量 : 3次 | 上传用户:dc365
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着互联网的不断发展,云计算、大数据、移动支付等技术正在以颠覆性的方式改变着人们的工作和生活。互联网给人们带来便捷的同时,全球范围内大规模网络攻击,信息泄露等问题层出不穷。网络安全信息安全问题已经上升到国家安全层面,逐渐成为一个潜在的巨大问题。造成网络安全隐患的原因有多种,其中软件自身代码的错误和设计缺陷是造成软件源代码安全问题的主要原因。随着技术的发展、需求的增加,程序源代码结构愈发错综复杂,编程人员在开发过程中很难避免编码缺陷的存在。为了提升软件代码安全,软件开发过程中的源代码安全分析、静态分析就显得十分必要。然而商业化静态分析软件通用性较强在针对企业特有的代码时并不能准确的检测出问题,经常会产生误报和漏报。因此针对不同的源代码建立特有的静态分析模型进行代码检测有重要的研究意义。本论文以Java程序静态分析中漏洞检测技术为主题,对以Java语言为代表的Struts2框架当中频发的OGNL远程命令执行漏洞为例,从漏洞特点中总结源代码中的危险函数,在污点分析原理的基础上,对源代码的静态分析模型的建立进行了详细的研究,主要研究工作如下:(1)在源码层面,分析了 S2-045、S2-046这两个漏洞产生的原理。发现这两个漏洞的触发点相同,都是因为文件上传操作。S2-045漏洞是因为程序没有对文件上传操作进行正确的验证导致可以通过修改HTTP请求头中的Content-Type值然后作为OGNL表达式被解析执行;S2-046漏洞与S2-045利用方式不同,是通过在Content-Disposition的值中添加恶意的代码导致远程命令执行。(2)对漏洞产生的原理进行分析之后,总结了 Struts2框架中易引发OGNL表达式远程注入命令的缺陷函数的特征,并且根据这些特征提取了源码中的危险函数。危险函数主要特征有两点:1是代码中涉及到对外部传进来的数据进行处理的函数,2是Struts2框架中会把参数当中OGNL表达式解析的函数。(3)在污点分析的理论基础上,利用coverity静态分析软件及其原语建立了针对Struts2源码中OGNL远程命令执行漏洞的静态分析模型,并进行静态扫描分析验证了模型的正确性。对Struts2框架中OGNL表达式注入问题进行了分析总结,为以后这方面问题的排查与测试提供参考与借鉴。
其他文献
本文用温湿度传感器模块,一氧化碳传感器模块以及蓝牙串口模块,以Arduino作为主要控制器,结合传感器技术实现一个具有实时反映空气温度、湿度和一氧化碳有害气体功能的环境监测系统。该系统通过串口与PC进行通讯,将信息发送给PC端,在PC端显示由Arduino开发板传送来的数据。该系统搭建成本低、使用灵活、稳定可靠。
针对子空间聚类算法中构建块对角相似度矩阵的方法不直接且假设条件很难满足的问题,提出直接以块对角优先的拉普拉斯秩约束子空间聚类算法(BLRC)。通过添加拉普拉斯矩阵秩约
近年来 ,由于在大气污染控制 ,同位素分离 ,红外制导以及生物医药方面的重要应用 ,红外激光及非线性材料的研究成为一个新的热点。而氧化物晶体由于在 3μm~ 5 μm和 8μm~ 1 2
随着现代声呐技术的进步,声呐作用距离不断增加,此时海洋环境随距离变化的累积效应影响不容忽视,水平分层声传播模型已不能满足远距离声呐性能预报的要求。耦合简正波理论作
信息化系统安全性格局的大变化,将软件源代码安全提升到一个关乎全局的重要位置。随着需求增加,源代码的规模和复杂度逐渐提升,使得研发团队在开发过程中很难杜绝编码缺陷的
本文从JAVA编程语言的特点以及语言技术角度着手,阐述JAVA语言在计算机软件开发中的实际应用。
本文提出一种基于深度卷积对抗式生成网络(DeepconvolutionalGAN,DCGAN)的农作物病虫害图像生成方法,利用卷积神经网络强大的特征提取能力,提高生成网络的学习效果,生成大量接近真实数据的病虫害图像。实验结果表明,该方法能有效解决病虫害图像数据不足的问题。
针对现有异型器件的特殊性,提出设计基于SCARA机器人的异型插件控制系统,对系统的整体结构进行具体的介绍,系统控制装置核心是PLC控制器,通过RS485通信方式与工业机器人和工
通过对信息系统中属性进行多视角的重要度度量,构造一种更为优越的特征选择算法。以粒计算理论为基础,在模糊近似空间中引入模糊粒度,在此基础上提出模糊条件熵的概念,将模糊
2002年11月8日至14日,中国共产党第十六次全国代表大会在北京召开,世界语《中国报道》网络版通过“十六大专题”对这次盛会进行了集中详尽的报道,在世界语读者中引起较大反响。