NFsec Logo

Łagodzenie ataków SYN oraz ACK flood cz.I

22/07/2015 w Bezpieczeństwo Brak komentarzy.

P

odstawowy problem skalowalności protokołu TCP w jądrze Linuksa jest związany z liczbą nowych połączeń, jakie mogą być tworzone na sekundę. Odnosi się to bezpośrednio do obsługi gniazd powstających w trybie nasłuchu, które są blokowane. Blokady powodowane są nie tylko przez pakiety z flagą SYN, ale także SYN-ACK oraz ACK (ostatni w potrójnym uścisku dłoni). Podczas ataków DoS / DDoS za pomocą tego rodzaju pakietów atakujący ma na celu wysłanie, jak największej ilości spreparowanych pakietów, które mają na celu osiągnąć i spowodować problem z blokowaniem gniazd w trybie nasłuchu. Jedną z metod jest podniesienie bardzo niskiego limitu dla tego typu gniazd oraz kolejki oczekujących połączeń w systemie:
[ czytaj całość… ]

Wyłączenie ładowania dodatkowych modułów

28/06/2015 w Bezpieczeństwo Brak komentarzy.

O

d wersji 2.6.31 Linux daje nam namiastkę funkcjonalności jądra monolitycznego, czyli możliwość blokady ładowania nowych modułów. Wykorzystanie tej opcji podnosi poziom ochrony systemu przed załadowaniem szkodliwych modułów oraz ograniczenia działania niektórych rootkitów.
[ czytaj całość… ]

Address Space Layout Randomization

13/04/2014 w Bezpieczeństwo Brak komentarzy.

O

d wersji jądra 2.6.12 (w innych dystrybucjach jak np. CentOS poszczególne patche mogą być aplikowane do niższych wersji) włączony jest mechanizm ASLRAddress Space Layout Randomization, czyli Losowe Ułożenie Przestrzeni Adresowej, który umożliwia wprowadzenie losowości do schematu adresowania danych procesu, które ładowane są do pamięci. Oznacza to, że ASLR może ulokować położenie kodu wykonalnego, bibliotek, sterty oraz stosu w losowych pozycjach przestrzeni adresowej procesu. Utrudnia to przewidywanie przez atakujący program adresu następnych instrukcji i zabezpieczenie systemu przed atakami typu ret2libc.
[ czytaj całość… ]

Stan TCP – TIME_WAIT

02/09/2010 w Administracja, Techblog 1 komentarz.

Jednym ze stanów połączenia protokołu TCP jest TIME_WAIT. Jest to stan, w którym następuje oczekiwanie w celu upewnienia się, że druga strona otrzymała potwierdzenie rozłączenia. Zgodnie z dokumentem RFC 793 połączenie w takim stanie może być najdłużej przez 4 minuty. W systemie Linux standardową wartością dla tego stanu jest 60 sekund. Podczas oczekiwania w stanie TIME_WAIT ponowne nawiązanie połączenia z klientem (retransmisja) kosztuje znacznie mniej niż nawiązanie nowego połączenia. Jednak utrzymywanie bardzo wielu połączeń w tym stanie wpływa niekorzystnie na wydajność serwera.
[ czytaj całość… ]

Zapomniany klawisz SysRq

29/05/2010 w Administracja, Bezpieczeństwo Brak komentarzy.

J

eśli pracujemy na developerskiej maszynie nad rozwojem jądra systemu lub sterowników urządzeń wspieranych przez jądro, lub nawet uruchamiamy testowy kod, który prawdopodobnie spowoduje tzw. błąd kernel panic – możemy wykorzystać poniżej przedstawione rozwiązanie, które przydaje się w przypadkach kiedy nasza maszyna z jakieś przyczyny zawiesza się, zamieniając się w nagromadzony stos części komputerowych (sposób ten jest bezużyteczny, gdy jądro zupełnie zamknie się na świat, pozostaje wówczas tylko twardy reset). Poprzez kombinację odpowiednich klawiszy możemy przeprowadzić synchronizację systemu plików oraz przemontować go w tryb tylko do odczytu. W ten sposób poprzez restart komputera unikniemy utraty danych oraz sesji programu fsck.
[ czytaj całość… ]

Parametry jądra i protokołów sieciowych

12/06/2009 w Bezpieczeństwo Brak komentarzy.

J

ądro systemu Linux pozwala na wyłączanie oraz włączanie konkretnych usług sieciowych tuż po starcie systemu za pomocą przekazania odpowiednich wartości do pseudo-systemu plików /proc/sys. W ten sposób jesteśmy w stanie dokonać zmian w systemie bez wymogu rekompilacji jego jądra. Dokonane zmiany umożliwiają nam protekcję przed takimi atakami jak Man In the Middle, SYN Cookies, Ping Flood, Source Routing Scans czy IP Spoofing. Dają również możliwość uaktywnienia rozszerzonych funkcjonalności systemu pod postacią logowania różnych zdarzeń czy zachowania się względem zrzutu pamięci. Dane wartości możemy odczytać / ustawić bezpośrednio za pomocą systemu pliku /proc lub za pomocą użycia programu sysctl.
[ czytaj całość… ]