Coletar registros da Cato Networks
Este documento explica como ingerir registros da Cato Networks no Google Security Operations usando o AWS S3. Primeiro, o analisador inicializa um conjunto de campos com strings vazias e depois analisa os registros da Cato Networks formatados em JSON. Em seguida, ele mapeia os campos extraídos para os campos correspondentes no modelo unificado de dados (UDM) do Google SecOps, processando diferentes tipos de eventos e enriquecendo os dados com contexto adicional.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Instância do Google SecOps
- Acesso privilegiado ao AWS S3 e ao AWS IAM
- Acesso privilegiado à Cato Networks
Configurar o IAM da AWS e o bucket do S3
- Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket
- Salve o Nome e a Região do bucket para referência futura.
- 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 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 referência futura.
- 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 uma nova política do IAM para o bucket do S3 e ativar os uploads de dados
- Em Política, clique na guia JSON.
Edite o seguinte JSON, substitua
<bucket name>
pelo seu bucket do S3 e cole na guia.{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<bucket name>" ] }, { "Sid": "", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::<bucket name>/*" ] } ] }
Clique em Criar política.
Configurar um novo papel do IAM com o ARN do Cato
Na tela Selecionar entidade confiável, escolha Política de confiança personalizada e adicione o ARN do Cato à função: arn:aws:iam::428465470022:role/cato-events-integration
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::428465470022:role/cato-events-integration" }, "Action": "sts:AssumeRole" } ] }
Clique em Próxima.
Na tela Adicionar permissões, anexe a política criada anteriormente à função.
Clique em Próxima.
Digite o Nome da função e clique em Criar função.
Configurar eventos da Cato Networks e integração com o S3
- Faça login na UI da Web da Cato Networks.
- Acesse Recursos > Integrações de eventos.
- Clique em Ativar integração com eventos do Cato.
- Clique em Novo.
- Informe os seguintes detalhes de configuração:
- Insira o Nome da integração.
- Nome do bucket: nome idêntico do bucket do S3.
- Pasta: nome idêntico para o caminho da pasta no bucket do S3 (se necessário).
- Região: a mesma região do bucket do S3.
- ARN da função: copie e cole o ARN da função para o bucket do S3.
- (Opcional) Defina as configurações de filtro para eventos enviados ao bucket do S3. Quando você define vários filtros, há uma relação "E", e os eventos que correspondem a todos os filtros são enviados.
- Clique em Aplicar.
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 um 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,
Cato Logs
). - Selecione Amazon S3 como o Tipo de origem.
- Selecione Cato Networks 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. O formato precisa ser
s3://<your-log-bucket-name>
. Substitua o seguinte:your-log-bucket-name
: o nome do bucket
- O URI é um: selecione Diretório ou Diretório que inclui subdiretórios.
- Opções de exclusão de fontes: 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.
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. O formato precisa ser
s3://<your-log-bucket-name>
. Substitua o seguinte:your-log-bucket-name
: o nome do bucket
- O URI é um: selecione Diretório ou Diretório que inclui subdiretórios.
- Opções de exclusão de fontes: 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.
- URI do S3: o URI do bucket. O formato precisa ser
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 da UDM
Campo de registro | Mapeamento da UDM | Lógica |
---|---|---|
account_id | target.user.userid | O valor desse campo é extraído do campo account_id . |
ação | additional.fields.value.string_value | O valor desse campo é extraído do campo action . |
app_stack | additional.fields.value.list_value.values.string_value | O valor desse campo é extraído do campo app_stack . |
aplicativo | principal.application | O valor desse campo é extraído do campo application . |
categorias | additional.fields.value.list_value.values.string_value | O valor desse campo é extraído do campo categories . |
clientIP | principal.ip, principal.asset.ip | O valor desse campo é extraído do campo clientIP . |
creationTime | Esse campo é usado para calcular o carimbo de data/hora do evento. | |
custom_categories | additional.fields.value.list_value.values.string_value | O valor desse campo é extraído do campo custom_categories . |
dest_country | target.location.country_or_region | O valor desse campo é extraído do campo dest_country . |
dest_country_code | target.resource.attribute.labels.value | O valor desse campo é extraído do campo dest_country_code . |
dest_ip | target.ip, target.asset.ip | O valor desse campo é extraído do campo dest_ip . |
dest_port | target.port | O valor desse campo é extraído do campo dest_port . |
destinationCountry | target.location.country_or_region | O valor desse campo é extraído do campo destinationCountry . |
destinationIp | target.ip, target.asset.ip | O valor desse campo é extraído do campo destinationIp . |
destinationName | target.hostname, target.asset.hostname | O valor desse campo é extraído do campo destinationName . |
device_name | network.dhcp.client_hostname | O valor desse campo é extraído do campo device_name . |
dns_name | additional.fields.value.string_value | O valor desse campo é extraído do campo dns_name . |
event_count | additional.fields.value.string_value | O valor desse campo é extraído do campo event_count . |
event_sub_type | metadata.description | O valor desse campo é extraído do campo event_sub_type . |
fieldsMap.ISP_name | additional.fields.value.string_value | O valor desse campo é extraído do campo fieldsMap.ISP_name . |
fieldsMap.action | security_result.action_details | O valor desse campo é extraído do campo fieldsMap.action . |
fieldsMap.categories | security_result.category_details | O valor desse campo é extraído do campo fieldsMap.categories . |
fieldsMap.dest_country | target.location.country_or_region | O valor desse campo é extraído do campo fieldsMap.dest_country . |
fieldsMap.dest_ip | target.ip, target.asset.ip | O valor desse campo é extraído do campo fieldsMap.dest_ip . |
fieldsMap.dest_port | principal.port | O valor desse campo é extraído do campo fieldsMap.dest_port . |
fieldsMap.domain_name | principal.administrative_domain | O valor desse campo é extraído do campo fieldsMap.domain_name . |
fieldsMap.event_sub_type | metadata.description | O valor desse campo é extraído do campo fieldsMap.event_sub_type . |
fieldsMap.event_type | metadata.product_event_type | O valor desse campo é extraído do campo fieldsMap.event_type . |
fieldsMap.ip_protocol | network.ip_protocol | O valor desse campo é extraído do campo fieldsMap.ip_protocol . |
fieldsMap.os_type | Esse campo é usado para determinar o sistema operacional do principal. | |
fieldsMap.pop_name | additional.fields.value.string_value | O valor desse campo é extraído do campo fieldsMap.pop_name . |
fieldsMap.rule_id | security_result.rule_id | O valor desse campo é extraído do campo fieldsMap.rule_id . |
fieldsMap.rule_name | security_result.rule_name | O valor desse campo é extraído do campo fieldsMap.rule_name . |
fieldsMap.src_ip | principal.ip, principal.asset.ip | O valor desse campo é extraído do campo fieldsMap.src_ip . |
fieldsMap.src_isp_ip | src.ip, src.asset.ip | O valor desse campo é extraído do campo fieldsMap.src_isp_ip . |
fieldsMap.time | Esse campo é usado para calcular o carimbo de data/hora do evento. | |
file_hash | target.file.sha256 | O valor desse campo é extraído do campo file_hash . |
file_name | target.file.full_path | O valor desse campo é extraído do campo file_name . |
file_size | target.file.size | O valor desse campo é extraído do campo file_size . |
http_host_name | principal.hostname, principal.asset.hostname | O valor desse campo é extraído do campo http_host_name . |
insertionDate | additional.fields.value.string_value | O valor desse campo é extraído do campo insertionDate . |
internalId | additional.fields.value.string_value | O valor desse campo é extraído do campo internalId . |
ip_protocol | network.ip_protocol | O valor desse campo é extraído do campo ip_protocol . |
is_sanctioned_app | security_result.detection_fields.value | O valor desse campo é extraído do campo is_sanctioned_app . |
os_type | principal.platform | O valor desse campo é extraído do campo os_type . |
pop_name | Esse campo é usado para preencher o campo fieldsMap.pop_name . |
|
prettyType | metadata.product_event_type | O valor desse campo é extraído do campo prettyType . |
regra | additional.fields.value.string_value | O valor desse campo é extraído do campo rule . |
rule_id | security_result.rule_id | O valor desse campo é extraído do campo rule_id . |
rule_name | security_result.rule_name | O valor desse campo é extraído do campo rule_name . |
server_port | target.port | O valor desse campo é extraído do campo server_port . |
gravidade, | security_result.severity_details | O valor desse campo é extraído do campo severity . |
sourceCountry | principal.location.country_or_region | O valor desse campo é extraído do campo sourceCountry . |
sourceInternalIp | principal.ip | O valor desse campo é extraído do campo sourceInternalIp . |
sourceIp | src.ip, src.asset.ip | O valor desse campo é extraído do campo sourceIp . |
sourceName | principal.user.user_display_name | O valor desse campo é extraído do campo sourceName . |
esporte | principal.port | O valor desse campo é extraído do campo sport . |
src_country | Esse campo é usado para preencher o campo sourceCountry . |
|
src_country_code | principal.resource.attribute.labels.value | O valor desse campo é extraído do campo src_country_code . |
src_ip | principal.ip, principal.asset.ip | O valor desse campo é extraído do campo src_ip . |
src_is_site_or_vpn | security_result.detection_fields.value | O valor desse campo é extraído do campo src_is_site_or_vpn . |
src_isp_ip | src.ip, src.asset.ip | O valor desse campo é extraído do campo src_isp_ip . |
src_site | additional.fields.value.string_value | O valor desse campo é extraído do campo src_site . |
src_site_name | additional.fields.value.string_value | O valor desse campo é extraído do campo src_site_name . |
start | Esse campo é usado para calcular o carimbo de data/hora do evento. | |
subnet_name | additional.fields.value.string_value | O valor desse campo é extraído do campo subnet_name . |
tempo | Esse campo é usado para calcular o carimbo de data/hora do evento. | |
time_str | Esse campo é usado para calcular o carimbo de data/hora do evento. | |
tunnel_host_logon_names | principal.user.userid | O valor desse campo é extraído do campo tunnel_host_logon_names . |
URL | target.url | O valor desse campo é extraído do campo url . |
user_id | principal.user.userid | O valor desse campo é extraído do campo user_id . |
metadata.event_type | O valor desse campo é definido como GENERIC_EVENT e pode ser substituído por NETWORK_CONNECTION , NETWORK_DHCP ou NETWORK_HTTP com base no evento. |
|
metadata.log_type | O valor desse campo é definido como CATO_NETWORKS . |
|
metadata.product_name | O valor desse campo é definido como SASE . |
|
metadata.vendor_name | O valor desse campo é definido como Cato Networks . |
|
network.application_protocol | O valor desse campo é definido como DHCP para eventos Connected . |
|
network.dhcp.chaddr | O valor desse campo é definido como 01:23:45:ab:cd:ef para eventos Connected . |
|
network.dhcp.lease_time_seconds | O valor desse campo é definido como 86400 para eventos Connected . |
|
network.dhcp.opcode | O valor desse campo é definido como BOOTREPLY para eventos Connected . |
|
network.dhcp.type | O valor desse campo é definido como ACK para eventos Connected . |
|
network.direction | O valor desse campo é definido como OUTBOUND para eventos Anti Malware e URL Filtering . |
|
security_result.action | O valor desse campo é definido como ALLOW se o campo action não for BLOCK . Caso contrário, ele será definido como BLOCK . |
|
event_type | metadata.description | O valor desse campo é extraído do campo event_type . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.