Objective
Verify that the application and its supporting environment expose only the features, services, components and interfaces required for legitimate business or operational purposes.
Every enabled service or application feature can increase the attack surface. Components that are not required for normal operation should generally be disabled, removed or isolated.
The review should consider not only visible application functionality but also administrative interfaces, diagnostic endpoints, legacy components and unnecessary network services.
Do not disable a component solely because it appears unused during a short test. Confirm its business or operational requirement with the system owner before removing it from a production environment.
Scope
Review the following application and infrastructure surfaces where they are within the assessment scope:
Prerequisites
| Authorization | Confirm authorization to review and test application functionality and exposed services. |
|---|---|
| Architecture information | Obtain an appropriate architecture or deployment overview where available. |
| Service inventory | Obtain an authorized inventory of application and supporting services. |
| Business owner | Identify an owner who can confirm whether potentially unused functionality is operationally required. |
Methodology
Establish an inventory of exposed functionality and compare it with documented application requirements. Investigate components that cannot be justified by an identified business or operational need.
| Method | Purpose |
|---|---|
| Application mapping | Identify publicly accessible and authenticated functionality. |
| Configuration review | Identify enabled modules, features and services. |
| Endpoint review | Identify legacy, diagnostic and administrative interfaces. |
| Service inventory comparison | Determine whether exposed services have documented requirements. |
Test procedure
Review categories
| Category | Examples |
|---|---|
| Diagnostic features | Debug pages, diagnostic consoles, profiling interfaces and verbose status endpoints. |
| Development functionality | Test pages, development utilities, sample controllers and development APIs. |
| Legacy functionality | Deprecated endpoints, old application modules and previous API versions. |
| Administrative interfaces | Management consoles and configuration interfaces not required for normal users. |
| Optional services | Services enabled by default but not required by the deployed application. |
| Sample content | Demo pages, sample files, documentation examples and installation content. |
Example inventory
Component Required Exposure
------------------------------------------------
Web application Yes Public
Application API Yes Public
Admin console Yes Restricted
Debug endpoint No Public
Demo content No Public
Legacy API v1 No Public
Monitoring endpoint Yes Internal
An inventory should explicitly identify why each externally reachable component exists. An undocumented service should not automatically be treated as a vulnerability; it should be investigated and justified.
Assessment
| Condition | Assessment consideration |
|---|---|
| Required feature | Retain and apply appropriate access controls and configuration. |
| Unnecessary feature disabled | Generally appropriate. |
| Development feature in production | Assess as a configuration weakness, especially if externally accessible. |
| Legacy endpoint exposed | Determine whether it remains required and whether it introduces avoidable attack surface. |
| Administrative interface exposed | Verify that exposure is intentional and protected by appropriate authentication, authorization and network controls. |
| Sample/demo content exposed | Remove when not required and assess whether it discloses implementation information. |
Expected result
The deployed application exposes only functionality and services required for legitimate operation. Development, testing, legacy and unnecessary components are disabled, removed or appropriately isolated.
Administrative and operational interfaces that must remain enabled should have clearly defined access restrictions and should not be unnecessarily exposed to untrusted networks.
Failure criteria
A production deployment contains a development diagnostic interface that is not required for normal operation and is reachable from an untrusted network. The interface should be removed, disabled or appropriately restricted.
Remediation
Reduce the deployed attack surface by removing or disabling functionality that is not required for the application's intended operation.
Recommended approach
- Maintain an inventory of enabled application features and supporting services.
- Document the business or technical purpose of externally reachable functionality.
- Disable development and debugging functionality before production deployment.
- Remove sample, demo and installation content when it is no longer required.
- Retire deprecated APIs and legacy endpoints.
- Disable unnecessary framework and server modules.
- Restrict administrative interfaces to authorized networks and users.
- Remove unnecessary network-facing services.
- Include attack-surface review in deployment processes.
- Periodically revalidate the inventory after upgrades and architecture changes.
Example deployment configuration
Environment: production
Debug mode: disabled
Demo content: removed
Test endpoints: disabled
Legacy API: disabled
Admin interface: restricted
Required API: enabled
Required monitoring: internal only
Attack-surface reduction must not become an excuse for undocumented production changes. Record approved exceptions and verify application dependencies before disabling services.
Verification
Only required features and services remain available and appropriately restricted.
Unnecessary functionality or services remain exposed without adequate justification or controls.
The relevant feature, service or deployment configuration could not be adequately verified.
Evidence requirements
Remove credentials, private network addresses, internal hostnames, tokens, configuration secrets and other sensitive operational information before publishing evidence.
Classification
| WebOTG procedure | WebOTG-SM-009 |
|---|---|
| OWASP category | A02:2025 — Security Misconfiguration |
| Procedure type | Feature, component and service attack-surface review |
| Assessment result | PASS / FAIL / NOT TESTED |
| Finding severity | Determine from exposure, privileges, exploitability and the security impact of the unnecessary component. |
WebOTG-SM-009 is a WebOTG-defined verification procedure. The identifier is not an OWASP-defined test identifier.
References
| Source | Relevance |
|---|---|
| OWASP Top 10:2025 — A02 | Security Misconfiguration category. |
| OWASP Web Security Testing Guide | Web application security testing methodology. |
| OWASP Application Security Verification Standard | Application security verification requirements related to secure configuration and attack-surface reduction. |
| Vendor deployment documentation | Required services, modules and secure production deployment configuration. |
| Organizational architecture standards | Approved application components, services and network exposure. |
WebOTG should maintain official source URLs, source versions and review dates through its content-management system so references can be updated independently of the procedure template.