Download Free Trial of Buildmaster
Menu
Free Pack
Download Free Trial of Buildmaster

5 DevSecOps Best Practices

by Marisa Vesel, on Aug 23, 2019 12:00:00 PM

In today’s world of increasing security vulnerabilities, a lack of knowledge about DevSecOps best practices risks disaster. While the threat is growing, companies are also embracing Agile CI/CD principles. And that combination of speed and complexity makes it increasingly difficult to maintain the kind of release cadence required to remain competitive in the market while also making sure their applications do not develop critical vulnerabilities. 

In this environment, companies need to integrate security into their DevOps practices. It is no longer enough to have a piecemeal approach that relies on individual teams or people. 

Below, we lay out five of the most important things companies should be doing to ensure they release and deploy code securely as possible.  

But First...What is DevSecOps 

DevSecOps is the process of integrating security practices into a DevOps methodology. This brings about collaboration between the Development, Security, and Operations teams. In DevSecOps, everyone is responsible for security from the very beginning of the development process, creating a “Security as Code” culture within organizations.  

DevSecOps exists within an Agile framework, focusing on creating new solutions for complicated software development processes. To help organizations implement DevSecOps, we have created a list of five best practices.

diagram depicting the relationship between DevOps and Security

Best Practice #1: User Permissions 

When implementing security into DevOps, you will of course want to make your processes more secure. This can be achieved through user permissions, which restricts code deployment into a live, production environment accessible only by authorized people. This ensures that code is only released by those with the proper security clearances and that unready code is not deployed.  

Inedo’s BuildMaster makes security a priority by featuring advanced security and access controls. BuildMaster’s security access control policies are defined by giving principals (users or groups) permission to perform certain tasks in a certain scope (either environment-specific, application-specific, application-group-specific, or globally). Users can also be restricted from performing tasks when necessary,  

Best Practice #2: Be Aware of Code Dependencies 

To reduce the risk of vulnerabilities and bugs in code, organizations will want to be aware of code dependencies. In a recent study“more than 50 percent of the world’s largest corporations have open source applications with security vulnerabilities.” Of course, we aren’t just going to stop using third-party, open-source software, but using this kind of software comes with risks including a third-party library changing drastically, disappearing, or breaking. 

Before adding a dependency to your codebase, you should take care assess the risks. A third-party library is less likely to change if it has been a stable part of the industry, is widely used by commercial applications, and has the active support of a large organization. This will reduce the risks of being negatively affected by dependencies.  

Best Practice #3: Don’t Ignore Threat Modeling 

Threat modeling is an important part of DevSecOps. In threat modeling, developers "think like an attacker” and consider the security impact of each design decision. By examining the design to discover where security weaknesses occur, developers are able to pinpoint where and how an attacker would access the design. 

This allows developers to choose a design that best protects the confidentiality of customer’s data, without ever having to experience a security breachIn addition, pinpointed weaknesses can be fixed before code is event sent to production.  

In DevSecOps, this should be integrated into the culture, and no software should be built without first going through threat modeling.  

a before/after diagram depicting security vulnerabilities being corrected

Best Practice #4: Automate Security Testing 

As seen in DevOps, automation is also an important aspect of DevSecOpsThere are a variety of tools available to automate security testing. Automating this process helps ensure that security is still an important part of the development lifecycle but reduces the time developers need to spend on repetitive tasks. 

Automatic security testing identifies vulnerabilities before applications are deployed to production. Builds that are unable to pass security tests cannot be deployed before these vulnerabilities are resolved.  

Best Practice #5: IaC and DevSecOps 

Infrastructure as Code (IaC) is the process of automatically, instead of manually, managing and making configuration changes to a technology stack for an application through software. IaC is an integral part of DevSecOps that has a significant impact on its execution.   

  • Remove deployment effort: By removing the need for manual intervention, the time dedicated to deployments is significantly decreased; getting builds to market faster. 
  • Makes deployment repeatable and scalable: Making deployments repeatable and scalable reduces the amount of time-consuming effort needed to deploy builds. IaC allows the same deployment to be replicated infinitely by executing the code multiple times. 
  • Merges technology infrastructure with workloads and applications: By perceiving application and workloads as a combination of technology infrastructure and code, there is an instant unification between operations and development. This collaboration creates the backbone of DevOps (and DevSecOps) methodology.  
  • Reduces human errors: By automating management and configuration, manual change is not necessaryreducing the risk of human error. This increases the overall quality and security of the code.  
  • Maintain version control: By storing infrastructure as code, updates and changes to code are recorded and archived overtime. This increases visibility and audibility and allows for collaboration across teams.  

Put the Best DevSecOps Practices to Work

Security is an important aspect of DevOps that should not be overlooked. Optimize security with Inedo DevOps toolsmaximizing developer time, minimizing release risk, and empowering stakeholders to bring their vision to life faster—all with the people and technology you have right now. To get help streamlining your CI/CD processes, contact mgoulis@inedo.com 

 

Get Back to Developing

Learn how to maximize developer time, minimize release risk, and empower stakeholders to bring their vision to life faster. All with the people and technology you have right now.

Let's get started →

Subscribe