Zabawy ze stosem, czyli Linux udaje innego Linuksa

Standardowy test niewiele pokazuje: zainstalowaliśmy serwer WWW i korzystamy z karty sieciowej Winstron. Spróbujmy jednak skorzystać z niego bardziej zaawansowanych opcji NMapa, by sprawdzić, czy uda się wykryć system operacyjny, z którego korzystamy:

NMap rozpoznaje nasz system operacyjny

NMap rozpoznaje nasz system operacyjny

Różnica jest kolosalna. Aplikacja co prawda nie potrafiła precyzyjnie podać, z którym konkretnie kernelem ma do czynienia, ale doskonale trafiła z systemem operacyjnym - badaliśmy bowiem Ubuntu z kernelem 2.6.x. Potencjalny włamywacz albo zatrze ręce z uciechy - bo ma exploity na Apache działającego pod kontrolą Linuksa - albo przeskoczy dalej, by znaleźć maszyny z Windows. Bo Windows będzie rozpoznawane równie dobrze...

TTL - czas życia pakietów

Jednym z elementów badanych przez NMapa jest TTL (time-to-live), czyli czas życia pakietów zabezpieczający przed krążeniem w nieskończoność pakietowych sierot. W Windows 9x wynosił on 32 - a zatem zbiór danych mógł przejść przez 31 urządzeń (komputery, bramy, routery itd.) zanim go porzucono. W Linuksie TTL wynosi 64, w systemach BSD i Windows 2000/XP/2003 - 128.

Zmuśmy nasze Ubuntu, by też korzystało z TTL-a równego 128 i przekonajmy się o efektach:

echo "128" >/proc/sys/net/ipv4/ip_default_ttl

Zmiana TTL-a nie jest w stanie oszukać NMapa

Zmiana TTL-a nie jest w stanie oszukać NMapa

Widzimy, że właściwie nic się nie zmieniło. Drążmy zatem dalej...

Rozmiar okna - też porażka

Drugim badanym przez NMapa elementem jest rozmiar okna wysyłanych i odbieranych danych. I większe okno, tym mniejsze prawdopodobieństwo, że dane będą kapać ciurkiem do jądra, ale jednocześnie szybsza reakcja systemu. Nowoczesne systemy operacyjne wyposażone w dużą ilość pamięci operacyjnej mają zwykle dużo większe okna niż ich poprzednicy - co więcej, okno zwykle skaluje się automatycznie, są jednak pewne przedziały, których jego rozmiar nigdy nie przekroczy (maksimum wynikające z ograniczeń TCP to 65536 bajtów - dlatego nowoczesne systemy skalują ten rozmiar).

Sprawdźmy, co da nam zmiana rozmiaru okna z wartości 105472 do 32768:

echo "32768">/proc/sys/net/core/wmem_default

echo "32768">/proc/sys/net/core/wmem_max

Modyfikacja rozmiaru okna również nie jest w stanie oszukać NMapa

Modyfikacja rozmiaru okna również nie jest w stanie oszukać NMapa

W porównaniu do oryginału nie widać właściwie żadnych zmian...