Coletar registros do AWS Elastic MapReduce

Compatível com:

Neste documento, explicamos como ingerir registros do AWS Elastic MapReduce (EMR) no Google Security Operations. O AWS EMR é uma plataforma de Big Data nativa da nuvem que processa grandes quantidades de dados rapidamente. Ao integrar os registros do EMR ao Google SecOps, você pode analisar a atividade do cluster e detectar possíveis ameaças à segurança.

Antes de começar

Verifique se você atende aos seguintes pré-requisitos:

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

Configurar o bucket do Amazon S3

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket
  2. Salve o Nome e a Região do bucket para uso posterior.
  3. Crie um usuário seguindo este guia: Como criar um usuário do IAM.
  4. Selecione o usuário criado.
  5. Selecione a guia Credenciais de segurança.
  6. Clique em Criar chave de acesso na seção Chaves de acesso.
  7. Selecione Serviço de terceiros como o Caso de uso.
  8. Clique em Próxima.
  9. Opcional: adicione uma tag de descrição.
  10. Clique em Criar chave de acesso.
  11. Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso posterior.
  12. Clique em Concluído.
  13. Selecione a guia Permissões.
  14. Clique em Adicionar permissões na seção Políticas de permissões.
  15. Selecione Adicionar permissões.
  16. Selecione Anexar políticas diretamente.
  17. Pesquise e selecione as políticas AmazonS3FullAccess e CloudWatchLogsFullAccess.
  18. Clique em Próxima.
  19. Clique em Adicionar permissões

Como configurar o AWS EMR para encaminhar registros

  1. Faça login no Console de Gerenciamento da AWS.
  2. Na barra de pesquisa, digite EMR e selecione Amazon EMR na lista de serviços.
  3. Clique em Clusters.
  4. Encontre e selecione o cluster do EMR em que você quer ativar o registro em registros.
  5. Clique em Editar na página Detalhes do cluster.
  6. Na tela Editar cluster, acesse a seção Logging.
  7. Selecione Ativar a geração de registros.
  8. Especifique o bucket do S3 em que os registros serão armazenados.
  9. Especifique o URI do S3 no formato s3://your-bucket-name/. Isso vai armazenar todos os registros do EMR na raiz do bucket.
  10. Selecione os seguintes tipos de registro:
    • Step logs
    • Application logs
    • YARN logs
    • System logs
    • HDFS Logs (se você estiver usando o Hadoop)
  11. Clique em Salvar.

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds
  • Central de conteúdo > Pacotes de conteúdo

Configure feeds em Configurações do SIEM > Feeds

Para configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar feeds por produto.

Para configurar um único feed, siga estas etapas:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, Registros do AWS EMR).
  5. Selecione Amazon S3 como o Tipo de origem.
  6. Selecione AWS EMR como o Tipo de registro.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:

    • Região: a região em que o bucket do Amazon S3 está localizado.
    • URI do S3: o URI do bucket.
      • s3://your-log-bucket-name/
        • Substitua your-log-bucket-name pelo nome real do seu bucket do S3.
    • URI é um: selecione Diretório ou Diretório que inclui subdiretórios, dependendo da estrutura do bucket.
    • Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.

    • ID da chave de acesso: a chave de acesso do usuário com permissões para ler do bucket do S3.

    • Chave de acesso secreta: a chave secreta do usuário com permissões para ler do bucket do S3.

    • Namespace do recurso: o namespace do recurso.

    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos deste feed.

  9. Clique em Próxima.

  10. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Configurar feeds na Central de conteúdo

Especifique valores para os seguintes campos:

  • Região: a região em que o bucket do Amazon S3 está localizado.
  • URI do S3: o URI do bucket.
    • s3://your-log-bucket-name/
      • Substitua your-log-bucket-name pelo nome real do seu bucket do S3.
  • URI é um: selecione Diretório ou Diretório que inclui subdiretórios, dependendo da estrutura do bucket.
  • Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.
  • ID da chave de acesso: a chave de acesso do usuário com permissões para ler do bucket do S3.

  • Chave de acesso secreta: a chave secreta do usuário com permissões para ler do bucket do S3.

Opções avançadas

  • Nome do feed: um valor pré-preenchido que identifica o feed.
  • Tipo de origem: método usado para coletar registros no Google SecOps.
  • Namespace do recurso: namespace associado ao feed.
  • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
app_id additional.fields[].key O valor "APP" é atribuído pelo analisador.
app_id additional.fields[].value.string_value Mapeado diretamente do campo APP no registro bruto.
app_name additional.fields[].key O valor "APPNAME" é atribuído pelo analisador.
app_name additional.fields[].value.string_value Mapeado diretamente do campo APPNAME no registro bruto.
blockid additional.fields[].key O valor "blockid" é atribuído pelo analisador.
blockid additional.fields[].value.string_value Mapeado diretamente do campo blockid no registro bruto.
bytes network.received_bytes Mapeado diretamente do campo bytes no registro bruto e convertido em um número inteiro sem sinal.
cliID additional.fields[].key O valor "cliID" é atribuído pelo analisador.
cliID additional.fields[].value.string_value Mapeado diretamente do campo cliID no registro bruto.
cmd target.process.command_line Mapeado diretamente do campo cmd no registro bruto.
comp_name additional.fields[].key O valor "COMP" é atribuído pelo analisador.
comp_name additional.fields[].value.string_value Mapeado diretamente do campo COMP no registro bruto.
configuration_version additional.fields[].key O valor "configuration_version" é atribuído pelo analisador.
configuration_version additional.fields[].value.string_value Mapeado diretamente do campo configuration_version no registro bruto e convertido em uma string.
containerID additional.fields[].key O valor "containerID" é atribuído pelo analisador.
containerID additional.fields[].value.string_value Mapeado diretamente do campo CONTAINERID no registro bruto.
description security_result.description Mapeado diretamente do campo description no registro bruto.
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 do valor correspondente no objeto JSON dfs.FSNamesystem e convertido em uma string.
duration additional.fields[].key O valor "duration" é atribuído pelo analisador.
duration additional.fields[].value.string_value Mapeado diretamente do campo duration no registro bruto.
duration network.session_duration.seconds Mapeado diretamente do campo duration no registro bruto e convertido em um número inteiro.
environment additional.fields[].key O valor "environment" é atribuído pelo analisador.
environment additional.fields[].value.string_value Mapeado diretamente do campo environment no registro bruto. Extraído do campo ip_port usando grok e manipulação de strings. Extraído do campo ip_port usando grok e manipulação de strings, convertido em um 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 do campo file_path no registro bruto.
host principal.hostname Mapeado diretamente do campo host no registro bruto.
host target.hostname Mapeado diretamente do campo host no registro bruto.
host_ip principal.ip Mapeado diretamente do campo host_ip no registro bruto.
host_port principal.port Mapeado diretamente do campo host_port no registro bruto e convertido em um número inteiro.
http_url target.url Mapeado diretamente do campo http_url no registro bruto.
index additional.fields[].key O valor "index" é atribuído pelo analisador.
index additional.fields[].value.string_value Mapeado diretamente do campo index no registro bruto.
kind metadata.product_event_type Mapeado diretamente do campo kind no registro bruto. O valor "AWS_EMR" é atribuído pelo analisador. O valor "AWS EMR" é atribuído pelo analisador. O valor "AMAZON" é atribuído pelo analisador.
offset additional.fields[].key O valor "offset" é atribuído pelo analisador.
offset additional.fields[].value.string_value Mapeado diretamente do campo offset no registro bruto.
op metadata.product_event_type Mapeado diretamente do campo op ou OPERATION no registro bruto.
proto network.application_protocol Extraído do campo http_url usando grok e convertido para letras maiúsculas.
puppet_version additional.fields[].key O valor "puppet_version" é atribuído pelo analisador.
puppet_version additional.fields[].value.string_value Mapeado diretamente do campo puppet_version no registro bruto.
queue_name additional.fields[].key O valor "queue_name" é atribuído pelo analisador.
queue_name additional.fields[].value.string_value Mapeado diretamente do campo queue_name no registro bruto.
report_format additional.fields[].key O valor "report_format" é atribuído pelo analisador.
report_format additional.fields[].value.string_value Mapeado diretamente do campo report_format no registro bruto e convertido em uma string.
resource additional.fields[].key O valor "resource" é atribuído pelo analisador.
resource additional.fields[].value.string_value Mapeado diretamente do campo resource no registro bruto.
result security_result.action_details Mapeado diretamente do campo RESULT no registro bruto.
security_id additional.fields[].key O valor "security_id" é atribuído pelo analisador.
security_id additional.fields[].value.string_value Mapeado diretamente do campo security_id no registro bruto.
severity security_result.severity Mapeado do campo severity no registro bruto. INFO é mapeado para INFORMATIONAL, e WARN é mapeado para MEDIUM.
srvID additional.fields[].key O valor "srvID" é atribuído pelo analisador.
srvID additional.fields[].value.string_value Mapeado diretamente do campo srvID no registro bruto.
status additional.fields[].key O valor "status" é atribuído pelo analisador.
status additional.fields[].value.string_value Mapeado diretamente do campo status no registro bruto.
summary security_result.summary Mapeado diretamente do campo summary no registro bruto.
target_app target.application Mapeado diretamente do campo TARGET no registro bruto.
target_ip target.ip Mapeado diretamente do campo target_ip ou IP no registro bruto.
target_port target.port Mapeado diretamente do campo target_port no registro bruto e convertido em um número inteiro.
timestamp metadata.event_timestamp Mapeado diretamente do campo timestamp no registro bruto, analisado como um carimbo de data/hora ISO8601.
timestamp event.timestamp Mapeado diretamente do campo timestamp no registro bruto, analisado como um carimbo de data/hora ISO8601.
trade_date additional.fields[].key O valor "trade_date" é atribuído pelo analisador.
trade_date additional.fields[].value.string_value Mapeado diretamente do campo trade_date no registro bruto.
transaction_uuid additional.fields[].key O valor "transaction_uuid" é atribuído pelo analisador.
transaction_uuid additional.fields[].value.string_value Mapeado diretamente do campo transaction_uuid no registro bruto.
type additional.fields[].key O valor "type" é atribuído pelo analisador.
type additional.fields[].value.string_value Mapeado diretamente do campo type no registro bruto.
user target.user.userid Mapeado diretamente do campo USER ou ugi no registro bruto.

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