Sniffer – program komputerowy lub urządzenie, którego zadaniem jest przechwytywanie i ewentualnie analizowanie danych przepływających w sieci[1].
Wspólną cechą wielu snifferów jest przełączenie karty sieciowej w tryb mieszany (ang. promiscuous), w którym urządzenie odbiera wszystkie ramki docierające do interfejsu, także te nieadresowane bezpośrednio do niego[2].
Skuteczność takiego podsłuchu zależy jednak od budowy sieci. W dawnych sieciach opartych na koncentratorach każda ramka trafiała do wszystkich portów, więc tryb mieszany wystarczał do przechwycenia całej komunikacji w segmencie. Przełączniki kierują ramki wyłącznie do portu, za którym znajduje się adresat, co bierny podsłuch uniemożliwia[2].
Sniffer można też uruchomić na routerze albo na komputerze będącym jedną ze stron komunikacji – w tych przypadkach tryb mieszany nie jest potrzebny.
Sniffery należą do podstawowych narzędzi diagnostycznych administratorów sieci, wykorzystywanych przy rozwiązywaniu problemów z połączeniami, czy rozwoju oprogramowania[3]. Bywają również stosowane do monitorowania cudzej aktywności sieciowej.
Ochronę przed przechwyceniem treści zapewnia szyfrowanie transmisji – sniffer rejestruje wówczas ruch, ale jego zawartość pozostaje nieczytelna.
W polskim prawie uzyskanie dostępu do informacji nieprzeznaczonej dla sprawcy, w tym przez posłużenie się w tym celu odpowiednim urządzeniem lub oprogramowaniem, jest przestępstwem z art. 267 Kodeksu karnego[4].
Do najczęściej używanych narzędzi tego typu należą tcpdump, ettercap, dsniff oraz Wireshark. Ten ostatni powstał w 1998 roku pod nazwą Ethereal, a w maju 2006 roku został przemianowany w związku z tym, że prawa do dotychczasowej nazwy pozostały przy byłym pracodawcy jego twórcy[5][6].
Odrębną kategorię stanowią narzędzia takie jak Snort, które oprócz przechwytywania i rejestrowania ruchu pełnią funkcję systemu wykrywania i zapobiegania włamaniom[5][3].