WebOTG Security Testing Library ● Public reference
WebOTG
WEBOTG SECURITY TESTING PROCEDURE

WebOTG-DS-001 — Insecure Design Review

A structured procedure for identifying security weaknesses caused by missing security requirements, unsafe architectural decisions, insufficient abuse-case analysis and design controls that cannot adequately enforce the application's intended security properties.

WebOTG ID DS-001 OWASP A06:2025 Type Design Review Method Manual + Architecture Review Version 1.0
01 / OBJECTIVE

Objective

What are we verifying?

Verify that the application has been designed with explicit security requirements and that its architecture, workflows and business rules can enforce those requirements against realistic abuse cases.

Insecure design is fundamentally different from a straightforward implementation defect. An implementation bug can often be corrected without changing the underlying security model. An insecure design may remain vulnerable even when the code works exactly as originally specified.

The assessment therefore examines whether the intended security properties were considered before implementation, and whether the design provides an effective mechanism for enforcing them.

02 / SCOPE

Scope

The review should consider:

Security requirements and acceptance criteria
Threat modelling and abuse-case analysis
Authentication and identity architecture
Authorization model and trust boundaries
Business workflows and state transitions
Resource and transaction limits
Sensitive operations and approval workflows
Recovery, reset and exception paths
Third-party and external service dependencies
Failure handling and secure defaults
03 / PREREQUISITES

Prerequisites

Authorization Confirm authorization to review application architecture, requirements, workflows and security controls.
Architecture documentation Obtain relevant architecture diagrams, component relationships, trust boundaries and deployment information.
Business requirements Identify the intended business rules, security objectives and critical workflows.
Security requirements Obtain available security requirements, threat models, risk assessments and acceptance criteria.
Test environment Prefer a controlled environment for validating workflows and security assumptions.
04 / METHODOLOGY

Methodology

Insecure design assessment should begin with the security properties the system is expected to provide, rather than beginning with individual source-code defects.

Review stage Primary question
Business context What must the system protect and what business outcomes must it preserve?
Security requirements What security properties are explicitly required?
Threat model Which realistic threats and abuse cases were considered?
Architecture Does the architecture provide controls capable of enforcing those requirements?
Workflows Can users reach sensitive states through unintended sequences of actions?
Failure paths Do exceptional and recovery paths maintain the same security properties?
05 / PROCEDURE

Test procedure

01
Identify critical assets Determine which data, operations, accounts, transactions and business processes require protection.
02
Identify security requirements Document the required confidentiality, integrity, availability, authorization, accountability and business-control properties.
03
Review trust boundaries Identify boundaries between users, services, administrative functions, external systems and privileged components.
04
Model realistic abuse cases Consider how an authorized or unauthorized user could misuse legitimate functionality to violate the intended security property.
05
Review architecture Determine whether the architecture contains appropriate preventive and limiting controls.
06
Test critical workflows Exercise normal, alternate, repeated, interrupted and recovery paths around sensitive operations.
07
Evaluate security assumptions Identify assumptions that depend entirely on client behavior, user honesty or undocumented operational processes.
08
Determine design adequacy Establish whether the observed weakness is a missing or fundamentally inadequate security control in the system design.
06 / SECURITY REQUIREMENTS

Security requirements

Security controls should be derived from explicit requirements. A system cannot reliably enforce a security property that was never defined.

AUTHENTICATION

Define which operations require authentication, what assurance level is required and when re-authentication is necessary.

AUTHORIZATION

Define who may perform each sensitive action and what object-level restrictions apply.

TRANSACTIONS

Define which business operations require validation, limits, approvals or confirmation.

ACCOUNT RECOVERY

Define security requirements for password reset, account recovery and identity verification.

DATA PROTECTION

Define how sensitive information should be protected throughout its lifecycle.

ABUSE PREVENTION

Define controls for automated abuse, excessive requests, resource exhaustion and business-process manipulation.

07 / THREAT MODELLING

Threat and trust-boundary review

The assessment should determine whether realistic threats were considered at the design stage and whether the architecture contains controls appropriate to those threats.

Area Review question
External users What can an untrusted user legitimately access or influence?
Authenticated users What happens if a legitimate account is maliciously controlled?
Privileged users Are administrative operations isolated from ordinary user functionality?
Internal services What happens if a downstream service is compromised or behaves unexpectedly?
Third parties Does the design appropriately handle failures or compromise of external dependencies?
Client-controlled state Does the server independently enforce security-critical decisions?
A threat model should influence architecture

A document that lists threats but does not lead to concrete controls, design decisions or verification requirements provides limited security value.

08 / ABUSE CASES

Abuse-case analysis

Security testing should examine whether legitimate functionality can be combined or repeated in a way that violates business or security requirements.

Can a normal user perform an operation outside its intended business purpose?
Can sensitive actions be performed without the required approval or verification?
Can a workflow be completed in an unintended order?
Can security controls be bypassed by using another legitimate workflow?
Can operations be repeated beyond their intended business limits?
Can a low-privileged account trigger a high-impact backend operation?
Are recovery and exception paths protected as strongly as the normal workflow?

Example abuse scenario

Business workflow DESIGN REVIEW

An application allows a user to create a transaction and separately confirm the transaction. The design assumes that confirmation can only occur for the transaction created by the same user, but the transaction identifier is trusted without enforcing ownership on the server.

09 / ARCHITECTURE

Architecture review

Architecture property Verification focus
Trust boundaries Security decisions occur at appropriate trust boundaries rather than relying on untrusted components.
Least privilege Components receive only the permissions required for their intended function.
Defense in depth Critical security properties do not depend on a single easily bypassed control.
Secure defaults Failure, omission or misconfiguration does not unnecessarily disable important security controls.
Isolation Sensitive functions and data are appropriately separated from lower-trust components.
Dependency trust External services are not granted more authority than required.
10 / BUSINESS LOGIC

Business logic and state transitions

A secure design must define which state transitions are valid and which conditions must be satisfied before a sensitive operation is accepted.

Review item Question
Preconditions Are all required conditions verified before the operation is executed?
Ownership Is the actor authorized to modify the affected resource?
Sequence Can required steps be skipped or reordered?
Replay Can a sensitive operation be repeated when it should only occur once?
Limits Are quantity, frequency, monetary or resource limits enforced server-side?
Concurrency Can simultaneous requests produce an invalid business state?
11 / ASSESSMENT

Assessment

Condition Assessment consideration
Adequate design Security requirements are defined and supported by enforceable architectural and workflow controls.
Missing requirement A necessary security property was not defined or considered.
Missing control The requirement exists, but the design provides no effective mechanism to enforce it.
Bypassable design A legitimate alternative workflow can circumvent the intended security control.
Unsafe assumption A security-critical decision depends on an untrusted client, user behavior or undocumented operational assumption.
12 / FAILURE CRITERIA

Failure criteria

A critical security requirement is absent from the system design.
A sensitive business operation has no effective server-side security enforcement.
Security-critical decisions depend on client-controlled values.
An alternate legitimate workflow bypasses a required security control.
Recovery or exception functionality provides weaker security than the primary workflow without a valid design justification.
Sensitive operations lack appropriate transaction, frequency, quantity or resource controls.
The architecture grants excessive trust or privilege to a component or external dependency.
Example finding INSECURE DESIGN

The application's password-reset architecture provides account recovery based solely on a user-controlled account identifier and does not require sufficient proof of control over the account. The weakness is architectural because the workflow lacks an adequate identity-verification mechanism rather than merely containing an implementation error.

13 / REMEDIATION

Remediation

Design-level weaknesses generally require changes to requirements, architecture or business workflows. Adding a superficial validation check may not address the underlying problem.

  1. Define explicit security requirements for critical business processes.
  2. Identify realistic abuse cases before implementation.
  3. Establish trust boundaries and enforce security decisions on the trusted side of those boundaries.
  4. Apply least privilege to users, services and external integrations.
  5. Design sensitive workflows with explicit state transitions and server-side preconditions.
  6. Protect recovery, reset and exception workflows to the required security level.
  7. Introduce appropriate rate, quantity, transaction or resource limits where abuse is foreseeable.
  8. Avoid relying on client-side controls for security-critical decisions.
  9. Use defense-in-depth for high-impact security properties.
  10. Incorporate security acceptance criteria into the development lifecycle.
Do not treat every design flaw as an input-validation problem

If the underlying workflow permits an unauthorized business action, filtering a particular parameter does not necessarily fix the design. The complete security property and workflow must be addressed.

14 / VERIFICATION

Post-remediation verification

01
Reproduce the original abuse case Repeat the workflow that previously demonstrated the design weakness.
02
Verify the security requirement Confirm that the intended security property is explicitly enforced by the revised design.
03
Test alternate workflows Attempt equivalent legitimate routes to the same sensitive operation to ensure the control cannot simply be bypassed elsewhere.
04
Test failure and recovery paths Verify that errors, retries, resets, cancellations and recovery mechanisms preserve the intended security properties.
05
Verify server-side enforcement Confirm that security-critical decisions cannot be bypassed by modifying client-controlled state.
06
Confirm business functionality Verify that legitimate users can still complete the intended business process.
PASS

The required security property is enforced by the design and the tested abuse cases no longer violate the intended security boundary.

FAIL

The design still permits the original abuse case or an equivalent bypass through another workflow.

NOT TESTED

The design or workflow could not be adequately evaluated using the available documentation, access or test environment.

15 / EVIDENCE

Evidence requirements

Relevant security requirement
Architecture or workflow description
Relevant trust boundary
Abuse-case description
Baseline workflow evidence
Reproduction evidence
Impact analysis
Remediated architecture or workflow
Post-remediation test evidence
Final PASS / FAIL determination
Protect assessment evidence

Redact credentials, personal information, production records, session data, security tokens and other unrelated sensitive information before evidence is stored or published.

16 / CLASSIFICATION

Classification

WebOTG procedure WebOTG-DS-001
OWASP category A06:2025 — Insecure Design
Procedure type Security architecture, requirement and business-workflow review
Assessment result PASS / FAIL / NOT TESTED
Finding severity Determine according to affected assets, business impact, exploitability, privileges required and the extent to which the design weakness can be abused.
WebOTG classification notice

WebOTG-DS-001 is a WebOTG-defined verification procedure. The identifier is not an OWASP-defined test identifier.

17 / REFERENCES

References

Source Relevance
OWASP Top 10:2025 — A06 Primary category definition for Insecure Design.
OWASP Web Security Testing Guide Testing methodology relevant to application security assessment.
OWASP Application Security Verification Standard Verification requirements relevant to application security architecture and design.
OWASP Threat Modeling Guidance for identifying threats, security requirements and abuse cases during system design.
CWE Common weakness classifications relevant to design and architectural security deficiencies.

WebOTG should maintain authoritative source references, document versions and review dates through its content management system so that the procedure can be maintained independently from application code.