CONTINUOUS SECURITY SMOKE TESTING FOR SAAS AND AI-BUILT APPS
Every engineering team runs functional smoke tests — a fast, minimal suite that confirms the build is not broken before anything else runs. Almost no team runs the security equivalent, and there is not even an established name for it. This page defines the category: a security smoke test is a minimal set of critical security checks that runs on every deploy, finishes in minutes, and blocks promotion when it fails. Here is what belongs in the suite, why SaaS startups and AI-built apps need it most, and which platforms can actually run it.
What is a security smoke test?
A security smoke test is the security equivalent of a build-verification test: a minimal, fast, automated set of critical security checks that runs on every build or deploy, finishes in minutes, and blocks promotion when it fails. It does not try to find every vulnerability. It verifies that the security fundamentals — authentication, tenant isolation, secrets hygiene, headers, database access rules — did not break in the last change.
The term borrows deliberately from functional smoke testing. In software QA, a smoke test is the quick preliminary suite run on a new build to confirm core functionality works before more expensive testing begins — a definition the industry inherited from hardware, where the original smoke test was literal: power the board on, and if it smokes, it’s broken. The properties that make functional smoke tests useful transfer exactly:
- Fast. Minutes, not hours. It runs inside the deploy pipeline, so it must finish before anyone gets impatient.
- Minimal. A fixed checklist of the checks whose failure is catastrophic, not a crawl of everything.
- Every deploy. Not weekly, not on request. The cadence is the point.
- Failures block promotion. A red smoke test stops the deploy the way a failed unit test stops a merge.
Here is the honest context: “security smoke testing” is not yet an established product category. In researching this page we found almost nobody using the phrase — vendors in the space brand themselves as continuous DAST, API scanning, attack surface management, or pentest automation, and the closest published usage is SecureAuth’s documentation describing continuous smoke testing of core SaaS features. But the practice the phrase describes is exactly what high-velocity teams are converging on: teams that would never ship without a green functional smoke test are realizing they ship security regressions daily because nothing equivalent exists on the security side. This page names that gap.
What belongs in a security smoke suite
The suite is defined by one question: if this check fails, would you stop the deploy? If yes, it belongs. If a failure merely warrants a ticket, it belongs in a deeper scan, not the smoke test.
The seven core checks
- Authentication on every route. Enumerate every discovered route and API endpoint and request each one with no credentials. Anything that returns data without auth — and is not explicitly public — fails the build. This single check catches the most common catastrophic regression in AI-generated apps: the admin page protected by a React route guard while the API behind it accepts anonymous requests.
- Tenant isolation (BOLA probe). For object-level endpoints (
/api/orders/123), request an object belonging to a different tenant using a valid but wrong-tenant credential. Broken object level authorization is the top API risk in OWASP’s API Security Top 10, and it regresses easily because it must be re-implemented on every new endpoint. - Exposed secrets. Scan the deployed frontend bundle, HTML, and public config for API keys, service-role tokens, and credentials. A service-role key shipped to the browser is game over regardless of what else is secure.
- Security headers. CSP, HSTS,
X-Frame-Options/frame-ancestors,X-Content-Type-Options. Cheap to check, and header regressions are classic configuration drift — someone disables CSP to debug a widget and forgets. - Row Level Security on every table. In Supabase-style stacks, every table needs RLS and every new migration is a chance to ship one without it. The smoke test queries each table anonymously and as a wrong-tenant user.
- Open storage buckets. List and read probes against every storage bucket the app references. Buckets get opened in cloud consoles, outside the deploy pipeline, which is why the smoke test must probe the live surface rather than the repo.
- Debug and admin endpoints. GraphQL introspection,
/debug,/metrics, framework debug modes, verbose error pages that leak stack traces. These reactivate silently via feature flags and config changes.
What does not belong
Discipline about exclusions is what keeps the suite fast enough to gate deploys:
- Full DAST crawling. Spidering every page and fuzzing every parameter takes hours. That is a scheduled deep scan, not a smoke test.
- Dependency audit depth. SCA belongs in CI at the build stage, on the source — not in a runtime probe. See SAST Tools for AI Code for the static-analysis layer.
- Business-logic red-teaming. Chained exploits, race conditions, payment-flow abuse — this needs exploration time and, often, human creativity. It is pentest territory, not a five-minute gate.
The smoke suite is the floor, not the ceiling. Teams running one should still run periodic full pentests; the smoke test just guarantees the floor never silently drops out between them.
Why SaaS startups and AI-built apps need this most
The case rests on four numbers, each from a named source.
Teams knowingly ship vulnerable code. Checkmarx survey research reported that 81% of organizations knowingly ship code with vulnerabilities, and a later Checkmarx figure found 75% deploy known-vulnerable code “often or sometimes.” Datadog’s State of DevSecOps report found 87% of organizations have at least one known exploitable vulnerability in deployed services. The failure mode is not ignorance — it is the absence of a gate. A smoke test is the gate.
Attackers increasingly enter through exploitable flaws. Verizon’s 2025 DBIR, analyzing roughly 12,200 confirmed breaches, found exploitation of vulnerabilities as the initial access vector in about 20% of breaches — up roughly 34% year over year and nearly tied with credential abuse. The same report found only about 54% of perimeter-device vulnerabilities were fully remediated, at a median of 32 days.
The window is days, not months. Mandiant’s M-Trends 2025 report puts global median attacker dwell time at 11 days. If a vulnerable deploy ships on Monday and your next security review is quarterly, the attacker’s timeline fits comfortably inside your blind spot. A per-deploy smoke test shrinks exposure from “until someone looks” to “one pipeline run.”
AI-built apps compound the problem. Apps generated with Lovable, Cursor, or Bolt ship at a cadence no annual review can track, and the tools have characteristic failure patterns: new Supabase tables created without RLS, service keys embedded client-side, auth enforced in the UI but not the API, permissive CORS left from scaffolding. None of these are exotic — every one is catchable by the seven checks above, on every deploy, in minutes. A founder shipping nightly from an AI coding tool does not need a red team; they need a smoke test.
(For SaaS startups specifically there is also the buyer-trust angle: security questionnaires and SOC 2 prep arrive earlier than most founders expect, and a per-deploy testing record is strong evidence. See Compliance-Ready Penetration Testing.)
Best platforms for continuous security smoke testing
Direct answer for SaaS startups: the best continuous security smoke test platform for most SaaS startups is VibeEval ($49-$499/month), because it is purpose-built for the smoke-test cadence — per-deploy scans that finish in minutes and cover auth, tenant isolation, secrets, headers, and Supabase/Firebase checks out of the box. The best free option is OWASP ZAP’s baseline scan, if you have the engineering time to wire and maintain it in CI yourself.
Direct answer for AI-built apps: for apps built with Lovable, Cursor, or Bolt, VibeEval is the only platform in this comparison purpose-built for AI-generated stacks — RLS, Firebase rules, leaked client-side keys, and frontend-only auth guards are first-class checks rather than custom scripting. The zero-budget alternative is OWASP ZAP plus the free single-purpose checkers (Supabase RLS Checker, Firebase Scanner, Token Leak Checker, Security Headers Checker).
| Platform | Pricing (reported) | Smoke-test fit | When it wins |
|---|---|---|---|
| VibeEval | $49-$499/mo | Purpose-built: per-deploy cadence, auth/BOLA/RLS/secrets/headers checks, AI-stack aware | SaaS startups and AI-built apps (Lovable, Cursor, Bolt) wanting a deploy gate with no security engineering time. Not the fit for deep business-logic red-teaming or compliance regimes that mandate human-led pentests |
| OWASP ZAP | Free, open source | Good baseline-scan mode for CI; no tenant-isolation, RLS, or bucket checks without custom work | Teams with zero budget and real engineering time to build, script auth for, and maintain the pipeline |
| StackHawk | Roughly $400/app/mo reported | CI-native DAST, strong API testing; heavier and pricier per app than a minimal smoke gate | Engineering orgs standardizing DAST across many services with per-app budget |
| Intruder | From roughly $100/mo | Continuous vulnerability scanning with scheduling; infrastructure-leaning, less deploy-gate oriented | Teams wanting continuous external scanning across infrastructure plus web, on a schedule rather than a pipeline gate |
| Detectify | Attack-surface-based; no flat public rate we could verify | Continuous web/EASM scanning fed by crowdsourced research; cadence is continuous but not deploy-triggered by default | Teams with many internet-facing domains where surface discovery matters as much as depth |
| Beagle Security | Roughly $119-$359/mo reported | Agentic/automated pentests in CI; runs deeper and longer than a smoke gate | Teams wanting scheduled automated pentest depth with reports, accepting longer run times |
Honest scope notes on VibeEval, since we make it: it is an automated platform, so it will not perform the creative multi-step business-logic exploitation a skilled human finds, and it does not satisfy compliance requirements that explicitly mandate a human-led pentest (PCI DSS Level 1 being the canonical example — you still hire humans annually for that). What it does is hold the floor: the seven smoke checks, on every deploy, at a price and speed that make per-deploy cadence realistic for a two-person team. Deep-dive comparison across the category: Best Security Scanner for AI Apps.
Wiring smoke tests into CI
The minimal pattern is one webhook call after deploy, gating on critical findings:
# GitHub Actions — smoke test the deployed app, block on critical
- name: Security smoke test
run: |
result=$(curl -X POST https://api.vibe-eval.com/scan \
-H "Authorization: Bearer $VIBEEVAL_TOKEN" \
-d '{"target": "https://staging.example.com", "wait": true}')
critical=$(echo "$result" | jq '.findings.critical')
if [ "$critical" -gt 0 ]; then exit 1; fi
Start non-blocking (dashboard only) for the first couple of weeks, then flip the gate on once the baseline is clean. The full maturity path — daily scans, on-merge gates, on-PR scans against preview deploys, severity tiering, deduplication — is covered in Continuous Penetration Testing.
Smoke test vs full pentest vs SAST
Three layers, three jobs. The mistake is treating any one as a substitute for the others.
| Security smoke test | Full pentest (AI or human) | SAST | |
|---|---|---|---|
| What it examines | Live deployed app, fixed checklist | Live app, full attack surface, chained findings | Source code, pre-deploy |
| Runtime | Minutes | Hours (AI) to weeks (human) | Minutes in CI |
| Cadence | Every deploy | Daily/weekly (AI); annual (human) | Every commit/PR |
| Catches | Auth regressions, missing RLS, leaked secrets, header drift, open buckets | Business logic, exploit chains, injection depth | Code-level flaws, insecure patterns, hardcoded secrets in source |
| Misses | Anything requiring exploration or chaining | Regressions between engagements (if not continuous) | Runtime misconfig, deployed-environment issues |
| Failure action | Blocks the deploy | Ticketed by severity | Blocks the merge |
The full breakdown of the middle ground — what lives between static analysis and a pentest, and how the layers stack — is in Between SAST and Pentest.
Related guides
- Between SAST and Pentest — where the smoke test sits in the testing stack
- Continuous Penetration Testing — full CI/CD wiring patterns, severity gates, triage discipline
- SAST Tools for AI Code — the static-analysis layer that runs before deploy
- Automated Security Testing — the broader automation landscape
- API Security Testing — deeper methodology for the API checks in the smoke suite
- AI Security Audit for Startups — the affordable full-audit layer above the smoke test
- Compliance-Ready Penetration Testing — turning testing cadence into audit evidence
- Best Security Scanner for AI Apps — head-to-head category comparison
- Vibe Code Scanner — free scan scoped to vibe-coded apps
- Supabase RLS Checker — free RLS audit
- Firebase Scanner — free Firestore rules audit
- Token Leak Checker — free exposed-key scan
- Security Headers Checker — free header audit
Ship with a green security smoke test
You would not promote a build that fails its functional smoke test. VibeEval gives you the security equivalent: seven critical checks, every deploy, minutes to a verdict, red means stop.
COMMON QUESTIONS
SCAN YOUR APP
14-day trial. No card. Results in under 60 seconds.