Recolha registos do Cisco Meraki
Este documento descreve como pode recolher registos do Cisco Meraki através de um encaminhador do Google Security Operations.
Para mais informações, consulte o artigo Ingestão de dados no Google Security Operations.
Uma etiqueta de carregamento identifica o analisador que normaliza os dados de registo não processados
para o formato UDM estruturado. As informações neste documento aplicam-se ao analisador com a etiqueta de carregamento CISCO_MERAKI.
Configure o Cisco Meraki
- Inicie sessão no painel de controlo do Cisco Meraki.
- No painel de controlo do Cisco Meraki, selecione Configure > Alerts & administration.
- Na secção Registo, faça o seguinte:
- No campo IP do servidor, especifique o endereço IP do encaminhador do Google Security Operations.
- No campo Porta, especifique o valor da porta, como 514.
- No campo Funções, selecione as quatro opções disponíveis para obter todos os registos ou selecione qualquer combinação de acordo com o seu requisito.
- Clique em Guardar alterações.
Configure o encaminhador e o syslog do Google Security Operations para carregar registos do Cisco Meraki
- Aceda a Definições do SIEM > Encaminhadores.
- Clique em Adicionar novo encaminhador.
- No campo Nome do encaminhador, introduza um nome exclusivo para o encaminhador.
- Clique em Enviar. O encaminhador é adicionado e é apresentada a janela Adicionar configuração do coletor.
- No campo Nome do coletor, introduza um nome.
- Selecione Cisco Meraki como o Tipo de registo.
- Selecione Syslog como o tipo de coletor.
- Configure os seguintes parâmetros de entrada obrigatórios:
- Protocolo: especifique o protocolo.
- Endereço: especifique o endereço IP ou o nome de anfitrião de destino onde o coletor reside e escuta os dados syslog.
- Porta: especifique a porta de destino onde o coletor reside e ouve dados syslog.
- Clique em Enviar.
Para mais informações sobre os encaminhadores do Google Security Operations, consulte a documentação dos encaminhadores do Google Security Operations.
Para obter informações sobre os requisitos de cada tipo de encaminhador, consulte o artigo Configuração do encaminhador por tipo.
Se tiver problemas ao criar encaminhamentos, contacte o apoio técnico das Operações de segurança da Google.
Referência de mapeamento de campos
Este analisador processa registos do Cisco Meraki (identificados como Cisco/Meraki) no formato SYSLOG ou JSON, normalizando-os no UDM. Usa padrões grok para analisar mensagens syslog e lógica condicional com base no campo eventType para extrair informações relevantes, processando vários tipos de eventos, como fluxos de rede, pedidos de URL, eventos de firewall e eventos genéricos, mapeando-os para campos UDM adequados e enriquecendo os dados com contexto adicional. Se a entrada não for syslog, tenta analisá-la como JSON e mapeia os campos relevantes para o UDM.
Tabela de mapeamento da UDM
| Campo de registo | Mapeamento de UDM | Lógica |
|---|---|---|
action |
security_result.action |
O valor é convertido em maiúsculas. Se o valor for "deny", é substituído por "BLOCK". Se sc_action contiver "allow", o valor é substituído por "ALLOW". Caso contrário, se decision contiver "block", o valor é substituído por "BLOCK". Caso contrário, se authorization for "success", é definido como "ALLOW" e, se for "failure", é definido como "BLOCK". Caso contrário, se pattern for "1 all", "deny all" ou "Group Policy Deny", é definido como "BLOCK". Se pattern for "allow all", "Group Policy Allow" ou "0 all", é definido como "ALLOW". Caso contrário, é definido como "UNKNOWN_ACTION". Se decision contiver "block", é definido como "BLOCK". |
adId |
principal.user.user_display_name |
Mapeado diretamente a partir do campo adId nos registos JSON. |
agent |
network.http.user_agent |
Os apóstrofos são removidos. Mapeado diretamente a partir do campo agent. Também foi convertido para network.http.parsed_user_agent através do filtro parseduseragent. |
aid |
network.session_id |
Mapeado diretamente a partir do campo aid. |
appProtocol |
network.application_protocol |
Convertido em maiúsculas. Mapeado diretamente a partir do campo appProtocol. |
attr |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "attr". |
authorization |
security_result.action_details |
Mapeado diretamente a partir do campo authorization nos registos JSON. |
band |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "band". |
bssids.bssid |
principal.mac |
Convertido em minúsculas. Unido na matriz principal.mac. |
bssids.detectedBy.device |
intermediary.asset.asset_id |
Formatado como "ID do dispositivo: |
bssids.detectedBy.rssi |
intermediary.asset.product_object_id |
Convertido numa string. |
Channel |
about.resource.attribute.labels |
Adicionado como um par de chave-valor à matriz about.resource.attribute.labels com a chave "Channel". |
clientDescription |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "clientDescription". |
clientId |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "clientId". |
clientIp |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo clientIp. |
clientMac |
principal.mac |
Convertido em minúsculas. Mapeado diretamente a partir do campo clientMac nos registos JSON. |
client_ip |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo client_ip. |
client_mac |
principal.mac |
Convertido em minúsculas. Mapeado diretamente a partir do campo client_mac. |
code |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "code". |
collection_time |
metadata.event_timestamp |
Os campos de segundos e nanos são combinados para criar uma data/hora. |
Conditions |
security_result.about.resource.attribute.labels |
Os retornos de carro, as novas linhas e as tabulações são substituídos por espaços, e os valores específicos são substituídos. O valor modificado é adicionado como um par de chave-valor à matriz security_result.about.resource.attribute.labels com a chave "Conditions". |
decision |
security_result.action |
Se o valor for "blocked", é definido como "BLOCK". |
desc |
metadata.description |
Mapeado diretamente a partir do campo desc. |
description |
security_result.description |
Mapeado diretamente a partir do campo description nos registos JSON. |
DestAddress |
target.ip, target.asset.ip |
Mapeado diretamente a partir do campo DestAddress. |
DestPort |
target.port |
Convertido num número inteiro. Mapeado diretamente a partir do campo DestPort. |
deviceIp |
target.ip |
Mapeado diretamente a partir do campo deviceIp. |
deviceMac |
target.mac |
Convertido em minúsculas. Mapeado diretamente a partir do campo deviceMac. |
deviceName |
target.hostname, target.asset.hostname |
Mapeado diretamente a partir do campo deviceName nos registos JSON. |
deviceSerial |
target.asset.hardware.serial_number |
Mapeado diretamente a partir do campo deviceSerial nos registos JSON. |
Direction |
network.direction |
Os carateres especiais são removidos e o valor é mapeado para network.direction. |
DisabledPrivilegeList |
target.user.attribute |
Os retornos de carro, as novas linhas e as tabulações são substituídos, e o valor modificado é analisado como JSON e unido ao objeto target.user.attribute. |
dport |
target.port |
Convertido num número inteiro. Mapeado diretamente a partir do campo dport. |
dst |
target.ip, target.asset.ip |
Mapeado diretamente a partir do campo dst. |
dstIp |
target.ip, target.asset.ip |
Mapeado diretamente a partir do campo dstIp. |
dstPort |
target.port |
Convertido num número inteiro. Mapeado diretamente a partir do campo dstPort. |
dvc |
intermediary.hostname |
Mapeado diretamente a partir do campo dvc. |
EnabledPrivilegeList |
target.user.attribute |
Os retornos de carro, as novas linhas e as tabulações são substituídos, e o valor modificado é analisado como JSON e unido ao objeto target.user.attribute. |
eventData.aid |
principal.asset_id |
Formatado como "ASSET_ID: |
eventData.client_ip |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo eventData.client_ip nos registos JSON. |
eventData.client_mac |
principal.mac |
Convertido em minúsculas. Mapeado diretamente a partir do campo eventData.client_mac nos registos JSON. |
eventData.group |
principal.group.group_display_name |
Mapeado diretamente a partir do campo eventData.group nos registos JSON. |
eventData.identity |
principal.hostname |
Mapeado diretamente a partir do campo eventData.identity nos registos JSON. |
eventData.ip |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo eventData.ip nos registos JSON. |
EventID |
metadata.product_event_type, security_result.rule_name |
Convertido numa string. Mapeado para metadata.product_event_type. Também usado para criar security_result.rule_name no formato "EventID: event_type e sec_action. |
eventSummary |
security_result.summary, metadata.description |
Mapeado diretamente a partir do campo eventSummary. Também é usado no security_result.description para alguns eventos. |
eventType |
metadata.product_event_type |
Mapeado diretamente a partir do campo eventType. Usado para determinar a lógica de análise a aplicar. |
filename |
principal.process.file.full_path |
Mapeado diretamente a partir do campo filename. |
FilterId |
target.resource.product_object_id |
Mapeado diretamente a partir do campo FilterId para o EventID 5447. |
FilterName |
target.resource.name |
Mapeado diretamente a partir do campo FilterName para o EventID 5447. |
FilterRTID |
security_result.detection_fields |
Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "FilterRTID". |
firstSeen |
security_result.detection_fields |
Convertido numa string. Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "firstSeen". |
gatewayDeviceMac |
target.mac |
Convertido em minúsculas. Unido na matriz target.mac. |
group |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "group". |
GroupMembership |
target.user |
Os retornos de carro, as novas linhas, as tabulações e os carateres especiais são removidos. O valor modificado é analisado como JSON e é unido ao objeto target.user. |
Hostname |
principal.hostname, principal.asset.hostname |
Mapeado diretamente a partir do campo Hostname. |
identity |
target.user.userid |
Mapeado diretamente a partir do campo identity. |
instigator |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "instigator". |
int_ip |
intermediary.ip |
Mapeado diretamente a partir do campo int_ip. |
ip_msg |
principal.resource.attribute.labels |
Adicionado como um par de chave-valor à matriz principal.resource.attribute.labels com a chave "IPs". |
is_8021x |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "is_8021x". |
KeyName |
target.resource.name |
Mapeado diretamente a partir do campo KeyName. |
KeyFilePath |
target.file.full_path |
Mapeado diretamente a partir do campo KeyFilePath. |
lastSeen |
security_result.detection_fields |
Convertido numa string. Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "lastSeen". |
last_known_client_ip |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo last_known_client_ip. |
LayerName |
security_result.detection_fields |
Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "Nome da camada". |
LayerRTID |
security_result.detection_fields |
Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "LayerRTID". |
localIp |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo localIp. |
login |
principal.user.email_addresses |
Mapeado diretamente a partir do campo login nos registos JSON se corresponder a um formato de endereço de email. |
LogonGuid |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "LogonGuid". |
LogonType |
extensions.auth.mechanism |
Mapeado para um mecanismo de autenticação específico com base no respetivo valor. Se PreAuthType estiver presente, substitui LogonType. Os valores são mapeados da seguinte forma: 2 -> USERNAME_PASSWORD, 3 -> NETWORK, 4 -> BATCH, 5 -> SERVICE, 7 -> UNLOCK, 8 -> NETWORK_CLEAR_TEXT, 9 -> NEW_CREDENTIALS, 10 -> REMOTE_INTERACTIVE, 11 -> CACHED_INTERACTIVE, 12 -> CACHED_REMOTE_INTERACTIVE, 13 -> CACHED_UNLOCK, outro -> MECHANISM_UNSPECIFIED. |
mac |
principal.mac |
Convertido em minúsculas. Unido na matriz principal.mac. |
MandatoryLabel |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "MandatoryLabel". |
Message |
security_result.description, security_result.summary |
Se AccessReason estiver presente, Message é mapeado para security_result.summary e AccessReason é mapeado para security_result.description. Caso contrário, Message é mapeado para security_result.description. |
method |
network.http.method |
Mapeado diretamente a partir do campo method. |
msg |
security_result.description |
Mapeado diretamente a partir do campo msg. |
name |
principal.user.user_display_name |
Mapeado diretamente a partir do campo name nos registos JSON. |
natsrcIp |
principal.nat_ip |
Mapeado diretamente a partir do campo natsrcIp. |
natsrcport |
principal.nat_port |
Convertido num número inteiro. Mapeado diretamente a partir do campo natsrcport. |
network_id |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "ID da rede". |
NewProcessId |
target.process.pid |
Mapeado diretamente a partir do campo NewProcessId. |
NewProcessName |
target.process.file.full_path |
Mapeado diretamente a partir do campo NewProcessName. |
NewSd |
target.resource.attribute.labels |
Adicionado como um par de chave-valor à matriz target.resource.attribute.labels com a chave "New Security Descriptor". |
occurredAt |
metadata.event_timestamp |
Analisado como uma data/hora com o formato ISO8601. |
ObjectName |
target.file.full_path, target.registry.registry_key, target.process.file.full_path, additional.fields |
Se EventID for 4663 e ObjectType for "Process", é mapeado para target.process.file.full_path. Se ObjectType for "Chave", está mapeado para target.registry.registry_key. Caso contrário, é mapeado para target.file.full_path. Para outros eventos, é adicionado como um par de chave-valor à matriz additional.fields com a chave "ObjectName". |
ObjectType |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "ObjectType". Usado para determinar event_type. |
OldSd |
target.resource.attribute.labels |
Adicionado como um par de chave-valor à matriz target.resource.attribute.labels com a chave "Original Security Descriptor". |
organizationId |
principal.resource.id |
Mapeado diretamente a partir do campo organizationId nos registos JSON. |
ParentProcessName |
target.process.parent_process.file.full_path |
Mapeado diretamente a partir do campo ParentProcessName. |
pattern |
security_result.description |
Mapeado diretamente para security_result.description. Usado para determinar security_result.action. |
peer_ident |
target.user.userid |
Mapeado diretamente a partir do campo peer_ident. |
PreAuthType |
extensions.auth.mechanism |
Usado para determinar o mecanismo de autenticação, se presente. Substitui LogonType. |
principalIp |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo principalIp. |
principalMac |
principal.mac |
Convertido em minúsculas. Unido na matriz principal.mac. |
principalPort |
principal.port |
Convertido num número inteiro. Mapeado diretamente a partir do campo principalPort. |
prin_ip2 |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo prin_ip2. |
prin_url |
principal.url |
Mapeado diretamente a partir do campo prin_url. |
priority |
security_result.priority |
Mapeado para um nível de prioridade com base no respetivo valor: 1 -> HIGH_PRIORITY, 2 -> MEDIUM_PRIORITY, 3 -> LOW_PRIORITY, outro -> UNKNOWN_PRIORITY. |
ProcessID |
principal.process.pid |
Convertido numa string. Mapeado diretamente a partir do campo ProcessID. |
ProcessName |
principal.process.file.full_path, target.process.file.full_path |
Se EventID for 4689, é mapeado para target.process.file.full_path. Caso contrário, é mapeado para principal.process.file.full_path. |
prod_log_id |
metadata.product_log_id |
Mapeado diretamente a partir do campo prod_log_id. |
protocol |
network.ip_protocol |
Convertido em maiúsculas. Se for um número, é convertido no nome do protocolo IP correspondente. Se for "ICMP6", é substituído por "ICMP". Mapeado diretamente a partir do campo protocol. |
ProviderGuid |
metadata.product_deployment_id |
Mapeado diretamente a partir do campo ProviderGuid. |
query |
network.dns.questions.name |
Mapeado diretamente a partir do campo query. |
query_type |
network.dns.questions.type |
O nome foi mudado para question.type e o elemento foi unido à matriz network.dns.questions. Mapeado para um valor numérico com base no tipo de consulta DHCP. |
radio |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "radio". |
reason |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "reason". |
rec_bytes |
network.received_bytes |
Convertido num número inteiro sem sinal. Mapeado diretamente a partir do campo rec_bytes. |
RecordNumber |
metadata.product_log_id |
Convertido numa string. Mapeado diretamente a partir do campo RecordNumber. |
RelativeTargetName |
target.process.file.full_path |
Mapeado diretamente a partir do campo RelativeTargetName. |
response_ip |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo response_ip. |
rssi |
intermediary.asset.product_object_id |
Mapeado diretamente a partir do campo rssi. |
sc_action |
security_result.action_details |
Mapeado diretamente a partir do campo sc_action. |
sec_action |
security_result.action |
Unido na matriz security_result.action. |
server_ip |
client_ip |
Mapeado diretamente para o campo client_ip. |
Severity |
security_result.severity |
Mapeado para um nível de gravidade com base no respetivo valor: "Info" -> INFORMATIONAL, "Error" -> ERROR, "Warning" -> MEDIUM, outro -> UNKNOWN_SEVERITY. |
sha256 |
target.file.sha256 |
Mapeado diretamente a partir do campo sha256. |
signature |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "signature". |
SourceAddress |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo SourceAddress. |
SourceHandleId |
src.resource.id |
Mapeado diretamente a partir do campo SourceHandleId. |
SourceModuleName |
observer.labels |
Adicionado como um par de chave-valor à matriz observer.labels com a chave "SourceModuleName". |
SourceModuleType |
observer.application |
Mapeado diretamente a partir do campo SourceModuleType. |
SourcePort |
principal.port |
Convertido num número inteiro. Mapeado diretamente a partir do campo SourcePort. |
SourceProcessId |
src.process.pid |
Mapeado diretamente a partir do campo SourceProcessId. |
source_client_ip |
client_ip |
Mapeado diretamente para o campo client_ip. |
sport |
principal.port |
Convertido num número inteiro. Mapeado diretamente a partir do campo sport. |
src |
principal.ip, principal.asset.ip |
Mapeado diretamente a partir do campo src. |
ssid |
network.session_id |
Mapeado diretamente a partir do campo ssid nos registos JSON. |
ssidName |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "ssidName". |
state |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "state". |
Status |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "Status". |
status_code |
network.http.response_code |
Convertido num número inteiro. Mapeado diretamente a partir do campo status_code. |
SubjectDomainName |
principal.administrative_domain |
Mapeado diretamente a partir do campo SubjectDomainName. |
SubjectLogonId |
principal.resource.attribute.labels |
Adicionado como um par de chave-valor à matriz principal.resource.attribute.labels com a chave "SubjectLogonId". |
SubjectUserName |
principal.user.userid |
Mapeado diretamente a partir do campo SubjectUserName. |
SubjectUserSid |
principal.user.windows_sid |
Mapeado diretamente a partir do campo SubjectUserSid. |
targetHost |
target.hostname, target.asset.hostname |
Convertido num endereço IP, se possível. Caso contrário, é analisado para extrair o nome de anfitrião e mapeado para target.hostname e target.asset.hostname. |
TargetHandleId |
target.resource.id |
Mapeado diretamente a partir do campo TargetHandleId. |
TargetLogonId |
principal.resource.attribute.labels |
Adicionado como um par de chave-valor à matriz principal.resource.attribute.labels com a chave "TargetLogonId" se for diferente de SubjectLogonId. |
TargetProcessId |
target.process.pid |
Mapeado diretamente a partir do campo TargetProcessId. |
TargetUserName |
target.user.userid |
Mapeado diretamente a partir do campo TargetUserName. |
TargetUserSid |
target.user.windows_sid |
Mapeado diretamente a partir do campo TargetUserSid. |
Task |
additional.fields |
Convertido numa string. Adicionado como um par de chave-valor à matriz additional.fields com a chave "Task". |
timestamp |
metadata.event_timestamp |
O campo de segundos é usado para criar uma data/hora. |
ts |
metadata.event_timestamp |
Se ts estiver vazio, é criado combinando tsDate, tsTime e tsTZ. Se contiver " |
type |
security_result.summary, metadata.product_event_type |
Mapeado diretamente a partir do campo type nos registos JSON. Também usado como eventSummary e metadata.product_event_type em alguns casos. |
url |
target.url, principal.url |
Mapeado diretamente a partir do campo url. |
url1 |
target.url |
Mapeado diretamente a partir do campo url1. |
user |
target.user.group_identifiers |
Unido na matriz target.user.group_identifiers. |
user_id |
target.user.userid |
Mapeado diretamente a partir do campo user_id. |
UserID |
principal.user.windows_sid |
Mapeado diretamente a partir do campo UserID. |
UserName |
principal.user.userid |
Mapeado diretamente a partir do campo UserName. |
user_agent |
network.http.user_agent |
Mapeado diretamente a partir do campo user_agent. |
userId |
target.user.userid |
Mapeado diretamente a partir do campo userId. |
vap |
additional.fields |
Adicionado como um par de chave-valor à matriz additional.fields com a chave "vap". |
VirtualAccount |
security_result.about.labels |
Adicionado como um par de chave-valor à matriz security_result.about.labels com a chave "VirtualAccount". |
wiredLastSeen |
security_result.detection_fields |
Convertido numa string. Adicionado como um par de chave-valor à matriz security_result.detection_fields com a chave "wiredLastSeen". |
wiredMacs |
intermediary.mac |
Convertido em minúsculas. Unido na matriz intermediary.mac. |
WorkstationName |
principal.hostname, principal.asset.hostname |
Mapeado diretamente a partir do campo WorkstationName. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.