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

Document created by RSA Information Design and Development on Apr 23, 2018
Version 1Show Document
  • View in full screen mode
 

Puede usar los Berkeley Packet Filters para controlar los paquetes y los registros que procesa un Decoder.

Los Berkeley Packet Filters (BPF) se aplican al flujo de paquetes antes de que los paquetes se copien al adaptador de Decoder para el análisis. Esto permite que el tráfico no deseado se elimine de manera eficiente. Estos 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 Decoder admite además el filtrado de paquetes en el nivel de sistema que se define con la sintaxis tcpdump/libpcap. Especificar un filtro Libpcap puede reducir de manera eficaz el volumen del paquete según atributos de Capa 2-Capa 4. Un filtro Libpcap es adecuado para usarse 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).
El siguiente es un ejemplo de un filtro libpcap para conservar solo los paquetes que no tienen tanto la dirección de origen como la 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)
Para obtener una referencia completa de la sintaxis del filtro Libpcap, consulte las páginas principales de:

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

  1. Vaya a ADMIN > Servicios.
  2. En la Vista Servicios de Administration, seleccione un servicio Decoder y El menú Acciones > Ver > Configuración.
    La Vista Configuración de serviciosse muestra con la pestaña General abierta.
    Este es un ejemplo de la pestaña General.
  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. A continuación se proporcionan varios ejemplos.
    La interfaz del usuario 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 Suite.

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.

  • && se convierte en 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 paquetes 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 udp port 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 > Configurar ajustes comunes en un Decoder > Configurar ajustes de captura > (Opcional) Configurar filtrado de paquetes a nivel del sistema (BPF)

Attachments

    Outcomes