内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

Java反序列化危机过去 这次来的是.Net反序列化漏洞

2017-08-10 16:11 出处:清屏网 人气: 评论(0

2016 年 Java 应用程序及开发者受到 反序列化漏洞 的破坏性影响,而如今 .NET 生态系统也正在遭受同样的危机。新的问题存在于 .NET 代码库中处理反序列化的操作中,攻击者同样可以通过这个漏洞在服务器或相关计算机设备上进行代码注入。

我们知道,序列化指的是将对象转化为字节序列以便保存在内存、文件、或数据库中。而这个序列化过程主要是为了将对象的状态保存下来,在之后有需要之时可以重新创建对象。而与之相反的过程则被称为反序列化。而在这个过程中,如果没有对数据进行安全性检验,而直接对不可信数据进行反序列化处理,那么攻击者可以通过构建恶意的数据输入,让反序列化构建的对象带来非预期的结果,带来任意代码执行的后果。

2015 – 2016 年的 Java 反序列化启示

自2011年开始,攻击者就开始利用反序列化问题发起攻击。

2015年上半年,两名研究员Chris Frohoff 和 Gabriel Lawrence 发现 Apache Commons Collection 中的反序列化漏洞后,这个问题才真正开始让每个开发者头疼。

在2015年年底, Foxglove Security 的安全研究员,揭开了攻击者如何利用Java程序中的反序列化漏洞进行攻击。

研究调查显示,常见的Java app 中均存在这个问题(如 WebLogic,WebSphere,JBoss,Jenkins 以及 OpenNMS)。攻击者可以利用漏洞进行恶意数据上传,而上传上去的数据会被序列化,然后存储到数据库或内存中,当 app 反序列化这些数据内容时,就会触发恶意代码,影响整个系统。

这个漏洞在 2016 年撼动了整个Java 生态系统,也影响到了 70余个其他的Java 库,甚至还让 PayPal 的服务器遭受影响。而 大型的组织和机构,如Apache, Oracle, Cisco, Red Hat, Jenkins, VMWare, IBM, Intel, Adobe, HP, 和 SolarWinds之类,都对自己的系统和产品进行彻底排查和漏洞修复。

Java 反序列化漏洞造成了严重的影响,还引发 Google工程师的 “在业余时间修复开源Java 库” 的活动,他们共计修复了2600多个项目,以减轻此漏洞带来的影响。尽管在谷歌的内部,这个漏洞的别名叫做 “疯狂小工具” (Mad Gadget),但对整个世界而言,反序列化漏洞问题是 Java 世界的一次浩劫

反序列化问题同样影响 .NET 应用程序

目前,惠普软件的两名研究员 Alvaro Muñoz 和 Oleksandr Mirosh 发现,一个与此前Java 反序列化漏洞相似的问题也在  .NET 中重现了。

和 Java 应用程序一样,漏洞存在于 .NET 库中 反序列化过程中,处理序列化数据的方法中,而当目标计算机运行时这些恶意注入的代码就会执行。和 Java世界同样,这些  .NET 漏洞在整个生态系统中并非全部存在。某些  .NET 库是不受影响的,开发时可以正常使用这些库。还有一些应用即便使用了受影响的库,也是安全的,因为程序员在应用中禁用了获取序列化数据的函数和方法。

在他们的 研究报告 中,Muñoz 和 Mirosh  将研究重点放在分析使用 JSON 存储数据的 .NET /Java 反序列化漏洞上。他们指出哪些应用程序是安全可靠的,开发人员应该如何在使用 JSON 数据时,避免遭受反序列化攻击。

许多常见 .NET 项目中存在的反序列化漏洞

这些漏洞不只是理论层面已经发现,在实际的应用中也已经证实会造成影响,研究人员发现在  .NET 数据管理后端框架 Breeze 中存在 JSON 反序列化漏洞 CVE-2017-9424; 还有 CVE-2017-9785,这是一个存在于  NancyFX  中的反序列化漏洞—— 基于 Ruby 的 轻量级 .NET web 框架。

而除了JSON 反序列化之外,还有一些 .NET 库中还存在着 XML 数据对象的反序列化问题。 研究员发现 DotNetNuke 这个流行的  .NET CMS系统中也存在  XML 反序列化漏洞。

如上所述,这些问题是由各种 .NET库中的漏洞组合而成的,同时也是因为开发人员的不良编码实践导致的,他们没有意识到序列化数据并不一定是安全的。由此避免此类的安全问题除了修复 .NET库之外,还需要对开发者的编程习惯加以规范。

序列化器是很能影响产品的安全性的API,不能使用不信任的数据。这个问题并非特定出现在 Java 序列化之中,或者如JSON,XML之类特定的 .NET 数据格式中。所有序列化操作后都会重新创建对象,攻击注入的代码即可能被其他方法调用,触发任意代码执行。

今年8月初, 研究小组也 在美国拉斯维加斯举行的Black Hat 和DEF CON 安全会议上发表了他们的调查结果。

分享给小伙伴们:
本文标签: Java反序列化漏洞.Net

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号