Researchers Find More Widespread SSL Vulnerabilities

Anthony Freed
By | October 25, 2012

Posted in: Network Security Trends

What is a critical security feature in an application worth if it doesn't provide any security? Not much, according to researchers who uncovered widespread and very exploitable vulnerabilities in Secure Sockets Layer (SSL) implementations during their examination of a selection of non-browser software offerings available in the marketplace.

A new report from Stanford University researchers working with a team from the University of Texas at Austin, titled "The Most Dangerous Code in the World: Validating SSL Certificates in Non-Browser Software," reveals that developers are improperly implementing SSL in applications that require secure communications over the Internet, leaving users vulnerable to man-in-the-middle (MitM) attacks.

"This is exactly the attack that SSL is intended to protect against. It does not involve compromised or malicious certificate authorities, nor forged certificates, nor compromised private keys of legitimate servers. The only class of vulnerabilities we exploit are logic errors in client-side SSL certificate validation," the researchers explained.

They found that the applications and the SSL libraries examined did not reject self-signed or third-party digital certificates as they would be expected to do for ensuring secure communications.

The flaws were discovered in applications that include shopping carts such as osCommerce, ZenCart, Ubercart, and PrestaShop, in Amazon’s EC2 Java library, in both Amazon’s and PayPal’s merchant SDKs, in the Chase mobile software, and in Java Web-services middleware which include Apache Axis, Axis 2, Codehaus XFire, and the Pusher library for Android, leaving "any SSL connection from any of these programs is insecure against a man-in-the-middle attack," according to the report.

Similar vulnerabilities in SSL implementations were recently uncovered in an analysis of over 13,000 Android applications currently available in the Google Play store, where researchers from Leibniz University and Philipps University discovered that as many as 17% were vulnerable to data loss by way of man-in-the-middle MITM attacks.

MitM attacks are defined as instances where a vulnerability allows attackers to insert themselves between the target and any host they attempt to established a secure connection with, allowing the attackers to eavesdrop on the communications and intercept sensitive data.

"Perhaps the most devastating (because of the ease of exploitation) bug is the broken certificate validation in the Chase mobile banking app on Android. Even a primitive network attacker—for example, someone in control of a malicious Wi-Fi access point—can exploit this vulnerability to harvest the login credentials of Chase mobile banking customers," the Stanford/University of Texas report warns.

The kinds of problems identified can often stem from a failure to adhere to secure coding best practices, inexperience or a lack of proper training of developers, or through inadequate testing of the of the applications prior to making them available for deployment - but in these specific cases the culprit appears to be flaws in the design of the APIs supporting the SSL libraries themselves.

"Instead of expressing high-level security properties of network tunnels such as confidentiality and authentication, these APIs expose low-level details of the SSL protocol to application developers. As a consequence, developers often use SSL APIs incorrectly, misinterpreting and misunderstanding their manifold parameters, options, side effects, and return values,"  the report explains.

The researchers suggest that "a principled solution to the problem must involve a complete redesign of the SSL libraries’ API," which would include making it easier for developers to understand the APIs they are working with through "high-level abstractions that explicitly express security properties of network connections in terms that are close to application semantics."

You May Also Be Interested In: