Recopila registros del firewall Sophos XG
En este documento, se explica cómo recopilar registros del firewall de nueva generación (NG) de Sophos con Bindplane. El analizador extrae registros, normaliza los pares clave-valor y los asigna al UDM. Controla varios formatos de registro, convierte marcas de tiempo, enriquece los datos de red y clasifica los eventos en función de los IDs de registro y la actividad de red.
Antes de comenzar
- Asegúrate de tener una instancia de Google Security Operations.
- Asegúrate de usar Windows 2016 o una versión posterior, o un host de Linux con
systemd
. - Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos.
- Asegúrate de tener acceso con privilegios al firewall Sophos XG.
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
- Descarga el archivo de autenticación de transferencia. Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.
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.
Instala el agente de Bindplane
Instalación de Windows
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el siguiente comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalación de Linux
- Abre una terminal con privilegios de raíz o sudo.
Ejecuta el siguiente comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Recursos de instalación adicionales
- Para obtener más opciones de instalación, consulta esta guía de instalación.
Configura el agente de Bindplane para transferir Syslog y enviarlo a Google SecOps
Accede al archivo de configuración:
- Ubica el archivo
config.yaml
. Por lo general, se encuentra en el directorio/etc/bindplane-agent/
en Linux o en el directorio de instalación en Windows. - Abre el archivo con un editor de texto (por ejemplo,
nano
,vi
o Bloc de notas).
- Ubica el archivo
Edita el archivo
config.yaml
de la siguiente manera:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: SYSLOG namespace: sophos_firewall raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
Reemplaza el puerto y la dirección IP según sea necesario en tu infraestructura.
Reemplaza
<customer_id>
por el ID de cliente real.Actualiza
/path/to/ingestion-authentication-file.json
a la ruta de acceso en la que se guardó el archivo de autenticación en la sección Obtén el archivo de autenticación de transferencia de Google SecOps.
Reinicia el agente de Bindplane para aplicar los cambios
Para reiniciar el agente de Bindplane en Linux, ejecuta el siguiente comando:
sudo systemctl restart bindplane-agent
Para reiniciar el agente de Bindplane en Windows, puedes usar la consola Services o ingresar el siguiente comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configura los servidores de syslog de Sophos Firewall
- Accede al firewall Sophos XG.
- Ve a Configurar > Servicios del sistema > Configuración de registro.
- En la sección Servidores de Syslog, haz clic en Agregar.
- Proporciona los siguientes detalles de configuración:
- Nombre: Ingresa un nombre único para el recopilador de Google SecOps.
- Dirección IP o dominio: Ingresa la dirección IP de Bindplane.
- Puerto: Ingresa el número de puerto de Bindplane.
- Facility: Selecciona DAEMON.
- Nivel de gravedad: Selecciona Información.
- Formato: Selecciona Formato estándar del dispositivo.
- Haz clic en Guardar.
- Regresa a la página Configuración de registro y selecciona los tipos de registro específicos que deseas reenviar al servidor de syslog.
Configura la configuración de registro del firewall de Sophos XG
- Selecciona los siguientes registros de firewall base (registro de política de seguridad):
- Reglas de políticas
- Tráfico no válido
- LCA locales
- Ataque DoS
- Se descartó el paquete redireccionado de ICMP
- Paquete con enrutamiento de origen descartado
- Tráfico fragmentado abandonado
- Filtrado de MAC
- Filtrado de pares IP-MAC
- Prevención de falsificación de IP
- Túnel de VPN SSL
- Servidor de aplicaciones protegido
- Latidos
- Selecciona los siguientes registros de protección web (registro de filtrado web y registro de filtrado de aplicaciones):
- Filtro web
- Filtro de aplicaciones
- Selecciona los siguientes registros de protección de red (registro de IPS):
- Anomalía
- Firma
- Selecciona el siguiente registro del registro del sistema:
- Eventos del sistema
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
activityname |
security_result.detection_fields.activityname |
Valor del campo activityname . |
app_category |
security_result.detection_fields.Application Category , application_category |
Valor del campo app_category . |
app_filter_policy_id |
security_result.detection_fields.app_filter_policy_id |
Valor del campo app_filter_policy_id . |
app_is_cloud |
security_result.detection_fields.app_is_cloud |
Valor del campo app_is_cloud . |
app_name |
principal.application |
Valor del campo app_name . |
app_resolved_by |
security_result.detection_fields.app_resolved_by |
Valor del campo app_resolved_by . |
app_risk |
security_result.detection_fields.Application Risk , application_risk |
Valor del campo app_risk . |
app_technology |
application_technology |
Valor del campo app_technology . |
application |
principal.application |
Valor del campo application . |
application_category |
security_result.detection_fields.Application Category |
Valor del campo application_category . |
application_risk |
security_result.detection_fields.Application Risk |
Valor del campo application_risk . |
application_technology |
security_result.detection_fields.Application Technology |
Valor del campo application_technology . |
bytes_received |
network.received_bytes |
Valor del campo bytes_received . |
bytes_sent |
network.sent_bytes |
Valor del campo bytes_sent . |
category |
application_category |
Valor del campo category . |
category_type |
security_result.detection_fields.category_type |
Valor del campo category_type . |
client_host_name |
network.dhcp.client_hostname |
Valor del campo client_host_name . |
client_physical_address |
network.dhcp.chaddr |
Valor del campo client_physical_address . |
con_event |
security_result.detection_fields.con_event |
Valor del campo con_event . |
con_id |
security_result.detection_fields.con_id |
Valor del campo con_id . |
connevent |
security_result.detection_fields.connevent |
Valor del campo connevent . |
connid |
security_result.detection_fields.connid |
Valor del campo connid . |
date |
event.timestamp |
Se analiza a partir de los campos date y time , y se ajusta según la zona horaria. |
device_id |
intermediary.asset.asset_id |
Es el valor del campo device_id , con el prefijo ID: . |
device_model |
intermediary.hostname |
Valor del campo device_model . |
device_name |
intermediary.hostname |
Valor del campo device_name . |
device_serial_id |
intermediary.asset.asset_id |
Es el valor del campo device_serial_id , con el prefijo ID: . |
domain |
principal.administrative_domain , target.hostname |
Valor del campo domain . |
dst_country |
target.location.country_or_region |
Valor del campo dst_country . |
dst_country_code |
target.location.country_or_region |
Valor del campo dst_country_code . |
dst_ip |
target.ip |
Valor del campo dst_ip . |
dst_mac |
target.mac |
Valor del campo dst_mac . |
dst_port |
target.port |
Valor del campo dst_port . |
dst_trans_ip |
target.nat_ip |
Valor del campo dst_trans_ip . |
dst_trans_port |
target.nat_port |
Valor del campo dst_trans_port . |
dst_zone |
security_result.detection_fields.dst_zone |
Valor del campo dst_zone . |
dstzone |
security_result.detection_fields.dstzone |
Valor del campo dstzone . |
dstzonetype |
security_result.detection_fields.dstzonetype |
Valor del campo dstzonetype . |
duration |
network.session_duration.seconds |
Valor del campo duration . |
ether_type |
security_result.detection_fields.ether_type |
Valor del campo ether_type . |
exceptions |
security_result.detection_fields.exceptions |
Valor del campo exceptions . |
fw_rule_id |
security_result.rule_id |
Valor del campo fw_rule_id . |
fw_rule_name |
security_result.rule_name |
Valor del campo fw_rule_name . |
fw_rule_section |
security_result.rule_set |
Valor del campo fw_rule_section . |
fw_rule_type |
security_result.rule_type |
Valor del campo fw_rule_type . |
gw_id_request |
security_result.detection_fields.gw_id_request |
Valor del campo gw_id_request . |
gw_name_request |
security_result.detection_fields.gw_name_request |
Valor del campo gw_name_request . |
hb_health |
security_result.detection_fields.hb_health |
Valor del campo hb_health . |
hb_status |
security_result.detection_fields.hb_status |
Valor del campo hb_status . |
http_category |
security_result.detection_fields.http_category |
Valor del campo http_category . |
http_category_type |
security_result.detection_fields.http_category_type |
Valor del campo http_category_type . |
http_status |
network.http.response_code |
Valor del campo http_status . |
in_display_interface |
security_result.detection_fields.in_display_interface |
Valor del campo in_display_interface . |
in_interface |
security_result.detection_fields.in_interface |
Valor del campo in_interface . |
ipaddress |
principal.ip , network.dhcp.ciaddr |
Valor del campo ipaddress . |
log_component |
metadata.product_event_type , security_result.detection_fields.log_component |
Valor del campo log_component . |
log_id |
metadata.product_log_id |
Valor del campo log_id . |
log_msg |
metadata.description |
Es el valor del campo message después de quitar message= . |
log_occurrence |
security_result.detection_fields.log_occurrence |
Valor del campo log_occurrence . |
log_subtype |
security_result.detection_fields.log_subtype , security_result.action |
Valor del campo log_subtype . |
log_type |
security_result.detection_fields.log_type |
Valor del campo log_type . |
log_version |
security_result.detection_fields.log_version |
Valor del campo log_version . |
message |
metadata.description |
Valor del campo message . |
nat_rule_id |
security_result.detection_fields.nat_rule_id |
Valor del campo nat_rule_id . |
nat_rule_name |
security_result.detection_fields.nat_rule_name |
Valor del campo nat_rule_name . |
out_display_interface |
security_result.detection_fields.out_display_interface |
Valor del campo out_display_interface . |
out_interface |
security_result.detection_fields.out_interface |
Valor del campo out_interface . |
packets_received |
network.received_packets |
Valor del campo packets_received . |
packets_sent |
network.sent_packets |
Valor del campo packets_sent . |
priority |
security_result.severity |
Se asignan desde el campo priority o severity según una tabla de consulta. |
protocol |
network.ip_protocol |
Se analiza desde el campo protocol con una tabla de consulta. |
reason |
security_result.detection_fields.reason , security_result.summary |
Valor del campo reason . |
recv_bytes |
network.received_bytes |
Valor del campo recv_bytes . |
recv_pkts |
network.received_packets |
Valor del campo recv_pkts . |
referer |
network.http.referral_url |
Valor del campo referer . |
rule_id |
security_result.rule_id |
Valor del campo rule_id . |
rule_name |
security_result.rule_name |
Valor del campo rule_name . |
sent_bytes |
network.sent_bytes |
Valor del campo sent_bytes . |
sent_pkts |
network.sent_packets |
Valor del campo sent_pkts . |
severity |
priority |
Valor del campo severity . |
src_country |
principal.location.country_or_region |
Valor del campo src_country . |
src_country_code |
principal.location.country_or_region |
Valor del campo src_country_code . |
src_ip |
principal.ip |
Valor del campo src_ip . |
src_mac |
principal.mac |
Valor del campo src_mac . |
src_port |
principal.port |
Valor del campo src_port . |
src_trans_ip |
principal.nat_ip |
Valor del campo src_trans_ip . |
src_trans_port |
principal.nat_port |
Valor del campo src_trans_port . |
src_zone |
security_result.detection_fields.src_zone |
Valor del campo src_zone . |
srczone |
security_result.detection_fields.srczone |
Valor del campo srczone . |
srczonetype |
security_result.detection_fields.srczonetype |
Valor del campo srczonetype . |
status |
security_result.action_details , security_result.action |
Valor del campo status . |
status_code |
network.http.response_code |
Valor del campo status_code . |
target.url |
target.url |
Valor del campo url . |
time |
event.timestamp |
Se analiza a partir de los campos date y time , y se ajusta según la zona horaria. |
timestamp |
event.timestamp |
Se analiza del campo timestamp . |
tran_dst_ip |
target.nat_ip |
Valor del campo tran_dst_ip . |
tran_dst_port |
target.nat_port |
Valor del campo tran_dst_port . |
tran_src_ip |
principal.nat_ip |
Valor del campo tran_src_ip . |
tran_src_port |
principal.nat_port |
Valor del campo tran_src_port . |
url |
target.url |
Valor del campo url . |
used_quota |
security_result.detection_fields.used_quota |
Valor del campo used_quota . |
user_agent |
network.http.user_agent , network.http.parsed_user_agent |
Valor del campo user_agent . También se genera la versión analizada. |
user_gp |
extensions.auth.type |
Si user_gp es vpn , establece extensions.auth.type en VPN . |
user_name |
principal.user.userid , principal.user.email_addresses |
Valor del campo user_name . Si contiene @ , también se agrega a email_addresses . |
web_policy_id |
security_result.detection_fields.web_policy_id |
Valor del campo web_policy_id . |
N/A | event.idm.read_only_udm.metadata.event_timestamp |
Se copió desde event.timestamp . |
N/A | event.idm.read_only_udm.metadata.log_type |
El esquema de transferencia de Chronicle especifica el tipo de registro como SOPHOS_FIREWALL . |
N/A | event.idm.read_only_udm.metadata.vendor_name |
Valor constante SOPHOS . |
N/A | event.idm.read_only_udm.metadata.product_name |
Valor constante SOPHOS Firewall . |
N/A | event.idm.read_only_udm.network.application_protocol |
Se establece en DHCP si el campo ipaddress está presente. De lo contrario, se deriva del campo protocol . |
N/A | event.idm.read_only_udm.metadata.event_type |
Se determina mediante una lógica basada en la presencia de otros campos (p.ej., NETWORK_HTTP , NETWORK_CONNECTION , NETWORK_DHCP , STATUS_UPDATE y GENERIC_EVENT ). |
N/A | event.idm.read_only_udm.security_result.action |
Se derivan de los campos status o log_subtype . |
Cambios
2024-08-26
Mejora:
- Se analizaron los registros de zona horaria=
WAT
.
2023-11-20
Mejora:
- Se asignó
packets_sent
anetwork.sent_packets
. - Se asignó
packets_received
anetwork.received_packets
. - Se asignó
src_trans_ip
aprincipal.nat_ip
. - Se asignó
src_trans_port
aprincipal.nat_port
. - Se asignó
dst_trans_ip
atarget.nat_ip
. - Se asignó
dst_trans_port
atarget.nat_port
. - Se asignó
bytes_sent
anetwork.sent_bytes
. - Se asignó
bytes_received
anetwork.received_bytes
. - Se asignó
duration
anetwork.session_duration
. - Se asignó
referer
anetwork.http.referer_url
. - Se asignó
ipaddress
aprincipal.ip
ynetwork.dhcp.ciaddr
. - Se asignó
client_physical_address
anetwork.dhcp.chaddr
. - Se asignó
client_host_name
anetwork.dhcp.client_hostname
. - Se asignó
reason
asecurity_result.summary
. - Se asignó
http_status
anetwork.http.response_code
. - Se asignó
app_name
aprincipal.application
. - Se asignaron
out_display_interface
,web_policy_id
,http_category
,http_category_type
,exceptions
,con_id
,used_quota
,src_zone_type
,src_zone
,dst_zone_type
,dst_zone
,app_risk
,app_category
,nat_rule_name
,gw_id_request
,gw_name_request
,app_filter_policy_id
,app_technology
,in_interface
,out_interface
,con_event
,srczonetype
,dstzonetype
,connevent
,connid
,hb_health
,category_type
,activityname
asecurity_result.detection_fields
.
2023-11-10
Mejora:
- Se asignó
fw_rule_type
asecurity_result.rule_type
. - Se asignó
severity
asecurity_result.severity
. - Se asignó
device_serial_id
aprincipal.asset.asset_id
. - Se asignaron
log_type
,log_component
,log_subtype
,log_version
,nat_rule_id
,ether_type
,hb_status
,app_resolved_by
,app_is_cloud
,qualifier
,log_occurrence
,in_display_interface
asecurity_result.detection_fields
.
2023-04-03
Mejora:
- Se modificó la asignación de
device_name
deprincipal.hostname
aintermediary.hostname
. - Se modificó la asignación de
device_id
deprincipal.asset.asset_id
aintermediary.asset.asset_id
. - Se modificó la asignación de
metadata.vendor_name
deSOPHOS Ltd.
aSOPHOS
. - Se asignó
sent_pkts
anetwork.sent_packets
. - Se asignó
recv_pkts
anetwork.received_packets
. - Se asignó
tran_src_ip
aprincipal.nat_ip
. - Se asignó
tran_src_port
aprincipal.nat_port
. - Se asignó
tran_dst_ip
atarget.nat_ip
. - Se asignó
tran_dst_port
atarget.nat_port
.
2022-12-01
Mejora:
- Se analizaron los registros de zona horaria=
IST
. - Se asignó
application_category, application_risk and application_technology
asecurity_result.detection_fields
. - Se asignó
fw_rule_name
asecurity_result.rule_name
. - Se asignó
fw_rule_section
asecurity_result.rule_set
.
18-8-2022
Mejora:
- Se analizaron los registros de zona horaria=
CEST
. - Porcentaje reducido de eventos genéricos
- Se asignó
user_name
aevent.idm.read_only_udm.principal.user.userid
- Se asignó
device_id
aevent.idm.read_only_udm.principal.asset.asset_id
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.