8 月中旬 Oracle 刚刚发布了 Java 7u6 和 6u34 版本,但短短半个月时间之后的 8 月 30 日,Oralce 紧急发布了新版本的 JDK 和 JRE,原因是发现了一个严重的 0day 漏洞 CVE-2012-4681 ,远程攻击者可以通过它绕开 SecurityManager 的限制执行代码,但服务器端和桌面端的 Java 程序不受该漏洞影响。
FireEye 于 8 月 26 日在网上发布了该漏洞的信息,随后 NIST 也发出了警告并进行了一些说明——在 Java 7u6 和 6u34 及之前的版本上,攻击者可以通过如下手段绕开 SecurityManager 的限制:
使用 com.sun.beans.finder.ClassFinder.findClass 并利用 forName 方法从任意包访问受限类(例如 sun.awt.SunToolkit),随后利用 getField 方法就能访问并修改私有成员属性了
攻击者就是通过 getField 方法取得运行 java.beans.Statement 所需的权限,覆盖该权限,允许运行所有代码,在 Statement 关闭 SecurityManager 后,Applet 就能“为所欲为”了。
赛门铁克的说明中表示,他们发现攻击者至少从8 月22 日起就已经通过该漏洞发动攻击了,并定位了两个提供恶意软件的站点,下载到的恶意软件经鉴定为 Trojan.Dropper 。
国内的 Freebuf 在分析恶意代码时发现了其中有这样一段代码,即“我有一只小毛驴,从来也不骑”。
String k1 = "woyouyizhixiaomaol"; String k2 = "conglaiyebuqi";
如果您对该漏洞的细节感兴趣,可以阅读 DeepEnd Research 的这篇分析。建议在浏览器中使用 Java 的同学立刻将自己的 Java 升级到 7u7 或 6u35 版本。
评论