TMA-IIS-3.3
Ensure custom error messages are not off
Description
When an ASP.NET application fails and causes an HTTP/1.x 500 Internal Server Error, or a feature configuration (such as Request Filtering) prevents a page from being displayed, an error message will be generated. Administrators can choose whether or not the application should display a friendly message to the client, detailed error message to the client, or detailed error message to localhost only. customErrors mode must be RemoteOnly or On (not Off) in the root web.config and every site. PowerShell 5.1 with the WebAdministration module; run elevated.
How it is checked
Audit method: Shell command
Import-Module WebAdministration -ErrorAction Stop; $paths = @('MACHINE/WEBROOT') + @(Get-Website | ForEach-Object { "IIS:\Sites\$($_.Name)" }); $bad = @($paths | Where-Object { $c = Get-WebConfiguration -Filter 'system.web/customErrors' -PSPath $_; [string]$c.mode -eq 'Off' }); if ($bad.Count -eq 0) { 'compliant' } else { 'noncompliant' }- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST/<site>' -Filter system.web/customErrors -Name mode -Value RemoteOnly
Properties
- Operating systems
- Any
- Tags
- iisinformation-disclosure
- Reference
- CIS Microsoft IIS 10 Benchmark v1.2.1 - 3.3 Ensure custom error messages are not off
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target iis --level 2