Recopila registros del WAF de FortiWeb

Compatible con:

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

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 UDM estructurado. 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 el WAF de FortiWeb de modo que envíe registros a un retransmisor 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 Log & report > Log policy > Syslog policy.
  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 Dirección IP, especifica la dirección IP o el nombre de host del servidor syslog remoto.
    • En el campo Puerto, especifica el puerto del servidor syslog.
    • Desmarca la casilla de verificación Habilitar formato CSV si está seleccionada.
  5. Haz clic en Aceptar.

Habilita los tipos de syslog y el nivel de registro

  1. En la consola de Fortinet FortiWeb, selecciona Log & report > Log config > Global log settings.
  2. En la ventana Configuración global de registros 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 los registros que se recopilarán.
    • En la lista Facility, selecciona la instalación de registro.
  3. Haz clic en Aplicar.

Crear un activador

  1. En la consola de Fortinet FortiWeb, selecciona Log & report > Log policy > Trigger policy.
  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 recién creado para asegurarte de que todos los eventos requeridos se registren en el reenvío de syslog de Google Security Operations.

Configura el reenvío de Google Security Operations para transferir los registros del WAF de FortiWeb

  1. Ve a Configuración del SIEM > Reenviadores.
  2. Haz clic en Agregar un nuevo reenvío.
  3. En el campo Nombre del reenviador, ingresa un nombre único para el reenviador.
  4. Haz clic en Enviar. Se agregará el reenvío y aparecerá la ventana Add collector configuration.
  5. En el campo Nombre del recopilador, escribe un nombre.
  6. Selecciona 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 en el que reside el recopilador y escucha los datos de syslog.
    • Puerto: Especifica el puerto de destino en el que reside el recopilador y escucha los datos de syslog.
  9. Haz clic en Enviar.

Para obtener más información sobre los reenvíadores de Google Security Operations, consulta Administra la configuración de los reenvíadores a través de la IU de Google Security Operations.

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

Referencia de la asignación de campos

Este analizador controla los registros de FORTINET FORTIWEB en formato de clave-valor (KV) y los transforma en UDM. Procesa los registros con formato CEF y sin formato CEF, extrae campos, normaliza valores y los asigna a los campos de UDM correspondientes 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 "Block", security_result.action_details se establece en "BLOCK".
app network.application_protocol El valor se asigna directamente después de convertirse a mayúsculas. Solo si el valor es uno de 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 "Malicious", security_result.category se establece en "NETWORK_MALICIOUS".
cn1 additional.fields[].value.string_value Se asigna al campo threatWeight.
cn1Label additional.fields[].key La clave se establece en el valor de cn1Label.
cn2 additional.fields[].value.string_value Se asigna al campo de longitud.
cn2Label additional.fields[].key La clave se establece en el valor de cn2Label.
cn3 additional.fields[].value.string_value Se asigna al campo signatureID.
cn3Label additional.fields[].key La clave se establece en el valor de cn3Label.
cs1 additional.fields[].value.string_value El valor se asigna directamente.
cs1Label additional.fields[].key La clave se establece en el valor de 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 de cs2Label.
cs2 principal.user.userid El valor se asigna directamente cuando cs2Label coincide con "userName" (sin distinguir mayúsculas de 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 de cs3Label.
cs3 metadata.severity El valor se asigna directamente cuando cs3Label es "level" y cs3 no está vacío.
cs4 additional.fields[].value.string_value Se asigna al campo subType.
cs4Label additional.fields[].key La clave se establece en el valor de cs4Label.
cs5 additional.fields[].value.string_value Se asigna al campo threatLevel.
cs5Label additional.fields[].key La clave se establece en el valor de cs5Label.
cs6 additional.fields[].value.string_value Se asigna al campo owaspTop10.
cs6Label additional.fields[].key La clave se establece en el valor de 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 Se codifica como "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 analizó con los 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 convertirse 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 asigna a diferentes valores de gravedad del UDM según el valor del registro sin procesar. El valor predeterminado es UNKNOWN_SEVERITY si no se encuentra ninguna coincidencia.
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 convertirse a mayúsculas.
service target.application El valor se asigna directamente después de convertirse a mayúsculas si no es uno de los siguientes: 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 asigna a un valor de gravedad del UDM (BAJA, ALTA, etcétera).
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 están presentes principal.ip y principal.user. Se establece en "STATUS_UPDATE" si solo está presente principal.ip. De lo contrario, se establece como "GENERIC_EVENT".
N/A metadata.log_type Se codifica como "FORTINET_FORTIWEB".
N/A metadata.product_name Se codifica de forma rígida como "FORTINET FORTIWEB" o "FortiWEB Cloud" según el formato de registro.
N/A metadata.vendor_name Se codifica de forma rígida como "FORTINET" o "Fortinet" según el formato de registro.
N/A principal.resource.resource_type Se codifica como "DEVICE" si dev_id está presente.

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