逻辑漏洞检测与软件行为分析关键技术研究
发布时间:2021-10-30 12:09
计算机与互联网技术的快速发展,带来了一场计算机软件领域的技术革命。从PC时代的单机软件,到互联网时代的分布式软件,再到如今云计算时代倡导的软件服务,计算机软件的应用得到了前所未有的普及,软件已成为当代社会基础设施的重要组成部分,深刻影响着社会生活的方方面面。然而,随着功能特性的不断增强,软件的规模和复杂性也呈现快速增加的趋势,使得传统程序分析手段在软件可靠性和安全性分析领域的应用受到了前所未有的挑战。程序分析(Program Analysis),是指对计算机程序行为的正确性、健壮性、安全性等属性进行自动化分析的过程。目前,程序分析技术被广泛应用于软件的开发与测试过程中,对提升软件质量具有关键意义。从总体上看,当前程序分析技术在软件可靠性与安全性分析方面的应用主要存在以下三大关键问题:1.超大规模程序中的复杂漏洞检测问题。软件漏洞的本质是代码缺陷,可能受软件设计与实现、硬件架构与执行环境等诸多因素的影响。因此,针对软件漏洞,尤其是以逻辑漏洞为代表的复杂软件漏洞的自动化大规模检测技术依然存在很多问题。由于逻辑漏洞一般与软件的特定功能相关,其隐蔽性往往更强,特征通常也更为复杂,因而缺乏有效的...
【文章来源】:浙江大学浙江省 211工程院校 985工程院校 教育部直属院校
【文章页数】:125 页
【学位级别】:博士
【部分图文】:
图3.1:?OpenSSL?API使用简介??的证书链押]
主权L名验证API所导致的软件逻辑漏洞。??§3.3.2研究方法概述??图3.6概括了本节采用的主要研宄方法。首先将被分析客户端程序的代码输入至静态??分析器(Static?Analyzer):然后,静态分析器将被分析代码转换为某种抽象的代码表??示。同时,SSL/TLS软件库API的正确使用模式被抽象为特征,并作为输入提供给特征匹??配引擎(Matcher);然后,特征匹配引擎会将输入的特征与代码抽象表示进行匹配,如??果匹配结果一致,说明被分析的SSL/TLS客户端程序中主机验证与证书验证过程正确。??反之,则报告存在逻辑漏洞。??^?\w?r?、??SSL/TLS?Client?signatures?Vulnerability??Software?Report??^?I?4?^??!?A??▼?,?'??Static?.?Code?^?,??Analyzer?Representations?Mate?er??、—?^??图3.6:研究方法简介??§?3.3.3代码表示形式??为了方便后续操作
?第3章SSL/TLS应用程序逻辑漏洞检测技术研究??利用正则表达式能够很好地匹配不同函数调用之间的时序,但却无法适用于设计数??据流模式的表示。例如,考虑图3.3中所示的定义调用链(Def-use?Chain)。仅匹配参??数或者变量是不足以验证这些API调用模式的正确性,还需要把用于证书验证的API函??数SSL_get_verify_result的返回值与后续的一系列检查关联起来。??除正则表达式外,协议状态机(Protocol?State?Machine)也是另一类常用来表达特征??的形式。一般地,状态机比正则表达式的表示能力更强,通常用于网络流量等输入形式??的匹配,拥有图灵机的表示能力。然而对于像SSLint采用的静态分析方法中涉及的与被??分析代码和图灵特征相关的决策问题本身是不可判定的,因此协议状态机在本质上不适??用。??综上,我们选择了一种带标记的图(LabeledGraph)作为API使用模式的特征表示。??这种特征表示中的节点代表了代码中的语句,而边代表了不同语句之间的联系。反映了??所有需要在代码中匹配的API的正确模式
本文编号:3466708
【文章来源】:浙江大学浙江省 211工程院校 985工程院校 教育部直属院校
【文章页数】:125 页
【学位级别】:博士
【部分图文】:
图3.1:?OpenSSL?API使用简介??的证书链押]
主权L名验证API所导致的软件逻辑漏洞。??§3.3.2研究方法概述??图3.6概括了本节采用的主要研宄方法。首先将被分析客户端程序的代码输入至静态??分析器(Static?Analyzer):然后,静态分析器将被分析代码转换为某种抽象的代码表??示。同时,SSL/TLS软件库API的正确使用模式被抽象为特征,并作为输入提供给特征匹??配引擎(Matcher);然后,特征匹配引擎会将输入的特征与代码抽象表示进行匹配,如??果匹配结果一致,说明被分析的SSL/TLS客户端程序中主机验证与证书验证过程正确。??反之,则报告存在逻辑漏洞。??^?\w?r?、??SSL/TLS?Client?signatures?Vulnerability??Software?Report??^?I?4?^??!?A??▼?,?'??Static?.?Code?^?,??Analyzer?Representations?Mate?er??、—?^??图3.6:研究方法简介??§?3.3.3代码表示形式??为了方便后续操作
?第3章SSL/TLS应用程序逻辑漏洞检测技术研究??利用正则表达式能够很好地匹配不同函数调用之间的时序,但却无法适用于设计数??据流模式的表示。例如,考虑图3.3中所示的定义调用链(Def-use?Chain)。仅匹配参??数或者变量是不足以验证这些API调用模式的正确性,还需要把用于证书验证的API函??数SSL_get_verify_result的返回值与后续的一系列检查关联起来。??除正则表达式外,协议状态机(Protocol?State?Machine)也是另一类常用来表达特征??的形式。一般地,状态机比正则表达式的表示能力更强,通常用于网络流量等输入形式??的匹配,拥有图灵机的表示能力。然而对于像SSLint采用的静态分析方法中涉及的与被??分析代码和图灵特征相关的决策问题本身是不可判定的,因此协议状态机在本质上不适??用。??综上,我们选择了一种带标记的图(LabeledGraph)作为API使用模式的特征表示。??这种特征表示中的节点代表了代码中的语句,而边代表了不同语句之间的联系。反映了??所有需要在代码中匹配的API的正确模式
本文编号:3466708
本文链接:https://www.wllwen.com/wenyilunwen/guanggaoshejilunwen/3466708.html