Sniffglue

Network Analysis v0.16.2 · 19.04.2026 активный

Sniffglue — это безопасный сниффер, написанный на Rust. Он создан с упором на безопасность и стабильность, использует привилегированные операции только в минимально необходимом объеме, что снижает риск в случае уязвимостей в коде.

v0.16.2
19.04.2026 current
Добавлен 18.11.2025 · Обновлён 22.11.2025 · Network Analysis
Установка
apt install sniffglue
или

sudo apt install libpcap-dev libseccomp-dev

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

cargo install sniffglue
sniffglue --help
переведено ИИ

sniffglue Build Status Crates.io

sniffglue — это сетевой сниффер, написанный на rust. Сетевые пакеты обрабатываются параллельно с использованием пула потоков для задействования всех ядер процессора. Цели проекта — чтобы вы могли безопасно запускать sniffglue в недоверенных сетях и чтобы он не падал при обработке пакетов. По умолчанию вывод должен быть максимально полезным.

screenshot)

Использование

# sniff with default filters (dhcp, dns, tls, http)
sniffglue enp0s25
# increase the filter sensitivity (arp)
sniffglue -v enp0s25
# increase the filter sensitivity (cjdns, ssdp, dropbox, packets with valid utf8)
sniffglue -vv enp0s25
# almost everything
sniffglue -vvv enp0s25
# everything
sniffglue -vvvv enp0s25

Установка

Packaging status

Arch Linux

pacman -S sniffglue

Mac OSX

brew install sniffglue

Debian/Ubuntu/Kali

Впервые включён в debian bullseye, ubuntu 21.04.

apt install sniffglue

Alpine

apk add sniffglue

Gentoo

layman -a pentoo
emerge --ask net-analyzer/sniffglue

NixOS

nix-env -i sniffglue

GNU Guix

guix install sniffglue

Fedora/RHEL/CentOS/CentOS Stream

dnf copr enable atim/sniffglue -y
dnf install sniffglue

Из исходников

Для сборки из исходников убедитесь, что у вас установлены libpcap и libseccomp. На системах на базе debian:

# install the dependencies
sudo apt install libpcap-dev libseccomp-dev
# install rust with rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
# install sniffglue and test it
cargo install sniffglue
sniffglue --help

Или вы можете собрать Debian-пакет с помощью cargo-deb:

cargo deb

Протоколы

  • [X] ethernet
  • [X] ipv4
  • [X] ipv6
  • [X] arp
  • [X] tcp
  • [X] udp
  • [X] icmp
  • [X] http
  • [X] tls
  • [X] dns
  • [X] dhcp
  • [X] cjdns eth beacons
  • [X] ssdp
  • [X] dropbox beacons
  • [X] ppp
  • [ ] 802.11

Docker

Вы можете собрать sniffglue как docker-образ для отладки конфигураций контейнеров. Размер образа в настоящее время составляет около 11.1 МБ. Рекомендуется загружать его в собственный реестр.

docker build -t sniffglue .
docker run -it --init --rm --net=host sniffglue eth0

Сборка документации

scdoc < docs/sniffglue.1.scd > docs/sniffglue.1

Безопасность

Для сообщения о проблеме безопасности, пожалуйста, свяжитесь с kpcyrd на ircs://irc.hackint.org.

Seccomp

Для обеспечения того, чтобы скомпрометированный процесс не мог скомпрометировать систему, sniffglue использует seccomp для ограничения системных вызовов, которые могут быть использованы после запуска процесса. Это делается в два этапа: во-первых, в самом начале (сразу после инициализации env_logger), и во-вторых, после настройки сниффера, но перед чтением пакетов из сети.

Укрепление безопасности

На втором этапе также выполняется общее укрепление безопасности перед окончательным отключением всех ненужных системных вызовов. Они зависят от конкретной системы, поэтому конфигурационный файл загружается из /etc/sniffglue.conf. Этот конфигурационный файл определяет пустой каталог для chroot и непривилегированную учётную запись в user, которая используется для снятия.root-привилегий.

boxxy-rs

Этот проект включает небольшую оболочку на основе boxxy-rs, которую можно использовать для изучения песочницы на различных этапах во время и после инициализации. Она также используется travis для проверки того, что песочница действительно блокирует системные вызовы.

cargo run --example boxxy

Воспроизводимые сборки

Этот проект тестируется с помощью reprotest. В настоящее время следующие вариации исключены:

  • -time — требуется, потому что сертификат crates.io истекает в будущем
  • -domain_host — требует root для unshare(2) и был исключён

Не забудьте установить зависимости для сборки.

ci/reprotest.sh

Фаззинг

Обработка пакетов в sniffglue может быть подвергнута фаззингу с помощью cargo-fuzz. Всё необходимое предоставлено в каталоге fuzz/, который поставляется вместе с исходным кодом. Обратите внимание, что эта программа связана с libpcap, который не включён в текущую конфигурацию фаззинга.

cargo fuzz run read_packet

Лицензия

GPLv3+

Комментарии
Войдите, чтобы оставить комментарий