Skip to main content
Every merge to master runs through multiple automated security gates. Every dependency is scanned on every build. Every surfaced vulnerability has a defined SLA for remediation.

Static application security testing (SAST)

ToolWhat it scansBlocking?
BrakemanRails source for SQL injection, XSS, mass assignment, command injection, unsafe redirects, open redirectsYes — medium+ severity blocks merge
ESLint (security plugins)JavaScript/TypeScript for unsafe patternsYes
gitleaksAll commits for hardcoded secretsYes
Trivy (config mode)Terraform for infrastructure misconfigurationsYes — medium+ severity

Dependency scanning

ToolEcosystemBlocking?
bundler-auditRuby gems (ruby-advisory-db)Yes
npm auditNode packagesYes on high+
DependabotAuto-PRs for dependency updates, auto-merged on patch/minor if CI passes
license_finderLicense compliance for both Ruby and NodeYes

Secret scanning

  • gitleaks runs on every commit.
  • GitHub secret scanning enabled organization-wide (catches known secret formats pushed to any branch).
  • Any secret found in git history triggers immediate rotation and incident logging.

Infrastructure scanning

  • Trivy (config scan mode) runs against every Terraform change.
  • GCP Security Command Center aggregates findings from GCP-native scanners (Container Analysis, Web Security Scanner — planned).

Vulnerability disclosure and remediation SLAs

SeverityExampleSLA to mitigate
Critical (CVSS ≥ 9.0)RCE, authentication bypass, public PHI exposure24 hours
High (CVSS 7.0–8.9)Privilege escalation, session fixation7 days
Medium (CVSS 4.0–6.9)Stored XSS, CSRF in low-risk flow30 days
Low (CVSS < 4.0)Information disclosure in non-PHI endpoint90 days

Coordinated disclosure

Security researchers: see the vulnerability submission process on Incident response or email security@denialbase.com.

Current gaps — honest status

We run SAST on every merge but no automated dynamic scanner exercises the running app. The planned third-party pentest (Q3 2026) will include dynamic testing.
We credit researchers and coordinate disclosure, but don’t currently pay bounties. Planned after our first pentest cycle completes.
Relying on Cloud Armor WAF at the edge + application rate limiting. A RASP layer would provide additional depth but isn’t on the near-term roadmap.