Book Image

Implementing DevSecOps Practices

By : Vandana Verma Sehgal
Book Image

Implementing DevSecOps Practices

By: Vandana Verma Sehgal

Overview of this book

DevSecOps is built on the idea 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. This practice of integrating security into every stage of the development process helps improve both the security and overall quality of the software. This book will help you get to grips with DevSecOps and show you how to implement it, starting with a brief introduction to DevOps, DevSecOps, and their underlying principles. After understanding the principles, you'll dig deeper into different topics concerning application security and secure coding before learning about the secure development lifecycle and how to perform threat modeling properly. You’ll also explore a range of tools available for these tasks, as well as best practices for developing secure code and embedding security and policy into your application. Finally, you'll look at automation and infrastructure security with a focus on continuous security testing, infrastructure as code (IaC), protecting DevOps tools, and learning about the software supply chain. By the end of this book, you’ll know how to apply application security, safe coding, and DevSecOps practices in your development pipeline to create robust security protocols.
Table of Contents (25 chapters)
1
Part 1:DevSecOps – What and How?
3
Part 2: DevSecOps Principles and Processes
8
Part 3:Technology
15
Part 4: Tools
17
Part 5: Governance and an Effective Security Champions Program
20
Part 6: Case Studies and Conclusion

Setting up the CI/CD pipeline

Use Jenkins or GitLab CI/CD as your CI/CD tool. These are popular open source tools that can automate the process of building, testing, and deploying your applications. Here are the stages where these tools can help:

  • Source code management: Git is the most commonly used open source tool. Platforms such as GitHub and GitLab provide added features such as pull requests, issues, and CI/CD integrations.
  • Static Application Security Testing (SAST): Use tools such as Brakeman (Ruby on Rails), Bandit (Python), or SonarQube to detect vulnerabilities in your source code.
  • Dynamic Application Security Testing (DAST): Tools such as OWASP ZAP or Arachni can identify vulnerabilities at runtime by scanning your running application.
  • Container security: If you’re using Docker, tools such as Clair, Anchore, or Trivy can scan your containers for known vulnerabilities.
  • Dependency scanning: Check for vulnerabilities in your project’s dependencies...