Checklist: Securing Enterprise Services
Retired Content |
---|
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |
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:
- Enterprise 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 Developer Checks Administrator Checklist
How to Use This Checklist
This checklist is a companion to Chapter 11, "Building Secure Serviced Components" and Chapter 17, "Securing Your Application Server." Use it to help you secure Enterprise Services and the server it runs on, or as a quick evaluation snapshot of the corresponding chapters.
This checklist should evolve with steps that you discover to secure Enterprise Services.
Developer Checks
Use the following checks if you build serviced components.
Authentication
Check | Description |
---|---|
Call-level authentication is used at minimum to prevent anonymous access. Serviced component assemblies include:
|
Authorization
Check | Description |
---|---|
Role-based security is enabled. Serviced component assemblies include: [assembly: ApplicationAccessControl(true)] | |
Component-level access checks are enabled to support component-level, interface-level, and method-level role checks. Serviced component assemblies include:
|
|
Component-level access checks are enforced for all serviced components. Classes are annotated with:
|
|
To support method-level security, the [SecurityMethod] attribute is used on classes or method implementations, or the [SecurityRole] attribute is used on method implementations. |
Configuration Management
Check | Description |
---|---|
Server applications are configured to run with least-privileged accounts. | |
Server applications only run using the interactive user account during development. | |
Object constructor strings do not contain plain text secrets. |
Sensitive Data
Check | Description |
---|---|
In the absence of IPSec encryption, RPC encryption is used to secure sensitive data over the network in the absence of an IPSec infrastructure. Serviced component assemblies that use RPC encryption include:
|
Auditing and Logging
Check | Description |
---|---|
User transactions are logged to an event log. The audit record includes original caller identity from SecurityCallContext.OriginalCaller. |
Deployment Considerations
Check | Description |
---|---|
Port ranges are defined if you use dynamic port range allocation OR static endpoint mapping is configured. | |
Secrets are not stored in object constructor strings. Secrets such as database connection strings are encrypted prior to storage. | |
The server application run-as account is configured as a least-privileged account. |
Impersonation
Check | Description |
---|---|
The impersonation level is configured correctly. For ASP.NET clients, the impersonation level is configured in Machine.config on the <processModel> element.
For Enterprise Services client applications, the level is configured in the COM+ catalog. |
|
Serviced component assemblies define the required impersonation level by using the ApplicationAccessControl attribute as shown below:
|
Administrator Checklist
Check | Description |
---|---|
Latest COM+ updates and patches are installed. | |
Object constructor strings do not contain plain text secrets. | |
COM+ administration components are restricted. | |
Impersonation level that is set for the application is correct. | |
Server applications are configured to run with a least-privileged account.
Server applications do not run using the identity of the interactively logged on user. |
|
DTC service is disabled if it is not required. |
Retired Content |
---|
This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist. |