Dostępna głęboka inspekcja pakietów nDPI 3.0

Projekt ntop, opracowywanie narzędzi do przechwytywania i analizowania ruchu, opublikowany udostępnienie narzędzi do głębokiej kontroli opakowań nDPI 3.0, kontynuując rozwój biblioteki OpenDPI. Projekt nDPI powstał po nieudanej próbie przeniesienia zmian do magazyn OpenDPI, który pozostawiono bez opieki. Kod nDPI jest napisany w C i dystrybuowane przez licencjonowany na podstawie LGPLv3.

Projekt pozwala on określić protokoły poziomu aplikacji wykorzystywane w ruchu, analizując charakter aktywności sieciowej bez wiązania się z portami sieciowymi (potrafi zidentyfikować dobrze znane protokoły, których procedury obsługi akceptują połączenia na niestandardowych portach sieciowych, na przykład jeśli http nie jest wysyłane z porcie 80 lub odwrotnie, gdy niektórzy próbują zamaskować inną aktywność sieciową jako http, uruchamiając ją na porcie 80).

Różnice w stosunku do OpenDPI sprowadzają się do obsługi dodatkowych protokołów, portowania na platformę Windows, optymalizacji wydajności, przystosowania do stosowania w aplikacjach monitorujących ruch w czasie rzeczywistym (usunięto niektóre specyficzne funkcje spowalniające silnik),
możliwości montażu w postaci modułu jądra Linux i wsparcie dla definiowania podprotokołów.

Obsługiwanych jest łącznie 238 definicji protokołów i aplikacji, od
OpenVPN, Tor, QUIC, SOCKS, BitTorrent i IPsec do Telegramu,
Viber, WhatsApp, PostgreSQL i połączenia z Gmailem, Office365
Dokumenty Google i YouTube. Istnieje dekoder certyfikatu SSL serwera i klienta, który pozwala określić protokół (na przykład Citrix Online i Apple iCloud) za pomocą certyfikatu szyfrowania. Narzędzie nDPIreader służy do analizowania zawartości zrzutów pcap lub bieżącego ruchu poprzez interfejs sieciowy.

$ ./nDPIreader -i eth0 -s 20 -f "Host 192.168.1.10"

Wykryte protokoły:
Pakiety DNS: 57 bajtów: 7904 przepływów: 28
Pakiety SSL_No_Cert: 483 bajty: 229203 przepływy: 6
Pakiety FaceBook: 136 bajtów: 74702 przepływów: 4
Pakiety DropBox: 9 bajtów: 668 przepływów: 3
Pakiety Skype: 5 bajtów: 339 przepływów: 3
Pakiety Google: 1700 bajtów: 619135 przepływów: 34

W nowym wydaniu:

  • Informacje o protokole są teraz wyświetlane natychmiast po zdefiniowaniu, bez czekania na odebranie pełnych metadanych (nawet jeśli określone pola nie zostały jeszcze przeanalizowane ze względu na nieodebranie odpowiednich pakietów sieciowych), co jest ważne dla analizatorów ruchu, którzy muszą natychmiast reagować na określone rodzaje ruchu. W przypadku aplikacji wymagających pełnej analizy protokołu dostępna jest funkcja API ndpi_extra_dissection_possible(), która zapewnia zdefiniowanie wszystkich metadanych protokołu.
  • Zaimplementowano głębszą analizę TLS, wydobywającą informacje o poprawności certyfikatu oraz hash SHA-1 certyfikatu.
  • Do aplikacji nDPIreader dodano flagę „-C” umożliwiającą eksport w formacie CSV, co umożliwia wykorzystanie dodatkowego zestawu narzędzi ntop wykonać dość złożone próbki statystyczne. Przykładowo, aby określić adres IP użytkownika, który najdłużej oglądał filmy w NetFlixie:

    $ ndpiReader -i netflix.pcap -C /tmp/netflix.csv
    $ q -H -d ',' "wybierz src_ip,SUM(src2dst_bytes+dst2src_bytes) z /tmp/netflix.csv gdzie ndpi_proto jak grupa '%NetFlix%' według src_ip"

    192.168.1.7,6151821

  • Dodano obsługę tego, co zaproponowano w Cisco Joy technicy identyfikowanie szkodliwej aktywności ukrytej w zaszyfrowanym ruchu na podstawie rozmiaru pakietu i analizy czasu/opóźnienia wysyłania. W ndpiReader metodę aktywuje się opcją „-J”.
  • Podano klasyfikację protokołów według kategorii.
  • Dodano obsługę obliczania IAT (czasu między przybyciem) w celu zidentyfikowania anomalii w użyciu protokołu, na przykład w celu zidentyfikowania użycia protokołu podczas ataków DoS.
  • Dodano możliwości analizy danych w oparciu o obliczone metryki, takie jak entropia, średnia, odchylenie standardowe i wariancja.
  • Zaproponowano wstępną wersję powiązań dla języka Python.
  • Dodano tryb wykrywania czytelnych ciągów znaków w ruchu w celu wykrywania wycieków danych. W
    Tryb ndpiReader włącza się opcją „-e”.

  • Dodano obsługę metody identyfikacji klienta TLS JA3, który pozwala określić, na podstawie charakterystyki koordynacji połączenia i określonych parametrów, jakie oprogramowanie służy do nawiązania połączenia (na przykład pozwala określić użycie Tora i innych standardowych aplikacji).
  • Dodano obsługę metod identyfikacji implementacji SSH (HASSZ) i DHCP.
  • Dodano funkcje serializacji i deserializacji danych w
    Formaty typu-długość-wartość (TLV) i JSON.

  • Dodano obsługę protokołów i usług: DTLS (TLS przez UDP),
    hulu,
    TikTok/Musical.ly,
    Wideo WhatsApp,
    DNSoverHTTPS
    Oszczędzanie danych
    Linia,
    Google Duo, Hangout,
    WireGuard VPN,
    IMO,
    Zoom.us.

  • Ulepszona obsługa analiz TLS, SIP, STUN,
    Wibracja,
    WhatsApp,
    Wideo Amazona,
    Snapchat
    ftp,
    QUIC
    OpenVPN UDP,
    Komunikator i Hangout na Facebooku.

Źródło: opennet.ru

Dodaj komentarz