Printer Friendly Version      Send     
Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
Security
Checklists
 Checklist: Securing Enterprise Serv...
.NET Framework Security
Checklist: Securing Enterprise Services
 

Patterns and Practices home

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:
[assembly: ApplicationAccessControl(
           Authentication = AuthenticationOption.Call)]

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:
[assembly: ApplicationAccessControl(AccessChecksLevel=
                AccessChecksLevelOption.ApplicationComponent)]
Component-level access checks are enforced for all serviced components. Classes are annotated with:
[ComponentAccessControl(true)]
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:
[assembly: ApplicationAccessControl(
                Authentication = AuthenticationOption.Privacy)]

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:
[assembly: ApplicationAccessControl(
     ImpersonationLevel=ImpersonationLevelOption.Identify)]

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.

Patterns and Practices home

© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker