module/ConfigurationProvider/ControlConfigurations/Services/CloudService.json
{
"FeatureName": "CloudService", "Reference": "aka.ms/azsktcp/cloudservice", "IsMaintenanceMode": false, "Controls": [ { "ControlID": "Azure_CloudService_DP_DontAllow_HTTP_Access_InputEndpoints", "Description": "Cloud Service must only be accessible over HTTPS. Enable https for InputEndpoints.", "Id": "CloudService03", "ControlSeverity": "High", "Automated": "Yes", "Rationale": "Use of HTTPS ensures server/service authentication and protects data in transit from network layer man-in-the-middle, eavesdropping, session-hijacking attacks.", "Recommendation": "Get an SSL certificate from a trusted certificate provider. Refer https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-configure-ssl-certificate-portal for more information on how to use this certificate and configure TLS for the Cloud Service endpoints.", "Tags": [ "SDL", "Automated", "DP", "Classic", "Baseline", "Daily", "CSEOPilotSub" ], "Enabled": true, "MethodName": "CheckCloudServiceHttpCertificateSSLOnInputEndpoints", "DisplayName": "Encrypt data in transit for Cloud service role", "Category": "Encrypt data in transit", "ControlRequirements": "Data must be encrypted in transit and at rest", "CustomTags": [ "TenantBaseline", "CSEOBaseline", "MSD", "Prod", "P2", "Wave7", "CSEOPilot", "CAIPreview", "EDPreview", "SMTPreview", "SN:CloudSvc_EncryptDataTransit" ] }, { "ControlID": "Azure_CloudService_SI_Auto_OSUpdate", "Description": "Set automatic update for Cloud Service OS version.", "Id": "CloudService08", "ControlSeverity": "High", "Rationale": "Cloud services where automatic updates are disabled are likely to miss important security patches (human error, forgetfulness). This may lead to compromise from various malware/trojan attacks that exploit known vulnerabilities in operating systems and related software.", "Recommendation": "To enable automatic updates: Go to manage Azure portal --> your cloud service --> under settings section select configuration tab --> set OS version to automatic from drop-down menu --> select save.", "Automated": "Yes", "Tags": [ "SDL", "Automated", "SI", "Classic", "Baseline", "Daily", "CSEOPilotP1", "CSEOPilotSub" ], "DisplayName": "Set automatic update for Cloud Service OS version", "Category": "Vulnerabilities must be remediated", "ControlRequirements": "Vulnerability scans must be performed and vulnerabilities remediated according to prescribed organizational guidance", "Enabled": true, "MethodName": "CheckCloudServiceOSPatchStatus", "CustomTags": [ "CSEOBaseline", "MSD", "Prod", "CSEOPilot", "TenantBaseline", "P1", "Wave7", "CAIPreview", "EDPreview", "SMTPreview", "SN:CloudSvc_Autoupdate" ] }, { "ControlID": "Azure_CloudService_SI_Enable_AntiMalware", "Description": "Enable the Antimalware extension for the cloud service roles", "Id": "CloudService09", "ControlSeverity": "High", "Automated": "Yes", "Rationale": "Antimalware provides real-time protection, scheduled scanning, malware remediation, signature updates, engine updates, samples reporting, exclusion event collection etc.", "Recommendation": "To enable Antimalware: Go to Azure portal --> your cloud service --> Antimalware under Settings section --> select role and enable Antimalware.", "Tags": [ "SDL", "Automated", "Classic", "OwnerAccess", "SI", "Baseline", "Daily", "CSEOPilotSub" ], "Enabled": true, "MethodName": "CheckCloudServiceAntiMalwareStatus", "DisplayName": "Antimalware extension must be installed on cloud service roles", "Category": "Deploy antimalware extension", "ControlRequirements": "Anti-malware must be up to date and running", "CustomTags": [ "TenantBaseline", "CSEOBaseline", "MSD", "Prod", "CSEOPilot", "Wave7", "EDPreview", "SMTPreview", "SN:CloudSvc_AntiMalware" ] }, { "ControlID": "Azure_CloudService_SI_Disable_RemoteDesktop_Access", "Description": "Disable Remote Desktop (RDP) access on cloud service roles", "Id": "CloudService10", "ControlSeverity": "High", "Rationale": "Remote desktop access requires inbound ports to be opened. These ports become easy targets for compromise from various internet based attacks.", "Recommendation": "From Azure Portal: After logging into subscription, go under Home -> All Resources -> Select the Cloud service resource type -> Remote Desktop. Under \"Remote Desktop\", make sure to select \"Disabled\" toggle option. From PowerShell: Refer https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-role-enable-remote-desktop-powershell to remove Remote Desktop Extension from a Service. Refer https://docs.microsoft.com/en-us/powershell/module/servicemanagement/azure.service/remove-azureserviceremotedesktopextension?view=azuresmps-4.0.0 to know more about Remove-AzureServiceRemoteDesktopExtension command.", "Automated": "Yes", "DisplayName": "Disable Remote Desktop (RDP) access on cloud service roles", "Category": "Management interfaces and ports must not be open", "ControlRequirements": "Restrict network traffic flows", "Tags": [ "SDL", "Automated", "Classic", "OwnerAccess", "SI", "Baseline", "Daily", "CSEOPilotSub" ], "Enabled": true, "MethodName": "CheckCloudServiceRemoteDesktopAccess", "CustomTags": [ "CSEOBaseline", "MSD", "Prod", "TenantBaseline", "P1", "Wave5", "CSEOPilot", "CAIPreview", "EDPreview", "SMTPreview", "SN:RDP_disable" ], "ControlEvaluationDetails": { "RequiredProperties": [ "CloudServices", "CloudServiceDeploymentSlots", "CloudServiceRoles", "CloudServiceConfiguration", "CloudServiceRemoteAccessPlugin", "CloudServiceExtensions" ] } }, { "ControlID": "Azure_CloudService_DP_Avoid_Plaintext_Secrets", "Description": "Cloud Services must not have secrets/credentials present in plain text", "Id": "CloudService11", "ControlSeverity": "High", "Automated": "Yes", "MethodName": "AvoidPlaintextSecretsAsync", "DisplayName": "Cloud Services must not have secrets/credentials present in plain text", "Category": "Credentials Access", "ControlRequirements": "Eliminating plain text credentials", "Rationale": "Keeping secrets/credentials such as DB connection strings, passwords, keys, etc. in plain text can lead to exposure at various avenues during an application's lifecycle. Storing them in a key vault ensures that they are protected at rest.", "Recommendation": "Find detected secrets/credentials using the API information available in Source, rotate those credentials and remove them. Use KeyVault to store secrets/credentials.", "Tags": [ "SDL", "TCP", "Automated", "DP", "Baseline", "Daily" ], "Enabled": true, "CustomTags": [ "Preview", "TenantBaseline", "MSD", "TBv7", "CAIPreview", "EDPreview", "SMTPreview", "SN:CloudService_AvoidSecrets", "CAIWave1", "Secrets" ] } ] } |