Java RMI 服务易受 SSRF 攻击
编译:代码卫士
安全研究员 Tobias Neitzel 发布文章指出,Java RMI 服务可遭服务器端请求伪造 (SSRF) 攻击。
Java RMI 是在多数 Java 安装中常见的面向对象的远程过程调用 (RPC) 机制。软件开发人员可使用该技术使用户从网络访问函数。Neitzel 发现,对于通信而言,Java RMI 依赖于序列化 Java 对象机制,是攻击者经常针对的目标。
Neitzel 在文章中详细解释了默认 RMI 组件如何可被攻击,导致多种后果,如远程代码执行等。
通常而言,SSRF 攻击可使攻击者诱骗服务器端应用程序向攻击者所挑选的域名提出 HTTP 请求,易受各种非法行为影响。Neitzel 解释称,“和所有的SSRF技术一样,主要问题在于攻击者可能能够攻击本应该仅供受信任网络访问的 RMI 服务。正确保护 RMI的安全并没有那么直观,而是存在很多隐藏面。管理员并没有正确配置,而是选择省事办法,仅允许从受信任网络或客户端进行访问。”
Neitzel 的研究结果表明,外部攻击者“或能够通过利用外部服务中的 SSRF 漏洞,利用配置不安全的内部服务。”
最常用的 RMI 服务是 JMX。Neitzel 指出可通过SSRF 攻陷后端 JMX 服务,但前提是系统返回后端服务的响应并接受其中的任意字节。同样也可能对默认 RMI 组件如 RMI 注册表发动基于 SSRF 的攻击,但前提是系统允许向后端服务发送任意字节。
Neitzel 表示,“Java RMI 是二进制协议,在通信过程中要求所有不同种类的数据类型。”
SSRF 攻击是非常常见的不安全情况。
Neitzel 指出,“多种服务可能暴露于危险方法中,未执行反序列化过滤器,或者过期并包含已知漏洞(如远程类加载)。” 他还在博客中列出了安全最佳实践和RMI服务攻击的防御措施,如为所有 RMI 端点启用受 TLS 保护的通信、使用反序列化过滤器以及增加更强大的认证控制等。
技术详情可见:https://blog.tneitzel.eu/posts/01-attacking-java-rmi-via-ssrf/
攻击者接管账户,攻陷周下载量超700万次的JavaScript 流行库 ua-parser-js
别问,问就是我差点在所有浏览器中注入 JavaScript 代码
下载量超1600万的热门开源 JavaScript 序列化包中被曝 RCE 漏洞
安全研究员发现 Yandex 浏览器中的 SSRF 缺陷
研究员发现 Google Cloud 项目中的 SSRF 漏洞,获1万美元奖金
https://portswigger.net/daily-swig/java-rmi-services-often-vulnerable-to-ssrf-attacks-research
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。