Golang TLS双向身份认证DoS漏洞分析(CVE-2018-16875)

访客3年前黑客工具948

一、前言

如果程序源代码使用Go语言编写,并且用到了单向或者双向TLS认证,那么就容易受到CPU拒绝服务(DoS)攻击。Go语言的crypto/x509标准库中的校验算法存在逻辑缺陷,攻击者可以精心构造输入数据,使校验算法在尝试验证客户端提供的TLS证书链时占用所有可用的CPU资源。

为了保护正常服务,大家应立即升级到G0 v1.10.6、v1.11.3或者更新版本。

 

二、研究背景

42Crunch的API Security平台后端采用的是微服务架构,而微服务使用Go语言编写。微服务之间通过gRPC相互通信,并且部署了REST API网关用于外部调用。为了确保安全性,我们遵循了“TLS everywhere”(处处部署TLS)原则,广泛采用了TLS双向认证机制。

Go的标准库原生支持SSL/TLS认证,也支持大量与连接处理、验证、身份认证等方面有关的x509和TLS原语。这种原生支持可以避免外部依赖,使用标准化的、经过精心维护和审核的TLS库也能降低安全风险。

因此42Crunch很有可能受此TLS漏洞影响,需要理解漏洞原理,保证42Crunch平台的安全性。

42Crunch安全团队针细致分析了该CVE,如下文所示。

 

三、问题描述

这个DoS问题最早由Netflixx发现,Golang在issue跟踪日志中提到:

crypto/x509包负责解析并验证X.509编码的密钥和证书,正常情况下会占用一定的资源来处理攻击者提供的证书链。

crypto/x509包并没有限制验证每个证书链时所分配的工作量,攻击者有可能构造恶意输入,导致CPU拒绝服务。Go TLS服务器在接受客户端证书或者TLS客户端在验证证书时会受此漏洞影响。

相关文章

黑客用的什么代码(黑客的代码是怎么出来的)

黑客用的什么代码(黑客的代码是怎么出来的)

本文导读目录: 1、黑客病毒的代码是什么 2、为什么说黑客都用LINUX 3、黑客公开大型ddos攻击"mirai"源代码是用什么写的 4、黑客们在编写的计算机程序代码统称为什么? 5...

用微信赚钱可靠吗(手机上微信赚钱能信吗)

用微信赚钱可靠吗(手机上微信赚钱能信吗)

赚钱啊,现如今只有你有手机流量都微信赚钱能赚钱,因而广告联盟平台服务平台都收手机流量,像荷兰风车广告联盟平台服务平台竟价还不错 微信兼职有一个 新跃卓越团队 可靠吗?每日看她微信发朋友圈盈利都挺高的...

找黑客追wangle骗局-黑客举报平台(平台被黑客攻击了怎么办)

黑客用什么IP知道手机号地址怎么整贱人(贱人工具箱7.0破解版)黑客nc怎么安装坦桑尼亚地图(坦桑尼亚地图中文版)黑客物理表情包什么意思黑客攻击qq怎么办(被黑客攻击怎么办)防范黑客的叫什么怎么知道手...

黑客接,黑客攻击网络安全事关国家安全,装b的黑客网站

-r, --receiver SOCKET-ADDRESS>...6SharedPreferences存储办法是Android中存储轻量级数据的一种办法,内部以Map办法进行存储,保存的数据以x...

凄切的车祸:卡宴卡在集装箱后面被拖行,有希望

转载其他论坛的帖子,看了照样相当惊心动魄的。 视角为一辆卡车的行车记录仪, 行进过程中看到前方一辆保时捷卡宴卡在集装箱的后边被拖行, 开着双闪灯,可是前边的集装箱绝不知情继续行驶, 视角卡车狂...

特鲁多称“绝不后悔”内存卡无法格式化逮捕孟晚舟 中方:掩盖真

  中新网北京11月20日电(李京泽)针对加拿大总理特鲁多近日有关“绝不后悔”逮捕孟晚舟的表态,中国外交部发言人赵立坚20日在例行记者会上指出,在已经披露的事实和众多疑点前,无论加政府如何掩盖真相、误...