Raccogliere i log di Cisco Meraki

Supportato in:

Questo documento descrive come raccogliere i log di Cisco Meraki utilizzando un forwarder Google Security Operations.

Per ulteriori informazioni, consulta Importazione dei dati in Google Security Operations.

Un'etichetta di importazione identifica il parser che normalizza i dati dei log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano al parser con l'etichetta di importazione CISCO_MERAKI.

Configurare Cisco Meraki

  1. Accedi alla dashboard di Cisco Meraki.
  2. Nella dashboard Cisco Meraki, seleziona Configure > Alerts & administration (Configura > Avvisi e amministrazione).
  3. Nella sezione Logging, segui questi passaggi:
    1. Nel campo IP server, specifica l'indirizzo IP del forwarder di Google Security Operations.
    2. Nel campo Porta, specifica il valore della porta, ad esempio 514.
    3. Nel campo Ruoli, seleziona le quattro opzioni disponibili per ottenere tutti i log o seleziona una combinazione in base alle tue esigenze.
  4. Fai clic su Salva modifiche.

Configura il forwarder e syslog di Google Security Operations per importare i log di Cisco Meraki

  1. Vai a Impostazioni SIEM > Forwarder.
  2. Fai clic su Aggiungi nuovo inoltro.
  3. Nel campo Nome forwarder, inserisci un nome univoco per il forwarder.
  4. Fai clic su Invia. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del raccoglitore.
  5. Nel campo Nome del raccoglitore, digita un nome.
  6. Seleziona Cisco Meraki come Tipo di log.
  7. Seleziona Syslog come Tipo di raccoglitore.
  8. Configura i seguenti parametri di input obbligatori:
    • Protocollo: specifica il protocollo.
    • Indirizzo: specifica l'indirizzo IP o il nome host di destinazione in cui risiede il raccoglitore e ascolta i dati syslog.
    • Porta: specifica la porta di destinazione in cui risiede il raccoglitore e ascolta i dati syslog.
  9. Fai clic su Invia.

Per saperne di più sui forwarder di Google Security Operations, consulta la documentazione sui forwarder di Google Security Operations.

Per informazioni sui requisiti per ciascun tipo di forwarder, consulta Configurazione del forwarder per tipo.

Se riscontri problemi durante la creazione degli inoltri, contatta l'assistenza di Google Security Operations.

Riferimento alla mappatura dei campi

Questo parser gestisce i log Cisco Meraki (identificati come Cisco/Meraki) in formato SYSLOG o JSON, normalizzandoli in UDM. Utilizza pattern grok per analizzare i messaggi syslog e la logica condizionale basata sul campo eventType per estrarre le informazioni pertinenti, gestendo vari tipi di eventi come flussi di rete, richieste URL, eventi firewall ed eventi generici, mappandoli ai campi UDM appropriati e arricchendo i dati con un contesto aggiuntivo. Se l'input non è syslog, tenta di analizzarlo come JSON e mappa i campi pertinenti in UDM.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
action security_result.action Il valore viene convertito in maiuscolo. Se il valore è "deny", viene sostituito con "BLOCK". Se sc_action contiene "allow", il valore viene sostituito con "ALLOW". Altrimenti, se decision contiene "block", il valore viene sostituito con "BLOCK". In caso contrario, se authorization è "success", è impostato su "ALLOW", mentre se è "failure", è impostato su "BLOCK". In caso contrario, se pattern è "1 all", "deny all" o "Group Policy Deny", viene impostato su "BLOCK". Se pattern è "consenti tutto", "consenti criteri di gruppo" o "0 tutto", è impostato su "CONSENTI". In caso contrario, è impostato su "UNKNOWN_ACTION". Se decision contiene "block", è impostato su "BLOCK".
adId principal.user.user_display_name Mappato direttamente dal campo adId nei log JSON.
agent network.http.user_agent Gli apostrofi vengono rimossi. Mappato direttamente dal campo agent. Inoltre, è stato convertito in network.http.parsed_user_agent utilizzando il filtro parseduseragent.
aid network.session_id Mappato direttamente dal campo aid.
appProtocol network.application_protocol Convertito in maiuscolo. Mappato direttamente dal campo appProtocol.
attr additional.fields Aggiunta come coppia chiave-valore all'array additional.fields con la chiave "attr".
authorization security_result.action_details Mappato direttamente dal campo authorization nei log JSON.
band additional.fields Aggiunta come coppia chiave-valore all'array additional.fields con la chiave "band".
bssids.bssid principal.mac Convertito in minuscolo. Unito all'array principal.mac.
bssids.detectedBy.device intermediary.asset.asset_id Formattato come "ID dispositivo: ".
bssids.detectedBy.rssi intermediary.asset.product_object_id Convertito in una stringa.
Channel about.resource.attribute.labels Aggiunta come coppia chiave-valore all'array about.resource.attribute.labels con la chiave "Channel".
clientDescription additional.fields Aggiunta come coppia chiave-valore all'array additional.fields con la chiave "clientDescription".
clientId additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "clientId".
clientIp principal.ip, principal.asset.ip Mappato direttamente dal campo clientIp.
clientMac principal.mac Convertito in minuscolo. Mappato direttamente dal campo clientMac nei log JSON.
client_ip principal.ip, principal.asset.ip Mappato direttamente dal campo client_ip.
client_mac principal.mac Convertito in minuscolo. Mappato direttamente dal campo client_mac.
code additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "code".
collection_time metadata.event_timestamp I campi secondi e nanosecondi vengono combinati per creare un timestamp.
Conditions security_result.about.resource.attribute.labels I ritorni a capo, i nuovi valori e le tabulazioni vengono sostituiti con spazi e valori specifici. Il valore modificato viene aggiunto come coppia chiave-valore all'array security_result.about.resource.attribute.labels con la chiave "Conditions".
decision security_result.action Se il valore è "blocked", è impostato su "BLOCK".
desc metadata.description Mappato direttamente dal campo desc.
description security_result.description Mappato direttamente dal campo description nei log JSON.
DestAddress target.ip, target.asset.ip Mappato direttamente dal campo DestAddress.
DestPort target.port Convertito in un numero intero. Mappato direttamente dal campo DestPort.
deviceIp target.ip Mappato direttamente dal campo deviceIp.
deviceMac target.mac Convertito in minuscolo. Mappato direttamente dal campo deviceMac.
deviceName target.hostname, target.asset.hostname Mappato direttamente dal campo deviceName nei log JSON.
deviceSerial target.asset.hardware.serial_number Mappato direttamente dal campo deviceSerial nei log JSON.
Direction network.direction I caratteri speciali vengono rimossi e il valore viene mappato a network.direction.
DisabledPrivilegeList target.user.attribute I ritorni a capo, i nuovi righi e le tabulazioni vengono sostituiti e il valore modificato viene analizzato come JSON e unito all'oggetto target.user.attribute.
dport target.port Convertito in un numero intero. Mappato direttamente dal campo dport.
dst target.ip, target.asset.ip Mappato direttamente dal campo dst.
dstIp target.ip, target.asset.ip Mappato direttamente dal campo dstIp.
dstPort target.port Convertito in un numero intero. Mappato direttamente dal campo dstPort.
dvc intermediary.hostname Mappato direttamente dal campo dvc.
EnabledPrivilegeList target.user.attribute I ritorni a capo, i nuovi righi e le tabulazioni vengono sostituiti e il valore modificato viene analizzato come JSON e unito all'oggetto target.user.attribute.
eventData.aid principal.asset_id Formattato come "ASSET_ID:".
eventData.client_ip principal.ip, principal.asset.ip Mappato direttamente dal campo eventData.client_ip nei log JSON.
eventData.client_mac principal.mac Convertito in minuscolo. Mappato direttamente dal campo eventData.client_mac nei log JSON.
eventData.group principal.group.group_display_name Mappato direttamente dal campo eventData.group nei log JSON.
eventData.identity principal.hostname Mappato direttamente dal campo eventData.identity nei log JSON.
eventData.ip principal.ip, principal.asset.ip Mappato direttamente dal campo eventData.ip nei log JSON.
EventID metadata.product_event_type, security_result.rule_name Convertito in una stringa. Mappato a metadata.product_event_type. Utilizzato anche per creare security_result.rule_name nel formato "EventID: ". Utilizzato per determinare event_type e sec_action.
eventSummary security_result.summary, metadata.description Mappato direttamente dal campo eventSummary. Utilizzato anche in security_result.description per alcuni eventi.
eventType metadata.product_event_type Mappato direttamente dal campo eventType. Utilizzato per determinare quale logica di analisi applicare.
filename principal.process.file.full_path Mappato direttamente dal campo filename.
FilterId target.resource.product_object_id Mappato direttamente dal campo FilterId per EventID 5447.
FilterName target.resource.name Mappato direttamente dal campo FilterName per EventID 5447.
FilterRTID security_result.detection_fields Aggiunto come coppia chiave-valore all'array security_result.detection_fields con la chiave "FilterRTID".
firstSeen security_result.detection_fields Convertito in una stringa. Aggiunta come coppia chiave-valore all'array security_result.detection_fields con la chiave "firstSeen".
gatewayDeviceMac target.mac Convertito in minuscolo. Unito all'array target.mac.
group additional.fields Aggiunta come coppia chiave-valore all'array additional.fields con la chiave "group".
GroupMembership target.user I ritorni a capo, i nuovi righi, le tabulazioni e i caratteri speciali vengono rimossi. Il valore modificato viene analizzato come JSON e unito all'oggetto target.user.
Hostname principal.hostname, principal.asset.hostname Mappato direttamente dal campo Hostname.
identity target.user.userid Mappato direttamente dal campo identity.
instigator additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "instigator".
int_ip intermediary.ip Mappato direttamente dal campo int_ip.
ip_msg principal.resource.attribute.labels Aggiunto come coppia chiave-valore all'array principal.resource.attribute.labels con la chiave "IP".
is_8021x additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "is_8021x".
KeyName target.resource.name Mappato direttamente dal campo KeyName.
KeyFilePath target.file.full_path Mappato direttamente dal campo KeyFilePath.
lastSeen security_result.detection_fields Convertito in una stringa. Aggiunto come coppia chiave-valore all'array security_result.detection_fields con la chiave "lastSeen".
last_known_client_ip principal.ip, principal.asset.ip Mappato direttamente dal campo last_known_client_ip.
LayerName security_result.detection_fields Aggiunto come coppia chiave-valore all'array security_result.detection_fields con la chiave "Layer Name".
LayerRTID security_result.detection_fields Aggiunto come coppia chiave-valore all'array security_result.detection_fields con la chiave "LayerRTID".
localIp principal.ip, principal.asset.ip Mappato direttamente dal campo localIp.
login principal.user.email_addresses Mappato direttamente dal campo login nei log JSON se corrisponde a un formato di indirizzo email.
LogonGuid additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "LogonGuid".
LogonType extensions.auth.mechanism Mappato a un meccanismo di autenticazione specifico in base al suo valore. Se PreAuthType è presente, sostituisce LogonType. I valori sono mappati nel seguente modo: 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, other -> MECHANISM_UNSPECIFIED.
mac principal.mac Convertito in minuscolo. Unito all'array principal.mac.
MandatoryLabel additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "MandatoryLabel".
Message security_result.description, security_result.summary Se è presente AccessReason, Message viene mappato a security_result.summary e AccessReason viene mappato a security_result.description. In caso contrario, Message viene mappato a security_result.description.
method network.http.method Mappato direttamente dal campo method.
msg security_result.description Mappato direttamente dal campo msg.
name principal.user.user_display_name Mappato direttamente dal campo name nei log JSON.
natsrcIp principal.nat_ip Mappato direttamente dal campo natsrcIp.
natsrcport principal.nat_port Convertito in un numero intero. Mappato direttamente dal campo natsrcport.
network_id additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "ID rete".
NewProcessId target.process.pid Mappato direttamente dal campo NewProcessId.
NewProcessName target.process.file.full_path Mappato direttamente dal campo NewProcessName.
NewSd target.resource.attribute.labels Aggiunto come coppia chiave-valore all'array target.resource.attribute.labels con la chiave "New Security Descriptor".
occurredAt metadata.event_timestamp Analizzato come timestamp utilizzando il formato ISO8601.
ObjectName target.file.full_path, target.registry.registry_key, target.process.file.full_path, additional.fields Se EventID è 4663 e ObjectType è "Process", è mappato a target.process.file.full_path. Se ObjectType è "Key", viene mappato a target.registry.registry_key. In caso contrario, viene mappato a target.file.full_path. Per gli altri eventi, viene aggiunto come coppia chiave-valore all'array additional.fields con la chiave "ObjectName".
ObjectType additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "ObjectType". Utilizzato per determinare event_type.
OldSd target.resource.attribute.labels Aggiunto come coppia chiave-valore all'array target.resource.attribute.labels con la chiave "Original Security Descriptor".
organizationId principal.resource.id Mappato direttamente dal campo organizationId nei log JSON.
ParentProcessName target.process.parent_process.file.full_path Mappato direttamente dal campo ParentProcessName.
pattern security_result.description Mappato direttamente a security_result.description. Utilizzato per determinare security_result.action.
peer_ident target.user.userid Mappato direttamente dal campo peer_ident.
PreAuthType extensions.auth.mechanism Utilizzato per determinare il meccanismo di autenticazione, se presente. Sostituisce LogonType.
principalIp principal.ip, principal.asset.ip Mappato direttamente dal campo principalIp.
principalMac principal.mac Convertito in minuscolo. Unito all'array principal.mac.
principalPort principal.port Convertito in un numero intero. Mappato direttamente dal campo principalPort.
prin_ip2 principal.ip, principal.asset.ip Mappato direttamente dal campo prin_ip2.
prin_url principal.url Mappato direttamente dal campo prin_url.
priority security_result.priority Mappato a un livello di priorità in base al suo valore: 1 -> HIGH_PRIORITY, 2 -> MEDIUM_PRIORITY, 3 -> LOW_PRIORITY, altro -> UNKNOWN_PRIORITY.
ProcessID principal.process.pid Convertito in una stringa. Mappato direttamente dal campo ProcessID.
ProcessName principal.process.file.full_path, target.process.file.full_path Se EventID è 4689, viene mappato a target.process.file.full_path. In caso contrario, viene mappato a principal.process.file.full_path.
prod_log_id metadata.product_log_id Mappato direttamente dal campo prod_log_id.
protocol network.ip_protocol Convertito in maiuscolo. Se è un numero, viene convertito nel nome del protocollo IP corrispondente. Se è "ICMP6", viene sostituito con "ICMP". Mappato direttamente dal campo protocol.
ProviderGuid metadata.product_deployment_id Mappato direttamente dal campo ProviderGuid.
query network.dns.questions.name Mappato direttamente dal campo query.
query_type network.dns.questions.type Rinominato in question.type e unito all'array network.dns.questions. Mappato a un valore numerico in base al tipo di query DHCP.
radio additional.fields Aggiunta come coppia chiave-valore all'array additional.fields con la chiave "radio".
reason additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "reason".
rec_bytes network.received_bytes Convertito in un numero intero senza segno. Mappato direttamente dal campo rec_bytes.
RecordNumber metadata.product_log_id Convertito in una stringa. Mappato direttamente dal campo RecordNumber.
RelativeTargetName target.process.file.full_path Mappato direttamente dal campo RelativeTargetName.
response_ip principal.ip, principal.asset.ip Mappato direttamente dal campo response_ip.
rssi intermediary.asset.product_object_id Mappato direttamente dal campo rssi.
sc_action security_result.action_details Mappato direttamente dal campo sc_action.
sec_action security_result.action Unito all'array security_result.action.
server_ip client_ip Mappato direttamente al campo client_ip.
Severity security_result.severity Mappato a un livello di gravità in base al suo valore: "Info" -> INFORMATIONAL, "Error" -> ERROR, "Warning" -> MEDIUM, altro -> UNKNOWN_SEVERITY.
sha256 target.file.sha256 Mappato direttamente dal campo sha256.
signature additional.fields Aggiunta come coppia chiave-valore all'array additional.fields con la chiave "signature".
SourceAddress principal.ip, principal.asset.ip Mappato direttamente dal campo SourceAddress.
SourceHandleId src.resource.id Mappato direttamente dal campo SourceHandleId.
SourceModuleName observer.labels Aggiunto come coppia chiave-valore all'array observer.labels con la chiave "SourceModuleName".
SourceModuleType observer.application Mappato direttamente dal campo SourceModuleType.
SourcePort principal.port Convertito in un numero intero. Mappato direttamente dal campo SourcePort.
SourceProcessId src.process.pid Mappato direttamente dal campo SourceProcessId.
source_client_ip client_ip Mappato direttamente al campo client_ip.
sport principal.port Convertito in un numero intero. Mappato direttamente dal campo sport.
src principal.ip, principal.asset.ip Mappato direttamente dal campo src.
ssid network.session_id Mappato direttamente dal campo ssid nei log JSON.
ssidName additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "ssidName".
state additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "state".
Status additional.fields Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "Status".
status_code network.http.response_code Convertito in un numero intero. Mappato direttamente dal campo status_code.
SubjectDomainName principal.administrative_domain Mappato direttamente dal campo SubjectDomainName.
SubjectLogonId principal.resource.attribute.labels Aggiunto come coppia chiave-valore all'array principal.resource.attribute.labels con la chiave "SubjectLogonId".
SubjectUserName principal.user.userid Mappato direttamente dal campo SubjectUserName.
SubjectUserSid principal.user.windows_sid Mappato direttamente dal campo SubjectUserSid.
targetHost target.hostname, target.asset.hostname Convertito in un indirizzo IP, se possibile. In caso contrario, viene analizzato per estrarre il nome host e mappato su target.hostname e target.asset.hostname.
TargetHandleId target.resource.id Mappato direttamente dal campo TargetHandleId.
TargetLogonId principal.resource.attribute.labels Aggiunto come coppia chiave-valore all'array principal.resource.attribute.labels con la chiave"TargetLogonId" se è diverso da SubjectLogonId.
TargetProcessId target.process.pid Mappato direttamente dal campo TargetProcessId.
TargetUserName target.user.userid Mappato direttamente dal campo TargetUserName.
TargetUserSid target.user.windows_sid Mappato direttamente dal campo TargetUserSid.
Task additional.fields Convertito in una stringa. Aggiunto come coppia chiave-valore all'array additional.fields con la chiave "Task".
timestamp metadata.event_timestamp Il campo dei secondi viene utilizzato per creare un timestamp.
ts metadata.event_timestamp Se ts è vuoto, viene creato combinando tsDate, tsTime e tsTZ. Se contiene "", viene analizzato per estrarre il valore intero. Viene quindi analizzato come timestamp utilizzando vari formati.
type security_result.summary, metadata.product_event_type Mappato direttamente dal campo type nei log JSON. In alcuni casi viene utilizzato anche come eventSummary e metadata.product_event_type.
url target.url, principal.url Mappato direttamente dal campo url.
url1 target.url Mappato direttamente dal campo url1.
user target.user.group_identifiers Unito all'array target.user.group_identifiers.
user_id target.user.userid Mappato direttamente dal campo user_id.
UserID principal.user.windows_sid Mappato direttamente dal campo UserID.
UserName principal.user.userid Mappato direttamente dal campo UserName.
user_agent network.http.user_agent Mappato direttamente dal campo user_agent.
userId target.user.userid Mappato direttamente dal campo userId.
vap additional.fields Aggiunta come coppia chiave-valore all'array additional.fields con la chiave "vap".
VirtualAccount security_result.about.labels Aggiunto come coppia chiave-valore all'array security_result.about.labels con la chiave "VirtualAccount".
wiredLastSeen security_result.detection_fields Convertito in una stringa. Aggiunto come coppia chiave-valore all'array security_result.detection_fields con la chiave "wiredLastSeen".
wiredMacs intermediary.mac Convertito in minuscolo. Unito all'array intermediary.mac.
WorkstationName principal.hostname, principal.asset.hostname Mappato direttamente dal campo WorkstationName.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.