What is DevSecOps?

Ramazan Akkulak
5 min readMay 27, 2024

--

DevOps is the approach to optimizing and managing end-to-end service delivery and operations. I mentioned in my previous post that it is the application of a set of principles to transform the entire software delivery lifecycle to introduce new applications made possible by technology.

The security is directly proportional to the awareness of the organization.

So what is our goal?

Improving the security of software development and deployment processes is crucial. DevSecOps fosters collaboration between security, development and operations teams. In the past and today, security improvements were usually made at the end or completion of the process. However, this meant that processes had to start all over again because major security vulnerabilities were found after a long period of development. Imagine, for example, if a development had reached the deployment stage and was ready to be rolled out to users, but security teams found major vulnerabilities.

So, what happens in this case?

Improvements will need to go back to the very beginning and be re-evaluated from the analysis stage. We wanted to achieve MTTR (time to improvement) gains when implementing DevOps phases, but the absence of security steps at any stage of our DevOps setup was costing us a lot of cost.

What would happen if we adopted DevSecOps instead of DevOps by putting security steps in every step of the process?

DevSecOps means thinking about application and infrastructure security from the ground up. It also means automating some security gates to avoid slowing down the DevOps workflow.

It has always been ideal to include security as an integral part of the entire application lifecycle. If security is left at the end of the development process, organizations adopting DevOps are locking themselves into the long development cycles they were trying to avoid in the first place.

Benefits of DevSecOps

The advantage of DevSecOps is speed and security.

“The purpose and intent of DevSecOps is to build on the mindset that everyone is responsible for security with the goal of safely distributing security decisions at speed and scale to those who hold the highest level of context without sacrificing the safety required,” describes Shannon Lietz, co-author of the “DevSecOps Manifesto.”

- Enhanced and proactive security measures
- Faster vulnerability closure processes
- Automation compatible with modern development
- A repeatable and flexible process

In development processes, we can usually add 10 different stages to the process. So, what are these processes? Let’s take a closer look at DevSecOps and understand the terms better.

Static Application Security Testing (SAST)
- It is the process of scanning the source code for vulnerabilities in the early stages of development. This helps catch and fix potential security issues before they progress further.

API Security Testing
- Authorization and Authentication Tests: Ensure that APIs can only be accessed by authorized entities and that sensitive transactions require appropriate levels of authentication.
- Data Validation: Check for vulnerabilities such as BOLA, Broken authentication, SSRF, Injection and ensure OWASP Top 10 are covered.
- Rate Limiting Checks: Setting the appropriate rate limit status to prevent abuse.
- Sensitive Data Exposure: Regulate the leakage of sensitive data through accidental or misconfigurations of APIs.

Dependency Scanning
- Sensitive Data Exposure: Regular scanning of third-party libraries and dependencies for known vulnerabilities. Tools can be set to automatically check if the versions of the libraries used have any known security issues.

Container Security
- Checking that containers such as Docker are configured securely. Scanning container images for vulnerabilities and ensuring runtime security.

Infrastructure as Code (IaC) Security
- For teams using IaC tools such as Terraform or Ansible, it is vital to scan code for misconfigurations or implementations that could cause vulnerabilities.

Secrets Management
- Automate the detection of hard-coded secrets or credentials in codebases. Use tools that manage and rotate secrets to prevent accidental disclosure.

Security Gateways
- Include automatic gates in the pipeline so that if a certain safety criterion is not met (for example, if a critical vulnerability is detected), the distribution will be stopped until the problem is resolved.

Continuous Monitoring & Feedback
- Post-deployment, continuously monitor applications and infrastructure for anomalies. Any suspicious activity should trigger alerts and feedback should be sent back to the development team for improvements).

Documented Security Policies
- Codify security policies so that they are integrated and automatically applied during the CI/CD process. This can include policies on access controls, encryption standards and more.

Why is import shift left?

‘Shift left’ is one of the core principles of DevSecOps.

It encourages developers to move security from the end (right) to the beginning (left) of the DevOps process. In a DevSecOps environment, security is an essential part of the development process from the very beginning.

The shift left allows the DevSecOps team to identify security risks and vulnerabilities early and ensures that these threats are addressed quickly. In addition to building the product efficiently, the development team integrates security at every stage of the development process.
Basically, shift-left reduces costs on a large scale in organizations’ projects.

It bears repeating: Security is the awareness of the organization.
To this end, strong collaboration between development engineers, operations teams and compliance teams must be established to ensure that everyone in the organization understands the company’s security posture and adheres to the same standards.
Everyone involved in the delivery process needs to master the basic principles of application security. They should understand the Open Web Application Security Project (OWASP) Top 10, application security testing and other security engineering practices. Developers should understand threat models and compliance controls and have sufficient knowledge of how to measure risks, exposure and implement security controls.

Let’s take a closer look at the impact of AI on security?
Artificial intelligence (AI) is revolutionizing the world of security and breathing new life into DevSecOps and security culture. In particular, AI is making security processes much more powerful to detect vulnerabilities and proactively prevent threats through big data analytics and machine learning techniques. Adding AI to the continuous integration and deployment processes of DevSecOps will ensure that potential security vulnerabilities are recognized and responded to quickly. It is important to keep in mind that closely following today’s AI developments and combining them with AI security will be very important for organizations.

--

--

Ramazan Akkulak

I'm a Software Engineer focused on DevOps, DevSecOps and microservices architecture. https://www.linkedin.com/in/ramazanakkulak/