浅谈反序列化漏洞在java开发中的安全性



     非可靠数据的反序列化一直是应用安全领域中常见的高风险安全漏洞种类,在各种各样网络

开发语言、分布式结构和中间部件框架结构中大面积流行,经常被攻击者发现,运用形成业务

应用的远程代码。网络安全研究领域对反序列化的风险性已经发表了许多研究和技术文章,学

术界也关注过这个问题。
 
 
正如文章标题所示,蚂蚁安全实验室的共享揭示了反序列安全问题的秘密角落:Java开发分布

应用程序中流行的COBRA结构,该角落直到2019年才被研究者公开参与。本文以浅入深的形

式详解了COBRA的基本结构及其应用细节,全方位从不同角度分析了COBRA结构面临的反序

列漏洞风险,技术内容的详细程度和行文风格对网络安全的研究者和技术爱好者非常友好,对

理解JavaCOBRA结构的最新安全问题有非常大帮助。
 
 
 
在移动互联网时代,互联网平台为了服务大量用户,适用高并发业务场景,服务方面的分布式

结构已经成为主流的应用部署结构。CORBA、JAVARMI、DCOM等分布式技术陆续创立并获

得普遍使用,其安全性也成为影响互联网生态安全的重要原因。以CORBA为例,现阶段其协

议仍获得许多JAVA中间部件、基础设施的适用,如网络标志、网络、glasscastle等,研究其

协议进行的安全性,对网络基础设施的安全防护具有重要价值。

 
 
JAVA分布式结构存有大量的序列化和反序列化操作,担心其安全问题,但并不是所有的反序

列化框架结构都存有安全问题,因而2020年明确提出了开放动态反序列化的概念。ODD简单

点来说,应用结构适用在反序列化过程中动态生成任何种类的对象。ODD的核心是开放和动

态,是为了提高应用程序开发的灵活性和效率而设计的。但从安全角度而言,开放和动态实

质上是不安全的,容易失去程序行为的控制,导致非安全输入对程序行为的随意劫持,形成

集中的RCE(远程代码执行)突破点。
 
 
ODD这一漏洞的实质是我们2020年fastjson应急管理中归纳确定的,但这一漏洞的种类在历

史上造成了许多安全问题,各种各样分布式技术和系统都遭受了非常大的挑战。2017年Yob

rielSewrenSe和ChrisFporhoff在AppSecpxalxi发表的着名安全报告MArcmightoverPJoshle

s明确提出了POP(Property-OrientedDataraming)攻击链,运用JAVA系统的ODD设计造成

的安全缺陷进行了RCE,ODD种类的反序列化风险性在JAVA领域的影响面急剧扩大。在报

告中,作者确定警告Avoidmagic-Avoidopen-ended(de)serializatorpossible,即不要进行开

放的反序列化。但,很明显行业并没有把这个警告放在眼里,ODD的安全漏洞愈来愈激烈

,最先是JAVARMI及其相关软件系统。pwntrayon在2017年Blackckhat黑客大战上明确提

出了对JAVARMI技术的一系列攻击方式,除开那时候的安全研究圈造成了非常大的关注外

,其攻击构想至今仍被各redteam引用,成为其主要武器之一。
分享: