11.07.2015 Views

Improving Web Application Security: Threats and - CGISecurity

Improving Web Application Security: Threats and - CGISecurity

Improving Web Application Security: Threats and - CGISecurity

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

lxxii<strong>Improving</strong> <strong>Web</strong> <strong>Application</strong> <strong>Security</strong>: <strong>Threats</strong> <strong>and</strong> Countermeasures●●●●How to secure Enterprise ServicesConfigure server applications to run using least privileged accounts. EnableCOM+ role-based security, <strong>and</strong> enforce component-level access checks. At theminimum, use call-level authentication to prevent anonymous access. To securethe traffic passed to remote serviced components, use IPSec encrypted channels oruse remote procedure call (RPC) encryption. Restrict the range of ports thatDistributed COM (DCOM) dynamically allocates or use static endpoint mappingto limit the port range to specific ports. Regularly monitor for Quick Fix Engineer(QFE) updates to the COM+ runtime.For more information, see Chapter 17, “Securing Your <strong>Application</strong> Server.”How to secure Microsoft .NET RemotingDisable remoting on Internet-facing <strong>Web</strong> servers by mapping .rem <strong>and</strong>.soap extensions to the ASP.NET HttpForbiddenH<strong>and</strong>ler HTTP module inMachine.config. Host in ASP.NET <strong>and</strong> use the HttpChannel type name to benefitfrom ASP.NET <strong>and</strong> IIS authentication <strong>and</strong> authorization services. If you need touse the TcpChannel type name, host your remote components in a Windowsservice <strong>and</strong> use IPSec to restrict which clients can connect to your server. Use thisapproach only in a trusted server situation, where the remoting client (for examplea <strong>Web</strong> application) authenticates <strong>and</strong> authorizes the original callers.For more information, see Chapter 17, “Securing Your <strong>Application</strong> Server.”How to secure session stateYou need to protect session state while in transit across the network <strong>and</strong> while inthe state store. If you use a remote state store, secure the communication channelto the state store using SSL or IPSec. Also encrypt the connection string inMachine.config. If you use a SQL Server state store, use Windows authenticationwhen you connect to the state store, <strong>and</strong> limit the application login in thedatabase. If you use the ASP.NET state service, use a least privileged account torun the service, <strong>and</strong> consider changing the default port that the service listens to.If you do not need the state service, disable it.For more information, see “Session State” in Chapter 19, “Securing Your ASP.NET<strong>Application</strong> <strong>and</strong> <strong>Web</strong> Services.”How to manage application configuration securelyRemote administration should be limited or avoided. Strong authenticationshould be required for administrative interfaces. Restrict access to configurationstores through ACLs <strong>and</strong> permissions. Make sure you have the granularity ofauthorization required to support separation of duties.For general considerations for secure configuration management, see Chapter 4,“Design Guidelines for Secure <strong>Web</strong> <strong>Application</strong>s.” To verify the secure defaults<strong>and</strong> ensure that you apply secure machine-wide settings <strong>and</strong> secure applicationspecific settings, see Chapter 19, “Securing Your ASP.NET <strong>Application</strong> <strong>and</strong> <strong>Web</strong>Services.”

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!