The Long Road To Secure Applications
SQL injection flaws remain flat and found in one-third of applications, new Veracode state of software security report shows
It's one of the most abused vulnerabilities in today's attacks and one of the simplest to fix, but SQL injection just won't die. And new data from Veracode shows that the elimination of that infamous software flaw has basically plateaued, reflecting the long, hard journey that secure software is still traveling.
Veracode's new "State of Software Security Volume 5" found that the previous trend in declining numbers of SQL injection bugs has basically come to a standstill, with 32 percent of Web applications presenting SQL injection flaws from the first quarter of 2011 to the second quarter of 2012. The report is based on data collected from 22,430 application builds that were assessed by Veracode's scanning service.
More Security Insights
- Forrester Study: The Total Economic Impact of VMware View
- Securing Executives and Highly Sensitive Documents of Corporations Globally
"Volumes three and four of the report were showing a downward trend in SQL injection, very slight, about 1 percent quarter over quarter. But now it's trending flat," says Chris Eng, vice president of research for Veracode. The flat trend may also be due to new applications that haven't been scanned by Veracode previously, he says.
"So the situation may have gotten a little worse [with SQL injection bugs], but if you view it from the perspective of new apps, I think that's a way to explain it. It's not that the industry suddenly stopped paying attention to them or stopped fixing them," Eng says. "But that doesn't make you any more optimistic."
Veracode also tossed out a few predictions in its report: Some 30 percent of breaches this year will be via SQL injection, and the ease of access to how-to hack information today will result in more "everyday hackers," the company says. A Google search under "SQL injection hack" returns 1.74 million results with videos and other how-to instructions, the company says.
Veracode also found that 70 percent of enterprise applications failed to comply with the organization's security policies on their first submission to Veracode's scanning service. That number hasn't changed much, Eng says. "When we look at some of our customers who have been doing this for a while, they are expanding their programs and testing through us, and we know they are getting better," he says. "At the same time, we have lots of new customers, some that have never scanned their apps before, and [organizations] doing a lot more third-party software testing. A lot of big enterprises are requiring that a lot more, and small vendors are being scanned for the first time."
A similar report by Cenzic (PDF) last week says that 99 percent of all applications it tested last year contain one or more serious bug. The median number of bugs per app was 13 in 2012, down from 16 in 2011, according to Cenzic. "But there is good news. Many of these vulnerabilities are also relatively easy for application security teams to detect, block and fix during every phase of the application life cycle," according to the report, which found cross-site scripting as the most common bug (26 percent of apps), followed by information leakage (16 percent) and session management (16 percent), and authentication and authorization (13 percent). Cenzic found SQL injection in 6 percent of apps.
Other application security firms are seeing some signs of improvement as well. Jeremiah Grossman, co-founder and CTO of WhiteHat Security, says his firm has seen SQL injection declining for the past two to three years, with only 12 percent of websites in 2011, and 7 percent in 2012.
The discrepancy between WhiteHat's and Veracode's findings is likely due to the types of apps they are scanning. "They are doing Web apps, and we are doing the same [main] websites year over year and expect them to get fixed," Grossman says.
Even so, one exploitable bug is all an attacker needs. "It only takes one SQL injection [flaw]," Grossman says. "And they are not [usually] in the main websites, but always in the secondary and tertiary sites that get popped and do an end run there. But overall, it's getting better: Improvement is being made, but just not fast."
Grossman says the immense scale of the software vulnerability problem explains the relatively slow process of cleanup. "We have a lot of janitorial cleanup to do," he says.
The good news is that more applications than ever are getting tested, security experts say.
Some Web application programming frameworks tend to spawn more bugs than others, according to the new report. Java-based apps scanned by Veracode demonstrated a 16 percent improvement in SQL injection flaws and a 14 percent improvement in cross-site scripting bugs between the first and second scans, while .NET did considerably better, with a 25 percent improvement in SQL injection flaws and a 15 percent one in XSS.
"It showed us that the theory here is that maybe certain languages provide better built-in protection against certain types of vulnerabilities, so it's harder to make those mistakes," Veracode's Eng says. .NET, in general, has more built-in protections against XSS, for example, and is more popular among enterprises, while PHP, for example, doesn't have as many security features and tends to be more popular among more novice developers, he notes.
Not surprisingly, both Veracode's and Cenzic's reports found that mobile app security is a big mess. The big problem, according to Veracode, is how these apps handle cryptographic keys. Some 64 percent of Android and 58 percent of iOS apps contain problems with crypto mechanisms, such as crypto keys and passwords being hard-coded into the apps.
Eng says other risky mistakes Veracode finds is mobile apps that don't use SSL when they should, for example.
Cenzic's managed services group found input validation (21 percent), session management (11 percent), and privacy violation (25 percent) as the main security flaws in mobile apps.
"After five years and five versions of SoSS our goal now is to highlight the slow progress in securing the application layer. Since insecure applications are a leading cause of security breaches and data loss for organizations of all types and sizes, we can’t continue to whistle past the graveyard," the Veracode report says.
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.