Coletar registros do Balanceamento de carga elástico da AWS
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
- Ative a geração de registros de acesso para enviar os registros para 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: 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 futuro.
- 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
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.
- Ative os registros de acesso selecionando Ativar.
- Selecione o bucket do S3 criado anteriormente (por exemplo,
elb-logs
). - Opcional: defina o prefixo de registro para facilitar a identificação (por exemplo,
elb/access-logs/
). - Clique em Salvar.
Configurar um feed no Google SecOps para processar os registros do balanceador de carga elástico da AWS
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo.
- No campo Nome do feed, insira um nome para o feed (por exemplo, Logs do balanceador de carga elástica da AWS).
- 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 bucket.
- 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 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.
Clique em Próxima.
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.