- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络安全课程论文阅读报告
——Vetting SSL Usage in Applications with SSLINT
通过翔实地阅读IEEE安全与隐私研讨会2015发表的《Vetting SSL Usage in Applications with SSLINT 》论文,对论文的相关背景、目标、创新点、实验数据、实验结论有了一定的了解,报告如下。
1. 论文相关背景
在2015年IEEE安全与隐私研讨会上,该篇论文得以发表。“如何做高水平的研究和准备高水平的论文”的发言。浙江大学互联网安全实验室通过何博远博士这篇论文实现了在IEEE安全与隐私研讨会上论文发表的零突破,在大陆属第三家。
论文
二是提出了图形查询匹配。 SSLINT能够为所有的SSL / TLS API执行自动化的、可扩展的图形查询,用以匹配SSL / TLS库签名,并在匹配失败时报告可能漏洞的所在。
三是建立了基于SSL / TLS库的自动搜索查询程序。
四是成果比较显著。从Ubuntu 12.04源代码软件包中发现了27个以前未知的SSL / TLS漏洞并进行了报告。SSL/TLS工作流程及其重要部分
上图为SSL/TLS工作流程的纵览,其过程主要是:开始-全局初始化-创建SSL方法(选择协议版本)-创建证书,密钥等信息-形成完整的SSL-创建SSL接口-实行握手-验证,如果通过则进行数据交换,数据交换完成后关闭SSL并结束,验证失败则关闭SSL,并结束。
SSL/TLS中最主要的两个部分为:一是主机名有效性的验证。客户端需要验证的是目标服务器发出的第一个证书。特别是客户端检查名称(CN)在X.509主题字段属性证书,其中包含证书持有人的主机名;二是证书链的有效性验证。证书链中,客户端需要验证每个证书颁发机构颁发的证书是其母证书或根证书颁发机构,和证书颁发机构证书授权问题。特别是客户端检查证书的发行人字段是否符合母公司的证书颁发机构证书或根证书颁发机构,以及是否证书颁发机构的基本属性约束的母公司证书是真实的。此外,客户端需要验证链中的每个证书是否过期,即。,检查每个证书的有效性。在一起,我们参考证书链验证和有效期的验证步骤证书验证。
3.2 漏洞的产生原因及作者的一点想法
当主机名和证书验证丢失时,本来是不会产生问题,但如果有攻击者使用自签名的证书代替原来的证书时,客户端就容易被欺骗并连接到攻击者。此时,如果客户机再次使用自签名证书时就会被攻击者嗅探到,但客户端运行依旧是正常的。据此,作者提出:客户端在通过认证确认服务器的主机名之前都不应该发送或接收任何应用数据,而这点在程序员设计程序时会往往会忽略,进而写出安全性较弱的软件。
3.3 查找漏洞的方法
作者开始提到了两种可能可行的方法。一是使用SSL / TLS库应用程序的自动化测试。此方法需要使用一种无连接的自动安装、部署以及测试用的SSL/TLS-enabled server。这看似简单,实际很难,拿邮件服务来说:如果按照此方法的话,所有的邮件客户端都要进行创建,并配置到一台特定的邮件服务器,当然,相应的服务端也要进行相应的设置。是不是换一个不同网络公司的邮箱就要重新配置。二是静态分析的办法。就是寻找应用程序是否遵循SSL/TLS软件开发规则,如果没有则可能会产生漏洞。
4.论文采用的方法
4.1 问题的确定
设计一种可扩展的技术,使之可以检测到在程序中有不当使用SSL/TSL库的API。
4.2 更高层次的检测方法
前面作者有提到两种检测方法,但都不够好用,因此作者提出了一种更加高明的方法,其整体思路是:客户端软件导入一个静态的代码分析器,将软件转换为抽象表示。在使用SSL / TLS库的API时,进行指定签名,并提供签名的匹配工具,使之与软件的抽象表示签名相匹配。如果找到匹配,客户端软件认定正确, 否则,报告一个可能存在漏洞(如下图)。
4.3 代码表述
代码表述有很多方法,作者主要列举了以下三种:
一是控制流图(CFG) 。是一个过程或程序的抽象表现。常以数据结构链的形式表示。
二是数据流图(DFG)。它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。
三是程序依赖图(PDG)。程序依赖图运用工序图示符号对程序运行的整个过程做详细的记录,并将各个API之间的依赖关系表示出来。是程序分析中最基本、最重要的分析技术,它是进行程序流程分析过程中最基本的工具。
4.4 设计签名空间
作者提出以下两种模型:
一是利用应用程序及其中的匹配寻找来对不正确地使用SSL 的API进行建模,匹配成功的则可能就是漏洞。但本方法缺点比较明显,就是很难完整地描述一个漏洞,并且会出现因模型中漏掉了不当使用API而错过漏洞。
二是对正确的地使用SSL 的API中的主机名和证书
文档评论(0)