Abstract

This paper addresses the common IIS web server security specification in the form of a checklist that aids the web master or penetration tester to implement a secure web server infrastructure swiftly.

It is mandatory for a web application to be duly foolproof from vicious attacks for preventing damage that could be in any form indeed. Security professionals and penetration testers are typically part of a web project to ensure the website protection from various attacks by detecting loopholes that might be exploited later. But such critical task is typically not followed in a proper manner and web applications become live into the production environment with inherent vulnerabilities, or even without complying with security guidelines. That is because developers and organizations are often in a hurry to launch the software into the production environment due to various unnamed pressures. Unfortunately, there is not a single tool available that can claim the comprehensive security of an application because attacks could come in any form, in fact the its horizon is so extensive that, it is beyond the assumption. So such summarized checklist snapshots proved to be a truly savior for hardening or to improve our deployment workstation security precipitously.

Virtual Directory

Security Specifications Status
Ensure restriction is enabled to those directories that allows anonymous access
Ensure IISAdmin, IISHelp, IISamples directory are removed
Confirm PARENT PATH configuration is disabled
Ensure unused Front pages extension is removed
Ensure website directories are dislocated from the system partition drive
Ensure directory traversing is disabled (uncheck write permission)
Ensure other unused utilities such resource kit, SDK are detached

Machine Configuration File

Security Specifications
Status
Ensure DEBUG is turned-off in WEB.CONFIG file
Ensure TRACE is set to false or disabled
Ensure unnecessary HTTP Modules are removed

Secure Communication

Security Specifications Status
Ensure HTTP requests are filtered or categorized
Ensure HTTPs is enable, in case if your website deals with sensitive data
Ensure Server Certificates is updated and issued by trusted organization
Ensure Certificates has not withdrawn
In case of Remote administration, ensure proper time-outs and encryption is configured
Ensure communication is happens using only port 80 or 443
Ensure that IPSec is formed in the network for secure communication

Logging and Audit

Security Specifications Status
Ensure Failed Logon Attempts are regularly inspected
Ensure Log files are properly maintained and audited
Confirm W3C extended format is enabled for auditing

IIS Metabase and Filters

Security Specifications Status
Ensure Banner grabbing is disabled
Ensure File (%systemroot%\system32\inetsrv\metabase.bin) access is restricted
Ensure unused extensions (.shtml, .hta, .htw, .stm,,) are removed
Ensure unemployed ISAPI filters are disabled or removed.
Ensure "Forbidden Handler" is mapped to unemployed ASP.NET files extension

Server Accounts

Security Specifications Status
Ensure anonymous logon is disabled
Ensure unused IUSR_MACHINE account is disabled
Ensure a solitary administrator account only
Ensure administrator account is properly hardened by strong password scheme
Ensure GUEST account is disabled
Ensure remote logon is disabled
Ensure ASP.NET process account is configured to least access
Ensure anyone couldn't login locally except administrator

Code Access Security

Security Specifications Status
Confirm CAS is enabled
Confirm source code is obfuscated
Confirm custom error page is installed on server
Confirm permissions removed from Internet and Intranet zone

System Configuration

Security Specifications Status
Confirm ASP.NET state service is disabled
Confirm Remote Registry Administration is disabled
Confirm WebDAW service is disabled
Confirm FTP and SMTP services are disabled
Confirm SMB service is disabled
Confirm All Redundant share's (C$, D$,..) is removed
Confirm Remote Administration by TELNET is disabled
Confirm only essential System Services given least privilege
Confirm redundant system services are stop
Ensure IIS is not installed on domain controller
Ensure IDS is installed in the network perimeter
Ensure that IIS server is configured inside DMZ

Server Updates

Security Specifications Status
Ensure Windows Operating System is updated
Ensure .NET Framework is Updated
Ensure IIS web server is duly patched
Ensure MBSA is configured and running regularly
Ensure EMET is installed on server and enabled
Ensure Microsoft Notification Service is Enabled
Ensure effective Anti-virus is installed and running

Final Note

In this article, we have seen how to harden an IIS web server to protect ASP.NET websites. This article, in fact didn't explain various attacks and their countermeasures. Instead, it is pinpointing major security guidelines in the form of checklists that can be applied swiftly over the web server, so that a developer can ensure himself that a specific security mechanism is applied and it is enabled. Because some critical bugs remain unnoticed and remains in the final version of the software that could get the application into danger. Hence, such synopsis reference eases the undertaking of developers or security professional in terms of not overlooking or forgetting critical security configuration at the web server.