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

WebOTG-SM-023 — Unnecessary Features and Services Enabled

A structured procedure for identifying unnecessary application features, modules, services, protocols, endpoints and management functionality enabled in production and determining whether their exposure creates avoidable security risk.

WebOTG ID SM-023 OWASP A02:2025 Type Attack Surface Review Method Manual Verification Version 1.0
01 / OBJECTIVE

Objective

What are we verifying?

Verify that only required application functionality, services, modules and protocols are enabled and exposed in the production environment.

Every enabled component adds potential attack surface. A feature that is not required by the application's business function provides little security value while potentially introducing additional code paths, configuration requirements, vulnerabilities and administrative complexity.

This procedure therefore evaluates whether the deployed system follows the principle of least functionality: enable what is required, restrict what must remain, and remove what has no legitimate operational purpose.

"Unused" must be established, not assumed

A feature should not be disabled solely because it appears unused during testing. Confirm its operational purpose with the system owner or approved architecture documentation before removing it from production.

02 / SCOPE

Scope

Review applicable functionality across:

Web-server modules
Application framework features
API endpoints
Administrative interfaces
Debug and diagnostic endpoints
Legacy protocols and services
File-management and upload functionality
Development and testing utilities
Third-party modules and extensions
03 / PREREQUISITES

Prerequisites

Authorization Confirm authorization to inspect and test the application's exposed functionality.
Architecture Understand the intended application architecture and major functional components.
Service inventory Obtain an inventory of enabled services, modules, endpoints and externally reachable interfaces where possible.
Business requirements Identify which features are required for normal business operations.
04 / METHODOLOGY

Methodology

Build a functional inventory of the application and supporting web stack. For each exposed capability, determine its purpose, intended users, exposure boundary and security necessity.

Review Purpose
Enabled functionality Identify features that are active in the deployed environment.
External exposure Determine which functionality is reachable by untrusted clients.
Business necessity Determine whether each feature has a legitimate operational requirement.
Access boundary Determine whether administrative or sensitive functionality is restricted appropriately.
Component dependencies Identify whether disabling a feature could affect required application functionality.
05 / PROCEDURE

Test procedure

01
Establish the intended feature set Identify the functionality required by the application's documented business and operational requirements.
02
Inventory enabled components Review enabled modules, services, endpoints, protocols, extensions and management interfaces.
03
Determine exposure Establish whether each feature is reachable externally, internally, by authenticated users or only by administrators.
04
Identify unnecessary functionality Compare the enabled feature set with documented business requirements and the approved production baseline.
05
Evaluate security impact Determine whether the unnecessary functionality introduces additional attack surface, privileges, data access or exploitable code paths.
06
Record the configuration state Capture sufficient evidence to reproduce the finding and establish the exact feature or service involved.
06 / FEATURES TO REVIEW

Features and services to review

DEBUGGING

Debug consoles, profilers, development toolbars, trace endpoints and verbose diagnostic interfaces.

ADMINISTRATION

Management panels and administrative endpoints that are not required to be publicly reachable.

LEGACY PROTOCOLS

Older or insecure protocols retained despite having no current business requirement.

FILE SERVICES

Directory browsing, file-management interfaces or transfer functionality not required by the application.

SAMPLE APPS

Demonstration applications, test routes, examples and vendor-provided sample functionality.

EXTENSIONS

Plugins, modules or extensions installed but not required for the application's operation.

DIAGNOSTICS

Health, metrics, tracing or diagnostic endpoints whose exposure is broader than required.

UNUSED APIS

Legacy API versions or endpoints retained after their intended functionality has been retired.

Example exposure

HTTP request EXAMPLE
GET /debug/ HTTP/1.1
Host: application.example

HTTP/1.1 200 OK
Content-Type: text/html

Development Debug Console

[Request]
[Environment]
[Database]
[Configuration]
An exposed feature is not automatically a vulnerability

The existence of an endpoint alone is insufficient to establish a security finding. Determine whether the functionality is required, who can access it, what it exposes or permits, and whether its exposure violates the approved security configuration.

07 / ASSESSMENT

Assessment

Condition Assessment consideration
Required feature No finding solely because the feature is enabled, provided it is securely configured and appropriately exposed.
Required but unnecessarily exposed Assess whether the access boundary can be reduced to the intended users or networks.
Unused feature Determine whether it can be disabled without affecting required functionality.
Legacy feature Determine whether the feature remains necessary and whether a supported replacement exists.
Debug functionality Determine whether development-only functionality is accessible in production.
Administrative feature Verify that access is restricted to authorized administrators.
08 / EXPECTED RESULT

Expected result

Pass condition

Production deployments expose only functionality required for legitimate business and operational purposes, with administrative and sensitive functionality restricted to its intended access boundary.

Unnecessary modules, services, endpoints and development features should be disabled or removed where technically and operationally appropriate.

09 / FAILURE CRITERIA

Failure criteria

A development-only feature is exposed in production.
An unnecessary administrative or management interface is publicly reachable.
A legacy endpoint or service remains enabled without an approved operational requirement.
An unnecessary feature provides additional privileges or access to sensitive functionality.
Sample, test or diagnostic functionality is accessible to unauthorized users.
The organization cannot establish a legitimate operational purpose for an exposed high-risk service.
Example finding EXCESSIVE ATTACK SURFACE

A production application exposes a development diagnostics interface that is not required for normal application operation. The interface provides additional functionality and diagnostic information to clients beyond the application's intended public feature set.

10 / REMEDIATION

Remediation

Reduce the deployed attack surface to the minimum functionality required by the application's approved architecture and business requirements.

Recommended approach

  1. Maintain an inventory of enabled application and infrastructure functionality.
  2. Document the business or operational purpose of each exposed feature.
  3. Disable development-only and testing functionality in production.
  4. Remove unused modules, plugins and extensions.
  5. Disable unnecessary services and protocols.
  6. Remove obsolete or retired API versions where operationally possible.
  7. Restrict administrative and diagnostic interfaces to authorized users or trusted network boundaries.
  8. Apply the minimum required privileges to services that must remain enabled.
  9. Include feature and service minimization in the standard deployment baseline.
  10. Re-test application functionality after changes.

Example production baseline

Feature control CONCEPTUAL
Required application feature  -> ENABLED
Required admin feature        -> RESTRICTED
Development feature           -> DISABLED
Debug endpoint                -> DISABLED
Sample application            -> REMOVED
Unused plugin                 -> REMOVED
Legacy API                    -> RETIRED
Unused protocol               -> DISABLED
Diagnostic interface          -> RESTRICTED
Minimize attack surface without breaking required services

Do not treat "disable everything possible" as a security strategy. Features required by the business must remain available and should instead be securely configured and appropriately restricted.

11 / VERIFICATION

Verification

01
Repeat the original test Re-test the unnecessary endpoint, service or feature identified during the original assessment.
02
Confirm feature removal or restriction Verify that the feature is disabled, removed or accessible only through its intended boundary.
03
Verify administrative access Confirm that required management functionality remains accessible to authorized administrators through the approved access path.
04
Test required application functions Confirm that disabling unnecessary functionality has not affected legitimate business operations.
05
Review dependent components Verify that dependent services, integrations and background processes continue to operate correctly.
06
Verify persistence Confirm that the secure configuration survives the normal deployment or restart process and is not restored by a default configuration.
PASS

Unnecessary functionality has been removed, disabled or appropriately restricted while required services remain operational.

FAIL

Unnecessary functionality remains exposed or creates material additional security risk.

NOT TESTED

The relevant feature, service or configuration could not be adequately evaluated.

12 / EVIDENCE

Evidence requirements

Feature, module, endpoint or service identified
Business purpose or lack of required purpose
Exposure boundary
Configuration or response evidence
Security impact
Before-remediation evidence
Configuration change evidence
Post-remediation verification
Required application functionality verification
Final PASS / FAIL determination
Sanitize technical evidence before publication

Screenshots, configuration files and response captures may contain internal hostnames, credentials, tokens, personal information or other sensitive data. Remove such information before publishing evidence publicly.

13 / CLASSIFICATION

Classification

WebOTG procedure WebOTG-SM-023
OWASP category A02:2025 — Security Misconfiguration
Procedure type Feature, service and attack-surface minimization review
Assessment result PASS / FAIL / NOT TESTED
Finding severity Determine from the exposure, privileges, affected functionality, exploitability and resulting security impact.
WebOTG classification notice

WebOTG-SM-023 is a WebOTG-defined verification procedure. The identifier is not an OWASP-defined test identifier.

14 / REFERENCES

References

Source Relevance
OWASP Top 10:2025 — A02 Security Misconfiguration category.
OWASP Web Security Testing Guide Testing methodology relevant to configuration and exposed functionality.
OWASP Application Security Verification Standard Verification requirements relevant to secure configuration and deployment.
Vendor secure deployment documentation Component-specific guidance for production feature and service configuration.
Organization security baseline Defines approved enabled functionality, service exposure and administrative access requirements.

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.