Control: 9.1 Ensure 'HTTPS Only' is set to `On`
Description
Azure App Service allows apps to run under both HTTP and HTTPS by default. Apps can be accessed by anyone using non-secure HTTP links by default. Non-secure HTTP requests can be restricted and all HTTP requests redirected to the secure HTTPS port. It is recommended to enforce HTTPS-only traffic.
Enabling HTTPS-only traffic will redirect all non-secure HTTP requests to HTTPS ports. HTTPS uses the TLS/SSL protocol to provide a secure connection which is both encrypted and authenticated. It is therefore important to support HTTPS for the security benefits.
Remediation
From Azure Portal
- Login to Azure Portal using https://portal.azure.com.
- Go to
App Services
. - For each App Service.
- Under
Setting
section, click onConfiguration
. - Under the
General Settings
tab, setHTTPS Only
toOn
underPlatform Settings
.
From Azure CLI
To set HTTPS-only traffic value for an existing app, run the following command:
az webapp update --resource-group <RESOURCE_GROUP_NAME> --name <APP_NAME> --set httpsOnly=true
From Powershell
Set-AzWebApp -ResourceGroupName <RESOURCE_GROUP_NAME> -Name <APP_NAME> -HttpsOnly $true
Default Value
By default, HTTPS-only feature will be disabled when a new app is created using the command-line tool or Azure Portal console.
Usage
Run the control in your terminal:
powerpipe control run azure_compliance.control.cis_v300_9_1
Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run azure_compliance.control.cis_v300_9_1 --share
SQL
This control uses a named query:
appservice_web_app_use_https