À propos du projet
RustNet est une application terminal multiplateforme qui offre une visibilité en temps réel sur les connexions réseau avec attribution au niveau des processus et inspection approfondie des paquets (DPI). Contrairement aux outils traditionnels comme netstat, ss ou tcpdump, RustNet relie chaque connexion à son processus et exécutable propriétaire, facilitant l'identification du trafic généré par une application spécifique.
L'outil prend en charge les protocoles TCP, UDP et QUIC sur Linux, macOS, Windows et FreeBSD. Il utilise des backends de capture spécifiques à chaque plateforme : eBPF avec libbpf-rs sur Linux, PKTAP sur macOS, ETW avec repli IP Helper sur Windows, et API natives sur FreeBSD. L'attribution des processus inclut le PID, le nom de l'exécutable, les noms d'utilisateur et de groupe, la confiance de correspondance et une chaîne de processus parents plafonnée.
L'inspection approfondie des paquets identifie les protocoles courants tels que HTTP, HTTPS/TLS avec SNI, DNS, SSH, FTP, QUIC, MQTT, BitTorrent, WireGuard, OpenVPN, STUN, NTP, mDNS, LLMNR, DHCP, SNMP, SSDP et NetBIOS sans dissecteurs externes. L'outil effectue également une analyse DNS passive, offrant codes de réponse, délais d'attente, percentiles de latence et indicateurs de santé.
La sécurité est traitée via le sandboxing. Sur Linux, RustNet peut utiliser Landlock (noyau 5.13+) ; sur macOS, Seatbelt ; et sur Windows, la réduction des privilèges de jetons et le blocage des processus enfants via job objects. L'application réduit les privilèges après l'initialisation, et les échecs de réduction UID/GID arrêtent le démarrage avant l'exécution des workers de traitement des paquets.
Pour l'intégration avec d'autres outils, RustNet peut exporter des fichiers PCAPNG annotés incluant des commentaires par paquet avec processus, PID, direction, données DPI/SNI et GeoIP, prêts pour une utilisation immédiate dans Wireshark. Une exportation PCAP classique avec un fichier JSONL d'accompagnement est également disponible pour corrélation hors ligne. De plus, l'attribution Kubernetes optionnelle mappe les connexions aux pods, namespaces et conteneurs lorsque la fonctionnalité kubernetes est activée.
L'interface terminal est construite avec ratatui et fournit des vues en temps réel des connexions, taux de trafic et répartitions de protocoles. Les utilisateurs peuvent filtrer par port, adresses source/destination, nom de processus, état, SNI et protocole, avec prise en charge des motifs regex. Les options de tri et de regroupement permettent de se concentrer sur les consommateurs de bande passante ou des processus spécifiques. Des indicateurs visuels montrent les états du cycle de vie des connexions, les connexions inactives s'estompant et affichant des minuteurs avant archivage.
L'installation est disponible via Homebrew, APT, DNF, Zypper, pacman, Nix, Chocolatey, Scoop et builds source. L'outil nécessite des privilèges élevés pour la capture de paquets, mais les capacités Linux peuvent être définies pour fonctionner sans sudo. La documentation couvre la configuration détaillée, l'utilisation, l'architecture, la sécurité et les directives de contribution.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.