OWASP ASVS L2
self-review.
Static review of code, configuration, and infrastructure against OWASP Application Security Verification Standard Level 2 (v4.0.3). Per-control status, evidence, and an honest section on what a self-audit cannot prove. Dated 21 May 2026.
caltury.com.au, app + marketing site, the Supabase project lshifibopmomxkmebluz (Sydney), Stripe live-mode integration, OpenSanctions API, Resend, Anthropic, Sentry.
Static review of source (apps/web), Postgres schema and RLS policies (supabase/migrations), CI config (.github/), and platform settings. No automated scanner output bundled into this version.
Founder Ben Horne, sole reviewer for this revision. External review by a CREST-accredited tester is scheduled (see Next external test).
V1 Architecture, design and threat modelling.
Architecture choices and trust boundaries. Lightweight modelling rather than a formal STRIDE artefact at this revision.
V2 Authentication.
Sign-in paths, password handling, MFA, account-recovery flows. Supabase Auth handles credential storage; Caltury controls the surrounding flows.
V3 Session management.
Session lifecycle, cookie flags, token storage, sign-out.
V4 Access control.
Authorisation enforcement at the database layer and the route layer, tenant isolation, privilege separation.
V5 Validation, sanitisation and encoding.
Input handling, output encoding, deserialisation safety.
V7 Error handling and logging.
Error visibility, log content, PII handling, audit trail.
V8 Data protection.
Encryption at rest and in transit, data classification, retention.
V9 Communication.
Channel security, certificate handling, header hardening.
V10 Malicious code.
Build supply-chain, dependency hygiene, code provenance.
V12 Files and resources.
File upload handling, file storage isolation, malware controls.
V13 API and web services.
Public API surface, rate limits, schema enforcement.
Limitations of this self-audit.
A self-audit is the lowest-confidence form of security assurance. The list below states what it cannot do so a procurement lead can weight the result accordingly.
- Not externally validatedNo CREST-accredited tester has reviewed this revision. A clean self-audit row is the founder's assessment, not an independent finding.
- No live attacker emulationBurp Suite, ZAP, Nuclei templates and similar dynamic tooling were not run as part of this revision. Application logic flaws that depend on traffic-level interaction will not have been surfaced.
- Static review onlyMethodology is reading source code + Postgres schema + RLS policies + CI config + platform settings. No interactive testing of a running instance was part of the score.
- Sole-reviewer biasThe founder wrote the code and reviewed the code. Independent eyes catch what familiar eyes miss. An external review is scheduled (see Next external test).
- ASVS L3 controls not in scopeThis pass targeted Level 2. L3 controls (formal threat modelling artefacts, signed software bill of materials, full cryptographic key custody documentation) are not part of this version.
Independent CREST review scheduled.
or 1 January 2027,
whichever sooner.
A CREST-accredited external penetration test is on the budget for the first enterprise customer engagement, or latest 1 January 2027 regardless of revenue. Scope will cover the same surface this self-audit reviewed plus authenticated application logic, with the report shared with that customer and published in summary form at /security. In the meantime, customer-initiated coordinated tests are welcomed at no charge through security@caltury.com.au.
Email support@caltury.com.au.
For the full ASVS work-paper, sub-processor DPAs, pen-test rules of engagement, or any specific control evidence. Founder replies in writing.