其他

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

2017-08-10 EMLab攻防实验室

编者注:政府网站综合防护系统,简称“网防G01”,是首款专门针对政府网站及服务器等关键信息基础资源进行综合防护的产品,由公安部第一研究所和计算机病毒防治技术国家工程实验室(北京)研发。可以有效应对互联网网站面临的反序列化漏洞攻击、SQL注入攻击、XSS跨站攻击等安全威胁。


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库之外,还需要对开发者的编程习惯加以规范。

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

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

*参考来源:bleepingcomputer, Elaine编译,转载请注明 FreeBuf.COM




编者注:政府网站综合防护系统,简称“网防G01”,是首款专门针对政府网站及服务器等关键信息基础资源进行综合防护的产品,由公安部第一研究所和计算机病毒防治技术国家工程实验室(北京)研发。可以有效应对互联网网站面临的反序列化漏洞攻击、SQL注入攻击、XSS跨站攻击等安全威胁。



网防G01能帮助用户在满足政策合规的基础上,建立“边界管理- 风险识别 - 安全防护 - 未知威胁感知 - 攻击事件回溯 – 安全监控– 威胁情报”的自动化安全防御体系,完成这一切仅仅需要用户在服务器操作系统上部署一个轻量级的Agent程序即可实现。


如何使互联网中的网站、业务系统及服务器系统有效抵御各种攻击?


最、最、最有效的解决方案就是安装部署网防G01!


网防G01 V3专业服务版,功能更全!防护能力更强!

网防G01官方网站:http://www.gov110.cn

网防G01在线帮助:http://help.gov110.cn

全国技术支持热线:400-010-4696

网防G01微信公众号:wangfangG01




了解网防G01安装、使用相关问题,请关注微信公众号:EM-Lab



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

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