查看原文
其他

严重的反序列化问题不仅影响Java还影响.NET

代码卫士 2022-12-11


作者:Catalin Cimpanuu

翻译:360代码卫士团队



前言



.NET生态系统也遭受在2016年曾影响Java app和开发人员的类似缺陷的影响。


这个缺陷的问题在于.NET编码如何处理反序列化操作的方式,它导致攻击者能够在处理反序列化数据的服务器或计算机上执行代码。


2015年和2016年的Java Apocalypse



自从2011年起,通过反序列化操作的攻击就已存在,不过直到2015年年初才成为人人需要关注的问题。两名研究人员ChrisFrohoff和GabrielLawrence在一款非常火的Javaapp中ApacheCommons Collections发现了一个反序列化缺陷。


FoxgloveSecurity公司的研究人员们在2015年末开展了扩展性研究,解释了开发人员不正确地使用ApacheCommons Collection库处理反序列化操作后,攻击者如何能够利用Javaapp中的一个反序列化漏洞。


这次实验显示攻击者能够将恶意数据上传到流行的Javaapp中如WebLogic、WebSphere、JBoss、Jenkins和OpenNMS。这些数据将会被序列化然后存储到数据库或内存中,但当app将数据反序列化并使用序列化数据的内容时,它还会在受影响系统上执行其它的恶意代码。


这个缺陷影响2016年的Java生态系统以及其它70款Java库,甚至用于攻陷PayPal的服务器。


组织机构如Apache、Oracle、Cisco、RedHat、Jenkins、VMWare、IBM、Intel、Adobe、HP和SolarWinds都发布了安全补丁修复产品。


这个Java反序列化缺陷非常危险,谷歌工程师们甚至在空闲时间一起修复了开源Java库并限制了该缺陷的传播,共计修复了2600多个项目。谷歌内部把这个缺陷叫做“疯狂的小工具(Mad Gadget)”,外界称之为“JavaApocalypse(Java启示录)”。


反序列化缺陷还影响 .NET app



现在惠普公司的两名安全研究员AlvaroMuñoz 和Oleksandr Mirosh披露称一个类似的反序列化漏洞影响.NET 生态系统(https://www.blackhat.com/docs/us-17/thursday/us-17-Munoz-Friday-The-13th-JSON-Attacks-wp.pdf#page=5)。


这个缺陷也存在于.NET库在反序列化过程中处理序列化数据的方式,攻击者能够在目标机器上执行代码。


跟Java的情况类似,这个缺陷也并非一直都出现。某些.NET库并未受影响,而使用受影响库的app是安全的,原因只是因为程序员认为序列化数据是不安全的,因此不允许它访问某些功能和方法。


这两名研究员主要分析了跟JSON数据运行的 .NET 和 Java 库中的反序列化缺陷。他们审查了自己所分析的所有.NET和Java app后指出了哪些app是安全的以及开发人员应该如何使用这些app在跟JSON app共同使用时规避反序列化攻击。


流行.NET项目中出现.NET 反序列化缺陷



研究人员为了证明这些缺陷能影响真实的app而不仅仅是一种理论威胁,他们在一个 .NET 数据管理后端框架Breeze中发现了一个JSON反序列化缺陷CVE-2017-9424、在基于Ruby Sinatra的轻量级 .NET 网络框架NancyFX中发现了一个JSON反序列化缺陷CVE-2017-9785。


除了JSON反序列化外,这个缺陷还存在于其它处理XML数据对象反序列化的库中。研究人员还在当前使用最广泛的.NET CMS 即DotNetNuke中发现了一个XML反序列化缺陷CVE-2017-9822。


如上所述,这些缺陷不仅结合了.NET库中存在的多个漏洞,而且也代表了开发人员的糟糕编码实践。开发人员未能认识到,序列化数据默认并不一定是安全的。


要解决这个缺陷,需要对很多.NET库做出安全改进,另外也需要一般程序员持续投入精力。


研究人员表示,“序列化器是安全敏感的API,而且不应当跟不受信任的数据一起使用。这并非Java序列化、具体某个 .NET 格式器或任意具体框架如JSON、XML或Binary才有的问题。所有的序列化器都需要重现对象并调用攻击者将会试图滥用以初始化工具链导致任意代码执行的方法。”


这两名研究员已在今年8月初拉斯维加斯举行的黑帽大会和DEF CON安全会议上展示了自己的研究成果。



本文由360代码卫士编译,不代表360观点,转载请注明“转自360代码卫士www.codesafe.cn”。



360代码卫士    长按二维码关注我们!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存