What is the Secure SDLC?
Author: Damien Burks
Now that we've covered Application Security, and you're familiar with key concepts of Application Security, let's dive into the Software Development Life Cycle (SDLC) and Secure Software Development Life Cycle (SSDLC).
Overview​
One of the most critical building blocks is the Secure Software Development Life Cycle (Secure SDLC). By establishing a strong understanding of Secure SDLC, you will be better equipped to comprehend how security is integrated throughout the development lifecycle.
What is the SDLC?​
Image Source: Software Development Life Cycle (SDLC) | Snyk
The Software Development Life Cycle (SDLC) is a structured process used for developing software applications. To keep it short, the SDLC consists of six key phases:
- Planning and Requirements Gathering: Understanding what the software needs to do and ensuring it aligns with business requirements.
- Design: Architecting the solution to meet functional and non-functional requirements.
- Development: Writing the actual code... or programming.
- Testing: Ensuring that the software works as intended and is free from bugs (that don't impact the features).
- Deployment: Releasing the software into higher environments (QA, Production)
- Maintenance: Ongoing updates/enhancements and fixes post-release
The downside to this process is that there is no security baked into any of phases. Formally known as the traditional SDLC, when developers follow this model, security is often treated as an afterthought and addressed after the deployment phase and well into the maintenance phase (and I do mean well into the maintanence phase). This reactive approach can result in security issues being discovered late, which can be quite costly and disruptive to fix overtime. So, when you're developing applications of any kind, pretty pretty please keep this in mind.
The Secure SDLC​
Now that we've covered the SDLC at a high-level, let's talk about the replacement (or the better process to follow).
The Secure SDLC (SSDLC) is an evolution of the traditional SDLC model, where security is a key consideration at every phase of the process. Rather than treating security as a final step, it becomes an significant part of each phase by helping to reduce vulnerabilities and risks earlier in the lifecycle. So, when you the term "shift-left" or "shifting-left", I want you think about the SSDLC, because that's essentially what we're doing. We are moving security from the end of the SDLC and integrating it into every phase within the SDLC.
One of the key benefits of the SSDLC is that you are finding and figuring out any security issues as you iterate through the Secure SDLC, which overtime helps save cost and eliminates the overhead and potential of releasing vulnerabilities into the wild.
Image Source: Secure Software Development Life Cycle (SSDLC) | Snyk