Skip to content

Secure SDLC and Supply Chain Plan

This plan stages the change-control, secure-development, and supply-chain controls needed for CM, SA, SI, and SR families. The goal is to make every production change reviewed, tested, scanned, attributable, and reproducible.

Change Flow

  1. Engineer opens a pull request.
  2. Required checks run.
  3. Non-author reviewer approves.
  4. Security-sensitive code receives CODEOWNERS review.
  5. Build creates artifacts, scan reports, SBOM, and provenance.
  6. Release is promoted through GitOps.
  7. Argo CD sync history records production change.
  8. Evidence is retained for ConMon.

Required Gates

GateToolingBlocks ReleaseEvidence
Typecheckpnpm typecheckYesCI log
Unit testsVitestYesTest report
E2E or story testsPlaywright or Storybook tests where applicableConditionalTest report
SASTCodeQL and Semgrep candidateYes for high-confidence high findingsSARIF
Secret scangitleaks or TruffleHog candidateYesScan report
Dependency scanDependabot, OSV-Scanner, Trivy, or GrypeYes by severity policyAdvisory and scan report
Container scanTrivy or GrypeYes by severity policyImage scan report
IaC scanCheckov, Trivy, or ConftestYes for production-impacting findingsScan report
SBOMSyftYes for releaseCycloneDX or SPDX SBOM
Artifact signingcosignYes for releaseSignature and certificate
ProvenanceSLSA generatorYes for releaseAttestation

Repository Controls

ControlRequired SettingEvidence
Branch protectionPull request required, status checks required, stale approvals dismissed.GitHub branch protection export
CODEOWNERSSecurity, platform, and data-sensitive paths require owners.CODEOWNERS file and review history
Admin bypassDisabled or tightly controlled.Repository settings export
SecretsStored in secret manager or GitHub encrypted secrets, never in code.Secret scan and configuration export
ActionsPinned actions or reviewed allowlist for production workflows.Workflow review and policy export
EnvironmentsProduction uses environment protection and approval.GitHub environment settings

Supply Chain Artifacts

ArtifactFormatProducerConsumer
SBOMCycloneDX or SPDXSyftVulnerability management, incident response, 3PAO
Vulnerability reportSARIF, JSON, or native scanner outputTrivy, Grype, OSV-ScannerSecurity and POA&M
Provenancein-toto or SLSA attestationSLSA generatorDeployment admission, audit
SignatureSigstore bundle or registry signaturecosignAdmission policy and release verification
Release manifestMarkdown, JSON, or GitHub release metadataCI/CDConMon and rollback

Kubernetes Admission

PolicyPurposeCandidate ToolEvidence
Trusted registry onlyBlocks unapproved image sources.KyvernoPolicy report
Signed image requiredBlocks unsigned production images.Kyverno plus cosign verificationAdmission result
No privileged containersEnforces workload hardening.KyvernoPolicy report
Required labelsSupports inventory and ownership.KyvernoPolicy report
Resource requests and limitsReduces availability risk.KyvernoPolicy report
Network policy requiredEnforces segmentation.KyvernoPolicy report

Secure Coding Expectations

AreaStandardEvidence
Input validationValidate external input with Zod or typed API contracts.Tests and code review
AuthorizationEnforce authorization server-side for every protected action.Tests and code review
Output handlingEncode output by context and avoid unsafe HTML.Tests and code review
SecretsNo secrets in source, logs, or test fixtures.Secret scan
CryptographyUse vetted libraries and approved modes only.Security review
LoggingLog security events without leaking sensitive data.Audit event tests
ErrorsReturn safe errors to users and detailed diagnostics only to logs.Tests and code review

Release Definition of Done

  • Required checks pass.
  • Release has SBOM.
  • Release has signed artifact.
  • Release has provenance.
  • Critical and high findings are remediated or approved through risk process.
  • Deployment is recorded by Argo CD.
  • Rollback path is documented.
  • Evidence is available for the monthly ConMon package.