Decoder: Configurar filtrado de paquetes a nivel del sistema (BPF)

Document created by RSA Information Design and Development on Feb 9, 2017
Version 1Show Document
  • View in full screen mode
  

En este tema, se describe cómo usar los filtros de paquetes Berkeley para controlar los paquetes y registros que se procesan mediante un Decoder.

Puede usar los filtros de paquetes Berkeley para controlar los paquetes y los registros que procesa un Decoder. El Decoder admite el filtrado de paquetes en el nivel del sistema que se define mediante la sintaxis tcpdump/libpcap. La especificación de un filtro libpcap puede reducir de manera eficaz el volumen de paquetes en función de atributos de capa 2 - capa 4. Los filtros de paquetes Berkeley (BPF) se aplican al flujo de paquetes antes de que los paquetes se copien al adaptador de Decoder para su análisis. Esto permite que el tráfico no deseado se elimine de manera eficiente. Sin embargo, los paquetes descartados no se toman en cuenta en ninguna estadística del Decoder (velocidad de captura, paquetes descartados, paquetes filtrados y total de paquetes).

El uso de un filtro libpcap es adecuado cuando un Decoder está recibiendo un volumen de tráfico que impone una carga sobre los recursos físicos de la plataforma. En este escenario, el Decoder puede descartar paquetes constantemente y tener una gran cantidad de páginas de captura disponibles (/decoder/stats/capture.pagefree es alto).

Agregar filtros de paquetes en el nivel del sistema

Para agregar un filtro de paquetes Berkeley en el nivel del sistema:

  1. En el menú de Security Analytics, seleccione Administration > Servicios.
  2. En la vista Servicios de Administration, seleccione un servicio Decoder y elija Menú Acciones recortado > Ver > Configuración.
    La vista Configuración de servicios se muestra con la pestaña General abierta.
    Vista Configuración de servicios: Decoder
  3. En la sección Configuración de Decoder, bajo Adaptador, haga clic en el campo que aparece junto a Filtro de paquetes Berkeley
  4. Ingrese solo un filtro en el campo. Si desea filtrar varios elementos, una varias expresiones usando and.
    La interfaz del usuario de SA valida la entrada cuando ingresa la cadena de filtro.
  5. Para guardar el filtro, haga clic en Aplicar.
    Si la sintaxis está correcta, se muestra un mensaje de confirmación.

    Si no lo está, se muestra un mensaje El filtro de paquetes no es válido, seguido de un mensaje de registro correspondiente en los mensajes de registro del Decoder:
    164474800   2015-May-01 19:03:08   warning   Decoder   Failed to parse filter ‘example_badrule': syntax error 
  6. Para activar el filtro, debe detener e iniciar la captura en el Decoder:
    1. Pase de la vista Configurar a la vista Sistema.
    2. Haga clic en Detener captura.
    3. Haga clic en Iniciar captura.
      El filtro activo se mostrará en los registros de Decoder.

Ejemplos

Los siguientes son varios ejemplos de filtros:

  • Descartar paquetes hacia o desde cualquier dirección de la subred 10.21.0.0/16:
    not (net 10.21.0.0/16)
  • Descartar paquetes que tienen direcciones de origen y de destino en la subred 10.21.0.0/16:
    not (src net 10.21.0.0/16 and dst net 10.21.0.0/16)
  • Descartar paquetes que provienen de 10.21.1.2 o se dirigen a 10.21.1.3.
    not (src host 10.21.1.2 or dst host 10.21.1.3)
  • Combinar IP y HOST:
    not (host 192.168.1.10) and not (host api.wxbug.net)
  • Descartar todo el tráfico del puerto 53, tanto de TCP como UDP:
    not (port 53)
  • Descartar solo el tráfico del puerto 53 de UDP:
    not (udp port 53)
  • Descartar todo el tráfico IP protocolo 50 (IPSEC):
    not (ip proto 50)
  • Descartar todo el tráfico en los puertos TCP 133 a 135.
    not (tcp portrange 133-135

Los siguientes filtros combinan algunos de los filtros anteriores para demostrar cómo poner varias instrucciones en un solo filtro: 

  • Descargar el tráfico del puerto 53(DNS) que se origina en 10.21.1.2 o se destina a 10.21.1.3.
    not (port 53) and not (src host 10.21.1.2 or dst host 10.21.1.3)
  • Descartar cualquier tráfico que use el protocolo IP 50 o el puerto 53, o cualquier tráfico proveniente de la red 10.21.0.0/16 con destino a la red 10.21.0.0/16
    not (ip proto 50 or port 53) or not (src net 10.21.0.0/16 and dst net 10.21.0.0/16)

Precaución: El uso de paréntesis puede tener un amplio efecto potencialmente disruptivo en la utilización de filtros de paquetes. Como mejor práctica, mantenga las operaciones “not” fuera de paréntesis y pruebe siempre las reglas antes de implementarlas. Si no escribe las reglas con el formato correcto (a pesar de la validación de la entrada), puede que un filtro de paquete descarte TODO el tráfico o presente otros comportamientos inesperados. Esto se debe a la manera en que funcionan los filtros de paquetes Libpcap y no sucede a causa de ninguna lógica del software NetWitness.

Pruebas

Los filtros BPF se pueden y se deben probar usando tcpdump o windump para asegurarse de que presenten el comportamiento esperado antes de su implementación. Este ejemplo muestra la prueba de un filtro usando windump:

windump -nni 2 not (port 53 or port 443) or not (ip proto 50)

Conversiones

Si por motivos de rendimiento decide que sería mejor ejecutar un filtro de regla de red existente como un filtro de paquetes en el nivel del sistema, puede convertirlo. Cuando haga conversiones, debe tener en cuenta algunos puntos.

  • && o and
  • ip.addr se convierte en host si se trata de un solo host o en net si se trata de una red.
  • ip.src se convierte en src host si se trata de un solo host o en src net si se trata de una red.
  • ip.dst se convierte en dst host si se trata de un solo host o en dst net si se trata de una red.
  • Utilice la notación CIDR cuando enumere una red (es decir, 10.10.10.0/24).
  • || se convierte en or
  • ! se convierte en not
  • Para unir varias reglas, debe usar and.

El manual de TCPDump también proporciona ejemplos de filtros y cadenas que puede usar:
http://www.tcpdump.org/tcpdump_man.html

Además, el siguiente sitio ofrece una excelente referencia para los filtros de paquete de tipo BPF:
http://biot.com/capstats/bpf.html

Precaución: si captura paquetes etiquetados vlan, es posible que el filtro bpf estándar anterior no funcione. Por ejemplo, si usa not (udp port 123) para filtrar el tráfico NTP etiquetado vlan en el puerto udp 123, no funcionará. Esto se debe a que el sistema de filtro bpf es simple y no toma en cuenta protocolos a los que no se hace referencia en la regla. Por lo tanto, el sistema operativo que ejecuta el filtro bpf buscará los valores de puerto udp con la compensación de bytes que ocurriría en un paquete Ethernet/udp estándar; pero los campos de etiqueta vlan opcionales en el encabezado Ethernet migran estos valores por 4 bytes, lo que hará que la regla de filtro bpf falle. Para repararlo, debe cambiar el filtro bpf a: not (vlan and udp port 123).

You are here
Table of Contents > Procedimientos requeridos > Paso 2. Configurar ajustes de captura > Configurar filtrado de paquetes a nivel del sistema (BPF

Attachments

    Outcomes