Recolha registos do AWS Elastic Load Balancer
Este documento explica como recolher registos do AWS Elastic Load Balancer configurando um feed do Google Security Operations. O analisador converte os registos no formato UDM. Usa padrões grok para extrair campos de mensagens formatadas em CEF e não CEF, mapeando-os para campos UDM e processando várias transformações de dados, incluindo lógica específica para campos relacionados com HTTP, TLS e segurança. Também realiza o processamento condicional com base na presença ou no formato de determinados campos para garantir uma representação precisa dos dados do utilizador.
Antes de começar
Certifique-se de que cumpre os seguintes pré-requisitos:
- Instância do Google SecOps
 - Acesso privilegiado ao AWS
 
Configure o AWS Elastic Load Balancer
- Ative o registo de acesso para enviar registos de acesso para um contentor de armazenamento do S3
 - Crie um Amazon Simple Queue Service (SQS) e anexe-o a um contentor de armazenamento do S3.
 
Configure o contentor do Amazon S3
- Inicie sessão na consola da AWS.
 - Crie um contentor do Amazon S3 seguindo este manual do utilizador: Criar um contentor
 - Guarde o Nome (por exemplo, 
elb-logs) e a Região do contentor para utilização posterior. - Crie um utilizador seguindo este guia do utilizador: Criar um utilizador do IAM.
 - Selecione o utilizador criado.
 - Selecione o separador Credenciais de segurança.
 - Clique em Criar chave de acesso na secção Chaves de acesso.
 - Selecione Serviço de terceiros como o Exemplo de utilização.
 - Clicar em Seguinte.
 - Opcional: adicione uma etiqueta de descrição.
 - Clique em Criar chave de acesso.
 - Clique em Transferir ficheiro CSV para guardar a chave de acesso e a chave de acesso secreta para utilização posterior.
 - Clique em Concluído.
 - Selecione o separador Autorizações.
 - Clique em Adicionar autorizações na secção Políticas de autorizações.
 - Selecione Adicionar autorizações.
 - Selecione Anexar políticas diretamente.
 - Pesquise e selecione a política AmazonS3FullAccess.
 - Clicar em Seguinte.
 - Clique em Adicionar autorizações.
 
Como configurar o AWS Elastic Load Balancer para ativar os registos de acesso
- Inicie sessão na AWS Management Console.
 - Pesquise e selecione EC2.
 - Selecione Equilibradores de carga no menu de navegação.
 - Selecione o equilibrador de carga para o qual quer ativar o registo.
 - No separador Descrição, desloque a página até Atributos.
 - Clique em Editar atributos.
 - Ative os registos de acesso selecionando Ativar.
 - Selecione o contentor S3 criado anteriormente (por exemplo, 
elb-logs). - Opcional: defina o prefixo do registo para facilitar a identificação do registo (por exemplo, 
elb/access-logs/). - 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 feed
 - Content Hub > Pacotes de conteúdo > Começar
 
Como configurar o feed do AWS Elastic Load Balancer
- Clique no pacote Amazon Cloud Platform.
 - Localize o tipo de registo AWS Elastic Load Balancer.
 Especifique os valores nos seguintes campos.
- 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-namepelo nome real do seu contentor do S3. 
- Substitua 
 
 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.
 
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 | 
|---|---|---|
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 respetivo valor para security_result.description. Caso contrário, crie uma etiqueta com a chave "ARN" e o valor chosen_cert_arn e adicione-a à matriz principal.user.attribute.labels. | 
chosen_cert_arn | 
security_result.description | 
Se chosen_cert_arn contiver "session", mapeie o respetivo valor para este campo. | 
client_ip | 
principal.asset.ip | 
Mapeados diretamente. | 
client_ip | 
principal.ip | 
Mapeados diretamente. | 
client_port | 
principal.port | 
Mapeados diretamente. | 
classification | 
security_result.rule_name | 
Mapeado diretamente se não estiver vazio ou for "-". | 
classification_reason | 
security_result.summary | 
Mapeado diretamente se não estiver vazio ou for "-". | 
Customer (CEF) | 
principal.user.user_display_name | 
Mapeado diretamente a partir do campo CEF. | 
data | 
Vários | Analisado através de padrões grok para extrair vários campos. Consulte outras linhas para ver mapeamentos específicos. | 
data.act (CEF) | 
security_result.action_details | 
Mapeado diretamente a partir do campo CEF. | 
data.app (CEF) | 
principal.application | 
Mapeado diretamente a partir do campo CEF. | 
data.ccode (CEF) | 
principal.location.country | 
Mapeado diretamente a partir do campo CEF. | 
data.cicode (CEF) | 
principal.location.city | 
Mapeado diretamente a partir do campo CEF. | 
data.cn1 (CEF) | 
network.http.response_code | 
Mapeado diretamente a partir do campo CEF. | 
data.cpt (CEF) | 
principal.port | 
Mapeado diretamente a partir 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 a partir do campo CEF. | 
data.dproc (CEF) | 
target.process.command_line | 
Mapeado diretamente a partir do campo CEF. | 
data.dst_ip | 
target.asset.ip | 
Mapeados diretamente. | 
data.dst_ip | 
target.ip | 
Mapeados diretamente. | 
data.dst_port | 
target.port | 
Mapeados diretamente. | 
data.elb | 
target.resource.id | 
Mapeados 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 a partir do campo CEF. | 
data.request (CEF) | 
target.url | 
Mapeado diretamente a partir do campo CEF. | 
data.requestClientApplication (CEF) | 
network.http.user_agent | 
Mapeado diretamente a partir do campo CEF. | 
data.requestMethod (CEF) | 
network.http.method | 
Mapeado diretamente a partir 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 a partir do campo CEF. | 
data.sip (CEF) | 
principal.ip | 
Mapeado diretamente a partir 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 a partir do campo CEF. | 
data.spt (CEF) | 
principal.port | 
Mapeado diretamente a partir do campo CEF. | 
data.src (CEF) | 
principal.ip | 
Mapeado diretamente a partir do campo CEF. | 
data.suid (CEF) | 
principal.user.userid | 
Mapeado diretamente a partir do campo CEF. | 
data.ver (CEF) | 
network.tls.version | 
A parte da versão é extraída através do grok e mapeada. | 
data.ver (CEF) | 
network.tls.cipher | 
A parte da cifra é extraída através do grok e mapeada. | 
data.xff (CEF) | 
principal.ip | 
Mapeado diretamente a partir do campo CEF. | 
domain_name | 
principal.administrative_domain | 
Mapeados diretamente. | 
http_method | 
network.http.method | 
Mapeados diretamente. | 
log_type | 
metadata.log_type | 
Mapeados diretamente. | 
message | 
Vários | Analisado através de padrões grok para extrair vários campos. Consulte outras linhas para ver mapeamentos específicos. | 
received_bytes | 
network.received_bytes | 
Mapeados diretamente. | 
redirect_url | 
network.application_protocol | 
Se redirect_url começar por "http", o protocolo é extraído e mapeado. | 
redirect_url | 
target.asset.hostname | 
Se redirect_url começar por "http", o nome do anfitrião é extraído e mapeado. | 
redirect_url | 
target.hostname | 
Se redirect_url começar por "http", o nome do anfitrião é extraído e mapeado. | 
redirect_url | 
target.port | 
Se redirect_url começar por "http", a porta é 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 | 
Mapeados diretamente. | 
ssl_cipher | 
network.tls.cipher | 
Mapeados diretamente. | 
ssl_protocol | 
network.tls.version | 
Mapeados diretamente. | 
target_group_arn | 
target.group.group_display_name | 
Mapeados 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 uma etiqueta com a chave "target_status_code" e o valor deste campo, e adiciona-a à 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 | 
Mapeados diretamente. | 
user_agent | 
network.http.user_agent | 
Mapeados diretamente. | 
| (Analisador) | metadata.event_type | 
Definido 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 não estiver presente nenhum IP de destino, nome de anfitrião ou IP de destino e "NETWORK_HTTP" caso contrário. | 
| (Analisador) | metadata.product_name | 
Definido como "AWS Elastic Load Balancer". | 
| (Analisador) | metadata.vendor_name | 
Definido como "AMAZON". | 
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.