DPI (deep packet inspection)
| Po angielsku | deep packet inspection (DPI) |
|---|---|
| Którą formą pisać | po angielsku Polski odpowiednik istnieje, ale w praktyce nikt tak nie pisze. Zostaw angielski, polski trzymaj jako synonim. |
| Inne formy | głęboka inspekcja pakietów (kalka zaświadczona — tytuł hasła w polskiej Wikipedii, ale w prasie branżowej rzadka) · analiza zawartości pakietów |
| Kategoria | Sieć i infrastruktura obronna |
DPI (deep packet inspection) to analiza nie tylko nagłówków, ale i zawartości pakietów sieciowych, zwykle po złożeniu całego strumienia danych. Polska Wikipedia opisuje DPI jako technikę sieciową, która pozwala analizować przesyłane pakiety pod względem ich treści [1]. Dzięki temu urządzenie rozpoznaje rzeczywisty protokół lub aplikację niezależnie od numeru portu i może wykryć w ruchu treści szkodliwe albo zakazane. DPI jest podstawą działania zapór nowej generacji, systemów IPS i wielu narzędzi do monitorowania sieci.
Jak działa
Zwykła zapora sieciowa (firewall) podejmuje decyzję na podstawie adresów, portów i stanu połączenia. DPI zagląda dalej, do ładunku pakietu. Niebezpiecznik porównuje to do czytania treści listu zamiast samej koperty [5]. Ponieważ jedno żądanie HTTP czy jeden plik bywa rozbity na wiele pakietów, silnik najpierw składa strumień. W Suricacie silnik strumieni składa się z dwóch części: śledzenia sesji TCP i składania danych do inspekcji; domyślnie składane jest pierwsze 1 MB strumienia [3]. Rozpoznawanie protokołu po wzorcach treści jest w Suricacie niezależne od portu [3], więc serwer HTTP na nietypowym porcie nadal zostanie rozpoznany jako HTTP.
CERT Polska opisuje ten mechanizm na przykładzie zapór klasy Next-Generation Firewall, które analizują ruch znacznie dokładniej niż klasyczne i mogą rozpoznawać faktycznie wykorzystywaną usługę na podstawie cech protokołu [2]. Ta sama publikacja opisuje IPS jako mechanizm analizujący ruch w poszukiwaniu znanych wzorców ataków [2].
Zastosowania
| Zastosowanie | Co bada DPI | Przykład |
|---|---|---|
| Wykrywanie ataków | treść żądań i odpowiedzi | IDS, IPS |
| Kontrola aplikacji | rzeczywisty protokół lub usługa [2] | zapora nowej generacji |
| Ochrona aplikacji WWW | parametry i treść żądań HTTP | WAF, ModSecurity |
| Wykrywanie złośliwego oprogramowania | pliki przesyłane w ruchu | bramka pocztowa, proxy |
| Statystyka, priorytety, blokady treści | aplikacje, adresy, słowa kluczowe [1] | operatorzy, państwa |
Ostatni wiersz pokazuje, że ta sama technika służy także do nadzoru i cenzury. Wikipedia wymienia wśród zastosowań monitorowanie treści, automatyczne blokowanie według słów kluczowych lub adresów URL oraz priorytetyzację ruchu w sieciach komórkowych [1].
DPI a szyfrowanie
Gdy ruch jest szyfrowany przez TLS, DPI bez odszyfrowania widzi głównie metadane połączenia, a nie jego treść. Organizacje stosują dlatego inspekcję TLS. CERT Polska wyjaśnia, że urządzenie zestawia wtedy dwa niezależne połączenia: odszyfrowuje ruch, wykonuje inspekcję i ponownie go szyfruje [2]. Technicznie jest to kontrolowany man-in-the-middle (MITM), który wymaga zaufania urządzeń końcowych do certyfikatu urzędu wystawionego przez firewall.
Taka inspekcja ma koszt. CISA w alercie TA17-075A z 16 marca 2017 roku ostrzegła, że wiele produktów do przechwytywania HTTPS nie weryfikuje poprawnie łańcucha certyfikatów serwera przed ponownym zaszyfrowaniem danych [4]. Błędy weryfikacji rzadko docierają do klienta, a produkt może wynegocjować z serwerem słabsze protokoły i szyfry, czego klient nie widzi [4]. Z drugiej strony Niebezpiecznik przypominał w 2012 roku, przy okazji sporu o standard DPI w ITU, że szyfrowanie jest odpowiedzią na większość problemów z cenzurą [5].
W WordPressie
Strona WordPress rzadko sama stosuje DPI, ale jej ruch zwykle przechodzi przez urządzenia, które to robią. Chmurowe zapory aplikacyjne i CDN kończą połączenie TLS i badają treść żądań HTTP przed przekazaniem ich do serwera; to odmiana inspekcji głębokiej ograniczona do jednego protokołu. Podobnie działa ModSecurity na serwerze hostingu.
Dla administratora ma to dwie konsekwencje praktyczne. Po pierwsze, reguły inspekcji bywają zbyt ostre i blokują legalne działania w panelu, na przykład zapis wpisu z fragmentem kodu, co jest fałszywym alarmem. Po drugie, inspekcja w sieci firmowej użytkownika zmienia to, co widzi przeglądarka: certyfikat strony jest wtedy wystawiony przez urządzenie pośredniczące, a nie przez urząd certyfikacji domeny. Tym można tłumaczyć zgłoszenia, że u jednego odwiedzającego strona pokazuje inny certyfikat niż u pozostałych.
Zagrożenia i skutki
- Prywatność. DPI daje operatorowi wgląd w treść komunikacji. Niebezpiecznik opisywał obawy, że obowiązkowe DPI umożliwi nakładanie ograniczeń na to, jak korzystamy z internetu [5]; zob. prywatność.
- Osłabienie TLS. Źle zaprojektowana inspekcja przepuszcza sfałszowane certyfikaty i słabe szyfry [4].
- Nowa powierzchnia ataku. Parser analizujący każdy pakiet sam bywa podatny. W lipcu 2023 roku Sekurak opisał krytyczną podatność FG-IR-23-183 w FortiOS i FortiProxy: przepełnienie bufora na stosie wykorzystywalne, gdy włączony był tryb proxy z głęboką inspekcją SSL [6]. Błąd pozwalał zdalnemu napastnikowi na zdalne wykonanie kodu specjalnie spreparowanymi pakietami [6].
- Omijanie. Tunelowanie, na przykład przez VPN, i szyfrowanie ograniczają to, co DPI może zobaczyć.
Dobre praktyki
- Inspekcję TLS włącza się świadomie, po sprawdzeniu, czy urządzenie poprawnie weryfikuje certyfikaty i przekazuje błędy klientowi, zgodnie z zaleceniami CISA [4].
- Z inspekcji wyłącza się ruch szczególnie wrażliwy, na przykład bankowość i ochronę zdrowia.
- Urządzenia z DPI aktualizuje się tak samo pilnie jak serwery, bo same są celem ataku [6].
- Reguły inspekcji dla aplikacji WWW stroi się na podstawie logów, żeby ograniczyć fałszywe alarmy.
Przypisy
6- [1] Deep packet inspection · Wikipedia
- [2] Firewall — Baza wiedzy CERT Polska · CERT Polska
- [3] Suricata.yaml — Suricata documentation · OISF
- [4] HTTPS Interception Weakens TLS Security (TA17-075A) · CISA
- [5] Ten cały szum o ITU, DPI, cenzurze i przyszłości internetu · Niebezpiecznik
- [6] Nowa krytyczna podatność w FortiGate (precyzyjniej FortiOS / FortiProxy) · Sekurak