Sobre o projeto
RustNet é um aplicativo de terminal multiplataforma que oferece visibilidade em tempo real das conexões de rede com atribuição em nível de processo e inspeção profunda de pacotes (DPI). Diferente de ferramentas tradicionais como netstat, ss ou tcpdump, o RustNet vincula cada conexão ao seu processo e executável proprietário, facilitando a identificação do tráfego que um aplicativo específico está gerando.
A ferramenta suporta os protocolos TCP, UDP e QUIC em Linux, macOS, Windows e FreeBSD. Ela usa backends de captura específicos da plataforma: eBPF com libbpf-rs no Linux, PKTAP no macOS, ETW com fallback de IP Helper no Windows e APIs nativas no FreeBSD. A atribuição de processos inclui PID, nome do executável, nomes de usuário e grupo, confiança de correspondência e uma cadeia de processos pai limitada.
A inspeção profunda de pacotes identifica protocolos comuns como HTTP, HTTPS/TLS com SNI, DNS, SSH, FTP, QUIC, MQTT, BitTorrent, WireGuard, OpenVPN, STUN, NTP, mDNS, LLMNR, DHCP, SNMP, SSDP e NetBIOS sem dissecadores externos. A ferramenta também realiza análises DNS passivas, oferecendo códigos de resposta, timeouts, percentis de latência e indicadores de saúde.
A segurança é abordada por meio de sandboxing. No Linux, o RustNet pode usar Landlock (kernel 5.13+); no macOS, Seatbelt; e no Windows, redução de privilégios de token e bloqueio de processos filhos por job object. O aplicativo reduz privilégios após a inicialização, e falhas na redução de UID/GID interrompem a inicialização antes que os workers de processamento de pacotes sejam executados.
Para integração com outras ferramentas, o RustNet pode exportar arquivos PCAPNG anotados que incluem comentários por pacote com processo, PID, direção, DPI/SNI e dados GeoIP, prontos para uso imediato no Wireshark. Uma exportação PCAP clássica com um sidecar JSONL também está disponível para correlação offline. Além disso, a atribuição opcional de Kubernetes mapeia conexões para pods, namespaces e contêineres quando o recurso kubernetes está habilitado.
A interface de terminal é construída com ratatui e fornece visualizações em tempo real de conexões, taxas de tráfego e detalhamentos de protocolo. Os usuários podem filtrar por porta, endereços de origem/destino, nome do processo, estado, SNI e protocolo, com suporte a padrões regex. As opções de classificação e agrupamento permitem que os usuários se concentrem em consumidores de banda ou processos específicos. Indicadores visuais mostram os estados do ciclo de vida das conexões, com conexões ociosas desaparecendo e exibindo contadores regressivos antes da arquivamento.
A instalação está disponível via Homebrew, APT, DNF, Zypper, pacman, Nix, Chocolatey, Scoop e builds de código-fonte. A ferramenta requer privilégios elevados para captura de pacotes, mas as capacidades do Linux podem ser definidas para executar sem sudo. A documentação cobre configuração detalhada, uso, arquitetura, segurança e diretrizes de contribuição.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.