turbot/azure_compliance

Control: 9.3 Ensure 'FTP State' is set to 'FTPS Only' or 'Disabled'

Description

By default, App Services can be deployed over FTP. If FTP is required for an essential deployment workflow, FTPS should be required for FTP login for all App Services.

If FTPS is not expressly required for the App, the recommended setting is Disabled.

FTP is an unencrypted network protocol that will transmit data - including passwords - in clear-text. The use of this protocol can lead to both data and credential compromise, and can present opportunities for exfiltration, persistence, and lateral movement.

Remediation

From Azure Portal

  1. Go to the Azure Portal.
  2. Select App Services.
  3. Click on an app.
  4. Select Settings and then Configuration.
  5. Under General Settings, for the Platform Settings, the FTP state should be set to Disabled or FTPS Only.

From Azure CLI

For each out of compliance application, run the following choosing either 'disabled' or 'FtpsOnly' as appropriate:

az webapp config set --resource-group <resource group name> --name <app name> --ftps-state [disabled|FtpsOnly]

From Powershell

For each out of compliance application, run the following:

Set-AzWebApp -ResourceGroupName <resource group name> -Name <app name> -FtpsState <Disabled or FtpsOnly>

Default Value

By default, FTP based deployment is All allowed.

Usage

Run the control in your terminal:

powerpipe control run azure_compliance.control.cis_v300_9_3

Snapshot and share results via Turbot Pipes:

powerpipe login
powerpipe control run azure_compliance.control.cis_v300_9_3 --share

SQL

This control uses a named query:

appservice_ftp_deployment_disabled

Tags