Coletar registros do Balanceamento de carga elástico da AWS

Compatível com:

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

Antes de começar

  • Verifique se você tem uma instância do Google SecOps.
  • Verifique se você tem acesso privilegiado à AWS.

Configurar o Balanceamento de carga elástico da AWS

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: 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 futuro.
  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

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. Ative os registros de acesso selecionando Ativar.
  8. Selecione o bucket do S3 criado anteriormente (por exemplo, elb-logs).
  9. Opcional: defina o prefixo de registro para facilitar a identificação (por exemplo, elb/access-logs/).
  10. Clique em Salvar.

Configurar um feed no Google SecOps para processar os registros do balanceador de carga elástico da AWS

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo.
  3. No campo Nome do feed, insira um nome para o feed (por exemplo, Logs do balanceador de carga elástica da AWS).
  4. Selecione Amazon S3 como o Tipo de origem.
  5. Selecione Balanceador de carga elástico da AWS como o Tipo de registro.
  6. Clique em Próxima.
  7. 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:/BUCKET_NAME
        • Substitua BUCKET_NAME pelo nome real do bucket.
    • URI é um: selecione o TIPO DE URI de acordo com a configuração do fluxo de registros (Arquivo único | Diretório | Diretório que inclui subdiretórios).
    • Opções de exclusão da origem: selecione a opção de exclusão de acordo com sua preferência.
    • ID da chave de acesso: a chave de acesso do usuário com acesso ao bucket do S3.
    • Chave de acesso secreta: a chave secreta do usuário com acesso ao bucket do S3.
    • Namespace de recursos: o namespace de recursos.
    • Rótulos de ingestão: o rótulo a ser aplicado aos eventos desse feed.
  8. Clique em Próxima.

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

Tabela de mapeamento do 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 como chosen_cert_arn e adicione à matriz principal.user.attribute.labels.
chosen_cert_arn security_result.description Se chosen_cert_arn contiver "session", mapeie o valor 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 conferir 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 "Javascript Support" 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 para "LOW" 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 o 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 conferir 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 deste campo.
response_processing_time security_result.detection_fields Cria um par de chave-valor com a chave "response_processing_time" e o valor deste 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.
(analisador) metadata.event_type Defina como "NETWORK_HTTP" se os IDs da máquina principal e de destino estiverem presentes, "STATUS_UPDATE" se apenas o ID da máquina principal estiver presente, "GENERIC_EVENT" se nenhum IP de destino, nome de host ou IP de destino estiver presente e "NETWORK_HTTP" caso contrário.
(analisador) metadata.product_name Defina como "Balanceador de carga elástico da AWS".
(analisador) metadata.vendor_name Defina como "AMAZON".

Alterações

2024-03-22

  • Novo padrão Grok adicionado para oferecer suporte ao novo padrão de registros JSON.
  • Adição de suporte a registros de padrões CEF.
  • "dst_ip" foi mapeado para "target.ip".
  • Mapeamos "dst_port" para "target.port".
  • "sip" foi mapeado para "principal.ip".
  • "request_processing_time", "target_processing_time", "siteid", "fileId" e "response_processing_time" foram mapeados para "security_result.detection.fields".
  • Mapeamentos alinhadas para "principal.ip" e "principal.asset.ip".
  • Mapeamentos alinhados para "target.ip" e "target.asset.ip".
  • Mapeamentos alinhadas para "target.hostname" e "target.asset.hostname".
  • O "cipher" foi mapeado para "network.tls.cipher".
  • "version" foi mapeado para "network.tls.version".
  • "Customer" foi associado a "principal.user.user_display_name".

2022-05-27

  • Melhoria: o valor armazenado em metadata.product_name foi modificado para "AWS Elastic Load Balancer".

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