Perspectives on the Evolution of DevSecOps Engineering Based on from My Experiences
Tags: beginners, devops, softwaredevelopment, cicd
Published: 2023-10-21 07:47:35

# Introduction
In the rapidly evolving domain of software development, ensuring the security of applications and systems is a top priority. And that's where DevSecOps steps onto the stage, building upon the foundations of the already well-known DevOps. 

As a DevOps Engineer, the evolution of DevSecOps has a significant impact on my role, prompting me to stay vigilant about the configuration and practices in these recent years.

# Approach
DevSecOps stands for Development, Security, and Operations, where Security become main focus. DevSecOps seamlessly integrates security practices at every step of the development process, promoting a proactive stance toward addressing security concerns early on. Think of it as shifting security "to the left" to align with the continuous integration philosophy that's already a hit in the DevOps world.


![DevSecOps metric](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rd7aw4d1b5ur8hkwsbu8.png)
Traditionally, security checks occur towards the end of the software development process, leaving applications exposed to vulnerabilities that may only surface once the code is finalized. DevSecOps, however, paves a different path. It incorporates security checks right from the beginning of the development process. This approach empowers developers to identify and rectify security issues at the outset, significantly reducing the likelihood of costly and time-consuming fixes in the later stages of development.

To make DevSecOps seamless and effective, a range of new stages are introduced within the Continuous Integration (CI) pipeline. These stages are dedicated to unearthing vulnerabilities, threats, and risks that may be lurking within the application. By implementing these strategies, DevSecOps not only fortifies software systems against malicious threats but also lays the foundation for a safer and more resilient software development journey.

As part of this journey, DevSecOps incorporates various security testing practices into the CI pipeline. Let's delve into a few of these:

## Software Composition Analysis (SCA)
In the world of software development, applications often depend on third-party or open-source components for their functionality. SCA, short for Software Composition Analysis, is your digital detective for tracking these dependencies and ensuring they don't introduce vulnerabilities into your software.

*How Does SCA Work?*

SCA scans your application, scrutinizing both the source code and binary files, to uncover any known vulnerabilities lurking within the third-party or open-source components. When these vulnerabilities are spotted, it's not a cause for alarm. In many cases, a remedy exists, and it's as simple as applying a patch or upgrading to the latest version of the affected third-party libraries.

But SCA's capabilities don't stop there. It can also raise a flag when it stumbles upon any unknown or altered components within your application. This additional layer of scrutiny empowers you to identify and investigate unfamiliar elements that might be lurking in your software.

## Code Quality Scanning
Code quality scanning is a practice within DevSecOps that involves a meticulous examination of your source code to assess its structural integrity, adherence to coding standards, readability, in short is the quality and also check the complexity of the code. It serves as an early warning system for issues, promotes better coding practices, improves collaboration, enhances software quality, and aligns with the principles of DevSecOps, where security and quality is integrated into the development process from the outset.

## Static Application Security Testing (SAST)
SAST, or Static Application Security Testing, is a crucial security practice in software development. It involves a thorough examination of your source code, reviewing it without executing the code. The primary goal of SAST is to identify and flag known vulnerabilities or security issues in your codebase. It does this by analyzing the code's structure, logic, and patterns, searching for coding mistakes, misconfigurations, or vulnerabilities that are well-documented and recognized within the security community.

In essence, SAST is like a code grammar and spell-check for security. It helps you identify and rectify issues early in the development process, before the application is even run or tested. This proactive approach is critical for ensuring the security of your software, as it allows developers to fix vulnerabilities at an early stage, reducing the risk of security breaches and the cost of addressing issues later in the development lifecycle. SAST not only helps in building more secure software but also promotes security awareness among developers, making it an essential tool in the realm of DevSecOps.

## Dynamic Application Security Testing (DAST)
Dynamic Application Security Testing (DAST) is a crucial security practice, especially for web applications. It works by actively testing your application while it's running in a real-world environment.

Imagine deploying your web application to a new environment like a production server. During this process, your application may be exposed to new security risks that were not apparent in the code. For instance, you might encounter misconfigurations or incorrect security assumptions that only become evident when the application is running.

DAST acts like a real attacker, probing your live web application to identify vulnerabilities that might not be visible during code review or static analysis. It helps ensure your application's security in the real world, beyond just the development phase. In short, DAST is crucial for uncovering and addressing security issues that may emerge as your application moves from development to deployment.

# Conclusion
In conclusion, DevSecOps stands as a robust and proactive approach to software development. By integrating security practices throughout the development process and implementing comprehensive security testing measures, DevSecOps ensures that software is not only secure but also of the highest quality. This philosophy fosters a culture of continuous improvement and a commitment to delivering secure, reliable, and resilient software to meet the ever-evolving challenges of the digital landscape.

I think that's it for now for this article. Leave a comment below. So, I know about your thoughts! Thanks.