Once upon a time, Microsoft was the favorite target of malware developers. As Microsoft improved the defenses in its software, though, cybercrooks moved on to easier pickings. Adobe was a prime target for a while, but Adobe followed Microsoft's lead and made its software more secure as well. According to data from the 2014 IBM X-Force Threat Intelligence Quarterly Report, the favorite target is now Java.
There are two things that put the bulls-eye on an application or platform. The first is distribution. Attackers may be able to develop an exploit for some obscure software that is barely used, but what would be the point? If a malware developer is going to invest the time and effort to create an exploit, he or she wants it to have the greatest possible pool of potential victims.
[ Also check out the InfoWorld slideshow: 15 things we hate about Java. | It's time to rethink security. Two former CIOs show you how to rethink your security strategy for today's world. Bonus: Available in PDF and e-book versions. | Stay up to date on the latest security developments with InfoWorld's Security Central newsletter. ]
The second factor is ease. Most malware developers are lazy by nature. There is no such thing as completely invulnerable code, but there is no point in banging your head against the wall trying to uncover some vague vulnerability and jump through hoops to bypass security controls so the exploit will run properly. The simpler solution is to target exploits at software with more obvious weaknesses and fewer security controls.
Oracle's Java fits the profile. Found on Windows, Mac OS X, Linux, and mobile platforms, Java is virtually ubiquitous. And while Microsoft and Adobe have constructed defenses to deter malware developers, it seems Oracle hasn't yet seen the light.
Trusteer, an IBM company, reports that half of all exploits observed in December 2013 were aimed at Java. Adobe Reader came in a distant second with 22 percent, while Internet Explorer, Google Chrome, and everything else made up the remainder.
A blog post from Trusteer explains why Java is so highly targeted by malware developers: "Java is a high risk application that exposes organizations to advanced attacks. It has numerous vulnerabilities that can be exploited to deliver malware and compromise users' machines. Once on the endpoint, it is extremely difficult to prevent its malicious execution."
The problem with Java goes deeper than the software itself being vulnerable. Because Java runs within its own virtual environment (Java Virtual Machine, or JVM), an exploit just has to break the Java security model in order to execute malicious code. Because the exploit is at the application level, standard Windows security controls like DEP and ASLR don't provide any protection.
Trusteer recognizes that Java is required for many businesses and individuals. To prevent Java malware and exploits, Trusteer recommends restricting execution to only known, trusted Java files. For small businesses and individuals, though, that's easier said than done.
To protect yourself, make sure you apply all security updates for Java. Hopefully, Oracle will soon get the message and develop more secure code and issue security patches in a more timely manner. In the meantime, be aware that Java is the weak link in your security chain.