Recopila registros de proxy web de Netskope
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
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- Copia y guarda el ID de cliente de la sección Detalles de la organización.
Configura el inquilino de Netskope en CE
- Ve a Configuración > General.
- Mueve el interruptor de Log Shipper a la posición ON.
- En Configuración, ve a Tenientes de Netskope.
- Si no hay usuarios configurados, haz clic en Agregar usuario.
- 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
- Ve a Configuración > Complementos.
- Busca y selecciona la casilla Netskope (CLS) para abrir la página de creación de complementos.
- 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
- Ve a Configuración > Complementos.
- Busca y selecciona la casilla Chronicle (CLS) para abrir la página de creación de complementos.
- 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
- Ve a Log Shipper > Business Rules.
- De forma predeterminada, hay una regla de negocio que filtra todas las alertas y los eventos.
- 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.
- Haz clic en Guardar.
Configura las asignaciones de SIEM de Log Shipper para Google SecOps
- Ve a Log Shipper > Asignaciones de SIEM.
- Haz clic en Agregar asignación de SIEM.
- 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
- Ve a Registros en Netskope Cloud Exchange.
- Busca los registros extraídos.
- En Registros, busca eventos y alertas transferidos con el filtro message contains ingested.
- 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 derivadosecurity_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 analizadonetwork.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 analizadonetwork.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 analizadonetwork.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 derivadosecurity_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.