Organizations need to put more time, resources, and care into building and implementing their application security programs. In a recent survey we conducted of 28 large, mostly North American financial institutions, 75% of respondents stated that they regarded application security as a high or critical priority. Problems arise when organizations act on this threat.
According to the same survey, most companies allowed serious risks to persist in their application security practices, such as failing to apply proper standards to third-party software vendors, relying heavily or completely on insufficient scanning tools to find vulnerabilities, and focusing on the wrong metrics to judge the success of their application security programs.
Here is a list of common reasons why many application security programs fail:
Reason #1: Organizational Structure and Incentives
A widely overlooked but serious problem is that businesses motivate security executives in a way that is not conducive to good application security. In a broad sense, executives are pressured to move quickly and see risk management as inhibiting. As a safeguard, security leaders at many enterprises tie compensation to risk management.
In practice, holistic application security rarely bubbles up to executive pay because it's lost as technical noise. Another systematic defense that organizations often apply is the three lines of defense model: frontline management, risk management (including information security), and an internal audit. Application security is often poorly understood by internal auditors, which inherently lowers its priority for frontline management.
Reason #2: Using the Wrong Security Framework
When organizations choose the NIST Cybersecurity Framework (which doesn't cover application security at all; instead, it talks more broadly about identifying risks) or ISO 27001 (which has only two controls that relate to secure development) as their baseline, they get negligible coverage for software security, not commensurate with the risk that insecure software poses to the business. Even for firms that don't build software, software developed by third parties in the form of web, mobile, desktop, and embedded device apps carry significant risk.
There are more comprehensive frameworks designed specifically for securing software. Take the ISO 27034, which isn't well understood by security practitioners. It describes how to build security controls into software. This isn't how most organizations are securing software. Instead, they perform penetration testing, static analysis, and dynamic analysis. They are performing tests at scale, rather than also building security into the development life cycle.
Reason #3: Development Teams Won't Buy In
Without strong incentives, information security teams fail to sell a secure software development life cycle (SDLC) program to business units. As the logic goes, by building security in, you won't have to scramble to fix vulnerabilities later. This logic appeals to the highest levels, such as the CTO, but usually fails in practice. Development teams are almost perennially behind their feature development goals. It's never a good time to add more overhead to their process. By adopting new security controls — which they are not financially motivated to do — the development teams risk not being able to meet their much more tangible goals of delivering business functionality.
The pragmatic CISO, trying to balance risk and reward, then looks at the secure SDLC initiative, which is fraught with resistance and hardship, and decides to redeploy the security team to more pressing and easier-to-solve issues. The secure SDLC becomes a low priority, ranking 14 out of 17 on average, according to a survey by SANS.
How to Avoid Common Application Security Program Failures
The problems above play out regularly at firms that are looking to start a holistic application security program. A company in the early phases of a secure SDLC initiative can do the following:
With these measures in place, organizations can avoid the common pitfalls of doomed application security programs in favor of implementing security requirements across the entire software process.