Filterforge hará en tu lugar todo el trabajo sucio de gestionar el tráfico

Ingenieros de Cloudflare publicaron en acceso abierto una herramienta inusual: puede literalmente "adivinar" qué paquete de red pasará por un filtro y construirlo desde cero.
El proyecto se llama filterforge. La utilidad está escrita en Python y está diseñada para analizar el bytecode del Berkeley Packet Filter, el mecanismo que se utiliza para filtrar el tráfico de red en sistemas de análisis, dispositivos de red e incluso en programas maliciosos. Normalmente ese código parece un conjunto de instrucciones incomprensibles, pero filterforge lo convierte en una forma legible y va más allá.
La herramienta analiza las condiciones del filtro y, a continuación, con un solucionador de restricciones calcula qué parámetros del paquete satisfacen todas las comprobaciones. Luego genera un paquete de red completo que pasará garantizado por el filtro especificado. No es teoría: como resultado se obtiene un paquete listo con las capas Ethernet, IP, TCP o UDP, que se puede guardar, estudiar o enviar a la red.
Este enfoque puede facilitar considerablemente el análisis de software malicioso y de filtros de red. Por ejemplo, si los atacantes usan reglas complejas para enmascarar el tráfico, filterforge ayuda a entender rápidamente qué paquete exactamente deja pasar el filtro. El mismo escenario sirve para analizar reglas de captura de tráfico y depurar sistemas de red.
La utilidad admite distintos formatos de entrada. Se puede proporcionar el bytecode como una cadena de valores hexadecimales o como un arreglo de números. Hay un modo que muestra solo el análisis de las instrucciones, y otro modo que genera inmediatamente el paquete adecuado. Si es necesario, se pueden establecer parámetros manualmente, por ejemplo direcciones IP o puertos.
Los desarrolladores también implementaron una interfaz de programación. A través de ella se puede integrar la herramienta en los propios flujos de análisis, guardar paquetes automáticamente en archivos de captura o enviarlos directamente a la red. Para trabajar con paquetes IP 'crudos' existe un modo separado sin encabezado Ethernet.
La documentación también señala un matiz: algunos filtros devuelven solo un valor en lugar del habitual par "permitir o denegar". En esos casos el solucionador no puede encontrar un camino correcto. Los desarrolladores proponen una solución alternativa: añadir manualmente la instrucción que falta para que la herramienta pueda construir el paquete correctamente.
Filterforge todavía está en desarrollo, pero ya demuestra cómo se puede automatizar una de las tareas más complejas en el análisis de redes: comprender la lógica del filtro y obtener un ejemplo concreto de tráfico que ese filtro permitirá pasar.