AWS + DevSecops
Tags: aws, webdev, security, beginners
Published: 2022-09-19 12:28:25

## DevSecops Defined

**DevSecOps** is the practice of integrating security testing at every stage of the software development process. It includes tools and processes that encourage collaboration between developers, security specialists, and operation teams to build software that is both efficient and secure. DevSecOps brings cultural transformation that makes security a shared responsibility for everyone who is building the software.

What does DevSecOps stand for?

DevSecOps stands for development, security, and operations. It is an extension of the DevOps practice. Each term defines different roles and responsibilities of software teams when they are building software applications.
Development 

**Development** is the process of planning, coding, building, and testing the application.
Security

**Security** means introducing security earlier in the software development cycle. For example, programmers ensure that the code is free of security vulnerabilities, and security practitioners test the software further before the company releases it. 
Operations

**The operations** team releases, monitors, and fixes any issues that arise from the software.


**DevSecOps** aims to help development teams address security issues efficiently. It is an alternative to older software security practices that could not keep up with tighter timelines and rapid software updates. To understand the importance of DevSecOps, we will briefly review the software development process.

Software development lifecycle

**The software development lifecycle (SDLC)** _is a structured process that guides software teams to produce high-quality applications. Software teams use the SDLC to reduce costs, minimize mistakes, and ensure the software aligns with the project's objectives at all times. The software development life cycle takes software teams through these stages:

   

-  Requirement analysis
-     Planning
-     Architectural design
-     Software development
-     Testing
-     Deployment

DevSecOps in the SDLC [software development life cycle]

In conventional software development methods, security testing was a separate process from the SDLC. The security team discovered security flaws only after they built the software. The DevSecOps framework improves the SDLC by detecting vulnerabilities throughout the software development and delivery process.


**_What are the benefits of DevSecOps?_**

There are several benefits of practicing DevSecOps.
Catch software vulnerabilities early 

Software teams focus on security controls through the entire development process. Instead of waiting until the software is completed, they conduct checks at each stage. Software teams can detect security issues at earlier stages and reduce the cost and time of fixing vulnerabilities. As a result, users experience minimal disruption and greater security after the application is produced.
Reduce time to market

With DevSecOps, software teams can automate security tests and reduce human errors. It also prevents the security assessment from being a bottleneck in the development process. 
Ensure regulatory compliance

Software teams use DevSecOps to comply with regulatory requirements by adopting professional security practices and technologies. They identify data protection and security requirements in the system. For example, software teams use AWS Security Hub to automate security checks against industry standards. 

**Build a security-aware culture**

Software teams become more aware of security best practices when developing an application. They are more proactive in spotting potential security issues in the code, modules, or other technologies for building the application. 
Develop new features securely

DevSecOps encourages flexible collaboration between the development, operation, and security teams. They share the same understanding of software security and use common tools to automate assessment and reporting. Everyone focuses on ways to add more value to the customers without compromising on security. 
**
How DevSecOps work?**

To implement DevSecOps, software teams must first implement DevOps and continuous integration.
DevOps

DevOps culture is a software development practice that brings development and operations teams together. It uses tools and automation to promote greater collaboration, communication, and transparency between the two teams. As a result, companies reduce software development time while still remaining flexible to changes. 
Continuous integration

Continuous integration and continuous delivery (CI/CD) is a modern software development practice that uses automated build-and-test steps to reliably and efficiently deliver small changes to the application. Developers use CI/CD tools to release new versions of an application and quickly respond to issues after the application is available to users. For example, AWS CodePipeline is a tool that you can use to deploy and manage applications.
DevSecOps

> DevSecOps introduces security to the DevOps practice by integrating security assessments throughout the CI/CD process. It makes security a shared responsibility among all team members who are involved in building the software. The development team collaborates with the security team before they write any code. Likewise, operations teams continue to monitor the software for security issues after deploying it. As a result, companies deliver secure software faster while ensuring compliance. 



> DevSecOps compared to DevOps 


> DevOps focuses on getting an application to the market as fast as possible. In DevOps, security testing is a separate process that occurs at the end of application development, just before it is deployed. Usually, a separate team tests and enforces security on the software. For example, security teams set up a firewall to test intrusion into the application after it has been built.

DevSecOps, on the other hand, makes security testing a part of the application development process itself. Security teams and developers collaborate to protect the users from software vulnerabilities. For example, security teams set up firewalls, programmers design the code to prevent vulnerabilities, and testers test all changes to prevent unauthorized third-party access.

Successful implementation of the DevSecOps practice consists of the following components.

**Code analysis**

**Code analysis** is the process of investigating the source code of an application for vulnerabilities and ensuring that it follows security best practices.
Change management

Software teams use change management tools to track, manage, and report on changes related to the software or requirements. This prevents inadvertent security vulnerabilities due to a software change. 
Compliance management

Software teams ensure that the software complies with regulatory requirements. For example, developers can use AWS CloudHSM to demonstrate compliance with security, privacy, and anti-tamper regulations such as HIPAA, FedRAMP, and PCI.

**Threat modeling**

DevSecOps teams investigate security issues that might arise before and after deploying the application. They fix any known issues and release an updated version of the application. 
Security training

Security training involves training software developers and operations teams with the latest security guidelines. This way, the development and operations teams can make independent security decisions when building and deploying the application.

**Components of DevSecOps?**

Code analysis

Code analysis is the process of investigating the source code of an application for vulnerabilities and ensuring that it follows security best practices.
Change management

Software teams use change management tools to track, manage, and report on changes related to the software or requirements. This prevents inadvertent security vulnerabilities due to a software change.
Compliance management

Software teams ensure that the software complies with regulatory requirements. For example, developers can use AWS CloudHSM to demonstrate compliance with security, privacy, and anti-tamper regulations such as HIPAA, FedRAMP, and PCI.
Threat modeling

DevSecOps teams investigate security issues that might arise before and after deploying the application. They fix any known issues and release an updated version of the application.
Security training

Security training involves training software developers and operations teams with the latest security guidelines. This way, the development and operations teams can make independent security decisions when building and deploying the application.

**DevSecops Best Pratices**

- Shift left
- Shift left is the process of checking for vulnerabilities in the earlier stages of software development. By following the process, software teams can prevent undetected security issues when they build the application. For example, developers create secure code in a DevSecOps process.
- Shift right
- Shift right indicates the importance of focusing on security after the application is deployed. Some vulnerabilities might escape earlier security checks and become apparent only when customers use the software. 
- Use automated security tools
- DevSecOps teams might need to make multiple revisions in a day. To do that, they need to integrate security scanning tools into the CI/CD process. This prevents security evaluations from slowing down development. 
- Promote security awareness
- Companies make security awareness a part of their core values when building software. Every team member who plays a role in developing applications must share the responsibility of protecting software users from security threats.

## Resources 
[Watch video](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=video&cd=&cad=rja&uact=8&ved=2ahUKEwjb9_6M66D6AhXbh_0HHbMQBskQtwJ6BAgCEAI&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DkzYQleQbgk4&usg=AOvVaw1GJdiJhYNLoNuo7cDUxIfF)

[Read more](https://spacelift.io/blog/what-is-devsecops)