Acesso inicial: tentativa de comprometimento de Log4j

Este documento descreve um tipo de descoberta de ameaças no Security Command Center. Essas descobertas são geradas por detectores de ameaças quando detectam um risco nos recursos da nuvem. Para ver uma lista completa, consulte Índice de descobertas de ameaças.

Visão geral

Essa descoberta é gerada quando buscas do Java Naming e Directory Interface (JNDI) lookups em cabeçalhos ou parâmetros de URL são detectadas. Essas pesquisas podem indicar tentativas na exploração do Log4Shell.

O Event Threat Detection é a origem dessa descoberta.

Como responder

Para responder a essa descoberta:

Etapa 1: verificar os detalhes da descoberta

  1. Abra uma descoberta Initial Access: Log4j Compromise Attempt, conforme direcionado em Como verificar detalhes da descoberta. O painel de detalhes da descoberta é aberto na guia Resumo.

  2. Na guia Resumo, confira as informações nas seguintes seções:

    • O que foi detectado
    • Recurso afetado
    • Links relacionados, principalmente os seguintes campos:
      • URI do Cloud Logging: link para as entradas do Logging.
      • Método MITRE ATT&CK: link para a documentação do MITRE ATT&CK.
      • Descobertas relacionadas: links para quaisquer descobertas relacionadas.
    • Na visualização detalhada da descoberta, clique na guia JSON.
    • No JSON, observe os seguintes campos.

    • properties

      • loadBalancerName: o nome do balanceador de carga que recebeu a pesquisa JNDI
      • requestUrl: o URL da solicitação HTTP. Se presente, contém uma busca JNDI.
      • requestUserAgent: o user agent que enviou a solicitação HTTP. Se presente, contém uma busca JNDI.
      • refererUrl: o URL da página que enviou a solicitação HTTP. Se presente, contém uma busca JNDI.

Etapa 2: verificar os registros

  1. No Google Cloud console, acesse o Análise de registros clicando no link no campo URI do Cloud Logging da Etapa 1.
  2. Na página carregada, verifique os campos httpRequest para tokens de string como ${jndi:ldap:// que podem indicar possíveis tentativas de exploração.

    Consulte CVE-2021-44228: como detectar a exploração do Log4Shell na documentação do Logging para ver strings de exemplo e pesquisar um exemplo de consulta.

Etapa 3: pesquisar métodos de ataque e resposta

  1. Analise a entrada do framework da MITRE ATT&CK para esse tipo de descoberta: Explorar aplicativo voltado para o público.
  2. Verifique as descobertas relacionadas clicando no link em Descobertas relacionadas na linha Descobertas relacionadas na guia Resumo dos detalhes da descoberta. As descobertas relacionadas são o mesmo tipo de descoberta e a mesma instância e rede.
  3. Para desenvolver um plano de resposta, combine os resultados da investigação com a pesquisa do MITRE.

Etapa 4: implementar a resposta

O plano de resposta a seguir pode ser apropriado para essa descoberta, mas também pode afetar as operações. Avalie cuidadosamente as informações coletadas na investigação para determinar a melhor maneira de resolver as descobertas.

Exemplo de JSON de descoberta

Confira a seguir um exemplo do JSON de descoberta.

{
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "state": "ACTIVE",
    "category": "Initial Access: Log4j Compromise Attempt",
    "sourceProperties": {
      "sourceId": {
        "projectNumber": "PROJECT_NUMBER",
        "customerOrganizationNumber": "ORGANIZATION_ID"
      },
      "detectionCategory": {
        "ruleName": "log4j_compromise_attempt"
      },
      "detectionPriority": "LOW",
      "affectedResources": [{
        "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"
      }],
      "evidence": [{
        "sourceLogId": {
          "projectId": "PROJECT_ID",
          "resourceContainer": "projects/PROJECT_ID",
          "timestamp": {
            "seconds": "1639690492",
            "nanos": 9.13836E8
          },
          "insertId": "INSERT_ID"
        }
      }],
      "properties": {
        "loadBalancerName": "LOAD_BALANCER_NAME",
        "requestUrl": "REQUEST_URL?${jndi:ldap://google.com}"
      },
      "findingId": "FINDING_ID",
      "contextUris": {
        "mitreUri": {
          "displayName": "MITRE Link",
          "url": "https://attack.mitre.org/techniques/T1190/"
        },
        "cloudLoggingQueryUri": [{
          "displayName": "Cloud Logging Query Link",
          "url": "https://console.cloud.google.com/logs/query;query\u003dtimestamp%3D%222021-12-16T21:34:52.913836Z%22%0AinsertId%3D%22INSERT_ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project\u003dPROJECT_ID"
        }],
        "relatedFindingUri": {
        }
      }
    },
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
    },
    "eventTime": "2021-12-16T21:34:52.913Z",
    "createTime": "2021-12-16T21:34:55.022Z",
    "severity": "LOW",
    "workflowState": "NEW",
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID",
    "mute": "UNDEFINED",
    "findingClass": "THREAT"
  },
  "resource": {
    "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "projectDisplayName": "PROJECT_ID",
    "parentName": "//cloudresourcemanager.googleapis.com/folders/FOLDER_NUMBER",
    "parentDisplayName": "FOLDER_DISPLAY_NAME",
    "type": "google.cloud.resourcemanager.Project",
    "folders": [{
      "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_NUMBER",
      "resourceFolderDisplayName": "FOLDER_DISPLAY_NAME"
    }],
    "displayName": "PROJECT_ID"
  }
}

A seguir