一、文献综述
(一)国内外研究现状
1.传统静态代码分析系统应用现状
在项目上线前对项目代码进行静态扫描已经成为软件开发中的最佳实践,在实际操作中,各个企业会根据实际情况使用第三方或自研静态扫描产品。本小节就目前常用扫描产品和静态扫描技术进行介绍。
目前静态安全扫描产品使用的技术主要有词法分析技术、数据流分析技术和形式化分析技术。词法分析技术主要是对代码中敏感函数进行匹配,从而发
现安全性漏洞,这一类分析技术产生时间较早,实现也较为简单,但是由于其不考虑程序上下文,存在大量误报,在实际情况中使用较少。
数据流分析技术模拟程序中敏感数据流动从而发现安全漏洞,其衍生出的污点分析方法是目前实际使用的主要检测方法,这一类分析方法适合于数组越界,注入类漏洞,因为这些漏洞特征表现为特定变量在某一程序点上状态满足或不满足某一规则,通过对数据的跟踪恰好可以识别这些特征。由于其能覆盖的漏洞种类较多,本系统选择以该技术为预测的基础,然而随着目前程序规模不断扩大,新型程序设计思想和语法不断出现,加之漏洞成因愈发复杂,即使是这类分析技术目前也存在大量误报,例如污点分析无法很好的处理容器变量、控制流、清洁函数等,企业中的安全运营人员必须通过手工设计精巧的污点传播规则,限制开发者所用的清洁函数,或是以手工添加函数摘要的方式添加清洁函数等方式降低误报,然而这些方式并不能完全解决污点分析的弊端,仍有误报不断产生,安全工程师需要花大量时间处理误报。
形式化分析技术往往用于一些可以用数学逻辑表达的安全漏洞,如 C/C 语言中指针变量二次释放,缓冲区溢出等问题,这一类技术将漏洞存在性问题变为数学逻辑上的约束求解和逻辑推导问题,由于目前程序规模较大,该技术面临着求解规模空间大,无法推导等问题,此外该技术针对的漏洞类型较少,将问题转变为数学模型需要大量人力成本。
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。