Coletar registros do Elastic Load Balancing da AWS
Este documento explica como coletar registros do AWS Elastic Load Balancing 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 {: #before-you-begin }
Verifique se você atende aos seguintes pré-requisitos:
- Instância do Google SecOps
- Acesso privilegiado à AWS
Configurar o Elastic Load Balancing 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
- Faça login no console da AWS.
- Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket
- Salve o Nome do bucket (por exemplo,
elb-logs
) e a Região para uso posterior. - Crie um usuário seguindo este guia: Como criar um usuário do IAM.
- Selecione o usuário criado.
- Selecione a guia Credenciais de segurança.
- Clique em Criar chave de acesso na seção Chaves de acesso.
- Selecione Serviço de terceiros como o Caso de uso.
- Clique em Próxima.
- Opcional: adicione uma tag de descrição.
- Clique em Criar chave de acesso.
- Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso posterior.
- Clique em Concluído.
- Selecione a guia Permissões.
- Clique em Adicionar permissões na seção Políticas de permissões.
- Selecione Adicionar permissões.
- Selecione Anexar políticas diretamente.
- Pesquise e selecione a política AmazonS3FullAccess.
- Clique em Próxima.
- Clique em Adicionar permissões
Como configurar o balanceador de carga elástico da AWS para ativar os registros de acesso
- Faça login no console de gerenciamento da AWS.
- Pesquise e selecione EC2.
- Selecione Balanceadores de carga no menu de navegação.
- Selecione o balanceador de carga para o qual você quer ativar o registro.
- Na guia Descrição, role até Atributos.
- Clique em Editar atributos.
- Selecione Ativar para ativar os registros de acesso.
- Selecione o bucket do S3 criado anteriormente (por exemplo,
elb-logs
). - Opcional: defina o prefixo do registro para facilitar a identificação (por exemplo,
elb/access-logs/
). - 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:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed (por exemplo, Registros do AWS Elastic Load Balancer).
- Selecione Amazon S3 como o Tipo de origem.
- Selecione Balanceador de carga elástico da AWS como o Tipo de registro.
- Clique em Próxima.
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 seu bucket do S3.
- Substitua
- 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 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.
Clique em Próxima.
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:/BUCKET_NAME
- Substitua
BUCKET_NAME
pelo nome real do seu bucket do S3.
- Substitua
- 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 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 |
---|---|---|
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.