0-Day Java Vulnerabilities and Dealing with Vulnerable Client Software
0-day or Not, Clients Are Vulnerable
Whenever there is a new vulnerability in popular software found on users’ desktops, such as Java, Adobe Reader, Adobe Flash, or Mozilla Firefox, the media goes into a frenzy and a lot of articles are published on the topic (often not containing much useful information). The most recent case is a particularly nasty vulnerability affecting Oracle Java, which can be successfully exploited on Windows, OS X, and Linux. While this vulnerability is generating buzz, it’s not all that different from any other popular software in use on users’ desktops that contains a vulnerability. Additionally, there is likely a population of exploits for such software that has yet to be disclosed and is being bought and sold on the black market. In fact, journalist Brian Krebs interviewed the creator of the Blackhole exploit kit who stated, "he was surprised that someone would just leak such a reliable exploit, which he said would fetch at least $100,000 if sold privately in the criminal underground."
Furthermore, it has been known for some time that a Java applet can be used to trick clients into running a malicious payload. Functionality within the Social Engineering Toolkit (SET) allows you to construct a fake website and distribute such a payload. The difference is that the user will have to click "Allow" for this action to occur. While this will decrease the success rate of malware deployment using this method, it will work on Windows, OS X, and Linux.
Detecting Client-side Vulnerabilities
Organizations must be focused on knowing which clients have vulnerable software installed, and be capable of patching them quickly. Tenable has several tools available for identifying client software and determining if it is vulnerable. For example, we have released two plugins to help identify the new Java 0-day vulnerability:
- Nessus: Oracle Java SE 7 = Update 6 SunToolkit setAccessible(true) Privileged Applet Arbitrary Code Execution - This plugin requires that the Nessus scanner have credentials to the target(s) being scanned and will identify the vulnerable Java software on the remote host.
- PVS (Passive Vulnerability Scanner): Oracle Java SE 7 = Update 6 Code Execution - If a vulnerable client exists on your network and sends traffic indicating it’s running a vulnerable version of Java, PVS will generate an alert.
Whether the latest exploit is for Java, or any other client software you have identified, you can use SecurityCenter to generate reports and track exposure and remediation efforts. The following SecurityCenter report will graph specific vulnerabilities over a five-day period and tell you how you are doing with your patching process:
Sample report trending Adobe client software vulnerabilities by CVSS score.
The report is configured to display Adobe software vulnerabilities detected using Tenable’s PVS. Vulnerabilities can be detected for any network-connected host, including smartphones, on a wired or wireless connection. The trending graph above provides a five-day vulnerability trend for Adobe Flash Player and AIR software. The ranges are grouped using the Common Vulnerability Scoring System (CVSS) Version 2 with orange representing any vulnerability with a CVSS score between 6.1 and 10.
The next challenge is to gauge when unwanted software is executed on the host. Using SecurityCenter you can define a process name, such as "java.exe" and generate a report that will trend hosts on your network that have run this process. This helps implement your policies of restricting client software.
Sample graph depicting unsupported client software in use.
The template generates reports of clients running unsupported versions of software running on Windows platforms. It combines unsupported version detection results provided by Nessus with Windows events collected using Tenable’s Log Correlation Engine (LCE). You can also search for Java processes detected running on hosts from within SecurityCenter and produce the following activity report:
Search results for Java processes in SecurityCenter (Click for large image).
The above search allows you to quickly gauge the use of any process, in the case "java.exe", running on hosts being monitored with Tenable products.
Conclusion
As long as our clients are connected to the Internet, there will always be risk of compromise — whether the clients are running vulnerable software with known vulnerabilities, 0-day vulnerabilities, or get tricked into running malicious software. Tenable's software can help you identify clients with vulnerable software and those running software that’s in violation of your security policies. If the client does become compromised, you can use the recently released malicious process detection feature in Nessus to identify a large percentage of malware that is installed on client systems.
Related Articles
- Log Analysis
- Nessus
- Passive Network Monitoring
- SecurityCenter