Markdown Editor

Security Design Review Template (OWASP ASVS 5.0)

Design-time security review by the 17 OWASP ASVS 5.0 chapters: scope, DFD, threats, level, findings, remediation, sign-off

सॉफ़्टवेयर और इंजीनियरिंगपूर्णOWASP ASVS 4.0CC BY-SA 4.0securityreview
एडिटर में खोलें.md डाउनलोड करें

उपयोग कैसे करें: Use before the main build and again before release. Fill scope, assets and the data flow diagram first, then review each ASVS 5.0.0 chapter at the target level. The main pitfall is reusing ASVS 4.0 requirement numbers; cite v5.0.0-x.y.z IDs only after checking them in the standard.

प्रीव्यू

Security Design Review: [System or feature name]

Security design review for a web application, API or feature, organised by the seventeen verification chapters of the OWASP Application Security Verification Standard (ASVS) version 5.0.0 (released May 2025): scope and assets, data flows, trust boundaries, threats, the ASVS level targeted, a per-chapter review with status and findings, a findings register, a remediation plan and sign-off. Replace every [bracketed] value and every value marked Example. The worked examples describe a fictional expense-claims web app with a mobile client.

Document control

FieldValue
Document ID[SDR-EXPENSES-001]
System / feature[Expense claims web app and API]
Design version reviewed[Design doc v1.2, commit a1b2c3d]
Version[0.1]
Status[Draft / In review / Approved / Approved with conditions / Rejected]
Review lead[@security-engineer]
Engineering owner[@tech-lead]
Review datesYYYY-MM-DD to YYYY-MM-DD
ASVS version5.0.0
Classification[Internal / Confidential]
Next review dueYYYY-MM-DD or at next major design change

Approvals

RoleNameDecisionDate
Security review lead[@name][Approved / Approved with conditions / Rejected]YYYY-MM-DD
Engineering owner[@name][Accepted findings and plan]YYYY-MM-DD
Product owner[@name][Accepted residual risk]YYYY-MM-DD
CISO or delegate[@name][Required for High residual risk]YYYY-MM-DD

Revision history

VersionDateAuthorChange
0.1YYYY-MM-DD[@name]Scope, assets and data flow diagram
0.2YYYY-MM-DD[@name]Example: Per-chapter review complete, 9 findings raised
1.0YYYY-MM-DD[@name]Example: Approved with conditions SR-001 and SR-002

Contents

1. Introduction

This section states the purpose, method and inputs of the review so that readers understand its limits before they read the conclusions.

1.1 Purpose

This review assesses whether the design of [System name] provides security controls appropriate to the data it handles and the threats it faces, before [build / release / a major change]. It produces a list of findings with severities and an agreed remediation plan.

1.2 Review approach

The review combined [design document reading, architecture walkthrough with the team, threat modelling with STRIDE, and configuration inspection]. Each ASVS 5.0.0 chapter was assessed against the targeted level in section 6. ASVS 5.0 places documentation requirements at the start of most chapters (for example V8.1 Authorization Documentation), so missing design documentation is itself recorded as a finding. No penetration testing was performed; that is planned for [YYYY-MM-DD] and will be reported separately.

1.3 Inputs and references

InputVersion / link
Design document[link, version]
Architecture description[link]
Existing threat model[link or "none"]
Data classification policy[link]
OWASP ASVS5.0.0 (May 2025)
Organisation's tailored ASVS profile[link or "none, full standard used"]
Previous security reviews[link or "none"; note if they used ASVS 4.0.3]

1.4 Moving from ASVS 4.0.3

If earlier reviews used ASVS 4.0.3, do not reuse their requirement numbers. Version 5.0.0 reorganised the standard into seventeen chapters, moved threat modelling and secure development lifecycle topics out of scope, split authentication, tokens and OAuth into separate chapters, and added chapters on web frontend security and WebRTC. Map old findings to the new chapters using the OWASP mapping material and record the old ID in the finding description.

2. Scope and assets

Scope, assets and actors define what the review covers and whose interests the controls protect.

2.1 Scope

In scope:

  • Example: Web front end (React single-page app), served from a CDN.
  • Example: Claims API (Node.js) and its PostgreSQL database.
  • Example: Receipt upload and storage in object storage.
  • Example: Integration with the corporate identity provider (OIDC) and the payroll system (SFTP export).

Out of scope:

  • Example: The identity provider itself, reviewed under [SDR-IDP-003].
  • Example: Corporate laptops and mobile device management.
  • Example: CI/CD pipeline hardening, covered by the supply chain security assessment [SCS-002]. ASVS 5.0 treats build and hosting as adjacent to, not part of, its scope.

2.2 Assets

IDAssetClassificationWhy it matters
A-01Expense claims and amountsConfidentialFraud and financial loss if altered
A-02Receipt imagesConfidential, may contain personal dataPrivacy breach, card numbers on receipts
A-03Employee bank detailsRestrictedPayment redirection fraud
A-04Approver decisions and audit logConfidential, integrity criticalNon-repudiation of approvals
A-05API signing keys and database credentialsSecretFull compromise
[A-nn][Asset][Class][Impact]

2.3 Actors

ActorTrust levelAccess
EmployeeAuthenticated, low privilegeOwn claims only
ApproverAuthenticated, elevatedClaims of direct reports
Finance administratorAuthenticated, high privilegeAll claims, payroll export
Payroll systemMachine identityReceives daily export
Anonymous internet userUntrustedLogin page and public assets only

3. Data flow diagram

The diagram shows the main components, the numbered data flows and the trust boundaries (grouped zones) used in the rest of this review.

FlowFromToDataProtection
F2BrowserClaims APIClaims, amounts, bank detailsTLS 1.2+, OIDC access token
F6BrowserReceipt storageReceipt imagesTLS, pre-signed URL valid 5 minutes, size limit
F7Claims APIPayrollApproved paymentsSFTP with key authentication, file signed
[Fn][Source][Destination][Data][Controls]

4. Trust boundaries

Each boundary below lists the flows that cross it and the controls the review expects to find there.

IDBoundaryCrossing flowsControls expected at the boundaryASVS chapters
TB-1Internet to cloud APIF2, F6Authentication, authorization per object, input validation, rate limitingV2, V4, V6, V8
TB-2API to databaseF4Least-privilege database role, parameterised queriesV1, V13
TB-3Cloud to payroll networkF7Mutual authentication, integrity of export file, allow-listed sourceV12, V11
TB-4Identity provider to APIF3Token signature, issuer and audience validationV9, V10
[TB-n][Boundary][Flows][Controls][Vn]

5. Threat summary

Threats were identified with STRIDE (spoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege) per flow and boundary. Likelihood and impact are rated 1 to 5 and combined as Risk=Likelihood×Impact\text{Risk} = \text{Likelihood} \times \text{Impact}, giving a score from 1 to 25.

IDThreatSTRIDEFlow / boundaryLIRiskRelated chapter
T-01Employee reads or edits another employee's claim by changing the claim IDE, IF2 / TB-14416V8 Authorization
T-02Malicious file uploaded as a receipt and later opened by financeTF63412V5 File Handling
T-03Approver denies having approved a fraudulent claimRF2248V16 Security Logging and Error Handling
T-04Payroll export altered in transit to redirect paymentsTF7 / TB-32510V12 Secure Communication
T-05Credential stuffing against the login flowSF3339V6 Authentication
T-06Forged or replayed access token accepted by the APIS, EF2 / TB-42510V9 Self-contained Tokens
[T-nn][Threat][Letter][Flow][1-5][1-5][score][Chapter]

6. ASVS level targeted

ASVS 5.0.0 defines three verification levels of increasing depth. Level 1 contains the most critical first-layer defences and is the place to start. Level 2 adds the requirements that most applications handling business or personal data should meet, and compliance with L2 means meeting all L1 and L2 requirements. Level 3 adds defence-in-depth requirements for the most critical applications, such as those moving money or holding health data. Organisations are encouraged to tailor the standard, omitting chapters that do not apply.

ItemValue
Target level[L2]
RationaleExample: Handles bank details and personal data (A-02, A-03) and triggers payments; a breach has financial and regulatory impact.
Chapters raised to L3Example: V11 Cryptography for bank details; V16 for audit logging of approvals
Chapters not applicableExample: V17 WebRTC (no real-time media); V4.3 GraphQL and V4.4 WebSocket (not used)
ASVS version used5.0.0

7. Per-chapter review

The summary table gives the result for each ASVS 5.0.0 chapter at the targeted level; the prompts in 7.2 guide the conversation per chapter.

7.1 Summary table

ChapterNameStatusEvidenceFindings
V1Encoding and Sanitization[Met]Example: ORM with bound parameters; React output encoding; no evalNone
V2Validation and Business Logic[Not met]Example: Schema validation on every endpoint, but a claim can be approved by its submitterSR-002
V3Web Frontend Security[Partial]Example: CSP present; no Subresource Integrity on third-party scriptSR-007
V4API and Web Service[Met]Example: OpenAPI schema enforced; Content-Type set on every responseNone
V5File Handling[Partial]Example: Size limit set; content type trusted from clientSR-008
V6Authentication[Met]Example: SSO via corporate IdP with MFA enforcedNone
V7Session Management[Partial]Example: 8-hour token lifetime; logout does not revoke refresh tokenSR-003
V8Authorization[Not met]Example: No per-object ownership check on GET /claims/{id}SR-001
V9Self-contained Tokens[Met]Example: JWT signature, issuer, audience and expiry validated by middlewareNone
V10OAuth and OIDC[Partial]Example: Tokens held in browser JavaScript rather than a backend-for-frontendSR-003
V11Cryptography[Partial]Example: Disk encryption only; no documented key lifecycle; bank details not field-encryptedSR-004
V12Secure Communication[Met]Example: TLS 1.2 and 1.3 only; internal calls use TLS with certificate validationNone
V13Configuration[Partial]Example: Secrets in CI environment variables; no rotationSR-009
V14Data Protection[Met]Example: No sensitive data in URLs; caches bypassed for receiptsNone
V15Secure Coding and Architecture[Partial]Example: No documented remediation time frame for vulnerable dependenciesSR-006
V16Security Logging and Error Handling[Partial]Example: Approvals logged without actor IP; logs editable by adminsSR-005
V17WebRTC[Not applicable]No real-time media or TURN serverNone

7.2 Review prompts per chapter

Use these prompts to guide the discussion for each chapter. They are paraphrased starting points, not a substitute for the ASVS requirements.

V1 Encoding and Sanitization (sections: architecture, injection prevention, sanitization, memory and unmanaged code, safe deserialization). Is output encoded for its interpreter at the point of use? Are queries parameterised? Is dynamic code execution avoided? Are untrusted serialised objects ever deserialised? Example reference: v5.0.0-1.2.1 (context-relevant output encoding, L1).

V2 Validation and Business Logic (documentation, input validation, business logic security, anti-automation). Is input validated against expected values and structures? Can workflow steps be skipped, repeated or reordered? Are limits enforced on high-value or high-frequency actions? Example: v5.0.0-2.3.1 (business flows processed in order, L1).

V3 Web Frontend Security (documentation, unintended content interpretation, cookie setup, browser security headers, origin separation, external resource integrity, other browser concerns). Are cookies prefixed and marked Secure? Are HSTS, CSP and related headers set? Are third-party scripts pinned with integrity checks? Example: v5.0.0-3.4.1 (HSTS on all responses, L1).

V4 API and Web Service (generic web service security, HTTP message structure validation, GraphQL, WebSocket). Does each response declare the correct content type? Are request smuggling and parser differences between proxies and servers prevented? Are GraphQL queries limited?

V5 File Handling (documentation, upload and content, storage, download). Are size, extension and content of uploads checked, including inside archives? Can stored files ever be executed by the server? Example: v5.0.0-5.2.1 (size limits, L1).

V6 Authentication (documentation, password security, general authentication, factor lifecycle and recovery, MFA, out-of-band, cryptographic authenticators, identity providers). Are brute force and credential stuffing controlled? Is MFA required where the level demands it? Is account recovery as strong as login?

V7 Session Management (documentation, fundamentals, timeout, termination, abuse defences, federated re-authentication). Are sessions verified by a trusted backend? Does logout make the session unusable? Are inactivity and absolute timeouts documented and enforced?

V8 Authorization (documentation, general design, operation level, other considerations). Is access checked for both the function and the specific data item? Is enforcement done in a trusted service layer? Example: v5.0.0-8.2.2 (data-specific access, mitigating IDOR and BOLA, L1).

V9 Self-contained Tokens (token source and integrity, token content). Is every token's signature or MAC validated before its contents are trusted? Are issuer, audience and validity period checked?

V10 OAuth and OIDC (generic, client, resource server, authorization server, OIDC client, OpenID provider, consent). Are tokens kept away from components that do not need them? Are redirect URIs matched exactly? Example: v5.0.0-10.4.1 (exact redirect URI allowlist, L1).

V11 Cryptography (inventory and documentation, implementation, encryption algorithms, hashing, random values, public key, in-use data). Is there a cryptographic inventory and key lifecycle policy? Are weak modes and paddings excluded? Example: v5.0.0-11.3.1 (no ECB or weak padding, L1).

V12 Secure Communication (general TLS, HTTPS to external services, service-to-service). Are only current TLS versions enabled? Do internal connections authenticate and encrypt as well as external ones?

V13 Configuration (documentation, backend communication, secret management, unintended information leakage). Are secrets in a vault with least-privilege access? Are debug endpoints, directory listings and version banners disabled? Example: v5.0.0-13.3.1 (secrets management solution, L2).

V14 Data Protection (documentation, general, client-side). Is sensitive data classified and kept out of URLs, caches and browser storage? Example: v5.0.0-14.2.1 (no sensitive data in URLs or query strings, L1).

V15 Secure Coding and Architecture (documentation, architecture and dependencies, defensive coding, safe concurrency). Are remediation time frames defined for vulnerable components and met? Are mass assignment and race conditions prevented? Example: v5.0.0-15.2.1 (components within documented remediation time frames, L1).

V16 Security Logging and Error Handling (documentation, general logging, security events, log protection, error handling). Are authentication and authorization events logged with enough context? Are logs protected from modification? Do errors return generic messages? Example: v5.0.0-16.3.1 (authentication events logged, L2).

V17 WebRTC (TURN server, media, signaling). If the system carries real-time media, are TURN servers restricted, media encrypted and signaling protected against flooding? Mark the chapter not applicable otherwise.

8. Findings register

Findings are numbered SR-NNN and keep their number when closed.

IDTitleASVS refThreatSeverityDescription and impactRecommendationOwnerStatus
SR-001Missing object-level authorization on claimsv5.0.0-8.2.2T-01CriticalExample: GET and PATCH /claims/{id} check only that the user is logged in. Any employee can read or change any claim by enumerating IDs.Enforce ownership or approver relationship in a shared authorization layer; add negative tests[@name][Open]
SR-002Self-approval possiblev5.0.0-2.3.1 and V2.1 documentationT-03HighExample: A user who is both submitter and approver can approve their own claim.Block approval when approver equals submitter; require a second approver above [EUR 1,000][@name][Open]
SR-003Tokens exposed to browser JavaScript and not revoked on logoutv5.0.0-10.1.1, v5.0.0-7.4.1T-06MediumExample: Access and refresh tokens stored in localStorage for 8 hours are exposed to any XSS and survive logout.Backend-for-frontend holding tokens; short-lived session cookie; revoke refresh token on logout[@name][Open]
SR-004Bank details not encrypted at field level, no key policyv5.0.0-11.1.1T-04HighExample: Database administrators and backups expose bank details in clear text; no documented key lifecycle.Field-level encryption with keys in [KMS]; documented key lifecycle; restrict decrypt to the payment job[@name][In progress]
SR-005Audit log not tamper-evidentv5.0.0-16.4.2T-03MediumExample: Finance administrators can delete approval log rows.Write audit events to an append-only store; alert on gaps[@name][Open]
SR-008Upload content not validatedv5.0.0-5.2.2T-02MediumExample: Content type is taken from the client header; a script renamed .jpg is stored and served.Check extension and magic bytes server-side; serve with Content-Disposition: attachment[@name][Open]
[SR-nnn][Title][v5.0.0-x.y.z][T-nn][Severity][Description and impact][Recommendation][@name][Status]

9. Remediation plan

Remediation targets by severity: Critical before release, High within [30 days] or before release if exploitable from the internet, Medium within [90 days], Low at the team's discretion with a ticket.

FindingActionTicketOwnerTarget dateBlocks releaseVerification
SR-001Central policy check plus tests for cross-user access[SEC-101][@name]YYYY-MM-DDYesAutomated negative tests and retest by security
SR-002Segregation-of-duties rule in approval service[SEC-102][@name]YYYY-MM-DDYesUnit tests and manual retest
SR-004Field encryption for bank details and key policy[SEC-104][@name]YYYY-MM-DDNo, accepted until dateConfiguration review
[SR-nnn][Action][Ticket][@name]YYYY-MM-DD[Yes / No][How it will be verified]

The timeline below shows the plan against the release date.

10. Residual risk and decision

Overall result: [Approved / Approved with conditions / Rejected].

Example: The design is approved with conditions. SR-001 and SR-002 must be fixed and retested before go-live. SR-004 is accepted until YYYY-MM-DD because backups are already encrypted and access to them is limited to two administrators.

Accepted riskFindingJustificationAccepted byExpires
Example: Bank details unencrypted at field levelSR-004Compensating controls: encrypted backups, restricted DBA access, monitoring[@product-owner]YYYY-MM-DD
[Risk][SR-nnn][Justification][@name]YYYY-MM-DD

11. Sign-off

By signing, each party confirms they have read the findings, agree with the remediation plan and, where applicable, accept the residual risk described in section 10.

RoleNameSignature or approval referenceDate
Security review lead[@name][Ticket or e-signature reference]YYYY-MM-DD
Engineering owner[@name][Reference]YYYY-MM-DD
Product owner[@name][Reference]YYYY-MM-DD
Risk owner for accepted risks[@name][Reference]YYYY-MM-DD

12. Appendices

The appendices hold the glossary, the severity scale and the references used throughout the review.

12.1 Glossary

TermMeaning
ASVSOWASP Application Security Verification Standard
BOLA / IDORBroken object level authorization / insecure direct object reference
DFDData flow diagram
STRIDESpoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege
Trust boundaryA point where data or control passes between zones of different trust
Residual riskRisk remaining after planned controls are in place

12.2 Severity scale

Severity is assigned from the risk score in section 5 and adjusted with a written reason when exploitability or exposure differs from the threat estimate.

SeverityRisk scoreTypical meaning
Critical20 to 25Remote, unauthenticated or trivial exploitation with major impact
High12 to 19Significant data exposure or fraud possible by an authenticated user
Medium6 to 11Exploitation requires conditions or has limited impact
Low1 to 5Defence in depth or hardening improvement

12.3 References

ReferenceUse
OWASP ASVS 5.0.0 (github.com/OWASP/ASVS, folder 5.0)Chapters, sections, levels and requirement IDs used in sections 6 to 8
OWASP Threat Modeling resourcesData flow and STRIDE approach
[Internal security policy]Classification and remediation targets
[Design document]System under review

Standard and licence note

Based on the OWASP Application Security Verification Standard version 5.0.0 (May 2025) by the OWASP Foundation, licensed under Creative Commons Attribution-ShareAlike 4.0 (https://creativecommons.org/licenses/by-sa/4.0/). This template uses the titles of the seventeen ASVS 5.0.0 chapters (V1 Encoding and Sanitization to V17 WebRTC), their section names, the three-level model and the v5.0.0-<chapter>.<section>.<requirement> reference format; the review prompts are original paraphrases and no requirement text is reproduced. Obtain the ASVS from owasp.org or the OWASP ASVS GitHub repository for the normative requirements. As an adaptation of an OWASP structure, this template is shared under CC BY-SA 4.0. Structure aligned with OWASP ASVS 5.0.0 for the per-chapter review; STRIDE is used as a general threat-modelling practice.

संबंधित टेम्पलेट