J-Flow

Opracowana przez Juniper Networks metoda monitorowania ruchu IP oparta na próbkowaniu, z eksportem rekordów przepływów przez UDP do kolektora; odpowiednik NetFlow.

J-Flow (jFlow) to opracowana przez Juniper Networks metoda monitorowania ruchu sieciowego oparta na przepływach (flow). Zamiast zapisywać całą treść pakietów, urządzenia Junipera grupują je w skrócone rekordy opisane krotką pól (adresy źródłowy i docelowy, porty, protokół, interfejs) i wysyłają te rekordy przez UDP do osobnego serwera, zwanego kolektorem. Kolektor zlicza, ile było ruchu, jakiego rodzaju i dokąd zmierzał. J-Flow robi to samo co NetFlow firmy Cisco i jest z nim zgodny po stronie formatu danych.

Jak działa J-Flow?

J-Flow nie ogląda każdego pakietu. Zamiast tego próbkuje ruch, czyli bierze pod lupę co N-ty pakiet (np. jeden na tysiąc) i z tych próbek buduje opis ruchu, a nie kopię jego treści. Przepływ to zbiór pakietów, które mają te same cechy kluczowe na danym interfejsie. Najczęściej jest to tzw. 5-tuple, czyli pięć pól: IP źródłowe, IP docelowe, port źródłowy, port docelowy i protokół. Cały cykl wygląda tak:

  1. Próbkowanie — router lub firewall (rodziny J-series, MX, SRX) pobiera próbki pakietów na wybranym interfejsie.
  2. Agregacja — próbki trafiają do rekordów przepływów z licznikami bajtów i pakietów oraz znacznikami czasu początku i końca.
  3. Eksport — gotowe rekordy lecą jako datagramy UDP do jednego lub kilku kolektorów (flow-server) na ustalonym porcie.
  4. Analiza — kolektor składa z tego obraz ruchu: kto generuje go najwięcej, jakie aplikacje i porty dominują, jak wykorzystywane jest pasmo.

Jakie są wersje J-Flow?

J-Flow ma kilka trybów eksportu, które odpowiadają kolejnym wersjom NetFlow:

  • v5 — najstarszy. Rekord ma stały, z góry ustalony układ pól. Jest prosty, ale mało elastyczny i obsługuje tylko IPv4.
  • v8 — pozwala wstępnie grupować rekordy (np. według systemu autonomicznego AS albo prefiksów), dzięki czemu wysyła się mniej danych.
  • v9 — format oparty na szablonach. Router co jakiś czas wysyła kolektorowi opis tego, jakie pola przesyła. Dzięki temu kolektor nie musi znać konfiguracji routera, a J-Flow może raportować ruch IPv4 i IPv6 oraz dane do rozliczeń per AS. Wersja v9 to bezpośredni poprzednik standardu IPFIX.

Na nowszych urządzeniach (np. inline active flow monitoring na platformach MX) próbkowanie i tworzenie rekordów wykonuje sprzęt odpowiadający za przekazywanie pakietów (forwarding plane). Pozwala to generować przepływy przy bardzo dużym ruchu, nie obciążając procesora urządzenia.

Czym J-Flow różni się od NetFlow, IPFIX i sFlow?

  • J-Flow a NetFlow — pod względem danych są niemal takie same. J-Flow to po prostu wersja Junipera. Rekordy działają z kolektorami NetFlow, a główna różnica to sprzęt: J-Flow działa na urządzeniach Junipera.
  • J-Flow a IPFIX — IPFIX (kiedyś nazywany „NetFlow v10″) to otwarty standard IETF, który rozwija pomysł szablonów z v9 i pozwala definiować dowolne pola. J-Flow v9 jest jego bezpośrednim przodkiem.
  • J-Flow a sFlow — sFlow próbkuje całe pakiety na poziomie portu i nie przechowuje na urządzeniu żadnej pamięci przepływów ani gotowych metadanych — całą pracę wykonuje kolektor. J-Flow utrzymuje cache przepływów i wysyła już przygotowane rekordy.

Dlaczego J-Flow ma znaczenie dla bezpieczeństwa?

Dane o przepływach to jedna z podstawowych form telemetrii w monitoringu sieci, pracy zespołów SOC i systemach NDR (Network Detection and Response, czyli wykrywanie i reagowanie na zagrożenia w ruchu sieciowym). J-Flow pokazuje, kto z kim się komunikuje, ale nie zagląda do treści. Dlatego daje szeroki wgląd w ruch nawet tam, gdzie pełna analiza każdego pakietu byłaby zbyt kosztowna. W praktyce na podstawie przepływów można wychwycić m.in.:

  • skanowanie portów i sieci (wiele krótkich przepływów do wielu hostów),
  • komunikację C2 i beaconing, czyli regularne, niewielkie połączenia zainfekowanego hosta do stałego serwera napastnika,
  • wykradanie danych (nietypowo duży ruch wychodzący),
  • ruch lateralny, czyli niespodziewane połączenia między maszynami w środku sieci,
  • nagłe skoki ruchu, które mogą wskazywać na atak DDoS lub działanie malware.

Trzeba pamiętać o ograniczeniach. Próbkowanie sprawia, że część małych przepływów może umknąć, a brak treści pakietów oznacza, że na podstawie samego J-Flow nie sprawdzimy, co konkretnie się przesyła. Dlatego przepływy traktuje się zwykle jako warstwę telemetrii uzupełniającą logi i głębszą inspekcję ruchu, a nie jako jedyne źródło.

Dowiedz się więcej