10:16 AM

Java 7 Malicious App Warning System Draws Criticism

Java runtime environment fails to verify that digital certificates used to sign "trusted" applications haven't been revoked.

This week's release of Java 7 update 21 adds a system meant to warn users away from allowing Java apps that haven't been signed with a digital certificate -- from a certificate authority -- to be allowed to execute. But the new Java 7 runtime environment warning system has been criticized on both usability and information security grounds.

On the user interface front, according to Oracle, the Java Control Panel now presents "additional information and [requires] confirmation before being allowed to run" any Java content or apps. That information includes warnings against executing suspect Java apps, although users will still be able to do so. Some warnings come in the form of a yellow triangle, indicating that an application "cannot be identified because the certificate is untrusted or expired," while a yellow shield and alert will caution when an app "is unsigned and/or the certificate is not valid" and thus should not be trusted.

Cue usability concerns. "Logo and shield. Triangle and shield. Shield alone. Triangle alone. Confused yet?" said Paul Ducklin, head of technology for Sophos in the Asia Pacific region, in a blog post. "You're forgiven if you are, because these dialogs end up asking the very questions that you might reasonably expect Java to answer."

That's because Java 7 doesn't know whether the digital certificates it's relying on are still valid, owing to it failing to use the Online Certificate Status Protocol (OCSP) to check the revocation status of a digital certificate, or at least reference some other type of certificate revocation list (CRL).

"Even the latest #Java [release] still does not check for CRL/OCSP. [It] does have some blacklist or something though ... #blah," said Jindrich Kubec, director of threat intelligence at antivirus vendor Avast, via Twitter.

[ Massive interest in current events + Java vulnerabilities = Good news for cyber scammers. See Malware Attackers Exploit Boston Marathon Bombing. ]

Oracle didn't immediately respond to an emailed request for detailed information about how the Java run-time environment assesses certificate validity, and how often this information gets updated.

But according to David Barroso, head of cybersecurity intelligence at London-based Telefonica Digital, the Java runtime environment relies on a blacklist for known-bad Java archive (.jar) files, which contain Java applets. "The blacklist is pretty useless and it only blocks some already known signed vulnerable .jars," he said via Twitter.

According to veteran Java bug-hunter Adam Gowdiak, CEO and founder of Poland-based Security Explorations, the updated Java 7 runtime environment's Java Control Panel changes also put users at risk by allowing them to execute untrusted code. "The only good thing is that users neglecting to update their Java software will be better protected -- unsigned and self-signed Java will not run on their systems," he said. "Users of [the] current Java version will be able to run unsigned and self-signed Java code."

Despite Oracle's Java Control Panel changes, many security experts continue to recommend that people avoid using Java, if possible, or else take suitable precautions. "Disable Java in the browser unless you have a specific business need to run it," said Ross Barrett, senior manager of security engineering at Rapid7, via email. "Ideally, only enable it in an alternate browser and restrict use of that browser to the sites where you need Java."

For anyone who continues to use the browser plug-in, meanwhile, beware exploits that target zero-day Java vulnerabilities. "With a browser plug-in ... as complex as Java -- such as Flash, for instance -- you should always assume that some attacker, somewhere, has at least one zero-day waiting for the right opportunity," said Barrett.

Comment  | 
Print  | 
More Insights
Register for Dark Reading Newsletters
White Papers
Current Issue
Dark Reading Tech Digest September 7, 2015
Some security flaws go beyond simple app vulnerabilities. Have you checked for these?
Flash Poll
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
Published: 2015-10-08
** REJECT ** DO NOT USE THIS CANDIDATE NUMBER. ConsultIDs: none. Reason: This candidate was withdrawn by its CNA. Further investigation showed that it was not a security issue. Notes: none.

Published: 2015-10-06
libstagefright in Android before 5.1.1 LMY48T allows remote attackers to execute arbitrary code or cause a denial of service (memory corruption) via a crafted media file, aka internal bug 21335999.

Published: 2015-10-06
Bluetooth in Android before 5.1.1 LMY48T allows attackers to remove stored SMS messages via a crafted application, aka internal bug 22343270.

Published: 2015-10-06
mediaserver in Android before 5.1.1 LMY48T allows attackers to cause a denial of service (process crash) via unspecified vectors, aka internal bug 22954006.

Published: 2015-10-06
The Runtime subsystem in Android before 5.1.1 LMY48T allows attackers to gain privileges via a crafted application, as demonstrated by obtaining Signature or SignatureOrSystem access, aka internal bug 23050463.

Dark Reading Radio
Archived Dark Reading Radio
What can the information security industry do to solve the IoT security problem? Learn more and join the conversation on the next episode of Dark Reading Radio.