前言 这周收到外部合作同事推送的一篇文章,【漏洞通告】Apache Dubbo Provider默认反序列化远程代码执行漏洞(CVE-2020-1948)通告。 按照文章披露的漏洞影响范围,可以说是当前所有的 Dubbo 的版本都有这个问题。 无独有偶,这周在 Github 自己的仓库上推送几行改动,不一会就收到 Github 安全提示,警告当前项目存在安全漏洞CVE-2018-10237。 可以看到这两个漏洞都是利用反序列化进行执行恶意代码,可能很多同学跟我当初一样,看到这个一脸懵逼。好端端的反序列化,怎么就能被恶意利用,用来执行的恶意代码? 这篇文章我们就来聊聊反序列化漏洞,了解一下黑客是如何利用这个漏洞进行攻击。 反序列化漏洞 在了解反序列化漏洞之前,首先我们学习一下两个基础知识。 Java 运行外部命令 Java 中有一个类 Runtime,我们可以使用这个类执行执行一些外部命令。 下面例子中我们使用 Runtime 运行打开系统的计算器软件。 // 仅适用macos Runtime.getRuntime().exec("open -a.... Dubbo 高危漏洞!原来都是反序列化惹得祸 Dubbo
又到周末了,周更选手申请出站~ 这次分享一下上个月碰到的离奇的问题。一个简单的问题,硬是因为异常被悄咪咪吃掉,过关难度直线提升,导致小黑哥排查一个晚上。 这个美好的晚上,本想着开两把 LOL 无限火力,在召唤师峡谷来个五杀的~ 哎,就这样没了啊!我知道,你们一定能理解这种五杀被抢的感觉~ 下次,真的,谁再让我看到悄咪咪的吃掉异常,我真的要上去一 Jio 了! 好了,本文可不是水文,看完本篇文章,你可以学到以下知识点: Arthas 排查技巧 啥是 NoClassDefFoundError Dubbo 异常内部处理方式 好了,同学们,打开小本子,准备记好知识点~ 起因 我们有个业务系统,应用之间调用链如下所示: A 应用是业务发生起始应用,在这个应用中将会根据一定规则选择最后的通讯渠道 C,然后将这个渠道标识传递给 B 应用。 B 应用的功能类似网关,这个应用将会根据 A 应用传递过来的渠道标识,将会请求路由下发到具体的 C 应用,起到服务路由的功能。 C 应用是与外部应用交互的应用,我们将其称为渠道通讯机。 假设一次业务中,A 应用根据规则选择 C2 的渠道标识,然后传递给.... 谁再悄咪咪的吃掉异常,我上去就是一 JIO Dubbo
一、前言 在 『ShutdownHook- Java 优雅停机解决方案』 一文中我们聊到了 Java 实现优雅停机原理。接下来我们就跟根据上面知识点,深入 Dubbo 内部,去了解一下 Dubbo 如何实现优雅停机。 二、Dubbo 优雅停机待解决的问题 为了实现优雅停机,Dubbo 需要解决一些问题: 新的请求不能再发往正在停机的 Dubbo 服务提供者。 若关闭服务提供者,已经接收到服务请求,需要处理完毕才能下线服务。 若关闭服务消费者,已经发出的服务请求,需要等待响应返回。 解决以上三个问题,才能使停机对业务影响降低到最低,做到优雅停机。 三、2.5.X Dubbo 优雅停机在 2.5.X 版本实现比较完整,这个版本的实现相对简单,比较容易理解。所以我们先以 Dubbo 2.5.X 版本源码为基础,先来看一下 Dubbo 如何实现优雅停机。 3.1、优雅停机总体实现方案 优雅停机入口类位于 AbstractConfig 静态代码中,源码如下: static { Runtime.getRuntime().addShutdownHook(new Thread(new Runnab.... 有更新! Dubbo 优雅停机演进之路 Dubbo
Dubbo 2.7.1 踩坑记 Dubbo 2.7 版本增加新特性,新系统开始使用 Dubbo 2.7.1 尝鲜新功能。使用过程中不慎踩到这个版本的 Bug。 系统架构 Spring Boot 2.14-Release + Dubbo 2.7.1 现象 Dubbo 服务者启动成功,正常提供服务,消费者调用偶现失败的情况。错误如下图: 可以看出,主要原因为 cause: message can not send, because channel is closed。 但是检查提供者,却发现服务进程正常。 登陆 Dubbo admin 查看提供者服务,发现这个服务存在两个节点。 192.168.164.77 为测试服务器的 ip,提供者位于这台机器,而另一个 10.20.80.67 却是本地电脑的 IP,但是此时本地并未运行这个服务。 再次查看服务报错的原因,可以看到提供者调用l本地提供 RPC 的服务。由于本地服务已停止,导致调用失败。 这个问题在之前版本从未碰到,刚开始隐约记得 Dubbo 服务提供者注册使用 ZooKeeper 临时节点,服务断开,会删除该节点。 问题原因 在 D.... 有更新! Dubbo 2.7.1 踩坑记 Dubbo