Recolha registos do AWS Elastic MapReduce

Compatível com:

Este documento explica como carregar registos do AWS Elastic MapReduce (EMR) para o Google Security Operations. O AWS EMR é uma plataforma de Big Data nativa da nuvem que processa grandes quantidades de dados rapidamente. A integração dos registos do EMR no Google SecOps permite-lhe analisar a atividade do cluster e detetar potenciais ameaças de segurança.

Antes de começar

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

  • Instância do Google SecOps
  • Acesso privilegiado ao AWS

Configure o contentor do Amazon S3

  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 utilização posterior.
  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 o 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 utilização posterior.
  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 e selecione as políticas AmazonS3FullAccess e CloudWatchLogsFullAccess.
  18. Clicar em Seguinte.
  19. Clique em Adicionar autorizações.

Como configurar o AWS EMR para encaminhar registos

  1. Inicie sessão na AWS Management Console.
  2. Na barra de pesquisa, escreva EMR e selecione Amazon EMR na lista de serviços.
  3. Clique em Clusters.
  4. Encontre e selecione o cluster do EMR para o qual quer ativar o registo.
  5. Clique em Editar na página Detalhes do cluster.
  6. No ecrã Editar cluster, aceda à secção Registo.
  7. Selecione Ativar o registo.
  8. Especifique o contentor do S3 onde os registos vão ser armazenados.
  9. Especifique o URI S3 no formato s3://your-bucket-name/ (isto armazena todos os registos do EMR na raiz do contentor).
  10. Selecione os seguintes tipos de registos:
    • Step logs
    • Application logs
    • YARN logs
    • System logs
    • HDFS Logs (se estiver a usar o Hadoop)
  11. Clique em Guardar.

Configure feeds

Existem dois pontos de entrada diferentes para configurar feeds na plataforma Google SecOps:

  • Definições do SIEM > Feeds > Adicionar novo
  • Content Hub > Pacotes de conteúdo > Começar

Como configurar o feed do AWS EMR

  1. Clique no pacote Amazon Cloud Platform.
  2. Localize o tipo de registo AWS EMR.
  3. Especifique os valores nos seguintes campos.

    • Tipo de origem: Amazon SQS V2
    • Nome da fila: o nome da fila SQS a partir da qual ler
    • URI do S3: o URI do contentor.
      • s3://your-log-bucket-name/
        • Substitua your-log-bucket-name pelo nome real do seu contentor do S3.
    • Opções de eliminação de origens: selecione a opção de eliminação de acordo com as suas preferências de carregamento.

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

    • ID da chave de acesso à fila SQS: uma chave de acesso à conta que é uma string alfanumérica de 20 carateres.

    • Chave de acesso secreta da fila SQS: uma chave de acesso à conta que é uma string alfanumérica de 40 carateres.

    Opções avançadas

    • Nome do feed: um valor pré-preenchido que identifica o feed.
    • Espaço de nomes do recurso: espaço de nomes associado ao feed.
    • Etiquetas de carregamento: etiquetas aplicadas a todos os eventos deste feed.
  4. Clique em Criar feed.

Para mais informações sobre a configuração de vários feeds para diferentes tipos de registos nesta família de produtos, consulte o artigo Configure feeds por produto.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
app_id additional.fields[].key O valor "APP" é atribuído através da análise
app_id additional.fields[].value.string_value Mapeado diretamente a partir do campo APP no registo não processado.
app_name additional.fields[].key O valor "APPNAME" é atribuído através do analisador
app_name additional.fields[].value.string_value Mapeado diretamente a partir do campo APPNAME no registo não processado.
blockid additional.fields[].key O valor "blockid" é atribuído através da análise sintática
blockid additional.fields[].value.string_value Mapeado diretamente a partir do campo blockid no registo não processado.
bytes network.received_bytes Mapeado diretamente a partir do campo bytes no registo não processado, convertido num número inteiro não assinado.
cliID additional.fields[].key O valor "cliID" é atribuído através da análise sintática
cliID additional.fields[].value.string_value Mapeado diretamente a partir do campo cliID no registo não processado.
cmd target.process.command_line Mapeado diretamente a partir do campo cmd no registo não processado.
comp_name additional.fields[].key O valor "COMP" é atribuído através da análise sintática
comp_name additional.fields[].value.string_value Mapeado diretamente a partir do campo COMP no registo não processado.
configuration_version additional.fields[].key O valor "configuration_version" é atribuído através do analisador
configuration_version additional.fields[].value.string_value Mapeado diretamente a partir do campo configuration_version no registo não processado, convertido numa string.
containerID additional.fields[].key O valor "containerID" é atribuído através do analisador
containerID additional.fields[].value.string_value Mapeado diretamente a partir do campo CONTAINERID no registo não processado.
description security_result.description Mapeado diretamente a partir do campo description no registo não processado.
dfs.FSNamesystem.* additional.fields[].key A chave é gerada concatenando "dfs.FSNamesystem." com a chave dos dados JSON.
dfs.FSNamesystem.* additional.fields[].value.string_value O valor é mapeado diretamente a partir do valor correspondente no objeto JSON dfs.FSNamesystem, convertido numa string.
duration additional.fields[].key O valor "duration" é atribuído através da análise sintática
duration additional.fields[].value.string_value Mapeado diretamente a partir do campo duration no registo não processado.
duration network.session_duration.seconds Mapeado diretamente a partir do campo duration no registo não processado, convertido num número inteiro.
environment additional.fields[].key O valor "environment" é atribuído através da análise sintática
environment additional.fields[].value.string_value Mapeado diretamente a partir do campo environment no registo não processado. Extraído do campo ip_port através da análise detalhada e da manipulação de strings. Extraído do campo ip_port através da análise grok e da manipulação de strings, convertido num número inteiro.
event_type metadata.event_type Determinado pela lógica do analisador com base na presença de informações principal e target. Pode ser NETWORK_CONNECTION, USER_RESOURCE_ACCESS, STATUS_UPDATE ou GENERIC_EVENT.
file_path target.file.full_path Mapeado diretamente a partir do campo file_path no registo não processado.
host principal.hostname Mapeado diretamente a partir do campo host no registo não processado.
host target.hostname Mapeado diretamente a partir do campo host no registo não processado.
host_ip principal.ip Mapeado diretamente a partir do campo host_ip no registo não processado.
host_port principal.port Mapeado diretamente a partir do campo host_port no registo não processado, convertido num número inteiro.
http_url target.url Mapeado diretamente a partir do campo http_url no registo não processado.
index additional.fields[].key O valor "index" é atribuído através da análise
index additional.fields[].value.string_value Mapeado diretamente a partir do campo index no registo não processado.
kind metadata.product_event_type Mapeado diretamente a partir do campo kind no registo não processado. O valor "AWS_EMR" é atribuído através do analisador O valor "AWS EMR" é atribuído através do analisador O valor "AMAZON" é atribuído através do analisador
offset additional.fields[].key O valor "offset" é atribuído através do analisador
offset additional.fields[].value.string_value Mapeado diretamente a partir do campo offset no registo não processado.
op metadata.product_event_type Mapeado diretamente a partir do campo op ou OPERATION no registo não processado.
proto network.application_protocol Extraído do campo http_url através do grok e convertido em maiúsculas.
puppet_version additional.fields[].key O valor "puppet_version" é atribuído através do analisador
puppet_version additional.fields[].value.string_value Mapeado diretamente a partir do campo puppet_version no registo não processado.
queue_name additional.fields[].key O valor "queue_name" é atribuído através do analisador
queue_name additional.fields[].value.string_value Mapeado diretamente a partir do campo queue_name no registo não processado.
report_format additional.fields[].key O valor "report_format" é atribuído através do analisador
report_format additional.fields[].value.string_value Mapeado diretamente a partir do campo report_format no registo não processado, convertido numa string.
resource additional.fields[].key O valor "resource" é atribuído através da análise sintática
resource additional.fields[].value.string_value Mapeado diretamente a partir do campo resource no registo não processado.
result security_result.action_details Mapeado diretamente a partir do campo RESULT no registo não processado.
security_id additional.fields[].key O valor "security_id" é atribuído através da análise sintática
security_id additional.fields[].value.string_value Mapeado diretamente a partir do campo security_id no registo não processado.
severity security_result.severity Mapeado a partir do campo severity no registo não processado. INFO está mapeado para INFORMATIONAL e WARN está mapeado para MEDIUM.
srvID additional.fields[].key O valor "srvID" é atribuído através da análise
srvID additional.fields[].value.string_value Mapeado diretamente a partir do campo srvID no registo não processado.
status additional.fields[].key O valor "status" é atribuído através do analisador
status additional.fields[].value.string_value Mapeado diretamente a partir do campo status no registo não processado.
summary security_result.summary Mapeado diretamente a partir do campo summary no registo não processado.
target_app target.application Mapeado diretamente a partir do campo TARGET no registo não processado.
target_ip target.ip Mapeado diretamente a partir do campo target_ip ou IP no registo não processado.
target_port target.port Mapeado diretamente a partir do campo target_port no registo não processado, convertido num número inteiro.
timestamp metadata.event_timestamp Mapeado diretamente a partir do campo timestamp no registo não processado, analisado como uma data/hora ISO8601.
timestamp event.timestamp Mapeado diretamente a partir do campo timestamp no registo não processado, analisado como uma data/hora ISO8601.
trade_date additional.fields[].key O valor "trade_date" é atribuído através do analisador
trade_date additional.fields[].value.string_value Mapeado diretamente a partir do campo trade_date no registo não processado.
transaction_uuid additional.fields[].key O valor "transaction_uuid" é atribuído através do analisador
transaction_uuid additional.fields[].value.string_value Mapeado diretamente a partir do campo transaction_uuid no registo não processado.
type additional.fields[].key O valor "type" é atribuído através do analisador
type additional.fields[].value.string_value Mapeado diretamente a partir do campo type no registo não processado.
user target.user.userid Mapeado diretamente a partir do campo USER ou ugi no registo não processado.

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