Recolha registos do Uptycs EDR

Suportado em:

Este documento explica como pode carregar registos do Uptycs EDR para o Google Security Operations através do Amazon S3. O analisador transforma os registos JSON não processados num modelo de dados unificado (UDM). Primeiro, extrai campos do JSON, executa a limpeza e o enriquecimento de dados e, em seguida, mapeia as informações relevantes para os campos da UDM correspondentes, processando vários tipos de dados e casos extremos para garantir uma representação precisa e consistente no esquema da UDM.

Antes de começar

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

  • Uma instância do Google SecOps
  • Acesso privilegiado ao Uptycs
  • Acesso privilegiado à AWS (S3, IAM)

Obtenha os pré-requisitos do Uptycs

  1. Inicie sessão na consola do administrador do Uptycs.
  2. Aceda a Configuração > Utilizadores.
  3. Selecione o utilizador ou crie um utilizador da conta de serviço.
  4. Clique em Chave da API do utilizador.
  5. Copie e guarde numa localização segura os seguintes detalhes:
    • Chave da API
    • API Secret
    • ID de cliente
    • Domínio da API (derivado do seu URL do Uptycs, por exemplo, mystack.uptycs.io)

Configure o contentor do AWS S3 e o IAM para o Google SecOps

  1. Crie um contentor do Amazon S3 seguindo este manual do utilizador: Criar um contentor.
  2. Guarde o nome e a região do contentor para referência futura (por exemplo, uptycs-telemetry-export).
  3. Crie um utilizador seguindo este guia do utilizador: criar um utilizador do IAM.
  4. Selecione o utilizador criado.
  5. Selecione o separador Credenciais de segurança.
  6. Clique em Criar chave de acesso na secção Chaves de acesso.
  7. Selecione Serviço de terceiros como Exemplo de utilização.
  8. Clicar em Seguinte.
  9. Opcional: adicione uma etiqueta de descrição.
  10. Clique em Criar chave de acesso.
  11. Clique em Transferir ficheiro CSV para guardar a chave de acesso e a chave de acesso secreta para referência futura.
  12. Clique em Concluído.
  13. Selecione o separador Autorizações.
  14. Clique em Adicionar autorizações na secção Políticas de autorizações.
  15. Selecione Adicionar autorizações.
  16. Selecione Anexar políticas diretamente.
  17. Pesquise a política AmazonS3FullAccess.
  18. Selecione a política.
  19. Clicar em Seguinte.
  20. Clique em Adicionar autorizações.

Configure a política e a função de IAM para carregamentos do S3

  1. Na consola da AWS, aceda a IAM > Políticas.
  2. Clique em Criar política > separador JSON.
  3. Introduza a seguinte política:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowPutObjects",
          "Effect": "Allow",
          "Action": "s3:PutObject",
          "Resource": "arn:aws:s3:::uptycs-telemetry-export/*"
        },
        {
          "Sid": "AllowListBucket",
          "Effect": "Allow",
          "Action": "s3:ListBucket",
          "Resource": "arn:aws:s3:::uptycs-telemetry-export"
        }
      ]
    }
    
    • Substitua uptycs-telemetry-export se tiver introduzido um nome de contentor diferente.
  4. Clique em Seguinte > Criar política.

  5. Atribua um nome à política uptycs-s3-write-policy.

  6. Aceda a IAM > Utilizadores.

  7. Selecione o utilizador criado para exportações do Uptycs.

  8. Clique em Adicionar autorizações > Anexar políticas diretamente.

  9. Pesquise e selecione uptycs-s3-write-policy.

  10. Clique em Seguinte > Adicionar autorizações.

Configure a telemetria não processada de exportação do Uptycs

  1. Inicie sessão na Uptycs Console.
  2. Aceda à secção de configuração de exportação.
  3. Configure o destino de exportação do S3.
  4. Forneça os seguintes detalhes de configuração:
    • Tipo de exportação: selecione Telemetria não processada.
    • Destino: selecione Amazon S3.
    • Formato: selecione JSON.
    • Bucket do S3: introduza uptycs-telemetry-export.
    • Prefixo do caminho S3: introduza telemetry/.
    • Região da AWS: selecione a região do seu contentor.
    • ID da chave de acesso da AWS: introduza a chave de acesso do utilizador do IAM.
    • Chave de acesso secreta da AWS: introduza a chave de acesso secreta.
    • Tipos de eventos: selecione todos os tipos de telemetria necessários.
  5. Teste e ative a exportação.

Crie um utilizador da IAM só de leitura para o Google SecOps

  1. Aceda a AWS Console > IAM > Users.
  2. Clique em Adicionar utilizadores.
  3. Forneça os seguintes detalhes de configuração:
    • Utilizador: introduza secops-reader.
    • Tipo de acesso: selecione Chave de acesso – Acesso programático.
  4. Clique em Criar utilizador.
  5. Anexe a política de leitura mínima (personalizada): Users > secops-reader > Permissions > Add permissions > Attach policies directly > Create policy.
  6. No editor JSON, introduza a seguinte política:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::uptycs-telemetry-export/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::uptycs-telemetry-export"
        }
      ]
    }
    
  7. Defina o nome como secops-reader-policy.

  8. Aceda a Criar política > pesquise/selecione > Seguinte > Adicionar autorizações.

  9. Aceda a Credenciais de segurança > Chaves de acesso > Criar chave de acesso.

  10. Transfira o CSV (estes valores são introduzidos no feed).

Configure um feed no Google SecOps para carregar registos do Uptycs

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em + Adicionar novo feed.
  3. No campo Nome do feed, introduza um nome para o feed (por exemplo, Uptycs EDR logs).
  4. Selecione Amazon S3 V2 como o Tipo de origem.
  5. Selecione Uptycs EDR como o Tipo de registo.
  6. Clicar em Seguinte.
  7. Especifique valores para os seguintes parâmetros de entrada:
    • URI do S3: s3://uptycs-telemetry-export/telemetry/
    • Opções de eliminação de origens: selecione a opção de eliminação de acordo com a sua preferência.
    • Idade máxima do ficheiro: inclua ficheiros modificados no último número de dias. A predefinição é 180 dias.
    • ID da chave de acesso: chave de acesso do utilizador com acesso ao contentor do S3.
    • Chave de acesso secreta: chave secreta do utilizador com acesso ao contentor do S3.
    • Espaço de nomes do recurso: o espaço de nomes do recurso.
    • Etiquetas de carregamento: a etiqueta aplicada aos eventos deste feed.
  8. Clicar em Seguinte.
  9. 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 do UDM Lógica
osquery_raw_data.answer read_only_udm.network.dns.answers.name Valor retirado de osquery_raw_data.answer se osquery_raw_data.answer não estiver vazio.
osquery_raw_data.container_id read_only_udm.metadata.product_log_id Valor retirado de osquery_raw_data.container_id se osquery_raw_data.container_id não estiver vazio.
osquery_raw_data.local_address read_only_udm.principal.ip Valor retirado de osquery_raw_data.local_address se osquery_raw_data.local_address não estiver vazio e for um endereço IP válido.
osquery_raw_data.local read_only_udm.principal.ip Caso contrário, o valor é retirado de osquery_raw_data.local se osquery_raw_data.local não estiver vazio e for um endereço IP válido.
osquery_raw_data.local_port read_only_udm.principal.port Valor retirado de osquery_raw_data.local_port e convertido em número inteiro se osquery_raw_data.local_port não estiver vazio.
osquery_raw_data.md5 read_only_udm.target.process.file.md5 Valor retirado de osquery_raw_data.md5 se osquery_raw_data.md5 não estiver vazio.
osquery_raw_data.port read_only_udm.target.port Valor retirado de osquery_raw_data.port e convertido em número inteiro se osquery_raw_data.port não estiver vazio.
osquery_raw_data.question read_only_udm.network.dns.questions.name Valor retirado de osquery_raw_data.question se osquery_raw_data.question não estiver vazio.
osquery_raw_data.remote_address read_only_udm.intermediary.ip Valor retirado de osquery_raw_data.remote_address se osquery_raw_data.remote_address não estiver vazio.
osquery_raw_data.remote_port read_only_udm.intermediary.port Valor retirado de osquery_raw_data.remote_port e convertido em número inteiro se osquery_raw_data.remote_port não estiver vazio.
osquery_raw_data.type read_only_udm.network.dns.questions.type Valor retirado de osquery_raw_data.type e convertido em número inteiro se osquery_raw_data.type não estiver vazio.
osquery_raw_data.uid read_only_udm.principal.user.userid Valor retirado de osquery_raw_data.uid se osquery_raw_data.uid não estiver vazio e não for igual a "0".
osquery_raw_data.worker_instance_id read_only_udm.principal.user.userid Caso contrário, o valor é retirado de osquery_raw_data.worker_instance_id se osquery_raw_data.worker_instance_id não estiver vazio.
upt_asset_group_id read_only_udm.principal.user.group_identifiers Valor obtido de upt_asset_group_id se upt_asset_group_id não estiver vazio.
upt_asset_group_name read_only_udm.principal.group.group_display_name Valor retirado de upt_asset_group_name se upt_asset_group_name não estiver vazio.
upt_asset_id read_only_udm.principal.asset.asset_id String concatenada "UPT ASSET ID:" com o valor de upt_asset_id se upt_asset_id não estiver vazio.
upt_hash read_only_udm.target.file.md5 Todas as ocorrências de "-" são substituídas por "" em upt_hash. Em seguida, o valor é atribuído a read_only_udm.target.file.md5 se upt_hash não estiver vazio.
upt_hostname read_only_udm.principal.hostname Valor retirado de upt_hostname se upt_hostname não estiver vazio.
upt_resource_type read_only_udm.target.resource.type Valor retirado de upt_resource_type se upt_resource_type não estiver vazio.
upt_time read_only_udm.metadata.event_timestamp.seconds Valor retirado de upt_time se upt_time não estiver vazio.
read_only_udm.metadata.event_type O valor é definido como "PROCESS_LAUNCH" se osquery_raw_data.pid não estiver vazio. O valor é definido como "NETWORK_DNS" se osquery_raw_data.question não estiver vazio. O valor é definido como "GENERIC_EVENT" se event_type estiver vazio.
read_only_udm.metadata.log_type O valor está definido como "UPTYCS_EDR".
read_only_udm.metadata.product_name O valor está definido como "UPTYCS_EDR".
read_only_udm.metadata.vendor_name O valor está definido como "UPTYCS".
read_only_udm.network.application_protocol O valor é definido como "DNS" se osquery_raw_data.question não estiver vazio.
read_only_udm.security_result.action O valor é definido como "ALLOW" se osquery_raw_data.return_code for igual a "SUCCESS" ou osquery_raw_data.success for igual a "1".
read_only_udm.target.process.command_line Valor retirado de osquery_raw_data.cmdline se osquery_raw_data.cmdline não estiver vazio.
read_only_udm.target.process.file.full_path Valor retirado de osquery_raw_data.path se osquery_raw_data.path não estiver vazio.
read_only_udm.target.process.parent_process O valor é construído iterando a matriz ancestor_list em osquery_raw_data.ancestor_list. Para cada elemento na matriz, a command_line, o full_path do ficheiro e o pid são extraídos e formatados numa estrutura JSON que representa a cadeia de processos.
read_only_udm.target.process.pid Valor retirado de osquery_raw_data.pid se osquery_raw_data.pid não estiver vazio.

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