Skip to main content
COSMICBYTEZLABS
NewsSecurityHOWTOsToolsStudyTraining
ProjectsChecklistsAI RankingsNewsletterStatusTagsAbout
Subscribe

Press Enter to search or Esc to close

News
Security
HOWTOs
Tools
Study
Training
Projects
Checklists
AI Rankings
Newsletter
Status
Tags
About
RSS Feed
Reading List
Subscribe

Stay in the Loop

Get the latest security alerts, tutorials, and tech insights delivered to your inbox.

Subscribe NowFree forever. No spam.
COSMICBYTEZLABS

Your trusted source for IT intelligence, cybersecurity insights, and hands-on technical guides.

429+ Articles
114+ Guides

CONTENT

  • Latest News
  • Security Alerts
  • HOWTOs
  • Projects
  • Exam Prep

RESOURCES

  • Search
  • Browse Tags
  • Newsletter Archive
  • Reading List
  • RSS Feed

COMPANY

  • About Us
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CosmicBytez Labs. All rights reserved.

System Status: Operational
  1. Home
  2. Checklists
  3. Application Deployment Security Checklist
Application Deployment Security Checklist
CHECKLISTIntermediatedevelopment

Application Deployment Security Checklist

Pre-deployment checklist for launching new applications into production — security review gates, monitoring setup, rollback procedures, dependency...

Dylan H.

Security Team

March 11, 2026
9 min read
45 items

Overview

This checklist gates every new application release before it reaches production. Work through each section in order — all items must be complete or formally waived with a recorded justification before go-live. Use it alongside your CI/CD pipeline as a mandatory sign-off document.


1. Pre-Deployment Security Review

Complete this section before any code reaches staging. Each item requires a named reviewer and a timestamp to count as done.

  • Threat model reviewed and updated — Confirm the STRIDE/PASTA model reflects the current architecture, new attack surfaces, and trust boundaries introduced in this release

    # Open the current threat model document
    # Verify last-reviewed date is within 90 days
  • OWASP Top 10 walkthrough complete — Walk each category (injection, broken auth, XSS, IDOR, etc.) against the new code and record findings or clearances

  • Code review sign-off recorded — Minimum two reviewers; at least one must be a senior engineer outside the feature team; review comment thread closed

  • Static analysis (SAST) passed — Zero unresolved high/critical findings from the SAST tool

    # Example: Semgrep
    semgrep --config=auto --severity=ERROR src/
    # Example: CodeQL (GitHub Actions)
    gh run view --log | grep "SARIF results"
  • Penetration test results addressed — If a pentest was scoped for this release, all critical and high findings are remediated or risk-accepted in writing

  • Sensitive data flow documented — PII, PHI, and payment card data flows are mapped and confirmed to meet applicable compliance scope (GDPR, PCI-DSS, HIPAA)


2. Dependency & Supply Chain

Software supply chain attacks are a primary vector. Lock down every external dependency before shipping.

  • npm/pip/cargo audit clean — Run the package manager audit and resolve all critical and high vulnerabilities

    # Node.js
    npm audit --audit-level=high
    # Python
    pip-audit -r requirements.txt
    # Rust
    cargo audit
  • Dependency versions pinned — No floating ranges (^, ~, *) in production lock files; use exact versions or commit-pinned SHAs

    # Verify no floating versions remain
    grep -E '"\^|"~|"\*' package.json
  • License compliance verified — Run a license scanner and confirm all third-party licenses are approved for commercial use

    npx license-checker --onlyAllow "MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC"
  • SRI hashes applied to all CDN-loaded assets — Every externally hosted script and stylesheet uses integrity and crossorigin attributes

    <!-- Example -->
    <script src="https://cdn.example.com/lib.js"
      integrity="sha384-<hash>"
      crossorigin="anonymous"></script>
  • Container base image pinned and scanned — Docker images reference an exact digest, not latest; Trivy or Grype scan shows no critical CVEs

    docker pull node:20.11.0-alpine3.19
    trivy image node:20.11.0-alpine3.19 --severity CRITICAL,HIGH
  • Signed commits enforced on release branch — GPG or SSH signing required; CI rejects unsigned merge commits

    git log --show-signature -5

3. Secret Management

A single leaked secret can compromise an entire environment. Verify the full secret lifecycle before deploying.

  • No hardcoded secrets in source — Run a secret scanner across all commits in the release branch, not just the HEAD

    # Gitleaks
    gitleaks detect --source . --log-opts="origin/main..HEAD"
    # truffleHog
    trufflehog git file://. --since-commit origin/main
  • Vault or secrets manager integration verified — Application retrieves secrets at runtime from HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, or equivalent — no secrets baked into images or config files

  • Secret rotation schedule documented — Each secret has an owner, a maximum age (≤90 days for API keys, ≤365 days for certs), and an automated or calendared rotation trigger

  • .env files excluded from all build artifacts — Confirm .env, .env.local, and .env.production are in .gitignore and .dockerignore

    git check-ignore -v .env .env.local .env.production
  • CI/CD secret injection reviewed — Pipeline secrets are stored in the CI provider's secret store (not in YAML), scoped to the minimum required jobs, and masked in logs

  • Database credentials rotated pre-launch — Production database credentials are fresh and not shared with any non-production environment


4. Infrastructure & Configuration

Misconfiguration is the leading cause of cloud data breaches. Verify every perimeter control before traffic arrives.

  • TLS certificate valid and auto-renewing — Certificate chain is complete, expiry is >30 days out, and ACME/cert-manager renewal is confirmed working

    openssl s_client -connect yourdomain.com:443 -servername yourdomain.com </dev/null 2>/dev/null \
      | openssl x509 -noout -dates
  • Security headers configured and tested — CSP, HSTS (min 1 year + includeSubDomains), X-Content-Type-Options, X-Frame-Options, Referrer-Policy; validate with securityheaders.com or equivalent

    curl -sI https://yourdomain.com | grep -iE "strict-transport|content-security|x-frame|x-content-type"
  • CORS policy locked down — Access-Control-Allow-Origin is not * on any authenticated endpoint; allowed origins are an explicit allowlist

  • Rate limiting and request throttling active — Per-IP and per-user rate limits enforced at the edge (WAF, reverse proxy, or application middleware); thresholds load-tested

  • Firewall/security group rules reviewed — Only ports 80 and 443 open inbound to the application; admin ports (SSH, DB) not exposed to the public internet

    # AWS example
    aws ec2 describe-security-groups --group-ids sg-xxxx \
      --query 'SecurityGroups[*].IpPermissions'
  • WAF rules enabled and tuned — Web Application Firewall is active with at minimum OWASP CRS; custom rules in place for known attack patterns against this application

  • Database network access restricted — Production database reachable only from the application's VPC/subnet; no public endpoint exposed


5. Monitoring & Observability

You cannot respond to what you cannot see. Confirm every telemetry layer is live before routing production traffic.

  • APM agent deployed and reporting — Application Performance Monitoring (Datadog, New Relic, Elastic APM) is sending traces; P50/P95/P99 latency visible in the dashboard

  • Error tracking configured — Sentry or equivalent is capturing exceptions with source maps, environment tags, and release version; test by triggering a known error in staging

    # Verify Sentry DSN is set
    printenv | grep SENTRY_DSN
  • Health and readiness endpoints live — /health returns 200 with service status; /ready confirms downstream dependencies (DB, cache, external APIs) are reachable

    curl -sf https://yourdomain.com/health | jq .
  • Structured logs shipping to aggregator — JSON logs flowing to your log management platform (Loki, CloudWatch, Datadog Logs); log retention meets compliance minimums

  • Alerting thresholds set — PagerDuty/OpsGenie rules configured for: error rate >1%, P95 latency >2 s, health check failure >2 consecutive, CPU/memory >80% sustained 5 min

  • Uptime monitoring active — External synthetic monitor (Uptime Robot, Better Stack, or similar) pinging the primary URL every 60 s from at least two regions

  • Dashboard created and shared — A shared ops dashboard covering request rate, error rate, latency, and infrastructure metrics is bookmarked for the on-call rotation


6. Rollback & Recovery

Every deployment must have a tested escape hatch. Define the rollback procedure before you deploy, not during an incident.

  • Deployment strategy documented — Blue-green, canary, or rolling update strategy is written down, rehearsed in staging, and the cutover/rollback steps are in the runbook

  • Previous version artifacts retained — The last known-good container image or build artifact is tagged and accessible in the registry for immediate rollback

    # Example: list recent image tags
    docker images yourdomain/app --format "{{.Tag}}\t{{.CreatedAt}}" | head -5
  • Database migration rollback script tested — Every schema migration has a corresponding down migration that has been executed successfully in a staging environment

    # Prisma example
    npx prisma migrate status
    # Flyway example
    flyway -url=... undo
  • Feature flags in place for high-risk changes — New features behind flags (LaunchDarkly, Unleash, or custom) so they can be disabled without a redeploy

  • Rollback SLA defined — Maximum acceptable time-to-rollback is documented (e.g., "rollback complete within 15 minutes of go decision") and achievable with the current tooling

  • Data backup verified pre-deployment — Confirmed a successful backup exists from within the last 24 hours; restore was tested within the last 30 days

    # Verify latest backup timestamp
    aws s3 ls s3://your-backup-bucket/ --recursive | sort | tail -5

7. Post-Deployment Verification

The deployment is not done when the pipeline goes green. Complete these steps within 30 minutes of go-live.

  • Smoke test suite executed — Automated smoke tests covering all critical user paths (login, core workflow, payment if applicable) pass against production

    # Playwright example
    npx playwright test --project=smoke --reporter=line
  • Dynamic security scan (DAST) run — OWASP ZAP or Nuclei scan against the live production URL; no new critical findings

    docker run --rm zaproxy/zap-stable zap-baseline.py \
      -t https://yourdomain.com -r zap-report.html
  • Performance baseline captured — Run a 5-minute load test and record P50/P95/P99 latency and error rate as the new baseline for this release

    # k6 example
    k6 run --vus 50 --duration 5m smoke-load.js
  • SSL Labs / security posture verified — SSL Labs scan returns A or A+ rating; no mixed-content warnings in browser console

    curl -s "https://api.ssllabs.com/api/v3/analyze?host=yourdomain.com" | jq '.grade'
  • Dependency graph and SBOM published — Software Bill of Materials generated and attached to the release in the artifact store or GitHub release

    # CycloneDX for Node.js
    npx @cyclonedx/cyclonedx-npm --output-file sbom.json
  • Runbook and on-call rotation updated — On-call engineer has been briefed on new failure modes, the runbook reflects the new deployment, and PagerDuty escalation policy is correct

  • Incident readiness confirmed — War-room channel created and linked in the runbook, rollback decision authority is named, and the team has confirmed they can reach each other out-of-hours


Quick Reference

SectionGate OwnerBlocking?
Pre-Deployment Security ReviewSecurity TeamYes
Dependency & Supply ChainPlatform EngineeringYes
Secret ManagementSecurity TeamYes
Infrastructure & ConfigurationInfrastructureYes
Monitoring & ObservabilityPlatform EngineeringYes
Rollback & RecoveryDelivery LeadYes
Post-Deployment VerificationDelivery LeadYes — must complete within 30 min of go-live

Related Reading

  • How to Secure GitHub Actions Workflows with OIDC, SHA
  • SentinelOne Health Check: Agent Status Monitoring and
  • Deploy SentinelOne Policy
#deployment#CI/CD#Security Review#Monitoring#Rollback#DevSecOps
Back to all Checklists