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 DUs.
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 do contentor (por exemplo,
elb-logs
) e a Região 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 S3 bucket 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
- 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-name
pelo 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 |
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 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 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 |
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 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 |
Mapeado diretamente. |
http_method |
network.http.method |
Mapeado diretamente. |
log_type |
metadata.log_type |
Mapeado diretamente. |
message |
Vários | Analisado através de 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 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 |
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 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 |
Mapeado diretamente. |
user_agent |
network.http.user_agent |
Mapeado 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.