Depository Trust and Clearing isn't taking any chances when protecting its network from application-layer attacks. The company's 450 software developers use an automated scanning tool to make sure that security holes are plugged during the software development life cycle, not after an application has been deployed.
Baking security into the software development process isn't necessarily easy. Experts say using assessment and scanning tools slows down development, thereby increasing the cost of bringing new applications into production. Also, not all developers react positively to the changes.
Analysts say the benefits of writing secure code in the first place - rather than conducting vulnerability scans after the software has been deployed and having to patch holes - far outweighs the extra effort required.
Before James Routh, chief information security officer at DTCC, which handles more than US$1 quadrillion in securities transactions annually, integrated Secure Software's CodeAssure static code scanner into the software development process, several of the company's top developers were invited to a four-week security training boot camp.
After the first week, one developer went back to a fairly recent application-development project he'd worked on and turned CodeAssure loose. He was surprised when it turned up significant gaps and vulnerabilities that neither he nor anyone else had spotted.
"When developers take time out to walk through code line by line, it becomes a very labor-intensive and costly effort. Using scanning technology, the vulnerability scans are now done automatically," Routh says. He adds that tools like CodeAssure are important because over time they help developers become better at writing secure code. "Our experience with CodeAssure has taught us that the better the contextual help is at explaining the vulnerability, the more valuable it becomes as an education tool that developers will understand and incorporate going forward," he says.
According to Gartner analyst Neil MacDonald, a variety of application software scanning and assessment tools now exist to help make applications more secure. These include both static and dynamic tools (see "Application-level security toolkit," page 50). Typically, these tools analyze the state of uncompiled code or a compiled application and produce detailed reports that identify the types of security threats found in the application, while advising about ways to prevent or correct the threat.
Where these tools are applied in the average development life cycle varies. Some methods and tools are applied in the early requirements and design phase, and others are targeted at development, quality assurance or production.
Early bird catches the worm
Both MacDonald and Forrester analyst Michael Gavin are quick to point out that the earlier such methods are introduced in the development process, the better.
"It's never too early to begin thinking about security and addressing security," Gavin says. "It's much more cost-effective to fix issues early on in the process. You have more choices with how you fix the problem, including more design choices and more flexibility."
Both analysts cite a 2002 study from the National Institute of Science and Technology that proves identifying and fixing bugs early in the development cycle yields greater financial rewards than fixes after deployment. At the same time, however, both acknowledge it's tough to apply such security practices early in development.
Applying application security tools and activities to the development effort may also be expensive. "If you adopt more-secure coding practices directly in the code cycle, it's going to add about one-third more time to the process," MacDonald says. He attributes much of this extra time to educating and retraining developers on how to recognize and prevent security vulnerabilities, such as buffer overflows, cross-site scripting or SQL injection.
Given the complexity, education and process change involved in adding security functions early in the process, MacDonald sees most dynamic, black-box scanning tools gaining initial traction with security professionals, internal auditors and compliance professionals. These people typically employ such tools to conduct security evaluations for applications about to be released or already in deployment.
Assessment tools are also used increasingly to help sign off on the security of application code written by off-shore or outsourced developers and legacy code in operation. "Writing secure applications is great for new applications going out the door, but doesn't address the thousands of applications you may already have out there," MacDonald says. "So even though it's not optimal, a lot of these tools today are being used postdeployment."