Sobre el proyecto
RustNet es una aplicación de terminal multiplataforma que ofrece visibilidad en vivo de las conexiones de red con atribución a nivel de proceso e inspección profunda de paquetes (DPI). A diferencia de herramientas tradicionales como netstat, ss o tcpdump, RustNet vincula cada conexión con su proceso y ejecutable propietarios, lo que facilita identificar qué tráfico genera una aplicación específica.
La herramienta admite protocolos TCP, UDP y QUIC en Linux, macOS, Windows y FreeBSD. Utiliza backends de captura específicos de cada plataforma: eBPF con libbpf-rs en Linux, PKTAP en macOS, ETW con respaldo de IP Helper en Windows y API nativas en FreeBSD. La atribución de procesos incluye PID, nombre del ejecutable, nombres de usuario y grupo, confianza de coincidencia y una cadena de procesos padre limitada.
La inspección profunda de paquetes identifica protocolos comunes como HTTP, HTTPS/TLS con SNI, DNS, SSH, FTP, QUIC, MQTT, BitTorrent, WireGuard, OpenVPN, STUN, NTP, mDNS, LLMNR, DHCP, SNMP, SSDP y NetBIOS sin disectores externos. La herramienta también realiza análisis pasivo de DNS, ofreciendo códigos de respuesta, tiempos de espera, percentiles de latencia e indicadores de estado.
La seguridad se aborda mediante sandboxing. En Linux, RustNet puede usar Landlock (kernel 5.13+); en macOS, Seatbelt; y en Windows, reducción de privilegios de token y bloqueo de procesos hijos mediante job-object. La aplicación reduce privilegios después de la inicialización, y los fallos al reducir UID/GID detienen el inicio antes de que se ejecuten los trabajadores de procesamiento de paquetes.
Para la integración con otras herramientas, RustNet puede exportar archivos PCAPNG anotados que incluyen comentarios por paquete con datos de proceso, PID, dirección, DPI/SNI y GeoIP, listos para su uso inmediato en Wireshark. También está disponible una exportación PCAP clásica con un archivo sidecar JSONL para correlación sin conexión. Además, la atribución opcional de Kubernetes asigna conexiones a pods, namespaces y contenedores cuando la función kubernetes está habilitada.
La interfaz de terminal está construida con ratatui y proporciona vistas en tiempo real de conexiones, tasas de tráfico y desgloses por protocolo. Los usuarios pueden filtrar por puerto, direcciones de origen/destino, nombre de proceso, estado, SNI y protocolo, con soporte para patrones regex. Las opciones de ordenación y agrupación permiten a los usuarios centrarse en los consumidores de ancho de banda o en procesos específicos. Los indicadores visuales muestran los estados del ciclo de vida de las conexiones, con conexiones inactivas que se desvanecen y muestran temporizadores de cuenta regresiva antes de archivarse.
La instalación está disponible mediante Homebrew, APT, DNF, Zypper, pacman, Nix, Chocolatey, Scoop y compilaciones desde el código fuente. La herramienta requiere privilegios elevados para la captura de paquetes, pero se pueden configurar capacidades de Linux para ejecutarla sin sudo. La documentación cubre la configuración detallada, el uso, la arquitectura, la seguridad y las pautas de contribución.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.