Об этом проекте
RustNet — это кроссплатформенное терминальное приложение, обеспечивающее видимость сетевых соединений в реальном времени с привязкой к процессам и глубокой инспекцией пакетов (DPI). В отличие от традиционных инструментов, таких как netstat, ss или tcpdump, RustNet связывает каждое соединение с владеющим процессом и исполняемым файлом, что упрощает определение того, какой именно трафик генерирует конкретное приложение.
Инструмент поддерживает протоколы TCP, UDP и QUIC в Linux, macOS, Windows и FreeBSD. Он использует платформенно-зависимые бэкенды захвата: eBPF с libbpf-rs в Linux, PKTAP в macOS, ETW с резервным вариантом IP Helper в Windows и нативные API в FreeBSD. Привязка к процессам включает PID, имя исполняемого файла, имена пользователя и группы, уверенность сопоставления и ограниченную цепочку родительских процессов.
Глубокая инспекция пакетов распознаёт распространённые протоколы, такие как HTTP, HTTPS/TLS с SNI, DNS, SSH, FTP, QUIC, MQTT, BitTorrent, WireGuard, OpenVPN, STUN, NTP, mDNS, LLMNR, DHCP, SNMP, SSDP и NetBIOS, без внешних диссекторов. Инструмент также выполняет пассивную DNS-аналитику, предоставляя коды ответов, тайм-ауты, процентили задержки и индикаторы состояния.
Безопасность обеспечивается за счёт песочницы. В Linux RustNet может использовать Landlock (ядро 5.13+); в macOS — Seatbelt; в Windows — понижение привилегий токена и блокировку дочерних процессов через job-объекты. Приложение сбрасывает привилегии после инициализации, и неудачный сброс UID/GID останавливает запуск до того, как начнут работу обработчики пакетов.
Для интеграции с другими инструментами RustNet может экспортировать аннотированные файлы PCAPNG, которые включают комментарии к каждому пакету с данными о процессе, PID, направлении, DPI/SNI и GeoIP, готовые к немедленному использованию в Wireshark. Также доступен классический экспорт PCAP с боковым файлом JSONL для офлайн-корреляции. Кроме того, опциональная атрибуция Kubernetes сопоставляет соединения с подами, пространствами имён и контейнерами, когда включена функция kubernetes.
Терминальный интерфейс построен на ratatui и предоставляет представления соединений, скоростей трафика и разбивки по протоколам в реальном времени. Пользователи могут фильтровать по порту, адресам источника/назначения, имени процесса, состоянию, SNI и протоколу, с поддержкой регулярных выражений. Опции сортировки и группировки позволяют сосредоточиться на пожирателях пропускной способности или конкретных процессах. Визуальные индикаторы показывают состояния жизненного цикла соединений, при этом неактивные соединения затухают и отображают таймеры обратного отсчёта перед архивацией.
Установка доступна через Homebrew, APT, DNF, Zypper, pacman, Nix, Chocolatey, Scoop и сборку из исходников. Инструменту требуются повышенные привилегии для захвата пакетов, но возможности Linux можно настроить так, чтобы работать без sudo. Документация охватывает подробную настройку, использование, архитектуру, безопасность и руководства по участию в разработке.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.