Build the threat model and asset inventory first
2-3 hrAn audit without a threat model is a checklist run blindfolded. Spend an hour on STRIDE: what does the app do, what data does it hold, who would attack it, what would they want? The output is a list of assets (data + actions) ranked by sensitivity, which drives where you focus the rest of the audit.
- List all data the app holds: PII, payment data, auth credentials, customer data, internal data
- Rank each by sensitivity: critical (payment, password) / high (PII) / medium (analytics) / low (public)
- List the privileged actions: admin access, billing changes, data export, account deletion
- Brainstorm 3-5 attacker personas: external opportunist, malicious customer, insider with stolen creds, state actor (probably not relevant)
- For each asset, ask: how would each persona try to reach it? Note the top 3 attack paths
- Threat models that try to enumerate every possible attack become un-actionable. Pick the top 5-10 paths and focus.
- Most small SaaS attackers are opportunists running automated scanners, not nation-state APTs. Calibrate your defenses to the real threat, not the movie threat.