Recopila registros de Cisco Meraki

Compatible con:

En este documento, se describe cómo puedes recopilar registros de Cisco Meraki con un retransmisor de Google Security Operations.

Para obtener más información, consulta Transferencia de datos a Google Security Operations.

Una etiqueta de transferencia identifica el analizador que normaliza los datos de registro sin procesar en formato UDM estructurado. La información de este documento se aplica al analizador con la etiqueta de transferencia CISCO_MERAKI.

Configura Cisco Meraki

  1. Accede al panel de Cisco Meraki.
  2. En el panel de Cisco Meraki, selecciona Configurar > Alertas y administración.
  3. En la sección Logging, haz lo siguiente:
    1. En el campo IP del servidor, especifica la dirección IP del reenviador de Google Security Operations.
    2. En el campo Puerto, especifica el valor del puerto, como 514.
    3. En el campo Roles, selecciona las cuatro opciones disponibles para obtener todos los registros o selecciona cualquier combinación según tus requisitos.
  4. Haz clic en Guardar cambios.

Configura el reenvío y el syslog de Google Security Operations para transferir registros de Cisco Meraki

  1. Ve a Configuración del SIEM > Reenviadores.
  2. Haz clic en Agregar un nuevo reenvío.
  3. En el campo Nombre del reenviador, ingresa un nombre único para el reenviador.
  4. Haz clic en Enviar. Se agregará el reenvío y aparecerá la ventana Add collector configuration.
  5. En el campo Nombre del recopilador, escribe un nombre.
  6. Selecciona Cisco Meraki como el Tipo de registro.
  7. Selecciona Syslog como el Tipo de recopilador.
  8. Configura los siguientes parámetros de entrada obligatorios:
    • Protocolo: Especifica el protocolo.
    • Dirección: Especifica la dirección IP o el nombre de host de destino en el que reside el recopilador y escucha los datos de syslog.
    • Puerto: Especifica el puerto de destino en el que reside el recopilador y escucha los datos de syslog.
  9. Haz clic en Enviar.

Para obtener más información sobre los retransmisores de Google Security Operations, consulta la documentación de los retransmisores de Google Security Operations.

Para obtener información sobre los requisitos de cada tipo de reenvío, consulta Configuración del reenvío por tipo.

Si tienes problemas para crear reenvíos, comunícate con el equipo de asistencia de Operaciones de seguridad de Google.

Referencia de la asignación de campos

Este analizador controla los registros de Cisco Meraki (identificados como Cisco/Meraki) en formato SYSLOG o JSON, y los normaliza en UDM. Utiliza patrones de Grok para analizar mensajes de syslog y lógica condicional basada en el campo eventType para extraer información pertinente, controlar varios tipos de eventos, como flujos de red, solicitudes de URL, eventos de firewall y eventos genéricos, asignarlos a los campos de UDM adecuados y enriquecer los datos con contexto adicional. Si la entrada no es de syslog, intenta analizarla como JSON y asigna los campos pertinentes al UDM.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
action security_result.action El valor se convierte a mayúsculas. Si el valor es "deny", se reemplaza por "BLOCK". Si sc_action contiene "allow", el valor se reemplaza por "ALLOW". De lo contrario, si decision contiene "block", el valor se reemplaza por "BLOCK". De lo contrario, si authorization es "success", se establece como "ALLOW", y si es "failure", se establece como "BLOCK". De lo contrario, si pattern es "1 all", "deny all" o "Group Policy Deny", se establece en "BLOCK". Si pattern es "allow all", "Group Policy Allow" o "0 all", se establece en "ALLOW". De lo contrario, se establece como "UNKNOWN_ACTION". Si decision contiene "block", se establece en "BLOCK".
adId principal.user.user_display_name Se asigna directamente desde el campo adId en los registros JSON.
agent network.http.user_agent Se quitan los apóstrofos. Se asigna directamente desde el campo agent. También se convirtió a network.http.parsed_user_agent con el filtro parseduseragent.
aid network.session_id Se asigna directamente desde el campo aid.
appProtocol network.application_protocol Se convirtió a mayúsculas. Se asigna directamente desde el campo appProtocol.
attr additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "attr".
authorization security_result.action_details Se asigna directamente desde el campo authorization en los registros JSON.
band additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "band".
bssids.bssid principal.mac Se convirtió a minúsculas. Se combinó en el array principal.mac.
bssids.detectedBy.device intermediary.asset.asset_id Tiene el formato "ID del dispositivo: ".
bssids.detectedBy.rssi intermediary.asset.product_object_id Se convirtió en una cadena.
Channel about.resource.attribute.labels Se agrega como un par clave-valor al array about.resource.attribute.labels con la clave "Channel".
clientDescription additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "clientDescription".
clientId additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "clientId".
clientIp principal.ip, principal.asset.ip Se asigna directamente desde el campo clientIp.
clientMac principal.mac Se convirtió a minúsculas. Se asigna directamente desde el campo clientMac en los registros JSON.
client_ip principal.ip, principal.asset.ip Se asigna directamente desde el campo client_ip.
client_mac principal.mac Se convirtió a minúsculas. Se asigna directamente desde el campo client_mac.
code additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "code".
collection_time metadata.event_timestamp Los campos de segundos y nanosegundos se combinan para crear una marca de tiempo.
Conditions security_result.about.resource.attribute.labels Los retornos de carro, los saltos de línea y las tabulaciones se reemplazan por espacios, y se sustituyen valores específicos. El valor modificado se agrega como un par clave-valor al array security_result.about.resource.attribute.labels con la clave "Conditions".
decision security_result.action Si el valor es "blocked", se establece en "BLOCK".
desc metadata.description Se asigna directamente desde el campo desc.
description security_result.description Se asigna directamente desde el campo description en los registros JSON.
DestAddress target.ip, target.asset.ip Se asigna directamente desde el campo DestAddress.
DestPort target.port Se convierte en un número entero. Se asigna directamente desde el campo DestPort.
deviceIp target.ip Se asigna directamente desde el campo deviceIp.
deviceMac target.mac Se convirtió a minúsculas. Se asigna directamente desde el campo deviceMac.
deviceName target.hostname, target.asset.hostname Se asigna directamente desde el campo deviceName en los registros JSON.
deviceSerial target.asset.hardware.serial_number Se asigna directamente desde el campo deviceSerial en los registros JSON.
Direction network.direction Se quitan los caracteres especiales y el valor se asigna a network.direction.
DisabledPrivilegeList target.user.attribute Se reemplazan los retornos de carro, los saltos de línea y las tabulaciones, y el valor modificado se analiza como JSON y se combina en el objeto target.user.attribute.
dport target.port Se convierte en un número entero. Se asigna directamente desde el campo dport.
dst target.ip, target.asset.ip Se asigna directamente desde el campo dst.
dstIp target.ip, target.asset.ip Se asigna directamente desde el campo dstIp.
dstPort target.port Se convierte en un número entero. Se asigna directamente desde el campo dstPort.
dvc intermediary.hostname Se asigna directamente desde el campo dvc.
EnabledPrivilegeList target.user.attribute Se reemplazan los retornos de carro, los saltos de línea y las tabulaciones, y el valor modificado se analiza como JSON y se combina en el objeto target.user.attribute.
eventData.aid principal.asset_id Se formatea como "ASSET_ID:".
eventData.client_ip principal.ip, principal.asset.ip Se asigna directamente desde el campo eventData.client_ip en los registros JSON.
eventData.client_mac principal.mac Se convirtió a minúsculas. Se asigna directamente desde el campo eventData.client_mac en los registros JSON.
eventData.group principal.group.group_display_name Se asigna directamente desde el campo eventData.group en los registros JSON.
eventData.identity principal.hostname Se asigna directamente desde el campo eventData.identity en los registros JSON.
eventData.ip principal.ip, principal.asset.ip Se asigna directamente desde el campo eventData.ip en los registros JSON.
EventID metadata.product_event_type, security_result.rule_name Se convirtió en una cadena. Se asignó a metadata.product_event_type. También se usa para crear security_result.rule_name en el formato "EventID: ". Se usa para determinar event_type y sec_action.
eventSummary security_result.summary, metadata.description Se asigna directamente desde el campo eventSummary. También se usa en security_result.description para algunos eventos.
eventType metadata.product_event_type Se asigna directamente desde el campo eventType. Se usa para determinar qué lógica de análisis se debe aplicar.
filename principal.process.file.full_path Se asigna directamente desde el campo filename.
FilterId target.resource.product_object_id Se asigna directamente desde el campo FilterId para EventID 5447.
FilterName target.resource.name Se asigna directamente desde el campo FilterName para EventID 5447.
FilterRTID security_result.detection_fields Se agrega como un par clave-valor al array security_result.detection_fields con la clave "FilterRTID".
firstSeen security_result.detection_fields Se convirtió en una cadena. Se agrega como un par clave-valor al array security_result.detection_fields con la clave "firstSeen".
gatewayDeviceMac target.mac Se convirtió a minúsculas. Se combinó en el array target.mac.
group additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "group".
GroupMembership target.user Se quitan los retornos de carro, las nuevas líneas, los tabuladores y los caracteres especiales. El valor modificado se analiza como JSON y se combina en el objeto target.user.
Hostname principal.hostname, principal.asset.hostname Se asigna directamente desde el campo Hostname.
identity target.user.userid Se asigna directamente desde el campo identity.
instigator additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "instigator".
int_ip intermediary.ip Se asigna directamente desde el campo int_ip.
ip_msg principal.resource.attribute.labels Se agrega como un par clave-valor al array principal.resource.attribute.labels con la clave "IPs".
is_8021x additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "is_8021x".
KeyName target.resource.name Se asigna directamente desde el campo KeyName.
KeyFilePath target.file.full_path Se asigna directamente desde el campo KeyFilePath.
lastSeen security_result.detection_fields Se convirtió en una cadena. Se agrega como un par clave-valor al array security_result.detection_fields con la clave "lastSeen".
last_known_client_ip principal.ip, principal.asset.ip Se asigna directamente desde el campo last_known_client_ip.
LayerName security_result.detection_fields Se agrega como un par clave-valor al array security_result.detection_fields con la clave "Layer Name".
LayerRTID security_result.detection_fields Se agrega como un par clave-valor al array security_result.detection_fields con la clave "LayerRTID".
localIp principal.ip, principal.asset.ip Se asigna directamente desde el campo localIp.
login principal.user.email_addresses Se asigna directamente desde el campo login en los registros JSON si coincide con un formato de dirección de correo electrónico.
LogonGuid additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "LogonGuid".
LogonType extensions.auth.mechanism Se asigna a un mecanismo de autenticación específico según su valor. Si PreAuthType está presente, anula LogonType. Los valores se asignan de la siguiente manera: 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 Se convirtió a minúsculas. Se combinó en el array principal.mac.
MandatoryLabel additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "MandatoryLabel".
Message security_result.description, security_result.summary Si AccessReason está presente, Message se asigna a security_result.summary y AccessReason se asigna a security_result.description. De lo contrario, Message se asigna a security_result.description.
method network.http.method Se asigna directamente desde el campo method.
msg security_result.description Se asigna directamente desde el campo msg.
name principal.user.user_display_name Se asigna directamente desde el campo name en los registros JSON.
natsrcIp principal.nat_ip Se asigna directamente desde el campo natsrcIp.
natsrcport principal.nat_port Se convierte en un número entero. Se asigna directamente desde el campo natsrcport.
network_id additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "ID de red".
NewProcessId target.process.pid Se asigna directamente desde el campo NewProcessId.
NewProcessName target.process.file.full_path Se asigna directamente desde el campo NewProcessName.
NewSd target.resource.attribute.labels Se agregó como un par clave-valor al array target.resource.attribute.labels con la clave "Nuevo descriptor de seguridad".
occurredAt metadata.event_timestamp Se analiza como una marca de tiempo con el formato ISO8601.
ObjectName target.file.full_path, target.registry.registry_key, target.process.file.full_path, additional.fields Si EventID es 4663 y ObjectType es "Process", se asigna a target.process.file.full_path. Si ObjectType es "Key", se asigna a target.registry.registry_key. De lo contrario, se asigna a target.file.full_path. Para otros eventos, se agrega como un par clave-valor al array additional.fields con la clave "ObjectName".
ObjectType additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "ObjectType". Se usa para determinar event_type.
OldSd target.resource.attribute.labels Se agrega como un par clave-valor al array target.resource.attribute.labels con la clave "Descriptor de seguridad original".
organizationId principal.resource.id Se asigna directamente desde el campo organizationId en los registros JSON.
ParentProcessName target.process.parent_process.file.full_path Se asigna directamente desde el campo ParentProcessName.
pattern security_result.description Se asigna directamente a security_result.description. Se usa para determinar security_result.action.
peer_ident target.user.userid Se asigna directamente desde el campo peer_ident.
PreAuthType extensions.auth.mechanism Se usa para determinar el mecanismo de autenticación, si está presente. Anula LogonType.
principalIp principal.ip, principal.asset.ip Se asigna directamente desde el campo principalIp.
principalMac principal.mac Se convirtió a minúsculas. Se combinó en el array principal.mac.
principalPort principal.port Se convierte en un número entero. Se asigna directamente desde el campo principalPort.
prin_ip2 principal.ip, principal.asset.ip Se asigna directamente desde el campo prin_ip2.
prin_url principal.url Se asigna directamente desde el campo prin_url.
priority security_result.priority Se asigna a un nivel de prioridad según su valor: 1 -> HIGH_PRIORITY, 2 -> MEDIUM_PRIORITY, 3 -> LOW_PRIORITY, otro -> UNKNOWN_PRIORITY.
ProcessID principal.process.pid Se convirtió en una cadena. Se asigna directamente desde el campo ProcessID.
ProcessName principal.process.file.full_path, target.process.file.full_path Si EventID es 4689, se asigna a target.process.file.full_path. De lo contrario, se asigna a principal.process.file.full_path.
prod_log_id metadata.product_log_id Se asigna directamente desde el campo prod_log_id.
protocol network.ip_protocol Se convirtió a mayúsculas. Si es un número, se convierte en el nombre del protocolo IP correspondiente. Si es "ICMP6", se reemplaza por "ICMP". Se asigna directamente desde el campo protocol.
ProviderGuid metadata.product_deployment_id Se asigna directamente desde el campo ProviderGuid.
query network.dns.questions.name Se asigna directamente desde el campo query.
query_type network.dns.questions.type Se cambió el nombre a question.type y se combinó en el array network.dns.questions. Se asigna a un valor numérico según el tipo de consulta de DHCP.
radio additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "radio".
reason additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "reason".
rec_bytes network.received_bytes Se convirtió en un número entero sin signo. Se asigna directamente desde el campo rec_bytes.
RecordNumber metadata.product_log_id Se convirtió en una cadena. Se asigna directamente desde el campo RecordNumber.
RelativeTargetName target.process.file.full_path Se asigna directamente desde el campo RelativeTargetName.
response_ip principal.ip, principal.asset.ip Se asigna directamente desde el campo response_ip.
rssi intermediary.asset.product_object_id Se asigna directamente desde el campo rssi.
sc_action security_result.action_details Se asigna directamente desde el campo sc_action.
sec_action security_result.action Se combinó en el array security_result.action.
server_ip client_ip Se asigna directamente al campo client_ip.
Severity security_result.severity Se asigna a un nivel de gravedad según su valor: "Info" -> INFORMATIONAL, "Error" -> ERROR, "Warning" -> MEDIUM, otro -> UNKNOWN_SEVERITY.
sha256 target.file.sha256 Se asigna directamente desde el campo sha256.
signature additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "signature".
SourceAddress principal.ip, principal.asset.ip Se asigna directamente desde el campo SourceAddress.
SourceHandleId src.resource.id Se asigna directamente desde el campo SourceHandleId.
SourceModuleName observer.labels Se agrega como un par clave-valor al array observer.labels con la clave "SourceModuleName".
SourceModuleType observer.application Se asigna directamente desde el campo SourceModuleType.
SourcePort principal.port Se convierte en un número entero. Se asigna directamente desde el campo SourcePort.
SourceProcessId src.process.pid Se asigna directamente desde el campo SourceProcessId.
source_client_ip client_ip Se asigna directamente al campo client_ip.
sport principal.port Se convierte en un número entero. Se asigna directamente desde el campo sport.
src principal.ip, principal.asset.ip Se asigna directamente desde el campo src.
ssid network.session_id Se asigna directamente desde el campo ssid en los registros JSON.
ssidName additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "ssidName".
state additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "state".
Status additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "Status".
status_code network.http.response_code Se convierte en un número entero. Se asigna directamente desde el campo status_code.
SubjectDomainName principal.administrative_domain Se asigna directamente desde el campo SubjectDomainName.
SubjectLogonId principal.resource.attribute.labels Se agrega como un par clave-valor al array principal.resource.attribute.labels con la clave "SubjectLogonId".
SubjectUserName principal.user.userid Se asigna directamente desde el campo SubjectUserName.
SubjectUserSid principal.user.windows_sid Se asigna directamente desde el campo SubjectUserSid.
targetHost target.hostname, target.asset.hostname Se convierte en una dirección IP si es posible. De lo contrario, se analiza para extraer el nombre de host y se asigna a target.hostname y target.asset.hostname.
TargetHandleId target.resource.id Se asigna directamente desde el campo TargetHandleId.
TargetLogonId principal.resource.attribute.labels Se agrega como un par clave-valor al array principal.resource.attribute.labels con la clave "TargetLogonId" si es diferente de SubjectLogonId.
TargetProcessId target.process.pid Se asigna directamente desde el campo TargetProcessId.
TargetUserName target.user.userid Se asigna directamente desde el campo TargetUserName.
TargetUserSid target.user.windows_sid Se asigna directamente desde el campo TargetUserSid.
Task additional.fields Se convirtió en una cadena. Se agrega como un par clave-valor al array additional.fields con la clave "Task".
timestamp metadata.event_timestamp El campo de segundos se usa para crear una marca de tiempo.
ts metadata.event_timestamp Si ts está vacío, se crea combinando tsDate, tsTime y tsTZ. Si contiene "", se analiza para extraer el valor entero. Luego, se analiza como una marca de tiempo con varios formatos.
type security_result.summary, metadata.product_event_type Se asigna directamente desde el campo type en los registros JSON. También se usa como eventSummary y metadata.product_event_type en algunos casos.
url target.url, principal.url Se asigna directamente desde el campo url.
url1 target.url Se asigna directamente desde el campo url1.
user target.user.group_identifiers Se combinó en el array target.user.group_identifiers.
user_id target.user.userid Se asigna directamente desde el campo user_id.
UserID principal.user.windows_sid Se asigna directamente desde el campo UserID.
UserName principal.user.userid Se asigna directamente desde el campo UserName.
user_agent network.http.user_agent Se asigna directamente desde el campo user_agent.
userId target.user.userid Se asigna directamente desde el campo userId.
vap additional.fields Se agrega como un par clave-valor al array additional.fields con la clave "vap".
VirtualAccount security_result.about.labels Se agrega como un par clave-valor al array security_result.about.labels con la clave "VirtualAccount".
wiredLastSeen security_result.detection_fields Se convirtió en una cadena. Se agrega como un par clave-valor al array security_result.detection_fields con la clave "wiredLastSeen".
wiredMacs intermediary.mac Se convirtió a minúsculas. Se combinó en el array intermediary.mac.
WorkstationName principal.hostname, principal.asset.hostname Se asigna directamente desde el campo WorkstationName.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.