Coletar registros do AWS Elastic Load Balancer

Compatível com:

Neste documento, explicamos como coletar registros do AWS Elastic Load Balancer configurando um feed do Google Security Operations. O analisador converte os registros no formato UDM. Ele usa padrões grok para extrair campos de mensagens formatadas em CEF e não CEF, mapeando-os para campos da UDM e processando várias transformações de dados, incluindo lógica específica para campos HTTP, TLS e relacionados à segurança. Ele também realiza o processamento condicional com base na presença ou no formato de determinados campos para garantir uma representação precisa da UDM.

Antes de começar

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

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

Configurar o Elastic Load Balancer da AWS

  • Ativar a geração de registros de acesso para enviar registros de acesso a um bucket de armazenamento do S3
  • Crie um Amazon Simple Queue Service (SQS) e anexe-o a um bucket de armazenamento do S3.

Configurar o bucket do Amazon S3

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

Como configurar o balanceador de carga elástico da AWS para ativar os registros de acesso

  1. Faça login no console de gerenciamento da AWS.
  2. Pesquise e selecione EC2.
  3. Selecione Balanceadores de carga no menu de navegação.
  4. Selecione o balanceador de carga para o qual você quer ativar o registro.
  5. Na guia Descrição, role até Atributos.
  6. Clique em Editar atributos.
  7. Selecione Ativar para ativar os registros de acesso.
  8. Selecione o bucket do S3 criado anteriormente (por exemplo, elb-logs).
  9. Opcional: defina o prefixo do registro para facilitar a identificação (por exemplo, elb/access-logs/).
  10. Clique em Salvar.

Configurar feeds

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

  • Configurações do SIEM > Feeds > Adicionar novo
  • Central de conteúdo > Pacotes de conteúdo > Começar

Como configurar o feed do Elastic Load Balancer da AWS

  1. Clique no pacote Amazon Cloud Platform.
  2. Localize o tipo de registro AWS Elastic Load Balancer.
  3. Especifique os valores nos campos a seguir.

    1. Especifique os valores nos campos a seguir.
    2. Tipo de origem: Amazon SQS V2
    3. Nome da fila: o nome da fila do SQS de onde ler.
    4. 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.
    5. Opções de exclusão de origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.

    6. Idade máxima do arquivo: inclui arquivos modificados no último número de dias. O padrão é de 180 dias.

    7. ID da chave de acesso à fila do SQS: uma chave de acesso à conta que é uma string alfanumérica de 20 caracteres.

    8. Chave de acesso secreta da fila do SQS: uma chave de acesso da conta que é uma string alfanumérica de 40 caracteres.

    Opções avançadas

    • Nome do feed: um valor pré-preenchido que identifica o feed.
    • Namespace do recurso: namespace associado ao feed.
    • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
  4. Clique em Criar feed.

Para mais informações sobre como configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar feeds por produto.

Tabela de mapeamento da UDM

Campo de registro Mapeamento do UDM Lógica
actions_executed security_result.action Se actions_executed for "waf,forward" ou "waf,redirect", defina como "ALLOW". Se actions_executed for "waf", defina como "BLOCK".
chosen_cert_arn principal.user.attribute.labels Se chosen_cert_arn contiver "session", mapeie o valor para security_result.description. Caso contrário, crie um rótulo com a chave "ARN" e o valor chosen_cert_arn e adicione-o à matriz principal.user.attribute.labels.
chosen_cert_arn security_result.description Se chosen_cert_arn contiver "session", mapeie o valor dele para esse campo.
client_ip principal.asset.ip Mapeado diretamente.
client_ip principal.ip Mapeado diretamente.
client_port principal.port Mapeado diretamente.
classification security_result.rule_name Mapeado diretamente se não estiver vazio ou "-".
classification_reason security_result.summary Mapeado diretamente se não estiver vazio ou "-".
Customer (CEF) principal.user.user_display_name Mapeado diretamente do campo CEF.
data Vários Analisado usando padrões grok para extrair vários campos. Consulte outras linhas para mapeamentos específicos.
data.act (CEF) security_result.action_details Mapeado diretamente do campo CEF.
data.app (CEF) principal.application Mapeado diretamente do campo CEF.
data.ccode (CEF) principal.location.country Mapeado diretamente do campo CEF.
data.cicode (CEF) principal.location.city Mapeado diretamente do campo CEF.
data.cn1 (CEF) network.http.response_code Mapeado diretamente do campo CEF.
data.cpt (CEF) principal.port Mapeado diretamente do campo CEF.
data.cs1Label (CEF) additional.fields Cria um par de chave-valor com a chave "Cap Support" e o valor de cs1Label.
data.cs2Label (CEF) additional.fields Cria um par de chave-valor com a chave "Suporte a JavaScript" e o valor de cs2Label.
data.cs3Label (CEF) additional.fields Cria um par de chave-valor com a chave "CO Support" e o valor de cs3Label.
data.cs4Label (CEF) additional.fields Cria um par de chave-valor com a chave "VID" e o valor de cs4Label.
data.cs5Label (CEF) additional.fields Cria um par de chave-valor com a chave "clappsig" e o valor de cs5Label.
data.cs6Label (CEF) additional.fields Cria um par de chave-valor com a chave "clapp" e o valor de cs6Label.
data.cs7Label (CEF) additional.fields Cria um par de chave-valor com a chave "latitude" e o valor de cs7Label.
data.deviceExternalId (CEF) about.asset.asset_id Usado como parte do ID do recurso: Incapsula.SIEMintegration:deviceExternalId.
data.deviceFacility (CEF) principal.location.region Mapeado diretamente do campo CEF.
data.dproc (CEF) target.process.command_line Mapeado diretamente do campo CEF.
data.dst_ip target.asset.ip Mapeado diretamente.
data.dst_ip target.ip Mapeado diretamente.
data.dst_port target.port Mapeado diretamente.
data.elb target.resource.id Mapeado diretamente.
data.fileId (CEF) security_result.detection_fields Cria um par de chave-valor com a chave "fileId" e o valor de fileId.
data.in (CEF) network.received_bytes Mapeado diretamente do campo CEF.
data.request (CEF) target.url Mapeado diretamente do campo CEF.
data.requestClientApplication (CEF) network.http.user_agent Mapeado diretamente do campo CEF.
data.requestMethod (CEF) network.http.method Mapeado diretamente do campo CEF.
data.severity (CEF) security_result.severity Mapeado como "BAIXA" se a gravidade for 0.
data.sip (CEF) principal.asset.ip Mapeado diretamente do campo CEF.
data.sip (CEF) principal.ip Mapeado diretamente do campo CEF.
data.siteid (CEF) security_result.detection_fields Cria um par de chave-valor com a chave "siteid" e o valor de siteid.
data.sourceServiceName (CEF) principal.application Mapeado diretamente do campo CEF.
data.spt (CEF) principal.port Mapeado diretamente do campo CEF.
data.src (CEF) principal.ip Mapeado diretamente do campo CEF.
data.suid (CEF) principal.user.userid Mapeado diretamente do campo CEF.
data.ver (CEF) network.tls.version A parte da versão é extraída usando grok e mapeada.
data.ver (CEF) network.tls.cipher A parte da cifra é extraída usando grok e mapeada.
data.xff (CEF) principal.ip Mapeado diretamente do campo CEF.
domain_name principal.administrative_domain Mapeado diretamente.
http_method network.http.method Mapeado diretamente.
log_type metadata.log_type Mapeado diretamente.
message Vários Analisado usando padrões grok para extrair vários campos. Consulte outras linhas para mapeamentos específicos.
received_bytes network.received_bytes Mapeado diretamente.
redirect_url network.application_protocol Se redirect_url começar com "http", o protocolo será extraído e mapeado.
redirect_url target.asset.hostname Se redirect_url começar com "http", o nome do host será extraído e mapeado.
redirect_url target.hostname Se redirect_url começar com "http", o nome do host será extraído e mapeado.
redirect_url target.port Se redirect_url começar com "http", a porta será extraída e mapeada.
request_creation_time metadata.collected_timestamp Mapeado diretamente após a análise da data.
request_processing_time security_result.detection_fields Cria um par de chave-valor com a chave "request_processing_time" e o valor desse campo.
response_processing_time security_result.detection_fields Cria um par de chave-valor com a chave "response_processing_time" e o valor desse campo.
sent_bytes network.sent_bytes Mapeado diretamente.
ssl_cipher network.tls.cipher Mapeado diretamente.
ssl_protocol network.tls.version Mapeado diretamente.
target_group_arn target.group.group_display_name Mapeado diretamente.
target_processing_time security_result.detection_fields Cria um par de chave-valor com a chave "target_processing_time" e o valor deste campo.
target_status_code target.labels Cria um rótulo com a chave "target_status_code" e o valor desse campo e o adiciona à matriz target.labels.
time metadata.event_timestamp Mapeado diretamente após a análise da data.
trace_id metadata.product_log_id Mapeado diretamente após a remoção de "Root=".
url network.http.referral_url Mapeado diretamente.
user_agent network.http.user_agent Mapeado diretamente.
(Parser) metadata.event_type Definido como "NETWORK_HTTP" se os IDs principal e da máquina de destino estiverem presentes, "STATUS_UPDATE" se apenas o ID da máquina principal estiver presente, "GENERIC_EVENT" se não houver IP de destino, nome do host ou IP de destino e "NETWORK_HTTP" caso contrário.
(Parser) metadata.product_name Definido como "Balanceador de carga elástico da AWS".
(Parser) metadata.vendor_name Defina como "AMAZON".

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