Java RMI 调用链与源码解析

本文深入探讨Java RMI的调用流程、攻击历史和源码解析,涉及RMI registry、UnicastRef、DGC等方面。重点讨论了RMI的安全问题,包括JEP290的反序列化数据过滤以及如何绕过限制,同时阐述了RMI流量特点和Registry源码。此外,文章还介绍了DGC的脏与清理操作,以及MarshalOutputStream在序列化中的角色。
摘要由CSDN通过智能技术生成

本篇简单说一下RMI的调用流程和攻击历史,以及分析RMI的JDK源码,对于RMI攻击的各种反序列化并不做过多的分析。

关于JDK源码,详情请参考:https://github.com/frohoff/jdk8u-jdk/tree/master/src/share/classes

1. RMI调用流程

RMI(Remote Method Invocation,远程方法调用),可以引用远程主机上对象的方法,在分布式领域应用广泛。RMI总的来说可以分为:RMI Client、RMI registry、RMI Server(有的代码中把registry和Server合成了一个)。

(1)首先远程主机(RMI Server)会向RMI注册表(RMI Registry)中注册对象,给对象绑定一个名称,例如Hello代表RemoteA对象

创建对象:既然要注册一个对象,那么远程主机Server上首先要有一个对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
近年来,APM进入了一个高速发展的快车道,分布式环境下的应用自动发现及动态调用路分析作为APM的核心功能在APM的推广中也获得了广泛的使用,但在实践中,也暴露出了一些不足:完全基于运行态的分析模式决定了其只能获取到有实际调用的逻辑路,大量没有埋点或未被触发的调用逻辑则成了“失落的世界”,无法触碰。 寻找这部分“失落的世界”对我们了解分布式环境下的应用全貌至关重要,天弘基金移动平台团队在这方面做了一些创新性的探索,我们跳出了传统APM的惯性思维,通过对海量代码中的调用关系的扫描分析来获取分布式环境下“前中后”台的完整调用路,并在此基础上叠加动态调用来构建精细化的APM监控。 通过本专题,我将基于我们的实践来详细介绍“静态调用路发现”的技术与手段,并探索运维及开发场景中如何将它和现有的APM能力进行结合。 -->听众受益: 1、了解分布式环境下APM的“优”与“缺”。 2、了解构建“静态调用路发现”能力的技术与手段。 3、了解如何用创新性的思维拓展APM的应用场景。 -->个人简介: 李鑫,天弘基金(余额宝)移动平台首席架构师,负责移动平台总体技术架构设计。曾任当当网架构师,负责电商后端运作产品平台整体技术架构和研发团队管理;华为云计算专家,主导了华为软件多款云计算产品和服务的设计规划和构建工作。 个人技术涉及大规模分布式应用及治理、中间件云化及服务化(PaaS)、APM 监控、基础开发平台等领域,有多年大规模复杂系统架构实践经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wespten

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值