During the 18-month study, which was published last week, security firm Veracode scanned the binary code of more than 2,900 applications on behalf of its clients. Its findings are sobering: Nearly six out of every 10 applications had an "unacceptable" level of security; more than eight out of 10 applications failed to catch classes of Web application vulnerabilities required for remediation under PCI DSS.
While the customers eventually fixed the flaws, most enterprises' applications fail to meet with PCI standards -- a rather low bar for Web application security, says Chris Eng, senior director of security research at Veracode.
"These [enterprises in the study] are the organizations that are proactive about security," Eng says. "These are the ones that decided, yes, we are going to scan our applications and try and figure out what the vulnerabilities are and fix them. There are other organizations out there that are not going to scan and are not doing anything as far as security is concerned."
There are a few basic steps that enterprises can take to improve their Web applications security, experts say.
1. Use multiple scanning methods.
Companies should use multiple methods of vulnerability assessment, PCI and application security experts say. Using a combination of source code scanning, binary analysis, and Web application vulnerability scanning can deliver a more complete picture of the potential security issues in software, they say.
For example, cross-site scripting, the injection of a carriage return or line feed (CRLF), and information leakage accounted for nearly three-quarters of all software flaws found by static scanning, according to the study. Dynamic scanning at runtime, on the other hand, identified a somewhat different top three problems, including information leakage issues, SQL injection, and cross-site scripting.
"If you are only fixated on one type of approach, that is insufficient -- you are only seeing part of the story that way," Eng says. "The more different techniques you apply, the more issues you are going to find."
2. Identify third-party code.
The need for software applications to meet PCI standards extends beyond the typical population of retail sites, payment card processors, and banks. While internal compliance efforts account for a hefty percentage of the market for code and vulnerability scanning, many companies that do internal scans are also requiring their third-party software vendors to be compliant with PCI standards as well.
In many instances, companies identified third-party code -- such as open-source software -- as internally developed, the study says. Organizations should identify any third-party code so responsibility can be assigned for remediating vulnerabilities, Eng adds. In addition, as software contracts expire, companies should add language to require third-party vendors to take responsibility for software security.
This approach allows CIOs to "quantify application security risk versus the cost to mitigate, better estimate software development project costs and schedules, and control 'rework charges' associated with security vulnerabilities in third-party agreements," the report advises.
Ironically, software from commercial suppliers fared worse than open-source software in Veracode's tests. On first submission, 42 percent of open-source applications passed an audit, while only 35 percent of commercial applications passed. The results of testing for compliance with the Open Web Application Security Project (OWASP) Top 10, a requirement of PCI's data security standards, were even more stark: Open-source software passed in 40 percent of cases on first submission, while commercial software passed in only 7 percent of cases.
3. Implement a secure development process.
The most critical applications are generally developed internally. Thus, companies should focus on training their developers in secure programming and establishing a secure development process, says Gary McGraw, chief technology officer of security firm Cigital.
"It requires training of developers, it requires tools, and it requires reasonable architecture from the security standpoint," McGraw says. "It requires all these things in tandem -- what we have called a software security initiative."
For security-savvy developers, remediating vulnerabilities after they are found is not difficult. On average, it requires 16 days to fix the code, according Veracode's report.
4. Think beyond PCI compliance.
While passing a PCI audit is a benchmark for companies, it does not mean that the organization or its software is secure. Companies need to go beyond PCI to establish better security, Veracode's Eng says.
"You can do the bare minimum -- you can scan once a year, if that is what the PCI requires -- but that is setting the minimum bar," Eng says. "Any organization that is taking a proactive approach to security should be doing more than that."
Have a comment on this story? Please click "Discuss" below. If you'd like to contact Dark Reading's editors directly, send us a message.