Opublikowano wydanie nowej stabilnej gałęzi analizatora sieci Wireshark 4.0. Przypomnijmy, że projekt pierwotnie powstawał pod nazwą Ethereal, jednak w 2006 roku w wyniku konfliktu z właścicielem znaku towarowego Ethereal twórcy zmuszeni byli zmienić nazwę projektu na Wireshark. Kod projektu jest rozpowszechniany na licencji GPLv2.
Kluczowe innowacje w Wireshark 4.0.0:
- Zmieniono układ elementów w oknie głównym. Panele „Dodatkowe informacje o pakietach” i „Bajty pakietu” są umieszczone obok siebie pod panelem „Lista pakietów”.
- Zmieniono wygląd okien dialogowych „Dialog” (Rozmowa) i „Punkt końcowy” (Punkt końcowy).
- Dodano opcje do menu kontekstowych umożliwiające zmianę rozmiaru wszystkich kolumn i kopiowanie elementów.
- Zapewniona jest możliwość odpinania i mocowania zakładek.
- Dodano obsługę eksportu JSON.
- Po zastosowaniu filtrów wyświetlane są kolumny pokazujące różnice pomiędzy pakietami filtrowanymi i niefiltrowanymi.
- Zmieniono sortowanie różnych typów danych.
- Identyfikatory dołączane są do strumieni TCP i UDP i zapewniona jest możliwość ich filtrowania.
- Zezwolono na ukrywanie okien dialogowych z menu kontekstowego.
- Ulepszony import zrzutów szesnastkowych z interfejsu Wireshark i użycie polecenia text2pcap.
- Text2pcap zapewnia możliwość przechwytywania zrzutów we wszystkich formatach obsługiwanych przez bibliotekę podsłuchów.
- Text2pcap ma ustawiony format pcapng jako domyślny, podobnie jak narzędzia editcap, mergecap i tshark.
- Dodano obsługę wyboru typu enkapsulacji formatu wyjściowego.
- Dodano nowe opcje logowania.
- Zapewniono możliwość zrzutu fikcyjnych nagłówków IP, TCP, UDP i SCTP podczas korzystania z enkapsulacji Raw IP, Raw IPv4 i Raw IPv6.
- Dodano obsługę skanowania plików wejściowych przy użyciu wyrażeń regularnych.
- Zapewniono parzystość pomiędzy funkcjonalnością narzędzia Text2pcap a interfejsem „Importuj z zrzutu szesnastkowego” w Wireshark.
- Znacząco poprawiona wydajność lokalizacji przy użyciu baz danych MaxMind.
- Wprowadzono zmiany w składni reguł filtrowania ruchu:
- Dodano możliwość wyboru konkretnej warstwy stosu protokołów, na przykład podczas enkapsulacji IP-over-IP w celu wyodrębnienia adresów z pakietów zewnętrznych i zagnieżdżonych można określić „ip.addr#1 == 1.1.1.1” i „ip .addr#2 == 1.1.1.2. XNUMX".
- W instrukcjach warunkowych zaimplementowano obsługę kwantyfikatorów „any” i „all”, na przykład „all tcp.port > 1024”, aby sprawdzić wszystkie pola tcp.port.
- Wbudowana składnia do określania odwołań do pól - ${some.field}, zaimplementowana bez użycia makr.
- Dodano możliwość stosowania operacji arytmetycznych („+”, „-”, „*”, „/”, „%”) na polach numerycznych, oddzielając wyrażenie nawiasami klamrowymi.
- Dodano funkcje max(), min() i abs().
- Dopuszczalne jest określanie wyrażeń i wywoływanie innych funkcji jako argumentów funkcji.
- Dodano nową składnię oddzielającą literały od identyfikatorów - wartość rozpoczynająca się od kropki traktowana jest jako protokół lub pole protokołu, a wartość w nawiasach ostrych jest traktowana jako literał.
- Dodano operator bitowy „&”, np. aby zmienić poszczególne bity, można określić „ramka[0] i 0x0F == 3”.
- Pierwszeństwo operatora logicznego AND jest teraz wyższe niż operatora OR.
- Dodano obsługę określania stałych w formie binarnej przy użyciu przedrostka „0b”.
- Dodano możliwość wykorzystania ujemnych wartości indeksu do raportowania od końca, np. aby sprawdzić dwa ostatnie bajty w nagłówku TCP, można określić „tcp[-2:] == AA:BB”.
- Zabronione jest oddzielanie elementów zestawu spacjami, użycie spacji zamiast przecinka spowoduje teraz błąd zamiast ostrzeżenia.
- Dodano dodatkowe sekwencje ucieczki: \a, \b, \f, \n, \r, \t, \v.
- Dodano możliwość określenia znaków Unicode w formacie \uNNNN i \UNNNNNNNN.
- Dodano nowy operator porównania „===" („all_eq”), który działa tylko wtedy, gdy w wyrażeniu „a === b” wszystkie wartości „a” odpowiadają „b”. Dodano także operator zwrotny „!==" („any_ne”).
- Operator „~=” jest przestarzały i zamiast niego należy używać „!==”.
- Zabronione jest używanie liczb z niezamkniętą kropką, tj. wartości „.7” i „7”. są obecnie nieważne i należy je zastąpić liczbami „0.7” i „7.0”.
- Silnik wyrażeń regularnych w silniku filtrów wyświetlania został przeniesiony do biblioteki PCRE2 zamiast GRegex.
- Bajty zerowe są poprawnie obsługiwane w ciągach znaków i wzorcach wyrażeń regularnych („\0” w ciągu znaków jest traktowane jako bajt zerowy).
- Oprócz 1 i 0 wartości logiczne można teraz zapisywać również jako Prawda/PRAWDA i Fałsz/FAŁSZ.
- Dodano obsługę dysektora HTTP2 w celu wykorzystania fałszywych nagłówków do analizowania danych przechwyconych bez poprzednich pakietów z nagłówkami (na przykład podczas analizowania wiadomości w już nawiązanych połączeniach gRPC).
- Do parsera IEEE 802.11 dodano obsługę Mesh Connex (MCX).
- Zapewnione jest tymczasowe zapisanie (bez zapisywania na dysku) hasła w oknie dialogowym Extcap, aby nie wprowadzać go podczas wielokrotnych uruchomień. Dodano możliwość ustawienia hasła extcap za pomocą narzędzi wiersza poleceń, takich jak tshark.
- Narzędzie ciscodump implementuje możliwość zdalnego przechwytywania z urządzeń opartych na IOS, IOS-XE i ASA.
- Dodano obsługę protokołów:
- Wykrywanie pętli telesis Allied (AT LDF),
- Multiplekser AUTOSAR I-PDU (AUTOSAR I-PduM),
- Bezpieczeństwo protokołu pakietu DTN (BPSec),
- Protokół pakietu DTN wersja 7 (BPv7),
- Protokół warstwy konwergencji DTN TCP (TCPCL),
- Tabela informacji o wyborze DVB (DVB SIT),
- Ulepszony interfejs handlu gotówką 10.0 (XTI),
- Ulepszony interfejs księgi zamówień 10.0 (EOBI),
- Ulepszony interfejs handlowy 10.0 (ETI),
- Protokół dostępu do rejestru starszego firmy FiveCo (5co-starszy),
- Ogólny protokół przesyłania danych (GDT),
- sieć gRPC (sieć gRPC),
- Protokół konfiguracji IP hosta (HICP)
- łączenie Huawei GRE (GREbond),
- Moduł Interfejsu Lokalizacyjnego (IDENT, KALIBRACJA, PRÓBKI - IM1, PRÓBKI - IM2R0),
- Siatka Connex (MCX),
- Protokół zdalnej kontroli klastra Microsoft (RCP),
- Otwarty protokół sterowania dla OCA/AES70 (OCP.1),
- Chroniony protokół rozszerzonego uwierzytelniania (PEAP),
- Protokół serializacji REdis v2 (RESP),
- Odkrycie Roona (RoonDisco),
- Protokół bezpiecznego przesyłania plików (sftp),
- Protokół konfiguracji bezpiecznego protokołu IP hosta (SHICP),
- Protokół przesyłania plików SSH (SFTP),
- USB podłączony SCSI (UASP),
- Koprocesor sieciowy ZBOSS (ZB NCP).
- Zwiększone wymagania dotyczące środowiska kompilacji (CMake 3.10) i zależności (GLib 2.50.0, Libgcrypt 1.8.0, Python 3.6.0, GnuTLS 3.5.8).
Źródło: opennet.ru