📄️ Define ownership and governance model for DevSecOps privileged groups
Implementation Effort: Medium – Inventorying privileged GitHub and Azure DevOps groups, assigning owners, and standing up access reviews and access packages spans identity engineering and the DevSecOps platform team.
📄️ Define developer platform roles and access model
Implementation Effort: Medium – Designing a unified role model across GitHub, Azure DevOps, and Microsoft Entra ID takes several steps and coordination among platform, security, and identity teams.
📄️ Discover and remediate ungoverned developer platform accounts
Implementation Effort: Medium – Auditing every GitHub and Azure DevOps roster, then migrating, converting, or removing accounts, is a multi-step effort coordinated with platform and identity owners.
📄️ Integrate DevOps platforms with Microsoft Entra ID
Implementation Effort: Medium – Connecting GitHub EMU and Azure DevOps to Entra ID, setting up SCIM provisioning, and planning the account cutover involves several steps across identity and platform teams.
📄️ Define developer access policies using Privileged Identity Management
Implementation Effort: Medium – Scoping PIM eligibility to GitHub and Azure DevOps admin roles builds on existing Entra governance but requires identity and platform teams to configure and test activation policies.
📄️ Configure default branch protection controls
Implementation Effort: Low – Applying a branch-protection ruleset or branch policy is a one-time setting an admin configures at the organization or repository level.
📄️ Review and reduce platform-level administrative permissions
Implementation Effort: Medium – Auditing admin roles across GitHub and Azure DevOps and right-sizing each one takes methodical review and coordination with the teams that hold those roles.
📄️ Establish organization-wide secure defaults for repository security
Implementation Effort: Medium – Configuring organization and enterprise security settings plus repository onboarding automation across GitHub and Azure DevOps takes several steps and licensing coordination.
📄️ Establish credential governance and blocking controls for developer platforms
Implementation Effort: Medium – Standing up recurring token, key, and service-connection reviews plus enforcement policies across both platforms is a multi-step effort with security and platform owners.
📄️ Adopt centralized enterprise identity model for source platforms
Implementation Effort: High – Consolidating GitHub and Azure DevOps onto a single Entra identity source and retiring unmanaged accounts is an ongoing program spanning identity and platform teams.
📄️ Implement static analysis security testing (SAST)
Implementation Effort: Medium – Enabling CodeQL code scanning across repositories and wiring it into pull request and CI workflows takes setup and tuning across engineering teams.
📄️ Enable secret scanning and push protection
Implementation Effort: Low – Turning on secret scanning and push protection is mostly an administrator toggle at the organization or repository level.
📄️ Evaluate and integrate third-party SAST and DAST tools
Implementation Effort: High – Identifying coverage gaps, evaluating candidate tools, and integrating and maintaining them in pipelines is an ongoing program rather than a one-time setup.
📄️ Plan and implement emergency access for DevOps platforms
Implementation Effort: Medium – Creating break-glass accounts for GitHub, Azure DevOps, and Entra ID, excluding them from lockout dependencies, and scheduling recurring tests takes coordinated planning.
📄️ Enable Dependabot alerts and security updates
Implementation Effort: Low – Turning on the dependency graph, Dependabot alerts, and security updates is a quick settings change per repository or organization.
📄️ Configure dependency review in CI
Implementation Effort: Low – Adding the dependency-review check to pull request pipelines is a targeted, one-time pipeline change.
📄️ Implement SBOM generation in release pipelines
Implementation Effort: Medium – Choosing an SBOM format, adding generation to every release pipeline, and defining storage and verification policy takes several steps across build teams.
📄️ Implement artifact signing and build provenance
Implementation Effort: High – Standing up signing and provenance for every release, wiring in verification gates, and maintaining keys and tooling is a sustained program.
📄️ Configure Workload Identity Federation for keyless CI/CD
Implementation Effort: Medium – Configuring federated credentials, trust conditions, and scoped RBAC for each pipeline and platform is a multi-step effort with cloud and platform owners.
📄️ Design pipeline-as-code standards
Implementation Effort: Medium – Moving pipelines to version-controlled YAML, applying branch policies and CODEOWNERS, and optionally disabling Classic pipelines takes coordinated work across teams.
📄️ Pin third-party pipeline components to immutable references
Implementation Effort: Low – Pinning actions and tasks to commit SHAs or fixed versions is a focused change to pipeline files, aided by dependency automation.
📄️ Configure environment protection rules and approval gates
Implementation Effort: Medium – Defining required reviewers, branch restrictions, and checks on each protected environment across GitHub and Azure DevOps takes coordinated setup with resource owners.
📄️ Implement IaC scanning in CI pipelines
Implementation Effort: Medium – Enabling Defender for Cloud, connecting the DevOps connector, and adding Microsoft Security DevOps scanning with SARIF upload spans security and pipeline teams.
📄️ Deploy policy-as-code for critical Azure resources
Implementation Effort: Medium – Storing Azure Policy in source control, testing it, and wiring assignment and remediation into pipelines takes coordination between platform, security, and DevOps teams.
📄️ Implement container image scanning in registry and pipeline
Implementation Effort: Medium – Wiring image scanning into the CI pipeline, the registry, and runtime spans build, platform, and security teams across several configuration points.
📄️ Implement runtime container threat protection
Implementation Effort: Medium – Enabling Defender for Containers and deploying its sensors across AKS and any EKS, GKE, or Arc-connected clusters is a multi-step rollout with cloud and platform teams.
📄️ Connect DevOps environments to Defender for Cloud
Implementation Effort: Low – Authorizing the Defender for Cloud connectors and installing the app on each DevOps organization is a bounded onboarding task, though it needs subscription and organization owners to grant access.
📄️ Configure code-to-cloud traceability
Implementation Effort: Medium – Linking container and IaC findings back to source requires enabling Defender CSPM, wiring up connectors, and applying the documented build metadata and mapping tags across teams.
📄️ Enable DevOps attack path analysis
Implementation Effort: Medium – Turning on attack path analysis depends on enabling Defender CSPM and DevOps connectors and then tuning which chained findings to prioritize, involving both security and platform teams.
📄️ Establish centralized DevSecOps security dashboards
Implementation Effort: Medium – Aggregating code, pipeline, and cloud findings into one view means connecting multiple tools to Defender for Cloud and building Azure Workbooks tailored to different audiences, which spans security and engineering.
📄️ Integrate security findings into developer workflows
Implementation Effort: Medium – Surfacing findings in pull requests, IDEs, and work items requires configuring platform-specific integrations across GitHub and Azure DevOps and onboarding repositories to Defender for Cloud.
📄️ Establish repository security baseline standard
Implementation Effort: Low – Defining the baseline of branch protection, review, scanning, and access settings is a focused policy-writing exercise for the security team with limited coordination to publish it.
📄️ Implement organization-wide repository governance policies
Implementation Effort: Medium – Rolling out uniform governance means configuring GitHub organization rulesets and replicating equivalent branch policies in Azure DevOps through shared automation, coordinating across repository owners.
📄️ Configure custom CodeQL query packs for organization-specific risks
Implementation Effort: High – Authoring and maintaining custom CodeQL packs is an ongoing program that requires learning the QL language, encoding organization-specific rules, and updating queries as internal frameworks evolve.
📄️ Configure custom secret patterns for organization-specific tokens
Implementation Effort: Medium – Defining and testing custom secret patterns, publishing them at scope, and standing up compensating controls for Azure DevOps takes iterative work across security and repository administrators.
📄️ Triage and remediate existing secret scanning alerts
Implementation Effort: Medium – Working through the backlog means validating, revoking, and rotating each exposed credential and sometimes rewriting Git history, which requires coordination with the teams that own the affected secrets.
📄️ Establish ongoing credential rotation and hygiene process
Implementation Effort: Medium – Standing up rotation schedules, automating rotation through Key Vault, and migrating long-lived secrets to managed identities is a multi-step effort spanning pipeline, application, and platform owners.
📄️ Establish code review and approval requirements
Implementation Effort: Low – Enabling branch protection rules that require peer approval, block self-approval, and dismiss stale reviews is a focused configuration change on protected branches.
📄️ Configure Dependabot auto-triage rules at organization level
Implementation Effort: Low – Defining organization-level auto-triage rules by severity, ecosystem, patch availability, and EPSS score is a focused configuration task in GitHub security settings.
📄️ Design approved package registry and trusted publishing controls
Implementation Effort: Medium – Standing up governed Azure Artifacts feeds, enabling upstream sources as a scan-before-promote buffer, and moving publishing to trusted OIDC credentials is a multi-step effort across platform and security teams.
📄️ Design software supply chain security standards
Implementation Effort: Medium – Writing organization-wide standards for SBOMs, artifact signing, provenance, and dependency governance requires input from multiple product and platform teams to agree on a workable baseline.
📄️ Enforce artifact integrity validation in deployment gates
Implementation Effort: High – Enforcing signature and provenance checks at every deployment boundary is a sustained program spanning GitHub Actions, Azure signing tooling, and admission controllers, with ongoing tuning as capabilities reach general availability.
📄️ Migrate existing service principals to federated credentials
Implementation Effort: High – Inventorying and converting every legacy service principal secret to workload identity federation across many pipelines and applications is a sustained migration effort.
📄️ Configure managed identity for Azure resource deployments
Implementation Effort: Medium – Configuring system- or user-assigned managed identities on self-hosted Azure compute and scoping their role assignments takes coordinated work across deployment and platform owners.
📄️ Audit and eliminate plaintext secrets in pipeline definitions
Implementation Effort: Medium – Auditing every pipeline definition, moving exposed credentials into approved secret stores, and enabling push protection to prevent regression spans the teams that own each pipeline.
📄️ Harden build runners with ephemeral execution and least privilege
Implementation Effort: High – Moving to ephemeral, least-privilege runners requires re-architecting build infrastructure with on-demand provisioning and teardown and maintaining it as workloads change.
📄️ Evaluate pipeline security posture against OWASP CI/CD Top 10
Implementation Effort: Medium – Systematically reviewing workflows, identities, runners, and third-party integrations against all ten OWASP CI/CD risk categories is a structured assessment that draws on platform and security teams.
📄️ Evaluate third-party SCA tools for advanced coverage
Implementation Effort: High – Comparing candidate SCA tools' reachability, license, and ecosystem coverage against native scanning and then integrating a chosen tool is a sustained evaluation and rollout effort.
📄️ Implement drift detection for deployed infrastructure
Implementation Effort: High – Standing up continuous drift monitoring, scheduled template-comparison jobs, and an ongoing investigate-and-remediate workflow is a sustained operational commitment.
📄️ Define approved base image policy and governance
Implementation Effort: Medium – Curating approved base images, maintaining a private registry with a rebuild cadence, and configuring admission-control policies requires coordination between security and platform teams.
📄️ Implement container image signing and verification
Implementation Effort: High – Configuring signing with Notation and Key Vault, wiring verification into pipelines and admission control, and maintaining trust policies is an ongoing engineering commitment.
📄️ Establish hardened deployment trust relationships for CI/CD
Implementation Effort: High – Defining explicit pipeline-to-environment trust bindings and enforcing them with environment protections, reviewers, branch rules, and federated identity claims is sustained work across every pipeline.
📄️ Establish prioritized onboarding model for DevOps posture coverage
Implementation Effort: Medium – Building a phased onboarding plan and asset registry across many repositories and pipelines requires coordination between security and engineering owners.
📄️ Design DevSecOps security triage and response process
Implementation Effort: Medium – Defining triage ownership, severity and exploitability priorities, response timelines, and finding tracking across scanning tools requires coordination between security and engineering teams.
📄️ Define remediation SLAs and exception workflow for findings
Implementation Effort: Medium – Setting remediation timelines by severity and building a documented exception workflow requires agreement across security, engineering, and leadership.
📄️ Establish DevSecOps metrics and reporting cadence
Implementation Effort: Medium – Selecting metrics, wiring data from GitHub Advanced Security, Azure DevOps, and Defender for Cloud, and standing up a reporting cadence requires cross-team coordination.
📄️ Establish threat modeling for pipelines, IaC, and deployment architectures
Implementation Effort: High – Building a repeatable threat modeling practice and applying it across pipelines, IaC, and deployment designs is an ongoing commitment for security and engineering teams.
📄️ Establish developer security training and awareness program
Implementation Effort: Medium – Building training content across secure coding, supply chain, and pipeline threats and rolling it out to engineering teams requires curriculum ownership and coordination.
📄️ Deploy security champion program across development teams
Implementation Effort: Medium – Recruiting champions on each team, defining their responsibilities, and supporting them with training and resources requires sustained cross-team coordination.
📄️ Map DevSecOps controls to compliance frameworks
Implementation Effort: Medium – Mapping each DevSecOps control to the applicable framework requirements and validating coverage requires work across security, engineering, and compliance owners.
📄️ Establish DevSecOps compliance reporting and evidence collection
Implementation Effort: Medium – Identifying evidence sources across Defender for Cloud, GitHub, and Azure DevOps and building a continuous collection process requires coordination between security and compliance teams.
📄️ Conduct periodic DevSecOps maturity assessment
Implementation Effort: Low – Assessing the program against a maturity framework at a set cadence is a focused, periodic review with limited coordination.
📄️ Triage and remediate existing code scanning alerts
Implementation Effort: Medium – Working through the existing alert backlog with a risk-based plan and coordinating fixes with code owners is a multi-step effort across teams.
📄️ Implement DAST scanning in staging environments
Implementation Effort: High – Standing up DAST against staging environments, tuning scans to reduce noise, and maintaining them as applications change is an ongoing engineering commitment.
📄️ Define IaC security baseline standards and approved modules
Implementation Effort: Medium – Defining minimum security requirements and publishing approved Bicep, ARM, and Terraform modules requires coordination between security and infrastructure teams.
📄️ Configure IaC scanning PR annotations for developer feedback
Implementation Effort: Low – Turning on pull request annotations for an existing IaC scanning workflow is a focused configuration change with little coordination.
📄️ Configure Conditional Access policies for developer platform access
Implementation Effort: Medium – Extending existing Conditional Access baselines with GitHub and Azure DevOps-specific policies requires coordination between identity and DevOps platform owners.
📄️ Establish secure developer environment standards
Implementation Effort: Medium – Defining approved tools, secret handling, commit integrity, and workstation requirements and aligning them across pillars requires cross-team coordination.
📄️ Integrate DevSecOps findings with centralized SIEM and SOC
Implementation Effort: Medium – Connecting GitHub, Azure DevOps, and Defender for Cloud signals to Microsoft Sentinel and validating each ingestion path requires coordination between security operations and DevOps teams.
📄️ Define DevOps-specific security incident response playbooks
Implementation Effort: Medium – Building DevOps-specific response playbooks is a multi-step effort developed jointly with the enterprise SOC and incident response owners.
📄️ Implement governance policies for AI-assisted code generation
Implementation Effort: Medium – Setting Copilot policies, approval gates, and acceptable-use boundaries requires coordinated work across security, engineering, and platform teams.
📄️ Implement open-source license compliance scanning
Implementation Effort: Medium – Configuring license scanning in pull requests and publishing an approved-license policy spans engineering and legal review.
📄️ Implement API security testing in CI/CD pipelines
Implementation Effort: High – Standing up specification validation and automated security testing across every API-exposing service is a large, sustained effort spanning application and pipeline teams.
📄️ Define secure release governance and rollback procedures
Implementation Effort: Medium – Configuring deployment approvals, security gates, release manifests, and tested rollback procedures is a multi-step effort coordinated across release and platform teams.
📄️ Establish unified vulnerability management workflow for DevSecOps findings
Implementation Effort: Medium – Defining a normalized, end-to-end triage and remediation process across many scanning tools requires coordination among security and engineering teams.
📄️ Establish AI development tool governance and allowlisting
Implementation Effort: Medium – Inventorying AI coding tools, publishing an approved list, and standing up procurement security reviews spans security, legal, and procurement teams.
📄️ Implement data protection controls for AI-assisted development
Implementation Effort: Medium – Layering content exclusions, Purview DLP, developer guidelines, and network controls together is a multi-step effort across security and data protection teams.
📄️ Harden cloud development environments
Implementation Effort: Medium – Restricting images, extensions, tasks, secrets, and network egress across Codespaces and Windows 365 is a multi-step effort coordinated with platform teams.
📄️ Implement automated secret rotation for pipeline and application secrets
Implementation Effort: Medium – Automating rotation with Key Vault, runbooks, and workload identity federation is a multi-step effort across platform and security teams.
📄️ Implement supply chain security for AI/ML pipelines and model artifacts
Implementation Effort: High – Requires coordination across data science, platform, and security teams.
📄️ Secure CI/CD for untrusted contributions and fork pull requests
Implementation Effort: Medium – Locking down fork pull request permissions, secrets, and workflow injection paths is a multi-step configuration effort across pipeline owners.
📄️ Secure feature flag and progressive delivery controls
Implementation Effort: Medium – Adding RBAC, approvals, audit logging, and validation gates to feature-flag and progressive-delivery systems is a multi-step effort across delivery and security teams.
📄️ Govern reusable pipeline templates and platform trust boundaries
Implementation Effort: High – Requires coordination across platform engineering, security, and development teams.
📄️ Define and use cryptography standards for DevSecOps
Implementation Effort: Medium – Defining cryptography standards, key management rules, banned algorithms, and pipeline enforcement spans security and engineering teams.
📄️ Establish coordinated vulnerability disclosure program for DevOps
Implementation Effort: Medium – Publishing a disclosure policy and standing up an intake and SLA-based triage process is a multi-step effort across security and legal teams.
📄️ Embed security requirements in developer workflows and backlog
Implementation Effort: Medium – Embedding security acceptance criteria and review gates into planning and issue and pull request templates requires coordination across engineering and security teams.
📄️ Adopt agentic AI vulnerability discovery (MDASH)
Implementation Effort: Medium – Evaluate and onboard an emerging preview capability and integrate its findings into existing triage workflows.
📄️ Prevent credential exposure in non-code channels
Implementation Effort: Medium – Cross-team coordination with the data security and security operations teams to extend existing DLP and SaaS controls.
📄️ Right-size developer access to Azure with least-privilege RBAC
Implementation Effort: Medium – Multi-step project requiring review of existing assignments and design of scoped roles, coordinated with platform and identity teams.
📄️ Detect security control bypass and configuration drift
Implementation Effort: Medium – Building bypass and drift detection from posture, audit, and CodeQL signals and routing findings to owners is a multi-step effort across security and platform teams.
📄️ Discover and inventory source code repositories across all platforms
Implementation Effort: Medium – Enumerating repositories across GitHub, Azure DevOps, GitLab, and self-managed servers and reconciling them against identity and billing signals is a multi-step effort across security and platform teams.
📄️ 001: Design permissions and access
Overview
📄️ 002: Discover servers/infra for build/deploy code
Overview
📄️ 003: Harden servers/infra for build/deploy code
Overview
📄️ 004: Define Developer Workstation Policies
Overview
📄️ 005: Implement Defender for Servers to continuously monitor
Overview
📄️ 006: Harden target infra (Defender for Cloud)
Overview
📄️ 007: Define developer access policies using Access Packages
Overview
📄️ 008: Implement access and PIM (JIT/JEA) policies for developers
Overview
📄️ 009: Define governance approach for groups with DevSecOps privileges
Overview
📄️ 010: Discover existing GitHub Accounts and permissions
Overview
📄️ 011: Integrate GitHub with Entra ID
Overview
📄️ 012: Remediate non-Entra ID accounts and assignments
Overview
📄️ 013: Discover, review and adjust permissions based on role
Overview
📄️ 014: Create process to periodically review unused/stale credentials
Overview
📄️ 015: Design code publishing approach
Overview
📄️ 016: Configure publishing approach for deploying to Azure
Overview
📄️ 017: Define developer access to Azure as needed
Overview
📄️ 018: Design organization security and analysis settings
Overview
📄️ 019: Decide if default or advanced custom setup for CodeQL
Overview
📄️ 020: Deploy Github Advanced Security - CodeQL
Overview
📄️ 021: Deploy Github Secret Scanning
Overview
📄️ 022: Specify configuration settings for Dependabot
Overview
📄️ 023: Integrate with Defender for DevOps
Overview
📄️ 024: Triage results and remediate
Overview
📄️ 025: Deploy GitHub Advanced Security - Dependabot
Overview
📄️ 026: Evaluate SAST and DAST tools (3P)
Overview
📄️ 027: Discover existing ADO accounts and permissions
Overview
📄️ 028: Remediate non-Entra ID accounts and assignments
Overview
📄️ 029: Integrate Entra ID to ADO
Overview
📄️ 030: Discover, review and adjust permissions based on role
Overview
📄️ 031: Set up service connections to deploy to Azure
Overview
📄️ 032: Design code publishing approach
Overview
📄️ 033: Configure publishing approach for deploying to Azure
Overview
📄️ 034: Deploy GitHub Advanced Security for Azure DevOps
Overview
📄️ 035: Integrate with Defender for DevOps
Overview
📄️ 036: Triage results and remediate
Overview
📄️ 037: Evaluate Dynamic Scanning (3P)
Overview