Popularny firewall PF (packet filter) – DoS systemu operacyjnego / obejście firewalla pakietami IPv6

18 maja 2019, 17:48 | W biegu | 0 komentarzy
: zin o bezpieczeństwie - pobierz w pdf/epub/mobi.

Świetne opracowanie pokazujące możliwość wysłania odpowiednio spreparowanych pakietów IPv6 (z fragmentacją), co umożliwia DoS na system operacyjny czy obejście firewalla opartego na PF. Nie wygląda to zachęcająco, prawda?

Na czym polega istota problemu? Zobaczmy jak wygląda normalna defragmentacja dwóch sfragmentowanych pakietów IPv6. Widać tutaj standardowy 40-bajtowy nagłówek IPv6, kilka nagłówków rozszerzeń (Ext), nagłówek rozszerzenia Fragment Header (Frag – odpowiedzialny za fragmentację) i payload (np. segment TCP):

Defragmentacja IPv6 (za Synaktiv)

Zauważcie że w zdefragmentowanym pakiecie pole nh (next header) w ostatnim nagłówku rozszerzeń wskazuje ładnie na payload TCP.

Ale co się stanie jeśli złośliwie podamy do defragmentacji dwa pakiety z różną liczbą nagłówków rozszerzeń? (nie powinno się tak wydarzyć w normalnej sytuacji – oryginalny pakiet przed defragmentacją ma przecież jeden zestaw nagłówków rozszerzeń). Wtedy lądujemy w „krzakach” (czyli pole nh w ostatnim nagłówku – Ext2 – wskazuje na pewno nie na początek payloadu):

W końcu można tak dobrać ilośc rozszerzeń w drugim pakiecie, że pole NH będzie wskazywało na nieistniejące miejsce w pakiecie = game over (kernel panic). Może to tez służyć czasem do omijania reguł firewalla (np. wysyłanie pakietów TCP na blokowane porty).

FreeBSD wypuściło właśnie łatę. OpenBSD nieco wcześniej – podatność istniała od wersji 5.0 OpenBSD (czyli od 2011 roku).

–ms

 

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

Odpowiedz