Recolha registos de violação da postura do Security Command Center

Compatível com:

Este documento explica como exportar e carregar registos de violação de postura do Security Command Center para o Google Security Operations através do Cloud Storage. O analisador transforma os dados JSON não processados das descobertas num modelo de dados unificado (UDM). Extrai campos relevantes, reestrutura os dados, mapeia-os para campos da UDM e realiza várias validações e enriquecimentos para garantir a qualidade e a consistência dos dados.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

  • O Security Command Center está ativado no seu Google Cloud ambiente.
  • Instância do Google SecOps.
  • Acesso privilegiado ao Security Command Center e ao Cloud Logging.

Crie um contentor do Cloud Storage

  1. Inicie sessão na Google Cloud consola.
  2. Aceda à página Contentores do Cloud Storage.

    Aceda aos contentores

  3. Clique em Criar.

  4. Na página Criar um depósito, introduza as informações do depósito. Após cada um dos passos seguintes, clique em Continuar para avançar para o passo seguinte:

    1. Na secção Começar, faça o seguinte:

      1. Introduza um nome exclusivo que cumpra os requisitos de nome do contentor; por exemplo, gcp-scc-posture-violation-logs.
      2. Para ativar o espaço de nomes hierárquico, clique na seta de expansão para expandir a secção Otimizar para cargas de trabalho orientadas para ficheiros e com grande volume de dados e, de seguida, selecione Ativar espaço de nomes hierárquico neste contentor.

      3. Para adicionar uma etiqueta de grupo, clique na seta de expansão para expandir a secção Etiquetas.

      4. Clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.

    2. Na secção Escolha onde quer armazenar os seus dados, faça o seguinte:

      1. Selecione um Tipo de localização.
      2. Use o menu de tipo de localização para selecionar uma Localização onde os dados de objetos no seu contentor vão ser armazenados permanentemente.

      3. Para configurar a replicação entre contentores, expanda a secção Configurar replicação entre contentores.

    3. Na secção Escolha uma classe de armazenamento para os seus dados, selecione uma classe de armazenamento predefinida para o contentor ou selecione Autoclass para a gestão automática da classe de armazenamento dos dados do seu contentor.

    4. Na secção Escolha como controlar o acesso a objetos, selecione não para aplicar a prevenção de acesso público e selecione um modelo de controlo de acesso para os objetos do seu contentor.

    5. Na secção Escolha como proteger os dados de objetos, faça o seguinte:

      1. Selecione qualquer uma das opções em Proteção de dados que quer definir para o seu contentor.
      2. Para escolher como os dados de objetos vão ser encriptados, clique na seta de expansão com a etiqueta Encriptação de dados e selecione um Método de encriptação de dados.
  5. Clique em Criar.

Configure o registo do Security Command Center

  1. Inicie sessão na Google Cloud consola.
  2. Aceda à página do Security Command Center.

    Aceder ao Security Command Center

  3. Selecione a sua organização.

  4. Clique em Definições.

  5. Clique no separador Exportações contínuas.

  6. Em Nome da exportação, clique em Exportação de registos.

  7. Em Sinks, ative a opção Registar resultados no registo.

  8. Em Projeto de registo, introduza ou pesquise o projeto onde quer registar as descobertas.

  9. Clique em Guardar.

Configure a exportação de registos de violação de postura do Security Command Center

  1. Inicie sessão na Google Cloud consola.
  2. Aceda a Registo > Router de registos.
  3. Clique em Criar destino.
  4. Forneça os seguintes parâmetros de configuração:

    • Nome do destino: introduza um nome significativo; por exemplo, scc-posture-violation-logs-sink.
    • Destino da sincronização: selecione Armazenamento do Cloud Storage e introduza o URI do seu contentor; por exemplo, gs://gcp-scc-posture-violation-logs.
    • Filtro de registo:

      logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Fposture_violations"
      resource.type="cloud_security_center_posture_violation"
      
    • Definir opções de exportação: inclui todas as entradas do registo.

  5. Clique em Criar.

Configure autorizações para o Cloud Storage

  1. Aceda a IAM e administrador > IAM.
  2. Localize a conta de serviço do Cloud Logging.
  3. Conceda a função roles/storage.admin no contentor.

Configure feeds

Para configurar um feed, siga estes passos:

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, introduza um nome para o feed; por exemplo, Registos de violações de postura do Security Command Center.
  5. Selecione Google Cloud Storage V2 como Tipo de origem.
  6. Selecione Violação de postura do Security Command Center como o Tipo de registo.
  7. Clique em Obter conta de serviço junto ao campo Conta de serviço do Chronicle.
  8. Clicar em Seguinte.
  9. Especifique valores para os seguintes parâmetros de entrada:

    • URI do contentor de armazenamento: URL do contentor do Cloud Storage; por exemplo, gs://gcp-scc-posture-violation-logs.
    • Opções de eliminação da origem: selecione a opção de eliminação de acordo com a sua preferência.

    • Idade máxima do ficheiro: inclui ficheiros modificados no último número de dias. A predefinição é 180 dias.

  10. Clicar em Seguinte.

  11. Reveja a nova configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
categoria read_only_udm.metadata.product_event_type Mapeamento direto.
changed_policy read_only_udm.security_result.rule_name Mapeamento direto.
cloudProvider read_only_udm.target.resource.attribute.cloud.environment Mapeamento direto.
createTime read_only_udm.security_result.detection_fields[createTime] Mapeamento direto.
finding.risks.riskCategory read_only_udm.security_result.detection_fields[risk_category] Mapeamento direto.
mudo/muda read_only_udm.security_result.detection_fields[mute] Mapeamento direto.
nome read_only_udm.metadata.product_log_id Mapeamento direto.
originalProviderId read_only_udm.target.resource.attribute.labels[original_provider_id] Mapeamento direto.
pai ou mãe read_only_udm.target.resource_ancestors[0].name Mapeamento direto.
parentDisplayName read_only_udm.metadata.description Mapeamento direto.
propertyDataTypes.changed_policy.primitiveDataType read_only_udm.security_result.rule_labels[changed_policy_primitive_data_type] Mapeamento direto.
propertyDataTypes.policy_drift_details.listValues.propertyDataTypes[0].structValue.fields.drift_details.structValue.fields.detected_configuration.primitiveDataType read_only_udm.security_result.rule_labels[detected_configuration_primitive_data_type] Mapeamento direto.
propertyDataTypes.policy_drift_details.listValues.propertyDataTypes[0].structValue.fields.drift_details.structValue.fields.expected_configuration.primitiveDataType read_only_udm.security_result.rule_labels[expected_configuration_primitive_data_type] Mapeamento direto.
propertyDataTypes.policy_drift_details.listValues.propertyDataTypes[0].structValue.fields.field_name.primitiveDataType read_only_udm.security_result.rule_labels[field_name_primitive_data_type] Mapeamento direto.
propertyDataTypes.posture_deployment_name.primitiveDataType read_only_udm.security_result.detection_fields[posture_deployment_name_primitiveDataType] Mapeamento direto.
propertyDataTypes.posture_deployment_resource.primitiveDataType read_only_udm.security_result.detection_fields[posture_deployment_resource_primitiveDataType] Mapeamento direto.
propertyDataTypes.posture_name.primitiveDataType read_only_udm.security_result.detection_fields[posture_name_primitiveDataType] Mapeamento direto.
propertyDataTypes.posture_revision_id.primitiveDataType read_only_udm.security_result.detection_fields[posture_revision_id_primitiveDataType] Mapeamento direto.
resource.cloudProvider read_only_udm.target.resource.attribute.cloud.environment Mapeamento direto.
resource.displayName read_only_udm.target.resource.attribute.labels[resource_displayName] Mapeamento direto.
resource.gcpMetadata.organization read_only_udm.target.resource.attribute.labels[resource_organization] Mapeamento direto.
resource.gcpMetadata.parent read_only_udm.target.resource.attribute.labels[resource_parent] Mapeamento direto.
resource.gcpMetadata.parentDisplayName read_only_udm.target.resource.attribute.labels[resource_parentDisplayName] Mapeamento direto.
resource.gcpMetadata.project read_only_udm.target.resource.attribute.labels[resource_project] Mapeamento direto.
resource.gcpMetadata.projectDisplayName read_only_udm.target.resource.attribute.labels[resource_projectDisplayName] Mapeamento direto.
resource.organization read_only_udm.target.resource.attribute.labels[resource_organization] Mapeamento direto.
resource.resourcePath.nodes.displayName read_only_udm.target.resource_ancestors.name Mapeamento direto.
resource.resourcePath.nodes.id read_only_udm.target.resource_ancestors.product_object_id Mapeamento direto.
resource.resourcePath.nodes.nodeType read_only_udm.target.resource_ancestors.resource_subtype Mapeamento direto.
resource.resourcePathString read_only_udm.target.resource.attribute.labels[resource_path_string] Mapeamento direto.
resource.service read_only_udm.target.resource_ancestors[10].name Mapeamento direto.
resource.type read_only_udm.target.resource.attribute.labels[resource_type] Mapeamento direto.
resourceName read_only_udm.target.resource.name Mapeamento direto.
securityPosture.changedPolicy read_only_udm.security_result.rule_labels[changed_policy] Mapeamento direto.
securityPosture.name read_only_udm.security_result.detection_fields[security_posture_name] Mapeamento direto.
securityPosture.policyDriftDetails[0].detectedValue read_only_udm.security_result.rule_labels[policy_drift_details_detected_value] Mapeamento direto.
securityPosture.policyDriftDetails[0].expectedValue read_only_udm.security_result.rule_labels[policy_drift_details_expected_value] Mapeamento direto.
securityPosture.policyDriftDetails[0].field read_only_udm.security_result.rule_labels[policy_drift_details_field] Mapeamento direto.
securityPosture.policySet read_only_udm.security_result.rule_set Mapeamento direto.
securityPosture.postureDeployment read_only_udm.security_result.detection_fields[posture_deployment] Mapeamento direto.
securityPosture.postureDeploymentResource read_only_udm.security_result.detection_fields[posture_deployment_resource] Mapeamento direto.
securityPosture.revisionId read_only_udm.security_result.detection_fields[security_posture_revision_id] Mapeamento direto.
gravidade read_only_udm.security_result.severity Mapeamento direto.
sourceProperties.categories[0] read_only_udm.security_result.detection_fields[source_properties_categories] Mapeamento direto.
sourceProperties.changed_policy read_only_udm.security_result.rule_name Mapeamento direto.
sourceProperties.name read_only_udm.target.application Mapeamento direto.
sourceProperties.policy_drift_details[0].drift_details.detected_configuration read_only_udm.security_result.rule_labels[policy_drift_details_detected_configuration] Mapeamento direto.
sourceProperties.policy_drift_details[0].drift_details.expected_configuration read_only_udm.security_result.rule_labels[policy_drift_details_expected_configuration] Mapeamento direto.
sourceProperties.policy_drift_details[0].field_name read_only_udm.security_result.rule_labels[policy_drift_details_field_name] Mapeamento direto.
sourceProperties.posture_deployment read_only_udm.security_result.detection_fields[source_properties_posture_deployment_name] Mapeamento direto.
sourceProperties.posture_deployment_name read_only_udm.security_result.detection_fields[source_properties_posture_deployment_name] Mapeamento direto.
sourceProperties.posture_deployment_resource read_only_udm.security_result.detection_fields[source_properties_posture_deployment_resource] Mapeamento direto.
sourceProperties.posture_name read_only_udm.target.application Mapeamento direto.
sourceProperties.posture_revision_id read_only_udm.security_result.detection_fields[source_properties_posture_revision_id] Mapeamento direto.
sourceProperties.revision_id read_only_udm.security_result.detection_fields[source_properties_posture_revision_id] Mapeamento direto.
estado read_only_udm.security_result.detection_fields[state] Mapeamento direto.
read_only_udm.metadata.vendor_name O analisador mapeia o valor estático Google.
read_only_udm.metadata.product_name O analisador mapeia o valor estático Security Command Center.
read_only_udm.target.resource.resource_type O analisador mapeia o valor estático CLUSTER.
read_only_udm.security_result.about.investigation.status O analisador mapeia o valor estático NEW.
read_only_udm.security_result.alert_state O analisador mapeia o valor estático ALERTING.
read_only_udm.metadata.event_type O analisador mapeia para GENERIC_EVENT como valor predefinido. Se o campo "category" for igual a "SECURITY_POSTURE_DRIFT" e "client_device_present" e "token_target.application" não estiverem vazios, é mapeado para "SERVICE_MODIFICATION". Se o campo "category" for igual a "SECURITY_POSTURE_POLICY_DRIFT", "SECURITY_POSTURE_POLICY_DELETE", "SECURITY_POSTURE_DETECTOR_DRIFT" ou "SECURITY_POSTURE_DETECTOR_DELETE", e "network_edr_not_present" for falso e "client_device_present" for verdadeiro, é mapeado para "SCAN_UNCATEGORIZED". Se o campo "token_metadata.event_type" for igual a "GENERIC_EVENT", "network_edr_not_present" for falso e "client_device_present" for verdadeiro, é mapeado para "STATUS_UPDATE".
read_only_udm.target.resource_ancestors[1].resource_type O analisador mapeia o valor estático CLOUD_PROJECT.
read_only_udm.target.resource.product_object_id O analisador extrai o valor do campo "parent", entre o segundo e o terceiro carater "/".
read_only_udm.target.resource_ancestors[1].name O analisador extrai o valor do campo "resourceName", entre o quarto e o quinto carater "/".
read_only_udm.security_result.url_back_to_product O analisador cria dinamicamente o URL com os IDs da organização, da origem e da descoberta extraídos do registo.
securityMarks.name read_only_udm.security_result.detection_fields[securityMarks_name] Mapeamento direto.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.