logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

sniffglue - secure multithreaded packet sniffer

Authors

       This program was originally written and is currently maintained by kpcyrd. Bug reports  and  patches  are
       welcome on github:

           https://github.com/kpcyrd/sniffglue

                                                   2024-09-10                                       sniffglue(1)

Description

sniffglue  is  a  network sniffer written in rust. Network packets are parsed concurrently using a thread
       pool to utilize all cpu cores. Project goals are  that  you  can  run  sniffglue  securely  on  untrusted
       networks  and  that it must not crash when processing packets. The output should be as useful as possible
       by default.

Examples

       Sniff with default filters (dhcp, dns, tls, http) from enp0s25:

           sniffglueenp0s25

       Increase the filter sensitivity (arp):

           sniffglue-venp0s25

       Increase the filter sensitivity (cjdns, ssdp, dropbox, packets with valid utf8)

           sniffglue-vvenp0s25

       Almost everything

           sniffglue-vvvenp0s25

       Everything

           sniffglue-vvvvenp0s25

       Read a dump from sniff.pcap, with increased filter sensitivity and decode packets with 1 thread:

           sniffglue-vvrn1sniff.pcap

Name

       sniffglue - secure multithreaded packet sniffer

Options

-v, --verbose
           Increase filter sensitivity to show more (possibly less useful) packets. The default only  shows  few
           packets, this flag can be specified multiple times. (maximum: 4)

       -h, --help
           Prints help information.

       -p, --promisc
           Set device to promiscuous mode.

       -r, --read
           Open device as pcap file.

       -n, --threadsthreads
           Specify the number of threads.

       -V, --version
           Prints version information. If -r was specified, open as pcap file instead.

Protocols

ethernet, ipv4, ipv6, arp, tcp, udp, http, tls, dns, dhcp, cjdnsethbeacons, ssdp, dropboxbeacons

Security

       To report a security issue please contact kpcyrd on ircs://irc.hackint.org.

   SECCOMP
       To  ensure  a  compromised  process doesn't compromise the system, sniffglue uses seccomp to restrict the
       syscalls that can be used after the process started. This is done  in  two  stages,  first  at  the  very
       beginning  (directly  after env_logger initialized) and once after the sniffer has been setup, but before
       packets are read from the network.

   HARDENING
       During the second stage, there's also some general hardening that is applied before all unneeded syscalls
       are  finally  disabled.  Those  are  system  specific,   so   a   configuration   file   is   read   from
       /etc/sniffglue.conf. This config file specifies an empty directory for chroot and an unprivileged account
       in user that is used to drop root privileges.

   FUZZING
       The packet processing of sniffglue can be fuzzed using cargo-fuzz. Everything you should need is provided
       in  the  fuzz/  directory  that  is distributed along with its source code. Please note that this program
       links to libpcap which is not included in the current fuzzing configuration.

See Also

pcap(3PCAP), seccomp(2)

Synopsis

sniffglue[-vrpVh][-n<threads>]device

See Also