Filtro de Paquetes Berkeley (BPF)

  • Posted on: 26 May 2022
  • By: ReYDeS

Herramientas como tcpdump, Windump, y Wireshark, utilizan expresiones BPF para especificar aquello lo cual debe o no debe ser recolectado. Si no se especifica ningún filtro BPF, entonces las herramientas recolectarán todo el tráfico por defecto.

BPF es una tecnología utilizada en ciertos sistemas operativos de computadoras, para programas los cuales necesitan entre otras cosas, analizar tráfico de red (eBPF es una máquina virtual extendida BPF JIT en el kernel de Linux). Proporciona una interfaz en bruto para las capas de enlace, permitiendo a los paquetes en bruto de la capa de enlace ser enviados y recibidos. BPF está disponible en la mayoría de sistemas operativos tipo UNIX, y eBPF para Linux y Microsoft Windows. Adicionalmente, si el controlador para la interfaz de red soporta el modo promiscuo, permite la interfaz sea puesta en un modo en el cual todos los paquetes sobre la red pueden ser recibidos, incluso aquellos destinados hacia otros hosts.

BPF soporta el filtrado de paquetes, permitiendo un proceso del espacio de usuario suministre un programa para filtrado, el cual especifique cuales paquetes requiere recibir. Por ejemplo, un proceso Tcpdump puede requerir recibir únicamente los paquetes iniciando una conexión TCP. BPF retornará únicamente paquetes los cuales pasen el filtro suministrado por el proceso. Esto evita la copia de paquetes no requeridos desde el kernel del sistema operativo hacia el proceso, mejorando en gran medida el desempeño.

BPF es algunas veces utilizado para referirse únicamente al mecanismo para filtrado, en lugar de una interfaz completa. Algunos sistemas como Linux y Tru64 UNIX, proporcionan una interfaz en bruto hacia la capa de enlace de datos distinta de la interfaz en bruto BPF, pero utiliza los mecanismos de filtrado BPF para esta interfaz en bruto.

Fuentes:

https://en.wikipedia.org/wiki/Berkeley_Packet_Filter
https://www.tcpdump.org/
https://www.winpcap.org/windump/
https://www.wireshark.org/
http://alumni.cs.ucr.edu/~marios/ethereal-tcpdump.pdf

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: https://www.reydes.com/d/?q=node/1