8.4 Ensure 'SMB channel encryption' is set to 'AES-256-GCM' or higher for SMB file shares (Automated)
Description
Implement SMB channel encryption with AES-256-GCM for SMB file shares to ensure data confidentiality and integrity in transit. This method offers strong protection against eavesdropping and man-in-the-middle attacks, safeguarding sensitive information.
Rationale
AES-256-GCM encryption enhances the security of data transmitted over SMB channels by safeguarding it from unauthorized interception and tampering.
Impact
Using the AES-256-GCM SMB channel encryption may impact client compatibility.
Audit Procedure
Audit from Azure Portal
- Go to
Storage accounts. - Click the name of a storage account.
- Under
Data storage, clickFile shares. - Under
File share settings, click the link next toSecurity. - Under
SMB channel encryption, ensure thatAES-256-GCM, or higher, is the only checked SMB channel encryption setting. - Repeat steps 1-5 for each storage account.
Audit from Azure CLI
Run the following command to list storage accounts:
az storage account list
For each storage account, run the following command:
az storage account file-service-properties show --resource-group <resource-group> --account-name <storage-account>
Ensure that under protocolSettings > smb, channelEncryption is set to AES-256-GCM;, or higher, only.
Audit from PowerShell
Run the following command to list storage accounts:
Get-AzStorageAccount
Run the following command to get the file service properties for a storage account in a resource group with a given name:
$storageaccountfileservice = Get-AzStorageFileServiceProperty -ResourceGroupName <resource-group> -AccountName <storage-account>
Run the following command to get the SMB channel encryption setting:
$storageaccountfileservice.ProtocolSettings.Smb.ChannelEncryption
Ensure that the command returns AES-256-GCM, or higher, only. Repeat for each storage account.
Expected Result
Under protocolSettings > smb, channelEncryption is set to AES-256-GCM;, or higher, only.
Remediation
Remediate from Azure Portal
- Go to
Storage accounts. - Click the name of a storage account.
- Under
Data storage, clickFile shares. - Under
File share settings, click the link next toSecurity. - If
Profileis set toMaximum compatibility, click the drop-down menu and selectMaximum securityorCustom. - If selecting
Custom, underSMB channel encryption, uncheck the boxes next toAES-128-CCMandAES-128-GCM. - Click
Save. - Repeat steps 1-7 for each storage account requiring remediation.
Remediate from Azure CLI
For each storage account requiring remediation, run the following command to set the SMB channel encryption:
az storage account file-service-properties update --resource-group <resource-group> --account-name <storage-account> --channel-encryption AES-256-GCM
Remediate from PowerShell
For each storage account requiring remediation, run the following command to set the SMB channel encryption:
Update-AzStorageFileServiceProperty -ResourceGroupName <resource-group> -StorageAccountName <storage-account> -SmbChannelEncryption AES-256-GCM
Default Value
By default, the following SMB channel encryption algorithms are allowed:
- AES-128-CCM
- AES-128-GCM
- AES-256-GCM
References
- https://learn.microsoft.com/en-us/azure/well-architected/service-guides/azure-files#recommendations-for-smb-file-shares
- https://learn.microsoft.com/en-us/azure/storage/files/files-smb-protocol?tabs=azure-portal#smb-security-settings
- https://learn.microsoft.com/en-us/cli/azure/storage/account/file-service-properties
- https://learn.microsoft.com/en-us/powershell/module/az.storage/get-azstoragefileserviceproperty
- https://learn.microsoft.com/en-us/powershell/module/az.storage/update-azstoragefileserviceproperty
Profile
Level 1 | Automated