Recopila registros de proxy web de Netskope

Compatible con:

Este analizador controla los registros de proxy web de Netskope con formato CEF y no CEF. Extrae campos, realiza transformaciones de datos (por ejemplo, convierte marcas de tiempo o combina campos), los asigna a la UDM y agrega metadatos específicos de Netskope. El analizador usa lógica condicional para controlar diferentes formatos de registro y disponibilidad de campos, lo que enriquece la UDM con detalles relevantes de red, seguridad y aplicación.

Antes de comenzar

  • Asegúrate de tener una instancia de Google Security Operations.
  • Asegúrate de tener acceso con privilegios a Netskope.
  • Asegúrate de tener configurado un módulo de Log Shipper.
  • Asegúrate de tener una clave de cuenta de servicio de Google SecOps (comunícate con el equipo de Google SecOps para obtener una cuenta de servicio con los siguientes alcances: https://www.googleapis.com/auth/malachite-ingestion).

Obtén el ID de cliente de Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. Copia y guarda el ID de cliente de la sección Detalles de la organización.

Configura el inquilino de Netskope en CE

  1. Ve a Configuración > General.
  2. Mueve el interruptor de Log Shipper a la posición ON.
  3. En Configuración, ve a Tenientes de Netskope.
  4. Si no hay usuarios configurados, haz clic en Agregar usuario.
  5. Ingrese los siguientes valores:
    • Nombre: Proporciona un nombre fácil de recordar para tu grupo de usuarios.
    • Nombre del inquilino: Ingresa el nombre real de tu inquilino de Netskope.
    • Token de API de v2: Ingresa tu token de API de Netskope.
    • Filtros de alertas: Agrega las alertas de proxy web que deseas transferir.
    • Período inicial: Ingresa la cantidad de datos históricos que deseas transferir (en días).
    • Haz clic en Guardar.

Configura el complemento CLS de Netskope

  1. Ve a Configuración > Complementos.
  2. Busca y selecciona la casilla Netskope (CLS) para abrir la página de creación de complementos.
  3. Ingresa los siguientes detalles:
    • Nombre de la configuración: Ingresa un nombre fácil de recordar para este complemento.
    • Tenant: Selecciona el usuario que creaste en el paso anterior de la lista.
    • Haz clic en Siguiente.
    • Actualiza la lista Tipo de evento según sea necesario.
    • Período inicial: Ingresa la cantidad de datos históricos que deseas transferir (en horas).
    • Haz clic en Guardar.

Configura un complemento de Google SecOps en Netskope

  1. Ve a Configuración > Complementos.
  2. Busca y selecciona la casilla Chronicle (CLS) para abrir la página de creación de complementos.
  3. Ingresa los siguientes detalles:
    • Nombre de la configuración: Ingresa un nombre para este complemento.
    • Asignación: Deja la selección predeterminada.
    • Activa ON When enabled logs will be transformed using the selected mapping file.
    • Haz clic en Siguiente.
    • Región: Selecciona la región de tu cuenta de Google SecOps.
    • URL de región personalizada: Es un parámetro de configuración opcional que solo se requiere si se seleccionó Región personalizada en el paso anterior.
    • Clave de la cuenta de servicio: Ingresa la clave JSON que proporcionó Google SecOps.
    • ID de cliente: Ingresa el ID de cliente de tu inquilino de SecOps de Google.
    • Haz clic en Guardar.

Configura una regla de negocio de Log Shipper para Google SecOps

  1. Ve a Log Shipper > Business Rules.
  2. De forma predeterminada, hay una regla de negocio que filtra todas las alertas y los eventos.
  3. Si quieres filtrar algún tipo específico de alerta o evento, haz clic en Crear regla nueva y configura una regla comercial nueva agregando el nombre y el filtro de la regla.
  4. Haz clic en Guardar.

Configura las asignaciones de SIEM de Log Shipper para Google SecOps

  1. Ve a Log Shipper > Asignaciones de SIEM.
  2. Haz clic en Agregar asignación de SIEM.
  3. Ingresa los siguientes detalles:
    • Configuración de origen: Selecciona el complemento CLS de Netskope.
    • Configuración de destino: Selecciona el complemento Google SecOps.
    • Regla empresarial: Selecciona la regla que creaste antes.
    • Haz clic en Guardar.

Valida la extracción y el flujo de trabajo de eventos y alertas en Netskope

  1. Ve a Registros en Netskope Cloud Exchange.
  2. Busca los registros extraídos.
  3. En Registros, busca eventos y alertas transferidos con el filtro message contains ingested.
  4. Se filtrarán los registros transferidos.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
applicationType security_result.detection_fields[].key: "applicationType"
security_result.detection_fields[].value: applicationType
Se asigna directamente desde el campo CEF correspondiente.
appcategory security_result.category_details[]: appcategory Se asigna directamente desde el campo CEF correspondiente.
browser security_result.detection_fields[].key: "browser"
security_result.detection_fields[].value: browser
Se asigna directamente desde el campo CEF correspondiente.
c-ip principal.asset.ip[]: c-ip
principal.ip[]: c-ip
Se asignan directamente desde el campo JSON correspondiente.
cci security_result.detection_fields[].key: "cci"
security_result.detection_fields[].value: cci
Se asigna directamente desde el campo CEF correspondiente.
ccl security_result.confidence: Valor derivado
security_result.confidence_details: ccl
security_result.confidence se deriva en función del valor de ccl: "excellent" o "high" se asigna a HIGH_CONFIDENCE, "medium" se asigna a MEDIUM_CONFIDENCE, "low" o "poor" se asigna a LOW_CONFIDENCE y "unknown" o "not_defined" se asigna a UNKNOWN_CONFIDENCE.
security_result.confidence_details se asigna directamente desde ccl.
clientBytes network.sent_bytes: clientBytes Se asigna directamente desde el campo CEF correspondiente.
cs-access-method additional.fields[].key: "accessMethod"
additional.fields[].value.string_value: cs-access-method
Se asignan directamente desde el campo JSON correspondiente.
cs-app additional.fields[].key: "x-cs-app"
additional.fields[].value.string_value: cs-app
principal.application: cs-app
Se asignan directamente desde el campo JSON correspondiente.
cs-app-activity additional.fields[].key: "x-cs-app-activity"
additional.fields[].value.string_value: cs-app-activity
Se asignan directamente desde el campo JSON correspondiente.
cs-app-category additional.fields[].key: "x-cs-app-category"
additional.fields[].value.string_value: cs-app-category
Se asignan directamente desde el campo JSON correspondiente.
cs-app-cci additional.fields[].key: "x-cs-app-cci"
additional.fields[].value.string_value: cs-app-cci
Se asignan directamente desde el campo JSON correspondiente.
cs-app-ccl additional.fields[].key: "x-cs-app-ccl"
additional.fields[].value.string_value: cs-app-ccl
Se asignan directamente desde el campo JSON correspondiente.
cs-app-from-user additional.fields[].key: "x-cs-app-from-user"
additional.fields[].value.string_value: cs-app-from-user
principal.user.email_addresses[]: cs-app-from-user
Se asignan directamente desde el campo JSON correspondiente.
cs-app-instance-id additional.fields[].key: "x-cs-app-instance-id"
additional.fields[].value.string_value: cs-app-instance-id
Se asignan directamente desde el campo JSON correspondiente.
cs-app-object-name additional.fields[].key: "x-cs-app-object-name"
additional.fields[].value.string_value: cs-app-object-name
Se asignan directamente desde el campo JSON correspondiente.
cs-app-object-type additional.fields[].key: "x-cs-app-object-type"
additional.fields[].value.string_value: cs-app-object-type
Se asignan directamente desde el campo JSON correspondiente.
cs-app-suite additional.fields[].key: "x-cs-app-suite"
additional.fields[].value.string_value: cs-app-suite
Se asignan directamente desde el campo JSON correspondiente.
cs-app-tags additional.fields[].key: "x-cs-app-tags"
additional.fields[].value.string_value: cs-app-tags
Se asignan directamente desde el campo JSON correspondiente.
cs-bytes network.sent_bytes: cs-bytes Se asignan directamente desde el campo JSON correspondiente.
cs-content-type additional.fields[].key: "sc-content-type"
additional.fields[].value.string_value: cs-content-type
Se asignan directamente desde el campo JSON correspondiente.
cs-dns target.asset.hostname[]: cs-dns
target.hostname: cs-dns
Se asignan directamente desde el campo JSON correspondiente.
cs-host target.asset.hostname[]: cs-host
target.hostname: cs-host
Se asignan directamente desde el campo JSON correspondiente.
cs-method network.http.method: cs-method Se asignan directamente desde el campo JSON correspondiente.
cs-referer network.http.referral_url: cs-referer Se asignan directamente desde el campo JSON correspondiente.
cs-uri additional.fields[].key: "cs-uri"
additional.fields[].value.string_value: cs-uri
Se asignan directamente desde el campo JSON correspondiente.
cs-uri-path additional.fields[].key: "x-cs-uri-path"
additional.fields[].value.string_value: cs-uri-path
Se asignan directamente desde el campo JSON correspondiente.
cs-uri-port additional.fields[].key: "cs-uri-port"
additional.fields[].value.string_value: cs-uri-port
Se asignan directamente desde el campo JSON correspondiente.
cs-uri-scheme network.application_protocol: cs-uri-scheme Se asigna directamente desde el campo JSON correspondiente después de convertirlo a mayúsculas.
cs-user-agent network.http.parsed_user_agent: Agente de usuario analizado
network.http.user_agent: cs-user-agent
network.http.parsed_user_agent se obtiene a partir del análisis del campo cs-user-agent con el filtro "parseduseragent".
cs-username principal.user.userid: cs-username Se asignan directamente desde el campo JSON correspondiente.
date metadata.event_timestamp.seconds: Segundos de época de los campos date y time
metadata.event_timestamp.nanos: 0
La fecha y la hora se combinan y se convierten en segundos y nanosegundos de época. Los nanosegundos se establecen en 0.
device intermediary.hostname: device Se asigna directamente desde el campo CEF correspondiente.
dst target.ip[]: dst Se asigna directamente desde el campo CEF correspondiente.
dst_country target.location.country_or_region: dst_country Se asignan directamente desde el campo analizado correspondiente.
dst_ip target.asset.ip[]: dst_ip
target.ip[]: dst_ip
Se asignan directamente desde el campo analizado correspondiente.
dst_location target.location.city: dst_location Se asignan directamente desde el campo analizado correspondiente.
dst_region target.location.state: dst_region Se asignan directamente desde el campo analizado correspondiente.
dst_zip Sin asignación Este campo no está asignado a la AUA.
duser target.user.email_addresses[]: duser
target.user.user_display_name: duser
Se asigna directamente desde el campo CEF correspondiente.
dvchost about.hostname: dvchost
target.asset.hostname[]: dvchost
target.hostname: dvchost
Se asigna directamente desde el campo CEF correspondiente.
event_timestamp metadata.event_timestamp.seconds: event_timestamp Se asignan directamente desde el campo analizado correspondiente.
hostname target.asset.hostname[]: hostname
target.hostname: hostname
Se asigna directamente desde el campo CEF correspondiente.
IncidentID security_result.detection_fields[].key: "IncidentID"
security_result.detection_fields[].value: IncidentID
Se asigna directamente desde el campo CEF correspondiente.
intermediary intermediary: intermediary Se asigna directamente desde el campo CEF correspondiente.
md5 target.file.md5: md5 Se asigna directamente desde el campo CEF correspondiente.
message Varios campos de UDM El campo message se analiza en función de si contiene "CEF". Si es así, se trata como un registro de CEF. De lo contrario, se analiza como una cadena delimitada por espacios o JSON. Consulta la sección "Lógica de análisis" para obtener más información.
mime_type1 Sin asignación Este campo no está asignado a la AUA.
mime_type2 Sin asignación Este campo no está asignado a la AUA.
mwDetectionEngine additional.fields[].key: "mwDetectionEngine"
additional.fields[].value.string_value: mwDetectionEngine
Se asigna directamente desde el campo CEF correspondiente.
mwType metadata.description: mwType Se asigna directamente desde el campo CEF correspondiente.
os principal.platform: Valor derivado La plataforma se deriva del campo os: "Windows" se asigna a WINDOWS, "MAC" se asigna a MAC y "LINUX" se asigna a LINUX.
page network.http.referral_url: page Se asigna directamente desde el campo CEF correspondiente.
port Sin asignación Este campo no está asignado a la AUA.
referer network.http.referral_url: referer Se asigna directamente desde el campo CEF correspondiente.
requestClientApplication network.http.parsed_user_agent: Agente de usuario analizado
network.http.user_agent: requestClientApplication
network.http.parsed_user_agent se obtiene a partir del análisis del campo requestClientApplication con el filtro "parseduseragent".
request_method network.http.method: request_method Se asignan directamente desde el campo analizado correspondiente.
request_protocol Sin asignación Este campo no está asignado a la AUA.
rs-status additional.fields[].key: "rs-status"
additional.fields[].value.string_value: rs-status
network.http.response_code: rs-status
Se asignan directamente desde el campo JSON correspondiente.
s-ip target.asset.ip[]: s-ip
target.ip[]: s-ip
Se asignan directamente desde el campo JSON correspondiente.
sc-bytes network.received_bytes: sc-bytes Se asignan directamente desde el campo JSON correspondiente.
sc-content-type additional.fields[].key: "sc-content-type"
additional.fields[].value.string_value: sc-content-type
Se asignan directamente desde el campo JSON correspondiente.
sc-status network.http.response_code: sc-status Se asignan directamente desde el campo JSON correspondiente.
serverBytes network.received_bytes: serverBytes Se asigna directamente desde el campo CEF correspondiente.
sha256 target.file.sha256: sha256 Se asigna directamente desde el campo CEF correspondiente.
src principal.ip[]: src Se asigna directamente desde el campo CEF correspondiente.
src_country principal.location.country_or_region: src_country Se asignan directamente desde el campo analizado correspondiente.
src_ip principal.asset.ip[]: src_ip
principal.ip[]: src_ip
Se asignan directamente desde el campo analizado correspondiente.
src_latitude Sin asignación Este campo no está asignado a la AUA.
src_location principal.location.city: src_location Se asignan directamente desde el campo analizado correspondiente.
src_longitude Sin asignación Este campo no está asignado a la AUA.
src_region principal.location.state: src_region Se asignan directamente desde el campo analizado correspondiente.
src_zip Sin asignación Este campo no está asignado a la AUA.
suser principal.user.user_display_name: suser Se asigna directamente desde el campo CEF correspondiente.
target_host target.asset.hostname[]: target_host
target.hostname: target_host
Se asignan directamente desde el campo analizado correspondiente.
time metadata.event_timestamp.seconds: Segundos de época de los campos date y time
metadata.event_timestamp.nanos: 0
La fecha y la hora se combinan y se convierten en segundos y nanosegundos de época. Los nanosegundos se establecen en 0.
timestamp metadata.event_timestamp.seconds: timestamp Se asigna directamente desde el campo CEF correspondiente.
ts metadata.event_timestamp.seconds: Segundos de época desde ts
metadata.event_timestamp.nanos: 0
La marca de tiempo se convierte en segundos y nanosegundos de época. Los nanosegundos se establecen en 0.
url target.url: url Se asigna directamente desde el campo CEF correspondiente.
user_agent network.http.parsed_user_agent: Agente de usuario analizado
network.http.user_agent: user_agent
network.http.parsed_user_agent se obtiene a partir del análisis del campo user_agent con el filtro "parseduseragent".
user_ip Sin asignación Este campo no está asignado a la AUA.
user_key principal.user.email_addresses[]: user_key Se asignan directamente desde el campo analizado correspondiente.
version Sin asignación Este campo no está asignado a la AUA.
x-c-browser additional.fields[].key: "x-c-browser"
additional.fields[].value.string_value: x-c-browser
Se asignan directamente desde el campo JSON correspondiente.
x-c-browser-version additional.fields[].key: "x-c-browser-version"
additional.fields[].value.string_value: x-c-browser-version
Se asignan directamente desde el campo JSON correspondiente.
x-c-country principal.location.country_or_region: x-c-country Se asignan directamente desde el campo JSON correspondiente.
x-c-device additional.fields[].key: "x-c-device"
additional.fields[].value.string_value: x-c-device
Se asignan directamente desde el campo JSON correspondiente.
x-c-latitude principal.location.region_coordinates.latitude: x-c-latitude Se asignan directamente desde el campo JSON correspondiente.
x-c-local-time security_result.detection_fields[].key: "x-c-local-time"
security_result.detection_fields[].value: x-c-local-time
Se asignan directamente desde el campo JSON correspondiente.
x-c-location principal.location.name: x-c-location Se asignan directamente desde el campo JSON correspondiente.
x-c-longitude principal.location.region_coordinates.longitude: x-c-longitude Se asignan directamente desde el campo JSON correspondiente.
x-c-os principal.platform: Valor derivado La plataforma se deriva del campo x-c-os: "Windows" se asigna a WINDOWS, "MAC" se asigna a MAC y "LINUX" se asigna a LINUX.
x-c-region principal.location.state: x-c-region Se asignan directamente desde el campo JSON correspondiente.
x-c-zipcode additional.fields[].key: "x-c-zipcode"
additional.fields[].value.string_value: x-c-zipcode
Se asignan directamente desde el campo JSON correspondiente.
x-category additional.fields[].key: "x-category"
additional.fields[].value.string_value: x-category
Se asignan directamente desde el campo JSON correspondiente.
x-category-id additional.fields[].key: "x-category-id"
additional.fields[].value.string_value: x-category-id
Se asignan directamente desde el campo JSON correspondiente.
x-cs-access-method additional.fields[].key: "accessMethod"
additional.fields[].value.string_value: x-cs-access-method
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app principal.application: x-cs-app
additional.fields[].key: "x-cs-app"
additional.fields[].value.string_value: x-cs-app
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app-activity additional.fields[].key: "x-cs-app-activity"
additional.fields[].value.string_value: x-cs-app-activity
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app-category additional.fields[].key: "x-cs-app-category"
additional.fields[].value.string_value: x-cs-app-category
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app-cci additional.fields[].key: "x-cs-app-cci"
additional.fields[].value.string_value: x-cs-app-cci
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app-from-user additional.fields[].key: "x-cs-app-from-user"
additional.fields[].value.string_value: x-cs-app-from-user
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app-object-id additional.fields[].key: "x-cs-app-object-id"
additional.fields[].value.string_value: x-cs-app-object-id
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app-object-name additional.fields[].key: "x-cs-app-object-name"
additional.fields[].value.string_value: x-cs-app-object-name
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app-object-type additional.fields[].key: "x-cs-app-object-type"
additional.fields[].value.string_value: x-cs-app-object-type
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app-suite additional.fields[].key: "x-cs-app-suite"
additional.fields[].value.string_value: x-cs-app-suite
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app-tags additional.fields[].key: "x-cs-app-tags"
additional.fields[].value.string_value: x-cs-app-tags
Se asignan directamente desde el campo JSON correspondiente.
x-cs-app-to-user additional.fields[].key: "x-cs-app-to-user"
additional.fields[].value.string_value: x-cs-app-to-user
Se asignan directamente desde el campo JSON correspondiente.
x-cs-dst-ip security_result.detection_fields[].key: "x-cs-dst-ip"
security_result.detection_fields[].value: x-cs-dst-ip
target.asset.ip[]: x-cs-dst-ip
target.ip[]: x-cs-dst-ip
Se asignan directamente desde el campo JSON correspondiente.
x-cs-dst-port security_result.detection_fields[].key: "x-cs-dst-port"
security_result.detection_fields[].value: x-cs-dst-port
target.port: x-cs-dst-port
Se asignan directamente desde el campo JSON correspondiente.
x-cs-http-version security_result.detection_fields[].key: "x-cs-http-version"
security_result.detection_fields[].value: x-cs-http-version
Se asignan directamente desde el campo JSON correspondiente.
x-cs-page-id additional.fields[].key: "x-cs-page-id"
additional.fields[].value.string_value: x-cs-page-id
Se asignan directamente desde el campo JSON correspondiente.
x-cs-session-id network.session_id: x-cs-session-id Se asignan directamente desde el campo JSON correspondiente.
x-cs-site additional.fields[].key: "x-cs-site"
additional.fields[].value.string_value: x-cs-site
Se asignan directamente desde el campo JSON correspondiente.
x-cs-sni network.tls.client.server_name: x-cs-sni Se asignan directamente desde el campo JSON correspondiente.
x-cs-src-ip principal.asset.ip[]: x-cs-src-ip
principal.ip[]: x-cs-src-ip
security_result.detection_fields[].key: "x-cs-src-ip"
security_result.detection_fields[].value: x-cs-src-ip
Se asignan directamente desde el campo JSON correspondiente.
x-cs-src-ip-egress principal.asset.ip[]: x-cs-src-ip-egress
principal.ip[]: x-cs-src-ip-egress
security_result.detection_fields[].key: "x-cs-src-ip-egress"
security_result.detection_fields[].value: x-cs-src-ip-egress
Se asignan directamente desde el campo JSON correspondiente.
x-cs-src-port principal.port: x-cs-src-port
security_result.detection_fields[].key: "x-cs-src-port"
security_result.detection_fields[].value: x-cs-src-port
Se asignan directamente desde el campo JSON correspondiente.
x-cs-ssl-cipher network.tls.cipher: x-cs-ssl-cipher Se asignan directamente desde el campo JSON correspondiente.
x-cs-ssl-fronting-error security_result.detection_fields[].key: "x-cs-ssl-fronting-error"
security_result.detection_fields[].value: x-cs-ssl-fronting-error
Se asignan directamente desde el campo JSON correspondiente.
x-cs-ssl-handshake-error security_result.detection_fields[].key: "x-cs-ssl-handshake-error"
security_result.detection_fields[].value: x-cs-ssl-handshake-error
Se asignan directamente desde el campo JSON correspondiente.
x-cs-ssl-ja3 network.tls.client.ja3: x-cs-ssl-ja3 Se asignan directamente desde el campo JSON correspondiente.
x-cs-ssl-version network.tls.version: x-cs-ssl-version Se asignan directamente desde el campo JSON correspondiente.
x-cs-timestamp metadata.event_timestamp.seconds: x-cs-timestamp Se asignan directamente desde el campo JSON correspondiente.
x-cs-traffic-type additional.fields[].key: "trafficType"
additional.fields[].value.string_value: x-cs-traffic-type
Se asignan directamente desde el campo JSON correspondiente.
x-cs-tunnel-src-ip security_result.detection_fields[].key: "x-cs-tunnel-src-ip"
security_result.detection_fields[].value: x-cs-tunnel-src-ip
Se asignan directamente desde el campo JSON correspondiente.
x-cs-uri-path additional.fields[].key: "x-cs-uri-path"
additional.fields[].value.string_value: x-cs-uri-path
Se asignan directamente desde el campo JSON correspondiente.
x-cs-url target.url: x-cs-url Se asignan directamente desde el campo JSON correspondiente.
x-cs-userip security_result.detection_fields[].key: "x-cs-userip"
security_result.detection_fields[].value: x-cs-userip
Se asignan directamente desde el campo JSON correspondiente.
x-other-category security_result.category_details[]: x-other-category Se asignan directamente desde el campo JSON correspondiente.
x-other-category-id security_result.detection_fields[].key: "x-other-category-id"
security_result.detection_fields[].value: x-other-category-id
Se asignan directamente desde el campo JSON correspondiente.
x-policy-action security_result.action: Valor derivado
security_result.action_details: x-policy-action
security_result.action se obtiene convirtiendo x-policy-action a mayúsculas. Si el valor en mayúsculas es "ALLOW" o "BLOCK", se usa directamente. De lo contrario, no se asigna.
security_result.action_details se asigna directamente desde x-policy-action.
x-policy-dst-host security_result.detection_fields[].key: "x-policy-dst-host"
security_result.detection_fields[].value: x-policy-dst-host
Se asignan directamente desde el campo JSON correspondiente.
x-policy-dst-host-source security_result.detection_fields[].key: "x-policy-dst-host-source"
security_result.detection_fields[].value: x-policy-dst-host-source
Se asignan directamente desde el campo JSON correspondiente.
x-policy-dst-ip security_result.detection_fields[].key: "x-policy-dst-ip"
security_result.detection_fields[].value: x-policy-dst-ip
Se asignan directamente desde el campo JSON correspondiente.
x-policy-name security_result.rule_name: x-policy-name Se asignan directamente desde el campo JSON correspondiente.
x-policy-src-ip security_result.detection_fields[].key: "x-policy-src-ip"
security_result.detection_fields[].value: x-policy-src-ip
Se asignan directamente desde el campo JSON correspondiente.
x-r-cert-enddate network.tls.server.certificate.not_after.seconds: Segundos de época desde x-r-cert-enddate La fecha se convierte a segundos de época.
x-r-cert-expired additional.fields[].key: "x-r-cert-expired"
additional.fields[].value.string_value: x-r-cert-expired
Se asignan directamente desde el campo JSON correspondiente.
x-r-cert-incomplete-chain additional.fields[].key: "x-r-cert-incomplete-chain"
additional.fields[].value.string_value: x-r-cert-incomplete-chain
Se asignan directamente desde el campo JSON correspondiente.
x-r-cert-issuer-cn network.tls.server.certificate.issuer: x-r-cert-issuer-cn Se asignan directamente desde el campo JSON correspondiente.
x-r-cert-mismatch additional.fields[].key: "x-r-cert-mismatch"
additional.fields[].value.string_value: x-r-cert-mismatch
Se asignan directamente desde el campo JSON correspondiente.
x-r-cert-revoked additional.fields[].key: "x-r-cert-revoked"
additional.fields[].value.string_value: x-r-cert-revoked
Se asignan directamente desde el campo JSON correspondiente.
x-r-cert-self-signed additional.fields[].key: "x-r-cert-self-signed"
additional.fields[].value.string_value: x-r-cert-self-signed
Se asignan directamente desde el campo JSON correspondiente.
x-r-cert-startdate network.tls.server.certificate.not_before.seconds: Segundos de época desde x-r-cert-startdate La fecha se convierte a segundos de época.
x-r-cert-subject-cn network.tls.server.certificate.subject: x-r-cert-subject-cn Se asignan directamente desde el campo JSON correspondiente.
x-r-cert-untrusted-root additional.fields[].key: "x-r-cert-untrusted-root"
additional.fields[].value.string_value: x-r-cert-untrusted-root
Se asignan directamente desde el campo JSON correspondiente.
x-r-cert-valid additional.fields[].key: "x-r-cert-valid"
additional.fields[].value.string_value: x-r-cert-valid
Se asignan directamente desde el campo JSON correspondiente.
x-request-id additional.fields[].key: "requestId"
additional.fields[].value.string_value: x-request-id
Se asignan directamente desde el campo JSON correspondiente.
x-rs-file-category additional.fields[].key: "x-rs-file-category"
additional.fields[].value.string_value: x-rs-file-category
Se asignan directamente desde el campo JSON correspondiente.
x-rs-file-type additional.fields[].key: "x-rs-file-type"
additional.fields[].value.string_value: x-rs-file-type
Se asignan directamente desde el campo JSON correspondiente.
x-s-country target.location.country_or_region: x-s-country Se asignan directamente desde el campo JSON correspondiente.
x-s-dp-name additional.fields[].key: "x-s-dp-name"
additional.fields[].value.string_value: x-s-dp-name
Se asignan directamente desde el campo JSON correspondiente.
x-s-latitude target.location.region_coordinates.latitude: x-s-latitude Se asignan directamente desde el campo JSON correspondiente.
x-s-location target.location.name: x-s-location Se asignan directamente desde el campo JSON correspondiente.
x-s-longitude target.location.region_coordinates.longitude: x-s-longitude Se asignan directamente desde el campo JSON correspondiente.
x-s-region target.location.state: x-s-region Se asignan directamente desde el campo JSON correspondiente.
x-s-zipcode additional.fields[].key: "x-s-zipcode"
additional.fields[].value.string_value: x-s-zipcode
Se asignan directamente desde el campo JSON correspondiente.
x-sr-ssl-cipher security_result.detection_fields[].key: "x-sr-ssl-cipher"
security_result.detection_fields[].value: x-sr-ssl-cipher
Se asignan directamente desde el campo JSON correspondiente.
x-sr-ssl-client-certificate-error security_result.detection_fields[].key: "x-sr-ssl-client-certificate-error"
security_result.detection_fields[].value: x-sr-ssl-client-certificate-error
Se asignan directamente desde el campo JSON correspondiente.
x-sr-ssl-engine-action security_result.detection_fields[].key: "x-sr-ssl-engine-action"
security_result.detection_fields[].value: x-sr-ssl-engine-action
Se asignan directamente desde el campo JSON correspondiente.
x-sr-ssl-engine-action-reason security_result.detection_fields[].key: "x-sr-ssl-engine-action-reason"
security_result.detection_fields[].value: x-sr-ssl-engine-action-reason
Se asignan directamente desde el campo JSON correspondiente.
x-sr-ssl-handshake-error security_result.detection_fields[].key: "x-sr-ssl-handshake-error"
security_result.detection_fields[].value: x-sr-ssl-handshake-error
Se asignan directamente desde el campo JSON correspondiente.
x-sr-ssl-ja3s network.tls.server.ja3s: x-sr-ssl-ja3s Se asignan directamente desde el campo JSON correspondiente.
x-sr-ssl-malformed-ssl security_result.detection_fields[].key: "x-sr-ssl-malformed-ssl"
security_result.detection_fields[].value: x-sr-ssl-malformed-ssl
Se asignan directamente desde el campo JSON correspondiente.
x-sr-ssl-version security_result.detection_fields[].key: "x-sr-ssl-version"
security_result.detection_fields[].value: x-sr-ssl-version
Se asignan directamente desde el campo JSON correspondiente.
x-s-custom-signing-ca-error security_result.detection_fields[].key: "x-s-custom-signing-ca-error"
security_result.detection_fields[].value: x-s-custom-signing-ca-error
Se asignan directamente desde el campo JSON correspondiente.
x-ssl-bypass security_result.detection_fields[].key: "BYPASS DE SSL"
security_result.detection_fields[].value: x-ssl-bypass o x-ssl-bypass-reason
Si x-ssl-bypass es "Sí" y x-ssl-bypass-reason está presente, se usa el valor de x-ssl-bypass-reason. De lo contrario, se usa el valor de x-ssl-bypass.
x-ssl-policy-action security_result.detection_fields[].key: "x-ssl-policy-action"
security_result.detection_fields[].value: x-ssl-policy-action
Se asignan directamente desde el campo JSON correspondiente.
x-ssl-policy-categories security_result.category_details[]: x-ssl-policy-categories Se asignan directamente desde el campo JSON correspondiente.
x-ssl-policy-dst-host security_result.detection_fields[].key: "x-ssl-policy-dst-host"
security_result.detection_fields[].value: x-ssl-policy-dst-host
Se asignan directamente desde el campo JSON correspondiente.
x-ssl-policy-dst-host-source security_result.detection_fields[].key: "x-ssl-policy-dst-host-source"
security_result.detection_fields[].value: x-ssl-policy-dst-host-source
Se asignan directamente desde el campo JSON correspondiente.
x-ssl-policy-dst-ip security_result.detection_fields[].key: "x-ssl-policy-dst-ip"
security_result.detection_fields[].value: x-ssl-policy-dst-ip
Se asignan directamente desde el campo JSON correspondiente.
x-ssl-policy-name security_result.rule_name: x-ssl-policy-name Se asignan directamente desde el campo JSON correspondiente.
x-ssl-policy-src-ip security_result.detection_fields[].key: "x-ssl-policy-src-ip"
security_result.detection_fields[].value: x-ssl-policy-src-ip
Se asignan directamente desde el campo JSON correspondiente.
x-sr-dst-ip security_result.detection_fields[].key: "x-sr-dst-ip"
security_result.detection_fields[].value: x-sr-dst-ip
Se asignan directamente desde el campo JSON correspondiente.
x-sr-dst-port security_result.detection_fields[].key: "x-sr-dst-port"
security_result.detection_fields[].value: x-sr-dst-port
Se asignan directamente desde el campo JSON correspondiente.
x-type additional.fields[].key: "xType"
additional.fields[].value.string_value: x-type
Se asignan directamente desde el campo JSON correspondiente.
x-transaction-id additional.fields[].key: "transactionId"
additional.fields[].value.string_value: x-transaction-id
Se asignan directamente desde el campo JSON correspondiente.
N/A metadata.vendor_name: "Netskope" Es un valor hard-coded en el analizador.
N/A metadata.product_name: "Netskope Webproxy" Si aún no está presente, configúralo como "Netskope Webproxy".
N/A metadata.log_type: "NETSKOPE_WEBPROXY" Es un valor hard-coded en el analizador.

Cambios

2024-06-04

  • Se agregó Grok para controlar los registros sin analizar.
  • Se asignó "url" a "target.url".
  • Se asignó "appSessionId" a "network.session_id".
  • Se asignó "page" a "network.http.referral_url".
  • Se asignó "appcategory" a "security_result.category_details".
  • Se asignó "clientBytes" a "network.sent_bytes".
  • Se asignó "serverBytes" a "network.received_bytes".
  • Se asignó "ccl" a "security_result.confidence_details".
  • Se asignaron "IncidentID", "applicationType", "browser" y "cci" a "security_result.detection_fields".

2024-04-22

  • Se asignaron "x-cs-app-ccl","x-cs-app-instance-id","x-cs-app-tags" ,"x-cs-app-instance-name" ,"x-cs-app-instance-tag", "x-cs-app-to-user","x-cs-app-object-id" y "x-cs-app-from-user" a "additional.fields".

2024-02-26

  • Se cambió la asignación de "cs-bytes" de "network.received_bytes" a "network.sent_bytes".
  • Se cambió la asignación de "sc-bytes" de "network.sent_bytes" a "network.received_bytes".
  • Se asignó "x-cs-app-object-name" a "additional.fields".
  • Se asignó "x-cs-app-from-user" a "principal.user.email_addresses".

2023-12-22

  • Si el valor de "cs-dns" es "null", se cambió la asignación de "cs-host" de "principal.hostname" a "target.hostname".
  • Se cambió la asignación de "cs-dns" de "principal.hostname" a "target.hostname".
  • Si el valor de "sc-status" es "null", se asignó "rs-status" a "network.http.response_code".
  • Se asignó "x-cs-app" a "principal.application".
  • Se asignó "x-cs-src-ip-egress" a "principal.ip".

2023-12-08

  • Se agregó la verificación on_error para analizar los registros con errores.
  • Establece "metadata.vendor_name" en "Netskope" y "metadata.product_name" en "Netskope Webproxy".
  • Se agregó la verificación condicional para "src_region", "src_country", "src_location", "dst_region", "dst_country" y "dst_location" antes de la asignación.

2023-10-09

  • Se asignó "dvchost" a "target.hostname" si "target.hostname" no está presente.
  • Se agregó una verificación nula antes de asignar "requestClientApplication".

2023-09-12

  • Se asignó "x-cs-dst-ip" a "target.ip".
  • Se asignó "x-cs-src-ip" a "principal.ip".
  • Se asignó "x-cs-src-port" a "principal.port".
  • Se asignó "x-cs-dst-port" a "target.port".
  • Se agregó la verificación on_error para el filtro de fecha.
  • Se agregaron verificaciones condicionales antes de asignar "metadata.event_type".

2023-08-28

  • Se asignó "cs-uri" a "additional.fields".
  • Se asignó "cs-uri-port" a "additional.fields".
  • Se asignó "x-s-zipcode" a "additional.fields".
  • Se asignó "x-c-zipcode" a "additional.fields".
  • Se asignó "x-cs-site" a "additional.fields".
  • Se asignó "x-category" a "additional.fields".
  • Se asignó "x-sr-ssl-version" a "security_result.detection_fields".
  • Se asignó "x-sr-ssl-cipher" a "security_result.detection_fields".
  • Se asignó "x-cs-src-ip-egress" a "security_result.detection_fields".
  • Se asignó "x-cs-userip" a "security_result.detection_fields".
  • Se asignó "x-cs-url" a "target.url".
  • Se asignó "x-cs-uri-path" a "additional.fields".
  • Se asignó "x-cs-app-cci" a "additional.fields".
  • Se asignó "x-cs-app-object-type" a "additional.fields".
  • Se asignó "x-rs-file-type" a "additional.fields".
  • Se asignó "x-rs-file-category" a "additional.fields".

2023-08-17

  • Se agregó compatibilidad con el nuevo formato de registro de tipo JSON.

2023-06-22

  • Se agregó compatibilidad con el nuevo formato de registro de tipo SYSLOG+JSON.

2023-05-30

  • Se asignó "duser" a "target.user.email_addresses".
  • Se asignó "requestClientApplication" a "network.http.parsed_user_agent".

2023-02-03

  • Se asignó "Dominio" a "principal.administrative_domain".

2023-01-09

  • Se agregaron verificaciones condicionales para asignar diferentes event_type según los parámetros obligatorios presentes.
  • Se analizaron diferentes formatos de "rt".

2022-04-06

  • Mejoras: Se agregaron asignaciones para campos nuevos
  • md5, mwDetectionEngine, mwProfile y mwType se asignan a udm.