Rich Gibbs

Security audit vs penetration test: which one does an indie founder actually need?

security · audit · penetration-testing · indie-founder · saas · nist · vps · aws

Direct answer

Most indie founders need a read-only security audit before a penetration test. The audit finds configuration, exposure, credential, backup, and process risks; a pen test validates exploitability after the basics are already clean.

You shipped a product. It runs on one or two VPS, maybe a Postgres, a Stripe webhook, a small Workspace tenant, and a marketing site. A prospect asks for “your latest pen test.” A compliance template asks if you’ve had a “security audit in the past 12 months.” A vendor pitches you a $9,000 engagement. A friend tells you to “just run a Nessus scan.” Three of those four things are different jobs, and one of them is barely a job at all.

This guide is the plain-English version of security audit vs penetration test for an indie founder or a 1-5 person SaaS team, in 2026, with no security staff and no compliance department behind you. It tells you what each thing actually is, what each one is for, what each one costs roughly, and how to pick. It is deliberately short on jargon and long on “use this when, use that when.”

We are also not selling you a $9,000 engagement. The whole point is that most indie founders need the cheaper, read-only thing first, and only sometimes need the more expensive intrusive thing later.

The actual definitions (from the standards, not from a sales deck)

The cleanest split comes from NIST Special Publication 800-115, Technical Guide to Information Security Testing and Assessment, which divides “security testing and examination” into three top-level techniques:

  • Review techniques — documentation review, log review, configuration review, network sniffing, file integrity checking. Non-intrusive. The system stays untouched. (NIST SP 800-115, §3, “Review Techniques.”) https://csrc.nist.gov/pubs/sp/800/115/final
  • Target identification and analysis techniques — network discovery, port and service identification, vulnerability scanning, wireless scanning. Mostly non-intrusive, can be noisy. (NIST SP 800-115, §4.)
  • Target vulnerability validation techniques — password cracking, penetration testing, social engineering. Actively exploit the things the scanner found, to prove they are real. Intrusive by design. (NIST SP 800-115, §5.)

In everyday founder language:

  • A security audit (sometimes “security assessment,” “security review,” “configuration audit”) is mostly review plus vulnerability scanning. Read-only. Nobody is trying to log into your box without permission. It asks: given the configuration you have, what would a competent attacker probably notice first? The deliverable is a prioritized fix list.
  • A penetration test is validation. With your written permission, a human tester (or a team) actually tries to break in — exploit a finding, chain two boring misconfigs into one bad outcome, see how far they can get from the outside without your help. The deliverable is a report of what they actually achieved, with reproduction steps, plus the fix list.

OWASP’s Web Security Testing Guide (WSTG) makes the same distinction in its introduction: a vulnerability assessment lists potential issues, while a penetration test attempts to exploit them and demonstrate impact. https://owasp.org/www-project-web-security-testing-guide/stable/

CIS Controls v8 puts penetration testing in its own control (Control 18, “Penetration Testing”), separate from the configuration/audit controls earlier in the framework — it’s deliberately the last control, on the assumption you’ve already done the boring read-only hygiene of the first seventeen. https://www.cisecurity.org/controls/v8

That ordering is the answer to “which one do I need first,” for almost every indie founder reading this post.

What an indie-founder security audit actually looks like

For a 1-5 person SaaS team running on a VPS or two (or EC2 / Lightsail / Hetzner / DigitalOcean / Fly / Render), a read-only security audit usually covers, at a minimum:

  • SSH posture. Key-only auth, no password login, no root login, sane MaxAuthTries, sane LoginGraceTime, your actual authorized_keys files, stale keys from ex-contractors.
  • Firewall / security-group state. What ports are actually open to 0.0.0.0/0 versus what you think are open. SG rules that opened temporarily during an incident and never closed.
  • Patch state. Whether unattended-upgrades (or the equivalent) is actually running, when the last reboot was, how many security updates are pending.
  • Instance metadata posture. IMDSv2 required (on AWS), no v1 fallback, sensible hop limits. (See the EC2 hardening checklist below for the migration path.)
  • TLS posture. Cert expiry windows, weak ciphers, the Cloudflare-origin cert versus the in-host cert, SNI/origin drift.
  • Container exposure. Whether the Docker socket is mounted into anything web-facing; whether any container runs as root with a public port bound to 0.0.0.0.
  • Email DNS hygiene. SPF/DKIM/DMARC published, aligned, and not contradicting each other for any of the senders you actually use.
  • Backup posture. Whether the off-host copy exists, whether anyone has ever tested a restore, retention windows.
  • Logging posture. Whether auditd / journald are actually retaining anything useful, whether logs ship off-host, whether they survive a host being terminated.
  • OAuth and third-party access. Which third-party SaaS still has live tokens against your Workspace mailbox / Drive / Calendar. The Zapier from 18 months ago, the contractor’s n8n, the AI summarizer somebody clicked through.

None of that requires the auditor to exploit anything. Most of it the auditor can read off the host with a short-lived, read-only SSH key plus a few API tokens scoped to Describe* actions, plus a handful of externally observable signals (DNS, TLS handshakes, HTTP headers).

Cost range for an indie-scale read-only audit on one host in 2026: roughly $100–$500 for a fixed-scope one-shot deliverable (our $149 VPS/EC2 Hardening QuickCheck sits at the low end of that), and a few thousand for a thorough multi-host audit with a written report. The expensive consultancy engagements you see quoted at $5k–$15k are typically wrapping an audit and a light pen test together, plus several hours of advisory time.

There is also a free version of the externally observable subset — DNS records, exposed ports, TLS posture, HTTP security headers, public IMDS reachability — which you can run yourself in a few minutes; see QuickCheck Mini for the script-only version we ship.

What a penetration test actually looks like

A real pen test is somebody (or a small team) given a defined scope, a defined window, and written authorization, trying to compromise that scope. They might:

  • Phish your contractors using a lookalike domain (only if you signed off on social-engineering scope).
  • Find an exposed .env file in a misconfigured nginx alias and pivot to your database.
  • Find an outdated dependency, write or borrow an exploit, and get a shell.
  • Chain a low-severity SSRF in your app into AWS credential theft via IMDSv1 (this is why IMDSv2-only is non-negotiable).
  • Try to escalate from a low-privilege application user to root on the host.

The deliverable is what they achieved, with full reproduction steps, screenshots, and a prioritized remediation list. NIST SP 800-115 §5.2 frames this as the “Planning / Discovery / Attack / Reporting” four-phase pattern that almost every pen-test methodology since has adopted. CIS Controls v8 Control 18 explicitly states the goal is “to identify vulnerabilities and attack vectors that may be used to exploit enterprise systems.”

That is much more expensive than an audit, for three reasons:

  1. It is human-time-intensive. A meaningful external pen test of one small SaaS is one to two weeks of senior practitioner time, not an automated scan.
  2. It carries production risk. Even a careful tester occasionally trips a fail2ban rule, fills a log volume, or knocks a small VPS over. You need monitoring and a rollback plan.
  3. The report has to be defensible. Reproduction steps, CVSS-style severity (or equivalent), screenshots, retest. The write-up alone is usually a third of the engagement.

Cost range for a small-scope external SaaS pen test in 2026: roughly $5,000–$15,000 for a one-or-two-week engagement covering a single web application plus its hosting surface. More for cloud-environment pen tests or anything involving social engineering.

When the audit is the right answer (which is most of the time)

For an indie founder, ask the audit first if any of these are true:

  • You have never had anyone look at the box other than you.
  • A prospect asked for “evidence of security review” or your last security questionnaire response.
  • You are about to enable a new sender (marketing tool, transactional ESP) and your DMARC is at p=none.
  • You inherited the infrastructure from a co-founder or contractor who left.
  • You just migrated to a new VPS or cloud account and want to know what carried over wrong.
  • A friend told you to “run a pen test” and you don’t yet have a fix list to validate against.
  • You are pre-revenue or sub-$1M ARR and your security budget is “one weekend per quarter.”

The reason is simple: a pen test against a host that has never had a configuration audit will mostly produce findings that the audit would have produced for a fraction of the cost. You pay a senior tester $200/hour to discover that SSH still allows password login, that IMDSv1 is enabled, and that DMARC is at p=none. That is not a good use of either of your money.

CIS Controls v8 makes the same point structurally: penetration testing is Control 18, after asset inventory, secure configuration, vulnerability management, audit logging, account management, and the rest. The intended flow is audit → fix → audit again → then pen test, to see what got past the audit.

When the pen test is the right answer

Ask for the pen test when:

  • You’ve already done the audit, fixed the findings, and want to know what an attacker would still notice.
  • A specific enterprise customer or insurer is contractually requiring an external pen test letter.
  • You handle regulated data (PCI scope, HIPAA, certain regional privacy frameworks) where pen testing has a specific cadence requirement.
  • Your application has meaningful auth/authz complexity (multi-tenant, SSO, role hierarchies) that a configuration audit cannot meaningfully validate without exploiting it.
  • You’re raising and a sophisticated investor’s diligence shop is going to run their own tester against you anyway, and you’d rather be the one who knows the findings first.

If none of those apply, the honest answer most indie-scale auditors will give you — and the one this site gives — is do the audit first.

A quick decision table

Situation Probably the right ask
“I’ve never had anyone look at the box.” Read-only audit
“Prospect wants ‘evidence of security review.’” Read-only audit + letter
“We’re about to go from $19/mo Postgres to $999/mo customer.” Audit now, pen test in 6 mo
“Compliance says pen test annually.” Pen test (after audit)
“We just migrated cloud accounts.” Read-only audit
“Auditor already gave us a fix list six months ago.” Pen test, against the fix list
“Insurer is requiring a pen-test letter for renewal.” Pen test (scoped to their ask)
“We don’t even know what we run.” Asset inventory, then audit

What to deliberately ignore in v1

You do not need, on day one:

  • A SOC 2 Type II report. That is a control-attestation engagement, not a security test. Different deliverable, different price tier, different timeline.
  • A red-team engagement. That is pen testing with social engineering and stealth requirements bolted on. Massively more expensive, only useful once the audit and pen-test layers are mature.
  • A bug-bounty program. Useful for a public-facing app that is already hardened. A bug bounty on day one mostly buys you reports about missing security headers from people farming for $50.

You also do not need a dedicated SIEM, a managed-detection vendor, or a third-party “compliance platform” subscription until you have actual customers asking for one of those things by name.

Common indie-founder gotchas

These are the failure modes that show up most often when somebody asks “audit or pen test?” for a 1-5 person team:

  • Asking for a pen test when the real ask is an audit. The deliverable comes back full of “informational” findings about TLS posture and SSH config, and the founder concludes “pen tests are useless.” They aren’t — that was an audit wearing a pen-test invoice.
  • Asking for an audit when the real ask is a SOC 2 readiness assessment. Different deliverable. An audit will not get you a SOC 2 report.
  • Letting a vendor define “audit” to mean “we ran a Nessus scan against your IP.” A scan is one input to an audit, not the audit itself. Without the configuration review and the human prioritization, you’re getting a 200-page PDF of CVE noise.
  • Pen testing without an asset inventory. The tester scopes “your production environment” and you forget the marketing site on Fly, the staging box on Hetzner, and the contractor’s old IP. The actual attack surface goes untested.
  • Treating an audit letter as a deliverability or compliance shortcut. A clean audit letter says you passed an audit. It does not say your DMARC is green or that you are PCI in scope.

If any of those sound like a problem you’ve already had once and would rather not have again, that is exactly the kind of clarity a short, read-only, fixed-scope audit is for.

Further reading on this site

Two pieces in the same cluster, both prerequisites to whichever direction you choose:

  • Indie founder VPS security 101 → — the one-VPS baseline that every audit will assume you’ve already done. If you haven’t, do this first; it will save you most of the audit findings before anyone gets to your box.
  • Ubuntu / Debian EC2 hardening checklist (2026) → — the longer, EC2-flavored version of the same baseline. Security groups, IMDSv2, patch cadence, the things any external auditor will ask you about first.

If you’ve done the baseline above and would like a written, prioritized fix list for one VPS or EC2 instance — SSH posture, firewall/SG rules, IMDSv2, patch state, TLS, Docker exposure, logging, backups — that is exactly the VPS/EC2 Hardening QuickCheck we offer. $149, one host, read-only, no agents installed, 24-hour turnaround. No managed retainers, no exploitation, no surprise add-ons. Multi-host setups upgrade to the $249 tier; everything stays read-only.

If you’d rather DIY the externally observable subset first, the free QuickCheck Mini script runs the DNS / ports / TLS / headers / public-IMDS checks against your own host in about a minute.

14-day refund on the paid QuickCheck, no questions asked.

Frequently asked questions

Does an indie founder need a security audit or a penetration test first?

Usually a security audit first. It is cheaper, safer, and better at finding the basic configuration and exposure problems that small teams are most likely to have.

What is the difference between a security audit and a penetration test?

A security audit reviews posture and evidence, often read-only. A penetration test actively attempts exploitation inside an agreed scope.

When is a penetration test worth paying for?

It is worth paying for when the basic audit findings are fixed, the scope is clear, customers require it, or you need evidence that specific defenses hold up under attack.