CIS Microsoft IIS 7 Benchmark - Paper.bobylive

1y ago
11 Views
2 Downloads
1.57 MB
120 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Konnor Frawley
Transcription

CIS Microsoft IIS 7 Benchmark v1.8.0 - 12-30-2016

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License. The link to the license terms can be found at legalcode To further clarify the Creative Commons license related to CIS Benchmark content, you are authorized to copy and redistribute the content for use by you, within your organization and outside your organization for non-commercial purposes only, provided that (i) appropriate credit is given to CIS, (ii) a link to the license is provided. Additionally, if you remix, transform or build upon the CIS Benchmark(s), you may only distribute the modified materials if they are subject to the same license terms as the original Benchmark license and your derivative will no longer be a CIS Benchmark. Commercial use of CIS Benchmarks is subject to the prior approval of the Center for Internet Security. 1 Page

Table of Contents Overview . 5 Intended Audience . 5 Consensus Guidance. 5 Typographical Conventions . 6 Scoring Information . 6 Profile Definitions . 7 Acknowledgements . 8 Recommendations . 9 1 Basic Configurations . 9 1.1 Ensure web content is on non-system partition (Scored) . 9 1.2 Ensure 'host headers' are on all sites (Scored) . 11 1.3 Ensure 'directory browsing' is set to disabled (Scored) . 13 1.4 Ensure 'application pool identity' is configured for all application pools (Scored) . 15 1.5 Ensure 'unique application pools' is set for sites (Scored) . 18 1.6 Ensure 'application pool identity' is configured for anonymous user identity (Scored) . 20 2 Configure Authentication and Authorization . 22 2.1 Ensure 'global authorization rule' is set to restrict access (Not Scored) . 22 2.2 Ensure access to sensitive site features is restricted to authenticated principals only (Not Scored) . 24 2.3 Ensure 'forms authentication' require SSL (Scored) . 27 2.4 Ensure 'forms authentication' is set to use cookies (Scored) . 29 2.5 Ensure 'cookie protection mode' is configured for forms authentication (Scored) . 31 2.6 Ensure transport layer security for 'basic authentication' is configured (Scored) . 33 2.7 Ensure 'passwordFormat' is not set to clear (Scored) . 35 2 Page

2.8 Ensure 'credentials' are not stored in configuration files (Scored) . 37 3 ASP.NET Configuration Recommendations . 39 3.1 Ensure transport layer security for 'basic authentication' is configured (Scored) . 39 3.1 Ensure 'deployment method retail' is set (Scored) . 41 3.2 Ensure 'debug' is turned off (Scored) . 43 3.3 Ensure custom error messages are not off (Scored) . 45 3.4 Ensure IIS HTTP detailed errors are hidden from displaying remotely (Scored) . 47 3.5 Ensure ASP.NET stack tracing is not enabled (Scored) . 49 3.6 Ensure 'httpcookie' mode is configured for session state (Scored) . 51 3.7 Ensure 'cookies' are set with HttpOnly attribute (Scored) . 53 3.8 Ensure 'MachineKey validation method - .Net 3.5' is configured (Scored) . 55 3.9 Ensure 'MachineKey validation method - .Net 4.5' is configured (Scored) . 57 3.10 Ensure global .NET trust level is configured (Scored) . 59 3.11 Ensure 'encryption providers' are locked down (Scored) . 61 4 Request Filtering and Other Restriction Modules . 63 4.1 Ensure 'maxAllowedContentLength' is configured (Not Scored) . 63 4.2 Ensure 'maxURL request filter' is configured (Scored) . 66 4.3 Ensure 'MaxQueryString request filter' is configured (Scored) . 68 4.4 Ensure non-ASCII characters in URLs are not allowed (Scored) . 70 4.5 Ensure Double-Encoded requests will be rejected (Scored) . 72 4.6 Ensure 'HTTP Trace Method' is disabled (Scored). 74 4.7 Ensure Unlisted File Extensions are not allowed (Scored) . 76 4.8 Ensure Handler is not granted Write and Script/Execute (Scored) . 78 4.9 Ensure 'notListedIsapisAllowed' is set to false (Scored) . 80 4.10 Ensure 'notListedCgisAllowed' is set to false (Scored) . 82 4.11 Ensure 'Dynamic IP Address Restrictions' is enabled (Not Scored) . 84 5 IIS Logging Recommendations . 86 5.1 Ensure Default IIS web log location is moved (Scored) . 86 5.2 Ensure Advanced IIS logging is enabled (Scored) . 88 3 Page

6 FTP Requests . 90 6.1 Ensure FTP requests are encrypted (Scored) . 90 7 Transport Encryption . 92 7.1 Ensure HSTS Header is set (Not Scored) . 92 7.2 Ensure SSLv2 is disabled (Scored) . 95 7.3 Ensure SSLv3 is disabled (Scored) . 97 7.4 Ensure TLS 1.0 is enabled (Not Scored) . 98 7.5 Ensure TLS 1.0 is disabled (Not Scored) . 99 7.6 Ensure TLS 1.1 is enabled (Not Scored) . 100 7.7 Ensure NULL Cipher Suites is disabled (Scored) . 101 7.8 Ensure DES Cipher Suites is disabled (Scored) . 102 7.9 Ensure RC2 Cipher Suites is disabled (Scored) . 103 7.10 Ensure RC4 Cipher Suites is disabled (Scored) . 105 7.11 Ensure Triple DES Cipher Suite is configured (Not Scored) . 107 7.12 Ensure AES 128/128 Cipher Suite is configured (Not Scored) . 108 7.13 Ensure AES 256/256 Cipher Suite is enabled (Scored) . 109 7.14 Ensure TLS Cipher Suite ordering is configured (IIS7.0 only) (Scored) . 111 7.15 Ensure TLS Cipher Suite ordering is configured (IIS7.5 only) (Scored) . 113 Appendix: Summary Table . 115 Appendix: Change History . 117 4 Page

Overview This document, CIS Microsoft IIS 7 Benchmark, provides prescriptive guidance for establishing a secure configuration posture for Microsoft IIS 7 and Microsoft IIS 7.5. This guide was tested against Microsoft IIS 7 and Microsoft IIS 7.5 running on Microsoft Windows 2008 and Microsoft Windows 2008 R2, respectively. To obtain the latest version of this guide, please visit http://benchmarks.cisecurity.org. If you have questions, comments, or have identified ways to improve this guide, please write us at feedback@cisecurity.org. Intended Audience This document is intended for system and application administrators, security specialists, auditors, help desk, and platform deployment personnel who plan to develop, deploy, assess, or secure solutions that incorporate Microsoft IIS 7, 7.5. Consensus Guidance This benchmark was created using a consensus review process comprised of subject matter experts. Consensus participants provide perspective from a diverse set of backgrounds including consulting, software development, audit and compliance, security research, operations, government, and legal. Each CIS benchmark undergoes two phases of consensus review. The first phase occurs during initial benchmark development. During this phase, subject matter experts convene to discuss, create, and test working drafts of the benchmark. This discussion occurs until consensus has been reached on benchmark recommendations. The second phase begins after the benchmark has been published. During this phase, all feedback provided by the Internet community is reviewed by the consensus team for incorporation in the benchmark. If you are interested in participating in the consensus process, please visit https://community.cisecurity.org. 5 Page

Typographical Conventions The following typographical conventions are used throughout this guide: Convention Meaning Stylized Monospace font Used for blocks of code, command, and script examples. Text should be interpreted exactly as presented. Monospace font Used for inline code, commands, or examples. Text should be interpreted exactly as presented. italic font in brackets Italic texts set in angle brackets denote a variable requiring substitution for a real value. Italic font Used to denote the title of a book, article, or other publication. Note Additional information or caveats Scoring Information A scoring status indicates whether compliance with the given recommendation impacts the assessed target's benchmark score. The following scoring statuses are used in this benchmark: Scored Failure to comply with "Scored" recommendations will decrease the final benchmark score. Compliance with "Scored" recommendations will increase the final benchmark score. Not Scored Failure to comply with "Not Scored" recommendations will not decrease the final benchmark score. Compliance with "Not Scored" recommendations will not increase the final benchmark score. 6 Page

Profile Definitions The following configuration profiles are defined by this Benchmark: Level 1 - IIS 7.0 Items in this profile apply to Microsoft IIS 7.0 running on Microsoft Windows 2008 and intend to: o o o be practical and prudent; provide a clear security benefit; and not inhibit the utility of the technology beyond acceptable means. Level 2 - IIS 7.0 This profile extends the "Level 1 - IIS 7.0" profile. Items in this profile apply to Microsoft IIS 7.0 running on Microsoft Windows 2008 and exhibit one or more of the following characteristics: o o o are intended for environments or use cases where security is paramount acts as defense in depth measure may negatively inhibit the utility or performance of the technology. Level 1 - IIS 7.5 Items in this profile apply to Microsoft IIS 7.5 running on Microsoft Windows 2008 R2 and intend to: o o o be practical and prudent; provide a clear security benefit; and not inhibit the utility of the technology beyond acceptable means. Level 2 - IIS 7.5 This profile extends the "Level 1 - IIS 7.5" profile. Items in this profile apply to Microsoft IIS 7.5 running on Microsoft Windows 2008 R2 and exhibit one or more of the following characteristics: o o o are intended for environments or use cases where security is paramount acts as defense in depth measure may negatively inhibit the utility or performance of the technology. 7 Page

Acknowledgements This benchmark exemplifies the great things a community of users, vendors, and subject matter experts can accomplish through consensus collaboration. The CIS community thanks the entire consensus team with special recognition to the following individuals who contributed greatly to the creation of this guide: Editor Terri Donahue Victor Dzheyranov 8 Page

Recommendations 1 Basic Configurations This section contains basic Web server-level recommendations. 1.1 Ensure web content is on non-system partition (Scored) Profile Applicability: Level 1 - IIS 7.0 Level 1 - IIS 7.5 Description: Web resources published through IIS are mapped, via Virtual Directories, to physical locations on disk. It is recommended to map all Virtual Directories to a non-system disk volume. Rationale: Isolating web content from system files may reduce the probability of: Web sites/applications exhausting system disk space File IO vulnerability in the web site/application from affecting the confidentiality and/or integrity of system files Audit: Execute the following command to ensure no virtual directories are mapped to the system drive: %systemroot%\system32\inetsrv\appcmd list vdir Remediation: 1. Browse to web content in C:\inetpub\wwwroot\ 2. Copy or cut content onto a dedicated and restricted web folder on a non-system drive such as D:\webroot\ 3. Change mappings for any applications or Virtual Directories to reflect the new location 9 Page

To change the mapping for the application named app1 which resides under the Default Web Site, open IIS Manager: 1. 2. 3. 4. 5. 6. Expand the server node Expand Sites Expand Default Web Site Click on app1 In the Actions pane, select Basic Settings In the Physical path text box, put the new location of the application, D:\wwwroot\app1 in the example above References: 1. .aspx Notes: The default location for web content is: %systemdrive%\inetpub\wwwroot. 10 P a g e

1.2 Ensure 'host headers' are on all sites (Scored) Profile Applicability: Level 1 - IIS 7.0 Level 1 - IIS 7.5 Description: Host headers provide the ability to host multiple websites on the same IP address and port. It is recommended that host headers be configured for all sites. Rationale: Requiring a Host header for all sites may reduce the probability of: DNS rebinding attacks successfully compromising or abusing site data or functionality IP-based scans successfully identifying or interacting with a target application hosted on IIS Audit: Execute the following command to identify sites that are not configured to require host headers: %systemroot%\system32\inetsrv\appcmd list sites All sites will be listed as such: SITE "Default Web Site" (id:1,bindings:http/*:80:test.com,state:Started) SITE "badsite" (id:3,bindings:http/*:80:,state:Started) For all non-SSL sites, ensure that the IP:port:host binding triplet contains a host name. In the example above, the first site is configured as recommended given the Default Web Site has a host header of test.com. badsite, however, does not have a host header configured - it shows *:80: which means all IPs over port 80, with no host header. Remediation: Obtain a listing of all sites by using the following appcmd.exe command: %systemroot%\system32\inetsrv\appcmd list sites Perform the following in IIS Manager to configure host headers for the Default Web Site: 1. Open IIS Manager 2. In the Connections pane expand the Sites node and select Default Web Site 11 P a g e

3. In the Actions pane click Bindings 4. In the Site Bindings dialog box, select the binding for which host headers are going to be configured, Port 80 in this example 5. Click Edit 6. Under host name, enter the sites FQDN, such as www.examplesite.com 7. Click OK, then Close Note: Requiring a host header may impair site functionality for HTTP/1.0 clients. References: 1. 2. 3. 4. 5%28WS.10%29.aspx http://crypto.stanford.edu/dns/dns-rebinding.pdf -in-iis-7.html -certificates-on-sites-withhost-headers.aspx Notes: By default, host headers are not required or set up automatically. 12 P a g e

1.3 Ensure 'directory browsing' is set to disabled (Scored) Profile Applicability: Level 1 - IIS 7.0 Level 1 - IIS 7.5 Description: Directory browsing allows the contents of a directory to be displayed upon request from a web client. If directory browsing is enabled for a directory in Internet Information Services, users receive a page that lists the contents of the directory when the following two conditions are met: 1. No specific file is requested in the URL 2. The Default Documents feature is disabled in IIS, or if it is enabled, IIS is unable to locate a file in the directory that matches a name specified in the IIS default document list It is recommended that directory browsing be disabled. Rationale: Ensuring that directory browsing is disabled may reduce the probability of disclosing sensitive content that is inadvertently accessible via IIS. Audit: Perform the following to verify that Directory Browsing has been disabled at the server level: %systemroot%\system32\inetsrv\appcmd list config /section:directoryBrowse If the server is configured as recommended, the following will be displayed: system.webServer directoryBrowse enabled "false" / system.webServer Remediation: Directory Browsing can be set by using the UI, running appcmd.exe commands, by editing configuration files directly, or by writing WMI scripts. To disable directory browsing at the server level using an appcmd.exe command: 13 P a g e

%systemroot%\system32\inetsrv\appcmd set config /section:directoryBrowse /enabled:false References: 1. 0%28WS.10%29.aspx 2. 9%28WS.10%29.aspx Notes: In IIS 8.0 and 8.5, directory browsing is disabled by default. 14 P a g e

1.4 Ensure 'application pool identity' is configured for all application pools (Scored) Profile Applicability: Level 1 - IIS 7.0 Level 1 - IIS 7.5 Description: Application Pool Identities are the actual users/authorities that will run the worker process - w3wp.exe. Assigning the correct user authority will help ensure that applications can function properly, while not giving overly permissive permissions on the system. These identities can further be used in ACLs to protect system content. It is recommended that each Application Pool run under a unique identity. IIS has additional built-in least privilege identities intended for use by Application Pools. It is recommended that the default Application Pool Identity be changed to a least privilege principle other than Network Service. Furthermore, it is recommended that all application pool identities be assigned a unique least privilege principal. To achieve isolation in IIS, application pools can be run as separate identities. IIS can be configured to automatically use the application pool identity if no anonymous user account is configured for a Web site. This can greatly reduce the number of accounts needed for Web sites and make management of the accounts easier. It is recommended the Application Pool Identity be set as the Anonymous User Identity. The name of the Application Pool account corresponds to the name of the Application Pool. Application Pool Identities were introduced in Windows Server 2008 SP2. It is recommended that Application Pools be set to run as ApplicationPoolIdentity unless there is an underlying reason that the application pool needs to run as a specified end user account. One example where this is needed is for web farms using Kerberos authentication. Rationale: Setting Application Pools to use unique least privilege identities such as ApplicationPoolIdentity reduces the potential harm the identity could cause should the application ever become compromised. Additionally, it will simplify application pools configuration and account management. 15 P a g e

Audit: To verify the Application Pools have been set to run under the ApplicationPoolIdentity using IIS Manager: 1. Open IIS Manager 2. Open the Application Pools node underneath the machine node; select Application Pool to be verified 3. Right click the Application Pool and select Advanced Settings 4. Under the Process Model section, locate the Identity option and ensure that ApplicationPoolIdentity is set This configuration is stored in the same applicationHost.config file for web sites and application/virtual directories, at the bottom of the file, surrounded by location path "path/to/resource" tags. To verify that any new Application Pools use the ApplicationPoolIdentity, execute the following command to determine if the Application Pool default has been changed to ApplicationPoolIdentity: %systemroot%\system32\inetsrv\appcmd list config /section:applicationPools Remediation: The default Application Pool identity may be set for an application using the IIS Manager GUI, using AppCmd.exe commands in a command-line window, directly editing the configuration files, or by writing WMI scripts. Perform the following to change the default identity to the built-in ApplicationPoolIdentity in the IIS Manager GUI: 1. Open the IIS Manager GUI 2. In the connections pane, expand the server node and click Application Pools 3. On the Application Pools page, select the DefaultAppPool, and then click Advanced Settings in the Actions pane 4. For the Identity property, click the '.' button to open the Application Pool Identity dialog box 5. Select the Built-in account option choose ApplicationPoolIdentity from the list, or input a unique application user created for this purpose 6. Restart IIS To change the ApplicationPool identity to the built-in ApplicationPoolIdentity using AppCmd.exe, run the following from a command prompt: %systemroot%\system32\inetsrv\appcmd set config /section:applicationPools /[name ' your apppool ty 16 P a g e

The example code above will set just the DefaultAppPool. Run this command for each configured Application Pool. Additionally, ApplicationPoolIdentity can be made the default for all Application Pools by using the Set Application Pool Defaults action on the Application Pools node. If using a custom defined Windows user such as a dedicated service account, that user will need to be a member of the IIS IUSRS group. The IIS IUSRS group has access to all the necessary file and system resources so that an account, when added to this group, can seamlessly act as an application pool identity. References: 1. 0%28WS.10%29.aspx 2. uilt-in-user-and-groupaccounts-in-iis-7/ 3. l-identities/ 4. /iis-7-0-applicationpools.aspx Notes: By Default, the DefaultAppPool in IIS 8 is configured to use the ApplicationPoolIdentity account. 17 P a g e

1.5 Ensure 'unique application pools' is set for sites (Scored) Profile Applicability: Level 1 - IIS 7.0 Level 1 - IIS 7.5 Description: IIS introduced a new security feature called Application Pool Identities that allows Application Pools to be run under unique accounts without the need to create and manage local or domain accounts. It is recommended that all Sites run under unique, dedicated Application Pools. Rationale: By setting sites to run under unique Application Pools, resource-intensive applications can be assigned to their own application pools which could improve server and application performance. In addition, it can help maintain application availability: if an application in one pool fails, applications in other pools are not affected. Last, isolating applications helps mitigate the potential risk of one application being allowed access to the resources of another application. It is also recommended to stop any application pool that is not in use or was created by an installation such as .Net 4.0. Audit: The following appcmd.exe command will give a listing of all applications configured, which site they are in, which application pool is serving them and which application pool identity they are running under: %systemroot%\system32\inetsrv\appcmd list app The output of this command will be similar to the following: APP "Default Web Site/" (applicationPool:DefaultAppPool) 1. Run the above command and ensure a unique application pool is assigned for each site listed Remediation: 1. 2. 3. 4. 5. Open IIS Manager Open the Sites node underneath the machine node Select the Site to be changed In the Actions pane, select Basic Settings Click the Select box next to the Application Pool text box 18 P a g e

6. Select the desired Application Pool 7. Once selected, click OK References: 1. 9%28WS.10%29.aspx 2. /iis-7-0-applicationpools.aspx 3. l-identities/ Notes: By default, all Sites created will use the Default Application Pool (DefaultAppPool). 19 P a g e

1.6 Ensure 'application pool identity' is configured for anonymous user identity (Scored) Profile Applicability: Level 1 - IIS 7.0 Level 1 - IIS 7.5 Description: To achieve isolation in IIS, application pools can be run as separate identities. IIS can be configured to automatically use the application pool identity if no anonymous user account is configured for a Web site. This can greatly reduce the number of accounts needed for Web sites and make management of the accounts easier. It is recommended the Application Pool Identity be set as the Anonymous User Identity. Rationale: Configuring the anonymous user identity to use the application pool identity will help ensure site isolation - provided sites are set to use the application pool identity. Since a unique principal will run each application pool, it will ensure the identity is least privilege. Additionally, it will simplify Site management. Audit: Find and open the applicationHost.config file and verify that the userName attribute of the anonymousAuthentication tag is set to a blank string: system.webServer security authentication anonymousAuthentication userName "" / /authentication /security /system.webServer This configuration is stored in the same applicationHost.config file for web sites and application/virtual directories, at the bottom of the file, surrounded by location path "path/to/resource" tags. Remediation: The Anonymous User Identity can be set to Application Pool Identity by using the IIS Manager GUI, using AppCmd.exe commands in a command-line window, directly editing the 20

remix, transform or build upon the CIS Benchmark(s), you may only distribute the modified materials if they are subject to the same license terms as the original Benchmark license and your derivative will no longer be a CIS Benchmark. Commercial use of CIS Benchmarks is subject to the prior approval of the Center for Internet Security.

Related Documents:

CIS 175 Java II CMSC 150 CIS 178 Java Programming I CIS 260JA CIS 179 Java Programming II CIS 260JA or CIS # CIS 189 Python MIS 150 CIS 303 Intro to Data Base CIS # CIS 332 Data Base and SQL CIS 255 CIS 338 SQL/Oracle CIS # CIS 346 Data Base Design CIS # CIS 402 COBOL CIS # CIS 451 PLTW - Comp Sci Applications CIS #

CIS Microsoft Windows 7 Benchmark v3.1.0 Y Y CIS Microsoft Windows 8 Benchmark v1.0.0 Y Y CIS Microsoft Windows 8.1 Benchmark v2.3.0 Y Y CIS Microsoft Windows 10 Enterprise Release 1703 Benchmark v1.3.0 Y Y CIS Microsoft Windows 10 Enterprise Release 1709 Benchmark v1.4.0 Y Y CIS .

This document, CIS Microsoft IIS 10 Benchmark, provides prescriptive guidance for establishing a secure configuration posture for Microsoft IIS 10. This guide was tested . Microsoft IIS 10.0 running on Microsoft Windows Server 2016 and exhibit one or more of the following characteristics:

remix, transform or build upon the CIS Benchmark(s), you may only distribute the modified materials if they are subject to the same license terms as the original Benchmark license and your derivative will no longer be a CIS Benchmark. Commercial use of CIS Benchmarks is subject to the prior approval of the Center for Internet Security.

cis-Cyclobutane-1,2-dicarboxylicAnhydride 62 cis-l,2-Bis(hydroxymethyl)cyclobutane 62 cis-l,2-Bis(bromomethyl)cyclobutane 62 cis-l,2-Bis(cyanomethyl)cyclobutane 62 cis-l,2-CyclobutanediaceticAcid 62 DimethylCyclobutane-cis-1,2-di-cC-bromoacetate 62 cetate withSodiumHydride 62

IIS Easy Migration Tool (For IIS 7, 8, 10) - Quick Start Guide . IIS and OS along with Active Directory information can be found there. Pay attention to the Active Directory information displayed by the Gathering Agent. If it is incorrect, click [AD info is incorrect] button. It is an important step needed for the correct Windows/FTP .

the CIS’s suitability to be a Qualifying CIS; or 5. winding up of an Qualifying CIS; and (l) in addition to the requirements in (a) – (k) above, the CIS Operator must be subject to the requirements in its Home Jurisdiction. 1.10 A CIS Operator which participates in this Framework is de

c. Describe the major events of the American Revolution and explain the factors leading to American victory and British defeat; include the Battles of Lexington and Concord, Saratoga, and Yorktown. d. Describe key individuals in the American Revolution with emphasis on King George III, George Washington, Benjamin Franklin, Thomas Jefferson, Benedict Arnold, Patrick Henry, and John Adams .