Recoger registros de Cisco Meraki

Disponible en:

En este documento se describe cómo puede recoger registros de Cisco Meraki mediante un reenviador de Google Security Operations.

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

Una etiqueta de ingestión 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 ingestión CISCO_MERAKI.

Configurar Cisco Meraki

  1. Inicia sesión en el panel de control de Cisco Meraki.
  2. En el panel de control de Cisco Meraki, selecciona Configurar > Alertas y administración.
  3. En la sección Registro, haga lo siguiente:
    1. En el campo IP del servidor, especifique la dirección IP del reenviador de Google Security Operations.
    2. En el campo Puerto, especifique 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 necesidades.
  4. Haz clic en Guardar cambios.

Configurar el reenviador de Google Security Operations y syslog para ingerir registros de Cisco Meraki

  1. Ve a Configuración de SIEM > Reenviadores.
  2. Haz clic en Añadir nuevo remitente.
  3. En el campo Nombre del reenviador, introduce un nombre único para el reenviador.
  4. Haz clic en Enviar. Se añade el reenviador y se muestra la ventana Añadir configuración de recopilador.
  5. En el campo Nombre del recolector, escribe un nombre.
  6. Seleccione Cisco Meraki como Tipo de registro.
  7. Seleccione Syslog como Tipo de recogida.
  8. Configure 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 donde reside el recolector 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 reenviadores de Google Security Operations, consulta la documentación de los reenviadores de Google Security Operations.

Para obtener información sobre los requisitos de cada tipo de reenviador, consulta Configuración de reenviadores por tipo.

Si tienes problemas al crear reenviadores, ponte en contacto con el equipo de Asistencia de Google Security Operations.

Referencia de asignación de campos

Este analizador gestiona los registros de Cisco Meraki (identificados como Cisco/Meraki) en formato Syslog o JSON y los normaliza en UDM. Usa patrones grok para analizar mensajes syslog y lógica condicional basada en el campo eventType para extraer información relevante, gestionar varios tipos de eventos (como flujos de red, solicitudes de URL, eventos de firewall y eventos genéricos), asignarlos a los campos de UDM correspondientes y enriquecer los datos con contexto adicional. Si la entrada no es syslog, intenta analizarla como JSON y asigna los campos relevantes a 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 sustituye por "BLOCK". Si sc_action contiene "allow", el valor se sustituye por "ALLOW". De lo contrario, si decision contiene "block", el valor se sustituye por "BLOCK". De lo contrario, si authorization es "success", se le asigna el valor "ALLOW", y si es "failure", se le asigna el valor "BLOCK". De lo contrario, si pattern es "1 all", "deny all" o "Group Policy Deny", se le asigna el valor "BLOCK". Si pattern es "allow all", "Group Policy Allow" o "0 all", se le asigna el valor "ALLOW". De lo contrario, se le asigna el valor "UNKNOWN_ACTION". Si decision contiene "block", se asigna el valor "BLOCK".
adId principal.user.user_display_name Se asigna directamente desde el campo adId de los registros JSON.
agent network.http.user_agent Se eliminan las comillas simples. Se asigna directamente desde el campo agent. También se ha convertido a network.http.parsed_user_agent mediante el filtro parseduseragent.
aid network.session_id Se asigna directamente desde el campo aid.
appProtocol network.application_protocol Se ha convertido a mayúsculas. Se asigna directamente desde el campo appProtocol.
attr additional.fields Se añade como par clave-valor a la matriz additional.fields con la clave "attr".
authorization security_result.action_details Se asigna directamente desde el campo authorization de los registros JSON.
band additional.fields Se añade como un par clave-valor a la matriz additional.fields con la clave "band".
bssids.bssid principal.mac Se ha convertido a minúsculas. Se ha combinado en la matriz principal.mac.
bssids.detectedBy.device intermediary.asset.asset_id El formato es "ID de dispositivo: ".
bssids.detectedBy.rssi intermediary.asset.product_object_id Se ha convertido en una cadena.
Channel about.resource.attribute.labels Se añade como par clave-valor a la matriz about.resource.attribute.labels con la clave "Channel".
clientDescription additional.fields Se añade como par clave-valor a la matriz additional.fields con la clave "clientDescription".
clientId additional.fields Se añade como par clave-valor a la matriz additional.fields con la clave "clientId".
clientIp principal.ip, principal.asset.ip Se asigna directamente desde el campo clientIp.
clientMac principal.mac Se ha convertido a minúsculas. Se asigna directamente desde el campo clientMac de los registros JSON.
client_ip principal.ip, principal.asset.ip Se asigna directamente desde el campo client_ip.
client_mac principal.mac Se ha convertido a minúsculas. Se asigna directamente desde el campo client_mac.
code additional.fields Se añade como par clave-valor a la matriz 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 sustituyen por espacios y se sustituyen valores específicos. El valor modificado se añade como un par clave-valor a la matriz security_result.about.resource.attribute.labels con la clave "Conditions".
decision security_result.action Si el valor es "blocked", se asigna el valor "BLOCK".
desc metadata.description Se asigna directamente desde el campo desc.
description security_result.description Se asigna directamente desde el campo description de los registros JSON.
DestAddress target.ip, target.asset.ip Se asigna directamente desde el campo DestAddress.
DestPort target.port Se ha convertido 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 ha convertido a minúsculas. Se asigna directamente desde el campo deviceMac.
deviceName target.hostname, target.asset.hostname Se asigna directamente desde el campo deviceName de los registros JSON.
deviceSerial target.asset.hardware.serial_number Se asigna directamente desde el campo deviceSerial de los registros JSON.
Direction network.direction Se quitan los caracteres especiales y el valor se asigna a network.direction.
DisabledPrivilegeList target.user.attribute Se sustituyen 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 ha convertido 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 ha convertido 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 sustituyen 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 El formato es "ASSET_ID:".
eventData.client_ip principal.ip, principal.asset.ip Se asigna directamente desde el campo eventData.client_ip de los registros JSON.
eventData.client_mac principal.mac Se ha convertido a minúsculas. Se asigna directamente desde el campo eventData.client_mac de los registros JSON.
eventData.group principal.group.group_display_name Se asigna directamente desde el campo eventData.group de los registros JSON.
eventData.identity principal.hostname Se asigna directamente desde el campo eventData.identity de los registros JSON.
eventData.ip principal.ip, principal.asset.ip Se asigna directamente desde el campo eventData.ip de los registros JSON.
EventID metadata.product_event_type, security_result.rule_name Se ha convertido en una cadena. Asignado a metadata.product_event_type. También se usa para crear security_result.rule_name con 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 ha asignado directamente desde el campo FilterId del EventID 5447.
FilterName target.resource.name Se ha asignado directamente desde el campo FilterName del EventID 5447.
FilterRTID security_result.detection_fields Se añade como un par clave-valor a la matriz security_result.detection_fields con la clave "FilterRTID".
firstSeen security_result.detection_fields Se ha convertido en una cadena. Se añade como par clave-valor a la matriz security_result.detection_fields con la clave "firstSeen".
gatewayDeviceMac target.mac Se ha convertido a minúsculas. Se ha combinado en la matriz target.mac.
group additional.fields Se añade como un par clave-valor a la matriz additional.fields con la clave "group".
GroupMembership target.user Se eliminan los retornos de carro, los saltos de línea, las tabulaciones y los caracteres especiales. El valor modificado se analiza como JSON y se combina con 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 añade como un par clave-valor a la matriz 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 añade como par clave-valor a la matriz principal.resource.attribute.labels con la clave "IPs".
is_8021x additional.fields Se añade como un par clave-valor a la matriz 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 ha convertido en una cadena. Se añade como par clave-valor a la matriz 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 añade como par clave-valor a la matriz security_result.detection_fields con la clave "Nombre de capa".
LayerRTID security_result.detection_fields Se añade como par clave-valor a la matriz 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 de los registros JSON si coincide con un formato de dirección de correo electrónico.
LogonGuid additional.fields Se añade como par clave-valor a la matriz additional.fields con la clave "LogonGuid".
LogonType extensions.auth.mechanism Se asigna a un mecanismo de autenticación específico en función de 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 ha convertido a minúsculas. Se ha combinado en la matriz principal.mac.
MandatoryLabel additional.fields Se añade como un par clave-valor a la matriz 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 de los registros JSON.
natsrcIp principal.nat_ip Se asigna directamente desde el campo natsrcIp.
natsrcport principal.nat_port Se ha convertido en un número entero. Se asigna directamente desde el campo natsrcport.
network_id additional.fields Se añade como un par clave-valor a la matriz 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 añade como par clave-valor a la matriz target.resource.attribute.labels con la clave "New Security Descriptor".
occurredAt metadata.event_timestamp Se analiza como una marca de tiempo con el formato ISO 8601.
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 "Clave", se asigna a target.registry.registry_key. De lo contrario, se asigna a target.file.full_path. En el caso de otros eventos, se añade como un par clave-valor a la matriz additional.fields con la clave "ObjectName".
ObjectType additional.fields Se añade como un par clave-valor a la matriz additional.fields con la clave "ObjectType". Se usa para determinar event_type.
OldSd target.resource.attribute.labels Se añade como un par clave-valor a la matriz target.resource.attribute.labels con la clave "Original Security Descriptor".
organizationId principal.resource.id Se asigna directamente desde el campo organizationId de los registros JSON.
ParentProcessName target.process.parent_process.file.full_path Se asigna directamente desde el campo ParentProcessName.
pattern security_result.description Asignado 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 ha convertido a minúsculas. Se ha combinado en la matriz principal.mac.
principalPort principal.port Se ha convertido 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 en función de su valor: 1 -> HIGH_PRIORITY, 2 -> MEDIUM_PRIORITY, 3 -> LOW_PRIORITY, otro -> UNKNOWN_PRIORITY.
ProcessID principal.process.pid Se ha convertido 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 ha convertido a mayúsculas. Si es un número, se convierte en el nombre del protocolo IP correspondiente. Si es "ICMP6", se sustituye 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 ha cambiado el nombre a question.type y se ha combinado en la matriz network.dns.questions. Se asigna a un valor numérico en función del tipo de consulta DHCP.
radio additional.fields Se añade como par clave-valor a la matriz additional.fields con la clave "radio".
reason additional.fields Se añade como par clave-valor a la matriz additional.fields con la clave "reason".
rec_bytes network.received_bytes Se ha convertido en un entero sin signo. Se asigna directamente desde el campo rec_bytes.
RecordNumber metadata.product_log_id Se ha convertido 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 ha combinado en la matriz 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 en función de su valor: "Info" -> INFORMATIONAL, "Error" -> ERROR, "Warning" -> MEDIUM y otros -> UNKNOWN_SEVERITY.
sha256 target.file.sha256 Se asigna directamente desde el campo sha256.
signature additional.fields Se añade como un par clave-valor a la matriz 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 añade como par clave-valor a la matriz observer.labels con la clave "SourceModuleName".
SourceModuleType observer.application Se asigna directamente desde el campo SourceModuleType.
SourcePort principal.port Se ha convertido 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 ha convertido 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 de los registros JSON.
ssidName additional.fields Se añade como par clave-valor a la matriz additional.fields con la clave "ssidName".
state additional.fields Se añade como par clave-valor a la matriz additional.fields con la clave "state".
Status additional.fields Se añade como un par clave-valor a la matriz additional.fields con la clave "Status".
status_code network.http.response_code Se ha convertido 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 añade como un par clave-valor a la matriz 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 ha convertido en una dirección IP, si ha sido 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 añade como un par clave-valor a la matriz 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 ha convertido en una cadena. Se añade como un par clave-valor a la matriz 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. A continuación, 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 de 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 ha combinado en la matriz 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 añade como par clave-valor a la matriz additional.fields con la clave "vap".
VirtualAccount security_result.about.labels Se añade como par clave-valor a la matriz security_result.about.labels con la clave "VirtualAccount".
wiredLastSeen security_result.detection_fields Se ha convertido en una cadena. Se añade como un par clave-valor a la matriz security_result.detection_fields con la clave "wiredLastSeen".
wiredMacs intermediary.mac Se ha convertido a minúsculas. Se ha combinado en la matriz intermediary.mac.
WorkstationName principal.hostname, principal.asset.hostname Se asigna directamente desde el campo WorkstationName.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.