{"id":2812,"date":"2026-10-30T02:20:00","date_gmt":"2026-10-30T02:20:00","guid":{"rendered":"https:\/\/www.surgeryplanet.com\/blog\/?p=2812"},"modified":"2026-10-30T02:20:00","modified_gmt":"2026-10-30T02:20:00","slug":"devsecops-readiness-checklist-preop-style","status":"publish","type":"post","link":"https:\/\/www.surgeryplanet.com\/blog\/devsecops-readiness-checklist-preop-style\/","title":{"rendered":"A DevSecOps Readiness Checklist, Written Like Pre-Op"},"content":{"rendered":"<p>A surgical team never walks in and improvises. The chart is reviewed, the site is marked, the allergies are read aloud, and a checklist confirms every one of it before the first cut. Delivery pipelines deserve the same ceremony, and DevSecOps \u2014 security built directly into the delivery pipeline and the people who run it \u2014 supplies it. What follows is a readiness checklist in seven stages, written the way a pre-op review reads: verify before you proceed, and record that you verified.<\/p>\n<h2>Stage one: review the chart before you count the patient in<\/h2>\n<p>Day zero of any serious effort belongs to paperwork, and three documents should exist before a single tool is installed:<\/p>\n<ul>\n<li>A gate policy, one page, naming the only findings that may stop a release.<\/li>\n<li>A place to keep scanner output \u2014 a SARIF store \u2014 so results accumulate as history rather than evaporating as alerts.<\/li>\n<li>An identity model, stating which humans and machines hold which credentials, and how each could be revoked.<\/li>\n<\/ul>\n<p>Teams that skip this stage discover later that their scanner findings had nowhere to live and their gates had nobody to answer to. The chart comes first; the operation follows it.<\/p>\n<h2>Stage two: the DevSecOps consent form \u2014 what a gate may stop<\/h2>\n<p>Informed consent, in pipeline terms, is an agreement about when blocking is legitimate. The defensible scope is narrow: a change may be held only for a finding that arrived with the change itself, that the tool flags with high confidence, and that can be repaired on the spot. Everything else converts into recorded work, each item assigned to someone by name and given an expiry that sits ninety days out at most, while the pre-existing backlog never blocks anyone. Teams that consent to wider blocking get bypass culture; the record shows a gate cancelled in 22 of 1,240 changes looked trustworthy next to one cancelled in a quarter of them. Aim to keep overrides beneath five percent a month, and read every override as feedback about the rule, not about the engineer.<\/p>\n<h2>Stage three: surgical safety checks on the pipeline itself<\/h2>\n<p>Theatre discipline applies to the operating room before the patient, and in delivery terms that means the CI system, which the OWASP CI\/CD Top 10 catalogues as CICD-SEC-1 through 10. The core precautions:<\/p>\n<ul>\n<li>Pin each third-party action to the complete commit SHA, so a moved tag cannot swap the instrument mid-procedure.<\/li>\n<li>Scope permissions per job rather than granting the whole workflow a master key.<\/li>\n<li>Prefer OIDC or workload identity to stored cloud credentials; where a key must exist, treat its rotation as urgent and its history rewrite as second priority.<\/li>\n<li>Give fork contributions no secrets, and never run untrusted code from a <em>pull_request_target<\/em> checkout.<\/li>\n<li>Take gate rules from the base commit, never from whatever the incoming change carries.<\/li>\n<\/ul>\n<h2>Stage four: imaging and labs \u2014 scanners with known accuracy<\/h2>\n<p>A lab result is only as good as its false-positive rate, and code scanners obey the same law. The Tricorder-derived rules of evidence: enforce a check only where its measured false-alarm rate is effectively nil; keep machine-generated review comments under ten percent; restrict results to changed lines; and judge each rule on a thirty-finding sample, demoting it if it fails. Secrets deserve their own lab: a pre-commit scanner on the developer&#8217;s machine plus server-side push protection, with the caveat that GitHub&#8217;s bypass option is open to every writer by default unless an admin closes it. And when a secret does escape, the sequencing is medical \u2014 stop the bleeding first. Rotate the credential before touching history.<\/p>\n<h2>Stage five: the DevSecOps implant registry \u2014 evidence per build<\/h2>\n<p>Every implant is logged: maker, model, lot. Every build should carry the equivalent \u2014 an SBOM listing the components, a signature across the artifact, and provenance that records the manner of its making. SLSA grades the build path from level 0 to level 3, GitHub artifact attestations reach level 2, and level 3 arrives with pinned reusable workflows; the Source track grades the repository itself. One precaution gets skipped more than any other, and it is the one that matters: verify at deploy. A signed build nobody checks is an implant nobody X-rayed. The 2024 XZ Utils backdoor made the point publicly \u2014 prevention failed, but teams with ingredient lists answered &#8220;are we affected?&#8221; in minutes, and response speed turned out to be the entire value.<\/p>\n<h2>Stage six: the forty-five-minute consult<\/h2>\n<p>Before significant changes are built, a short structured session works through four questions in the spirit of the Threat Modeling Manifesto: what exactly is being built, how could it be attacked, what is the chosen countermeasure, and did that countermeasure hold? STRIDE gives the &#8220;what can go wrong&#8221; part its categories. The playbook budget is forty-five minutes, and the output is decisions recorded while they are still cheap to make. Clinics that pre-operative-review properly rarely cancel on the table; the same arithmetic holds for software changes.<\/p>\n<h2>Stage seven: discharge criteria and the follow-up clinic<\/h2>\n<p>Recovery is measured, not assumed. The monthly review reads the panel aloud:<\/p>\n<ul>\n<li>Effective false-positive rate, and the override rate beneath it \u2014 under five percent monthly.<\/li>\n<li>Fix time for new findings, median and ninetieth percentile.<\/li>\n<li>Escape rate \u2014 flaws that still reached production, set against how many positioned checks ought to have intercepted them.<\/li>\n<li>Provenance coverage: the share of deploys carrying verified evidence.<\/li>\n<li>Pipeline overhead, plus the health of the exception ledger \u2014 no expired entries loitering.<\/li>\n<\/ul>\n<p>Then rehearse the bad day: a compromise runbook practised on a schedule, so a compromised action or a falsified SBOM meets a team that has drilled rather than a team improvising. For the framework this checklist condenses, <a href=\"https:\/\/www.xopsschool.com\/devsecops\/\">the DevSecOps field notes in The Ops Atlas<\/a> are the source to study. And if the checklist habit itself feels familiar, it should \u2014 it is the same discipline patients rely on when they <a href=\"https:\/\/www.surgeryplanet.com\/blog\/the-smart-patients-guide-to-checking-hospital-accreditation-abroad\/\">check a hospital&#8217;s accreditation before travelling<\/a>, or <a href=\"https:\/\/www.surgeryplanet.com\/blog\/essential-questions-to-ask-before-your-surgery-abroad\/\">ask the essential questions before surgery abroad<\/a>: verification recorded in advance beats reassurance given afterward, and <a href=\"https:\/\/www.surgeryplanet.com\/blog\/choosing-with-care-how-hospital-comparison-protects-your-surgery-journey\/\">careful comparison protects the whole journey<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Surgeons never operate off memory, and neither should pipelines. A DevSecOps readiness checklist in seven pre-op stages, from consent to discharge metrics.<\/p>\n","protected":false},"author":13,"featured_media":2813,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1582],"tags":[],"class_list":["post-2812","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-medical-tourism-tech"],"_links":{"self":[{"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/posts\/2812","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/comments?post=2812"}],"version-history":[{"count":1,"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/posts\/2812\/revisions"}],"predecessor-version":[{"id":2816,"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/posts\/2812\/revisions\/2816"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/media\/2813"}],"wp:attachment":[{"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/media?parent=2812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/categories?post=2812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.surgeryplanet.com\/blog\/wp-json\/wp\/v2\/tags?post=2812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}