Recopila registros de WAF de FortiWeb

Se admite en los siguientes países:

En este documento, se describe cómo puedes recopilar los registros del firewall de aplicación web (WAF) de FortiWeb con un reenviador de operaciones de seguridad de Google.

Para obtener más información, consulta la descripción general de la transferencia de datos a Google Security Operations.

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

Configura los registros del WAF de FortiWeb

Para configurar la WAF de FortiWeb para que envíe registros a un reenviador de Google Security Operations, haz lo siguiente:

Crea una política de Syslog

  1. Accede a la consola de Fortinet FortiWeb.
  2. En la consola de Fortinet FortiWeb, selecciona Registro y generación de informes > Política de registro > Política de Syslog.
  3. Haz clic en Crear nueva.
  4. En la ventana New syslog policy que aparece, haz lo siguiente:

    • En el campo Nombre de la política, especifica un nombre para la política que deseas usar en la configuración.
    • En el campo IP address, especifica la dirección IP o el nombre de host del servidor syslog remoto.
    • En el campo Puerto, especifica el puerto del servidor syslog.
    • Si está seleccionada, desmarca la casilla de verificación Habilitar formato CSV.
  5. Haz clic en Aceptar.

Habilita los tipos de syslog y el nivel de registro

  1. En la consola de Fortinet FortiWeb, selecciona Registro y generación de informes > Configuración de registro > Configuración de registro global.
  2. En la ventana Configuración de registro global que aparece, selecciona la casilla de verificación Syslog y haz lo siguiente:

    • En la lista Política de Syslog, selecciona la política de syslog que creaste antes.
    • En la lista Nivel de registro, elige el nivel de gravedad mínimo para que se recopilen los registros.
    • En la lista Facility, selecciona la facilidad de registro.
  3. Haz clic en Aplicar.

Crear un activador

  1. En la consola de Fortinet FortiWeb, selecciona Registro y generación de informes > Política de registro > Política de activación.
  2. Haz clic en Crear nueva.
  3. En la ventana New trigger policy que aparece, haz lo siguiente:

    • En el campo Nombre de la política, especifica un nombre para la política que deseas usar en la configuración.
    • En la lista Política de Syslog, selecciona la política de syslog que creaste antes.
  4. Haz clic en Aceptar.

    Actualiza tu política de syslog con el activador creado recientemente para asegurarte de que todos los eventos requeridos se registren en el reenviador de syslog de Google Security Operations.

Configura el reenviador de Google Security Operations para transferir los registros de WAF de FortiWeb

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

Para obtener más información sobre los reenvíos de Google Security Operations, consulta Cómo administrar las configuraciones de reenvío a través de la IU de Google Security Operations.

Si tienes problemas cuando creas reenvío de correo, comunícate con el equipo de asistencia de Operaciones de seguridad de Google.

Referencia de la asignación de campos

Este analizador controla los registros de FORTINET FORTIWEB en formato clave-valor (KV) y los transforma en UDM. Procesa registros con formato CEF y no CEF, extrae campos, normaliza valores y los asigna a los campos de la UDM adecuados según el formato del registro.

Tabla de asignación de UDM

Campo de registro Asignación de UDM Lógica
action additional.fields[].value.string_value El valor se asigna directamente.
action security_result.action_details Si action es "Permitir" o "Aceptar", security_result.action_details se establece en "ALLOW". Si action es “Denied”, “deny”, “block” o “Bloquear”, security_result.action_details se establece en “BLOCK”.
app network.application_protocol El valor se asigna directamente después de convertirlo a mayúsculas. Solo si el valor es HTTPS, HTTP, DNS, DHCP o SMB.
app_name additional.fields[].key La clave se establece en "appName".
app_name additional.fields[].value.string_value El valor se asigna directamente.
backend_service additional.fields[].key La clave se establece en "backend_service".
backend_service additional.fields[].value.string_value El valor se asigna directamente.
cat security_result.category_details El valor se asigna directamente.
client_level security_result.category Si client_level es "Malicioso", security_result.category se establece en "NETWORK_MALICIOUS".
cn1 additional.fields[].value.string_value Se asignó al campo threatWeight.
cn1Label additional.fields[].key La clave se establece en el valor cn1Label.
cn2 additional.fields[].value.string_value Se asigna al campo de longitud.
cn2Label additional.fields[].key La clave se establece en el valor cn2Label.
cn3 additional.fields[].value.string_value Se asignó al campo signatureID.
cn3Label additional.fields[].key La clave se establece en el valor cn3Label.
cs1 additional.fields[].value.string_value El valor se asigna directamente.
cs1Label additional.fields[].key La clave se establece en el valor cs1Label.
cs1 principal.user.product_object_id El valor se asigna directamente cuando cs1Label coincide con "userID" (sin distinción entre mayúsculas y minúsculas).
cs2 additional.fields[].value.string_value El valor se asigna directamente.
cs2Label additional.fields[].key La clave se establece en el valor cs2Label.
cs2 principal.user.userid El valor se asigna directamente cuando cs2Label coincide con "userName" (sin distinción entre mayúsculas y minúsculas) y suid está vacío.
cs3 additional.fields[].value.string_value El valor se asigna directamente.
cs3Label additional.fields[].key La clave se establece en el valor cs3Label.
cs3 metadata.severity El valor se asigna directamente cuando cs3Label es "nivel" y cs3 no está vacío.
cs4 additional.fields[].value.string_value Se asignó al campo subType.
cs4Label additional.fields[].key La clave se establece en el valor cs4Label.
cs5 additional.fields[].value.string_value Se asignó al campo threatLevel.
cs5Label additional.fields[].key La clave se establece en el valor cs5Label.
cs6 additional.fields[].value.string_value Se asignó al campo owaspTop10.
cs6Label additional.fields[].key La clave se establece en el valor cs6Label.
date metadata.event_timestamp.seconds Se combina con time y se analiza para generar segundos de época.
dev_id principal.resource.id El valor se asigna directamente.
devname principal.resource.name El valor se asigna directamente.
device_event_class_id metadata.product_event_type Se usa en el análisis de CEF.
device_product metadata.product_name Se usa en el análisis de CEF.
device_vendor metadata.vendor_name Se usa en el análisis de CEF.
device_version metadata.product_version Se usa en el análisis de CEF.
dhost target.hostname El valor se asigna directamente.
dpt target.port El valor se asigna directamente y se convierte en un número entero.
dst target.ip El valor se asigna directamente.
dst_port target.port El valor se asigna directamente y se convierte en un número entero.
dstepid target.process.pid El valor se asigna directamente.
dsteuid target.user.userid El valor se asigna directamente.
event_name metadata.product_event_type Se usa en el análisis de CEF.
http_agent network.http.parsed_user_agent El valor se analiza como una cadena de usuario-agente.
http_method network.http.method El valor se asigna directamente.
http_refer network.http.referral_url El valor se asigna directamente.
http_session_id network.session_id El valor se asigna directamente.
http_url target.url El valor se asigna directamente.
http_version metadata.product_version El valor se asigna directamente.
length additional.fields[].key La clave se establece en "length".
length additional.fields[].value.string_value El valor se asigna directamente.
log_type metadata.log_type Está codificado de forma fija en “FORTINET_FORTIWEB”.
main_type additional.fields[].key La clave se establece en "mainType".
main_type additional.fields[].value.string_value El valor se asigna directamente.
message Varios campos Se analiza con filtros grok y kv para extraer diferentes campos.
ml_allow_method additional.fields[].key La clave se establece en "ml_allow_method".
ml_allow_method additional.fields[].value.string_value El valor se asigna directamente.
ml_arg_dbid additional.fields[].key La clave se establece en "ml_arg_dbid".
ml_arg_dbid additional.fields[].value.string_value El valor se asigna directamente.
ml_domain_index additional.fields[].key La clave se establece en "ml_domain_index".
ml_domain_index additional.fields[].value.string_value El valor se asigna directamente.
ml_log_arglen additional.fields[].key La clave se establece en "ml_log_arglen".
ml_log_arglen additional.fields[].value.string_value El valor se asigna directamente.
ml_log_hmm_probability additional.fields[].key La clave se establece en "ml_log_hmm_probability".
ml_log_hmm_probability additional.fields[].value.string_value El valor se asigna directamente.
ml_log_sample_arglen_mean additional.fields[].key La clave se establece en "ml_log_sample_arglen_mean".
ml_log_sample_arglen_mean additional.fields[].value.string_value El valor se asigna directamente.
ml_log_sample_prob_mean additional.fields[].key La clave se establece en "ml_log_sample_prob_mean".
ml_log_sample_prob_mean additional.fields[].value.string_value El valor se asigna directamente.
ml_svm_accuracy additional.fields[].key La clave se establece en "ml_svm_accuracy".
ml_svm_accuracy additional.fields[].value.string_value El valor se asigna directamente.
ml_svm_log_main_types additional.fields[].key La clave se establece en "ml_svm_log_main_types".
ml_svm_log_main_types additional.fields[].value.string_value El valor se asigna directamente.
ml_svm_log_match_types additional.fields[].key La clave se establece en "ml_svm_log_match_types".
ml_svm_log_match_types additional.fields[].value.string_value El valor se asigna directamente.
ml_url_dbid additional.fields[].key La clave se establece en "ml_url_dbid".
ml_url_dbid additional.fields[].value.string_value El valor se asigna directamente.
monitor_status additional.fields[].key La clave se establece en "monitor_status".
monitor_status additional.fields[].value.string_value El valor se asigna directamente.
msg metadata.description El valor se asigna directamente.
owasp_top10 additional.fields[].key La clave se establece en "owaspTop10".
owasp_top10 additional.fields[].value.string_value El valor se asigna directamente.
principal_app principal.application El valor se asigna directamente.
principal_host principal.hostname El valor se asigna directamente.
proto network.ip_protocol El valor se asigna directamente después de convertirlo a mayúsculas.
request target.url El valor se asigna directamente.
requestMethod network.http.method El valor se asigna directamente.
rt metadata.event_timestamp.seconds Se analiza como milisegundos desde la época y se convierte en segundos.
security_result.severity security_result.severity Derivado de severity_level. Se asignan a diferentes valores de gravedad de la UDM según el valor de registro sin procesar. Si no se encuentra ninguna coincidencia, el valor predeterminado es UNKNOWN_SEVERITY.
server_pool_name additional.fields[].key La clave se establece en "server_pool_name".
server_pool_name additional.fields[].value.string_value El valor se asigna directamente.
service network.application_protocol El valor se asigna directamente después de convertirlo a mayúsculas.
service target.application El valor se asigna directamente después de escribirse en mayúsculas si no es HTTPS, HTTP, DNS, DHCP o SMB.
severity security_result.severity Si severity está vacío y cs3Label es "level", se usa el valor de cs3. Luego, se asignan a un valor de gravedad de la UDM (BAJA, ALTA, etc.).
signature_id security_result.rule_id El valor se asigna directamente.
signature_subclass security_result.detection_fields[].key La clave se establece en "signature_subclass".
signature_subclass security_result.detection_fields[].value El valor se asigna directamente.
src principal.ip El valor se asigna directamente.
src_country principal.location.country_or_region El valor se asigna directamente.
src_ip principal.ip El valor se asigna directamente.
src_port principal.port El valor se asigna directamente y se convierte en un número entero.
srccountry principal.location.country_or_region El valor se asigna directamente.
sub_type additional.fields[].key La clave se establece en "subType".
sub_type additional.fields[].value.string_value El valor se asigna directamente.
subtype target.resource.resource_subtype El valor se asigna directamente.
suid principal.user.userid El valor se asigna directamente.
threat_level additional.fields[].key La clave se establece en "threatLevel".
threat_level additional.fields[].value.string_value El valor se asigna directamente.
threat_weight security_result.detection_fields[].key La clave se establece en "threat_weight".
threat_weight security_result.detection_fields[].value El valor se asigna directamente.
time metadata.event_timestamp.seconds Se combina con date y se analiza para generar segundos de época.
user_id principal.user.product_object_id El valor se asigna directamente.
user_name additional.fields[].key La clave se establece en "userName".
user_name additional.fields[].value.string_value El valor se asigna directamente.
user_name principal.user.userid El valor se asigna directamente.
N/A metadata.event_type Se establece en “NETWORK_CONNECTION” si están presentes principal.ip y target.ip. Se establece en "USER_UNCATEGORIZED" si principal.ip y principal.user están presentes. Se establece en "STATUS_UPDATE" si solo está presente principal.ip. De lo contrario, configúralo como "GENERIC_EVENT".
N/A metadata.log_type Está codificado de forma fija en “FORTINET_FORTIWEB”.
N/A metadata.product_name Se codifica de forma fija en “FORTINET FORTIWEB” o “FortiWEB Cloud” según el formato de registro.
N/A metadata.vendor_name Se codifica de forma fija en “FORTINET” o “Fortinet” según el formato de registro.
N/A principal.resource.resource_type Se codifica en "DEVICE" si dev_id está presente.

Cambios

2024-01-09

  • Se agregó compatibilidad con los registros en formato CEF.
  • Se agregó un patrón de Grok para que coincida con el nuevo formato de los registros de CEF.
  • Se asignó "principal_hostnamne" a "principal.hostname".
  • Se asignó "principal.app" a "principal.application".

18-05-2023

  • Sin embargo, el analizador se creó recientemente.