More Info:

Load balancers global backend services should have request logging enabled. Logging requests to Load Balancer endpoints is a helpful way of detecting and investigating potential attacks.

Risk Level

Medium

Address

Security, Operational Maturity

Compliance Standards

SOC2, GDPR, HITRUST, NISTCSF, PCIDSS, FedRAMP

Remediation

Using Console

To remediate the misconfiguration of Load Balancer Global Backend Services not having logging enabled in GCP, you can follow the below steps using the GCP console:

  1. Open the GCP console and navigate to the Load balancing section.
  2. Select the Load Balancer for which you want to enable logging.
  3. Click on the Edit button on the top of the Load Balancer details page.
  4. Scroll down to the Backend configuration section and click on the pencil icon next to the Global backend configuration.
  5. In the Global backend configuration settings, scroll down to the Logging section and click on the toggle button to enable logging.
  6. Select the appropriate log type from the drop-down menu.
  7. Click on the Save button to save the changes.

After following these steps, the Load Balancer Global Backend Services will have logging enabled, and you will be able to view the logs for the Load Balancer in the Logging section of the GCP console.

Using CLI

To remediate the Load Balancer Global Backend Services should have logging enabled in GCP, you can follow the below steps using GCP CLI:

  1. Open the Cloud Shell in the GCP Console.

  2. Run the following command to enable logging for the backend service:

    gcloud compute backend-services update [BACKEND_SERVICE_NAME] --global --enable-logging
    

    Replace [BACKEND_SERVICE_NAME] with the name of the backend service for which you want to enable logging.

  3. Once the command is executed successfully, the logging will be enabled for the backend service.

  4. You can verify the logging is enabled by running the following command:

    gcloud compute backend-services describe [BACKEND_SERVICE_NAME] --global | grep loggingEnabled
    

    This command should return the value loggingEnabled: true.

By following the above steps, you can remediate the Load Balancer Global Backend Services should have logging enabled misconfiguration in GCP using GCP CLI.

Using Python

To remediate the misconfiguration of Load Balancer Global Backend Services not having logging enabled in GCP using Python, follow the steps below:

  1. Import the necessary libraries:
from googleapiclient.discovery import build
from google.oauth2 import service_account
  1. Set up the credentials using the service account key file:
credentials = service_account.Credentials.from_service_account_file('<path_to_service_account_key_file>')
  1. Create a service object for the Compute Engine API:
service = build('compute', 'v1', credentials=credentials)
  1. Get the project ID:
project_id = '<your_project_id>'
  1. Get the list of all the backend services:
backend_services = service.backendServices().list(project=project_id).execute()
  1. Loop through the backend services and enable logging for each one:
for backend_service in backend_services['items']:
    backend_service_name = backend_service['name']
    backend_service_url = f'/compute/v1/projects/{project_id}/global/backendServices/{backend_service_name}'
    
    # Get the current backend service configuration
    backend_service_config = service.backendServices().get(project=project_id, backendService=backend_service_name).execute()
    
    # Check if logging is already enabled
    if 'loadBalancingScheme' in backend_service_config and 'logConfig' in backend_service_config['loadBalancingScheme']:
        print(f"Logging is already enabled for backend service {backend_service_name}")
    else:
        # Enable logging
        backend_service_config['loadBalancingScheme']['logConfig'] = {'enable': True}
        request = service.backendServices().update(project=project_id, backendService=backend_service_name, body=backend_service_config)
        request.execute()
        print(f"Logging has been enabled for backend service {backend_service_name}")
  1. Run the script and verify that logging has been enabled for all the backend services.

Note: Make sure that the service account used has the necessary permissions to modify the backend services.

Additional Reading: