Java's Security Renaissance Begins
Oracle's decision to delay Java 8 to ensure security is done right is a significant step -- but challenges remain for the troubled platform
It has been a rough year for Java, and Oracle finally has gone public with its plans to clean up the bug-riddled current darling of malware writers.
The release of the next version of Java, Java 8, has officially been put on hold until the first quarter of 2014 due to Oracle's "renewed focus on security," according to Oracle's chief architect of the Java Platform Group Mark Reinhold, who this month announced the delay in a blog post.
More Security Insights
- 10 Steps to Cleaning up Active Directory
- The Active Directory Management and Security You've Always Dreamed of
- Innovations in Integration: Achieving Holistic Rapid Detection and Response
- COBOL in the Big Data Era: A Guide
Security experts applaud the move by Oracle, as well as its latest efforts to lock down its software development process such that security is now part and parcel with code-writing. The move conjures up echoes of Microsoft's Software Development Lifecycle. "This is definitely a very positive step," says Rohit Sethi, a software security expert and vice president of SD Elements. It's also a serious one: "It's kind of rare to see a large organization that has something they are really invested in [delay a software release]. If you think how big Java is and how much revenue comes with just the new services ... To push that out by a few months is a pretty significant decision."
Java's security renaissance won't be simple, however. The brand has taken a beating over the past year with various vulnerability disclosures and zero-day attacks, leading many organizations to disable Java on their client machines. Apple last fall even yanked its Java plug-in from Safari.
[New Websense data highlights why Java is attackers' favorite target: most end users run outdated versions of the app. See The Scope Of The Java Problem .]
HD Moore, creator of Metasploit and chief security officer at Rapid7, says the browser side of Java is just one part of the security equation for the troubled platform. "Java browser security is mostly 'fixed' at this point in that you have to try pretty hard to run a malicious applet. In this sense, it is now only as bad as ActiveX, which is an improvement at least. The browser side is just one part of the problem, though," Moore says. "The RMI [remote method invocation], serialization, and other attack vectors are going to be come even more important going forward. I don't believe anything Oracle can do will result in average users trusting Java in the browser again."
A new report released today (PDF) from Trend Micro shows how Java zero-day exploits were a big part of the threat landscape in the first quarter of this year, leading to the U.S. Department of Homeland Security's US-CERT to recommend uninstalling Java. "Of course Java is cross-platform and that is somewhat attractive to criminals, but what is really attractive is its vulnerabilities and its ubiquity," says Rik Ferguson, vice president of security research for Trend Micro. "This definitely won't be the last zero-day vulnerability in Java and it won't be the end of the vast attack surface that it currently offers to criminals."
It won't be easy for Oracle to both beef up Java security and win back trust--among other challenges, the software's cross-platform support makes it difficult. But Oracle is well aware that it's under the gun to make things right security-wise: "Security vulnerabilities related to Java running inside web browsers have lately received a lot of public attention. Here at Oracle we've mounted an intense effort to address those issues in a series of critical-patch update releases," Reinhold said in his post. "We've also upgraded our development processes to increase the level of scrutiny applied to new code, so that new code doesn't introduce new vulnerabilities."
So what must Oracle do?
Moore says Oracle must focus on building a stronger virtual machine and add operating system-level sandboxing for running "untrusted" code, as well as address reflection issues. "I think they will keep doing what they do now, which means incremental improvements, but no real isolation at the process level. The main reason is compatibility: they want the same JVM support across all platforms, at least most platforms in a consistent manner. Adding OS-level sandboxing/restrictions complicates that," Moore says.
You can't lock down a Java virtual machine running an applet on Linux the same way you would a Windows machine, Moore notes. It's even done differently among versions of Windows and Ubuntu, he says. "The way that Google solved this is interesting - they built the sandbox first basically. It would be pretty difficult for Oracle to catch up without drastically changing how the JVM works," Moore notes. "It is ironic that while Oracle has trouble running interpreted bytecode securely, Google has managed to run arbitrary x86 machine code in a sandbox. It demonstrates the huge gap between where modern browser security is and where Oracle sits today."
SD Element's Sethi expects Oracle to revise and update its sandbox. "I'm not sure they need to add a new layer of security in the Runtime Environment," he says. "Any kind of control they put in place... people are going to find ways around it. They have to learn how people are exploiting it, and make sure it doesn't happen again."
Have a comment on this story? Please click "Add Your Comment" below. If you'd like to contact Dark Reading's editors directly, send us a message.