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

访客3年前黑客工具952

一、前言

如果程序源代码使用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客户端在验证证书时会受此漏洞影响。

相关文章

排骨怎么做好吃又简单(这样做绝对好吃)

排骨怎么做好吃又简单(这样做绝对好吃)

小伙伴们平时喜欢吃排骨吗? 你平时在家是怎么做排骨的呢? 小编也非常爱吃排骨,所以平时也会在家里面自己做,那今天就跟大家分享怎么做排骨,味道会更好! 排骨要焯水大家都知道,但关键是怎么出水才能让...

怎样查找男朋友全部的QQ聊天记录

. 不少宝宝总是喜欢用小手手抓饭吃,很多妈妈觉得孩子这个行为非常的不卫生,那么孩子用手抓饭吃时该不该制止了,宝宝用手抓饭吃好不好,有哪些好处呢? 孩子喜欢用手抓饭吃好吗 宝宝1岁左右就有自己就餐...

找黑客盗微信记录要多少钱-黑客自学教程手机(黑客自学教程 入门教程)

找黑客盗微信记录要多少钱-黑客自学教程手机(黑客自学教程 入门教程)

找黑客盗微信记录要多少钱相关问题 黑客自学教程手机相关问题 家用摄像头如何防止被黑客攻击 2020王者点券的黑客软件(王者荣耀刷点券软件...

黑客社工有啥用(黑客社工学)

黑客社工有啥用(黑客社工学)

本文导读目录: 1、现在黑客一般会用社工盗号吗 2、黑客的社工是什么意思? 3、黑客的社工是什么意思 4、社工库是什么东西国家能制止吗 5、解释下社工 6、目前黑客的社会工程学攻击...

淘宝客是怎么赚钱的?淘宝客怎么做推广赚佣金

淘宝客是怎么赚钱的?淘宝客怎么做推广赚佣金

网购已经成了大家生活的一部分,淘宝客作为淘宝的附属产物,其收入也是和淘宝网用户的购买能力挂钩的!淘宝网数亿的交易额,作为一个淘宝客,推广其产品获取佣金,一个月能有一万或者更高收入的,太正常不过了。那么...

韩国真实改编影戏《杀人回忆》真凶被抓

几年前第一次看《杀人回忆》就被影戏震撼到了, 之所以震撼不仅仅是由于影戏中凶手的凶残和jc的无奈, 更是由于这居然凭据真实案件改编的影戏,不仅如此,影戏上映时案件依旧未破。 然则这两天,韩国媒体...