DevSecOps maturity model using OWASP DSOMM

Table of contents

DevSecOps is a culture, a practice of actively implementing security at every stage of the software development lifecycle. As a practice, it spells out frameworks that guide security engineers in their DevSecOps practices. As an organization, this model enables organizations to know their security position and level of DevSecOps adoption. DevSecOps is not limited to security testing. DevSecOps pulls through security verification, auditing, risks and compliance, security processes and an overview of why security is required, a clear understanding of what it means to be implementing DevSecOps and how effective your organization's DevSecOps program is.

The DevSecOps maturity model is a framework that can be used to mature the DevSecOps process within the organization. Following a maturity model also helps tell a story that includes the people, process, and technology changes that come with a DevOps-to-DevSecOps transformation, and brings together the very cultural, collaboration, and tool-chain improvements that development teams require to deliver secure and compliant software. Some of the DevSecOps activities are non-technical and more culture-oriented practices that fish out security issues.

4 levels of a DevSecOps maturity model using OWASP DSOMM Matrix https://dsomm.timo-pagel.de/

This matrix covers different dimensions and sub-dimensions

Dimensions consist of Build and Deployment, Culture and Organization, Implementation, Information Gathering to Test and Verification.

Sub-Dimensions include Build, Deployment, Patch Management, Design, Education and Guidance, Process, Application Hardening, Development and Secure Control, Infrastructure hardening, Logging, Monitoring, Application Tests, Consolidation, Dynamic Depth for Application, Dynamic Depth for Infrastructure, Static Depth for Application, Static Depth for Infrastructure, and Test Intensity.

DevSecOps Maturity Model

Level 1: Basic understanding of security practices

  • Defined build and deployment process

  • A patch policy is defined

  • Automated PRs for patches

  • Conduction of simple threat modelling on a technical level

  • Information security targets are communicated

  • Ad-Hoc Security training for software developers

  • Security code review

  • Security consulting on request

  • Definition of simple BCDR practices for critical components

  • Application Hardening Level 1

  • Source Control Protection

  • Versioning

  • Isolated networks for virtual environments

  • Simple access control for systems

  • Usage of edge encryption in transit

  • Usage of encryption at rest

  • Usage of test and production environments

  • Centralized system logging of security events and PII logging concept.

  • Simple application, budget and system metrics

  • Definition of quality gates

  • Simple false positive treatment

  • Treatment of defects with severity high or higher

  • Test for exposed services

  • Test of server-side components with known vulnerabilities

  • Default settings for intensity

  • High test intensity

  • Stored secrets.

Level 2: Adoption of basic security practices

  • Building, pinning and testing of artefacts in virtual environments

  • SBOM of components

  • Defined decommissioning process

  • Environment depending on configuration parameters (secrets)

  • Usage of trusted images

  • Nightly build of images (base images)

  • Reduction of the attack surface

  • Usage of a maximum lifetime for images

  • Each team has a security champion

  • Regular security training for all and regular security training for security champions

  • The reward of good communication

  • Simple mob hacking

  • App. Hardening Level 2

  • Pre-Commit checks and validations

  • 2FA

  • Applications are running in virtualized environments

  • Backup

  • Checking the sources of used libraries

  • Filter outgoing traffic

  • The environment is hardened

  • Usage of a security account

  • Usage of internal encryption in transit

  • Usage of security by default for components

  • Virtual environments are limited

  • Alerting, monitoring costs and visualising metrics

  • Security unit tests for important components

  • Simple visualization of defects

  • Coverage of client-side dynamic components

  • Usage of different roles

  • Test network segmentation

  • Test of the configuration of cloud environments

  • Check for image lifetime

  • Test cluster deployment resources, virtualized environments, cloud configuration

  • Test the definition of virtualized environments

  • Regular tests and deactivating of unneeded tests

Level 3: High adoption of security practices

  • The signing of artefacts and code

  • Handover of confidential parameters

  • Inventory of dependencies and running artefacts

  • Rolling update on deployment and same artefact for environments

  • Usage of feature toggles

  • Conduction of simple and advanced threat modelling on a business level

  • Creation of threat modelling processes, standards and simple abuse stories

  • Conduction of build-it, break-it, fix-it contests

  • Conduction of collaborative security checks with developers and system administrators

  • Security-Lessoned-Learned

  • Approval by reviewing any new version

  • Definition of a change management process and prevention of unauthorized installation

  • App. Hardening Level 3

  • Immutable Infrastructure and Infrastructure as Code

  • Role-based authentication and authorization

  • Centralized application logging

  • Advanced availability, stability and web application metrics

  • Deactivation of unused metrics and grouping of metrics

  • Targeted alerting

  • Security integration tests for important components

  • Integration of vulnerability issues into the development process

  • Treatment of defects with severity middle

  • Usage of a vulnerability management system

  • Coverage of hidden endpoint, input vectors and of sequential operations

  • Usage of multiple scanners

  • Weak password test

  • Static analysis for important client-side components

  • Test of client-side components with known vulnerabilities

  • Analyze logs, check for malware and check for the new image version

  • Creation and application of a testing concept

Level 4: Advanced deployment of security practices at scale

  • Blue/Green Deployment

  • Usage of a short maximum lifetime for images

  • Creation of advanced abuse stories

  • Aligning security in teams

  • Conduction of collaborative team security checks

  • Conduction of war games

  • Regular security training for externals

  • Full Coverage of App. Hardening Level 3

  • Local development linting & style checks performed

  • Limitation of system calls in virtual environments

  • Microservice-Architecture

  • Production near environments is used by developers

  • Usage of a chaos monkey

  • Correlation of security events

  • Coverage and control metrics

  • Defence metrics

  • Metrics are combined with tests

  • Screens with metric visualization

  • High coverage of security-related module and integration tests

  • Smoke Test

  • Advanced visualization of defects

  • Reproducible defect tickets

  • Treatment of all defects

  • Coverage analysis

  • Coverage of service-to-service communication

  • Load tests

  • Test for unused Resources

  • Exclusion of source code duplicates

  • Static analysis for all components/libraries

  • Static analysis for all self-written components

  • Stylistic analysis

  • Usage of multiple analyzers

  • Check for known vulnerabilities

  • Correlate known vulnerabilities in infrastructure with new image versions

  • Test of infrastructure components for known vulnerabilities

A further explore of these security practices have risks and opportunities that are tied to their adoption. Designing a workflow that could cover some of these security practices from ground up based on the organization's business goals and security policies will strengthen security postures from all angles.