.gif)
Improving Web Application Security: Threats and Countermeasures J.D. Meier, Alex Mackman, Michael Dunner, Srinath Vasireddy, Ray Escamilla and Anandha Murukan
Microsoft Corporation
Published: June 2003
Applies to:
- Web Services (.NET Framework version 1.1)
See the "patterns & practices Security Guidance for Applications Index" for links to additional security resources.
See the Landing Page for the starting point and a complete overview of Improving Web Application Security: Threats and Countermeasures.
Contents
How to Use This Checklist
Design Considerations
Development Considerations
Administration Considerations
How to Use This Checklist
This checklist is a companion to Chapter 12, "Building Secure Web Services." Use it to help you build and secure your Web services and also as a snapshot of the corresponding chapter.
Design Considerations
| Check | Description |
.gif) | The authentication strategy has been identified. |
.gif) | Privacy and integrity requirements of SOAP messages have been considered. |
.gif) | Identities that are used for resource access have been identified. |
.gif) | Implications of code access security trust levels have been considered. |
Development Considerations
Input Validation
| Check | Description |
.gif) | Input to Web methods is constrained and validated for type, length, format, and range. |
.gif) | Input data sanitization is only performed in addition to constraining input data. |
.gif) | XML input data is validated based on an agreed schema. |
Authentication
| Check | Description |
.gif) | Web services that support restricted operations or provide sensitive data support authentication. |
.gif) | If plain text credentials are passed in SOAP headers, SOAP messages are only passed over encrypted communication channels, for example, using SSL. |
.gif) | Basic authentication is only used over an encrypted communication channel. |
.gif) | Authentication mechanisms that use SOAP headers are based on Web Services Security (WS Security) using the Web Services Enhancements WSE). |
Authorization
| Check | Description |
.gif) | Web services that support restricted operations or provide sensitive data support authorization. |
.gif) | Where appropriate, access to Web service is restricted using URL authorization or file authorization if Windows authentication is used. |
.gif) | Where appropriate, access to publicly accessible Web methods is restricted using declarative principle permission demands. |
Sensitive Data
| Check | Description |
.gif) | Sensitive data in Web service SOAP messages is encrypted using XML encryption OR messages are only passed over encrypted communication channels (for example, using SSL.) |
Parameter Manipulation
| Check | Description |
.gif) | If parameter manipulation is a concern (particularly where messages are routed through multiple intermediary nodes across multiple network links). Messages are digitally signed to ensure that they cannot be tampered with. |
Exception Management
| Check | Description |
.gif) | Structured exception handling is used when implementing Web services. |
.gif) | Exception details are logged (except for private data, such as passwords). |
.gif) | SoapExceptions are thrown and returned to the client using the standard <Fault> SOAP element. |
.gif) | If application-level exception handling is required a custom SOAP extension is used. |
Auditing and Logging
| Check | Description |
.gif) | The Web service logs transactions and key operations. |
Proxy Considerations
| Check | Description |
.gif) | The endpoint address in Web Services Description Language (WSDL) is checked for validity. |
.gif) | The URL Behavior property of the Web reference is set to dynamic for added flexibility. |
Administration Considerations
.gif)