According to static application security testing vendor Veracode, cross-site scripting (XSS) errors are now responsible for more than half of all Web application vulnerabilities. Where present, such errors can be exploited by attackers to bypass many security controls and execute malicious scripts via a user's browser.
Many XSS errors could have been prevented, however, by ensuring that developers practice secure coding techniques. "We strongly believe that many XSS errors are straightforward and easy to fix, and that much can be done to greatly reduce their occurrence," said Matt Moynahan, CEO of Veracode, in a statement. "Developer and product security teams must accept greater accountability for writing better code."
Not introducing XSS errors in the first place is a relatively straightforward process, though it requires more upfront work by developers. According to the Open Web Application Security Project (OWASP), "XSS flaws occur whenever an application takes untrusted data and sends it to a Web browser without proper validation and escaping," with escaping referring to removing or blocking characters that might be used to launch an attack.
Numerous software vendors now sell security testing tools to help ensure that developers properly validate and escape their code, among other essentials. According to Gartner Group, such vendors include HP, IBM, Veracode, Armorize Technologies, Checkmarx, Coverity, GrammaTech, Koicwork, and Parasoft.
Many software-developing organizations, however, seemingly prioritize time-to-market over secure coding. As a result, even easy-to-prevent errors, such as not blocking injection attacks or XSS bugs, have become endemic. That's in spite of numerous studies which have found that remediating software bugs costs far less in the early stages of the software development lifecycle, and especially prior to code going into production.
When done early enough in the software development lifecycle, many code fixes are also relatively easy. According to Chris Eng, senior director of security research at Veracode, "We see thousands -- sometimes tens of thousands -- of XSS vulnerabilities a week. Many are those we describe as 'trivial' and can be fixed with a single line of code,"
Veracode said that the average time required to remediate an XSS bug, based on companies that used its service to scan code before and after remediating it, was 16 days.
But if required, fixes can be made in almost no time at all, as has happened in the wake of XSS exploits against Web sites such as Facebook and Twitter. "Sometimes those companies push XSS fixes to production in a matter of hours. Are their developers really that much better? Of course not. The difference is how seriously the business takes it. When they believe it's important, you can bet it gets fixed," said Eng.