W październiku 2008 roku fiński zespół CERT (FICORA/CERT-FI) został poinformowany przez firmę Outpost24 zajmującą się wdrażaniem rozwiązań bezpieczeństwa sieciowego o obecności krytycznych luk w implementacjach protokołu TCP. Szczegóły odkrytych podatności nie zostały upublicznione – CERT-FI, we współpracy z firmą Outpost24 oraz kilkudziesięcioma producentami sprzętu i oprogramowania, pracują nad oszacowaniem skali problemu i opracowaniem stosownych poprawek. Dokładna charakterystyka odkrytych podatności ma zostać ujawniona, gdy producenci i deweloperzy wyeliminują je ze swoich produktów. Wiadomo jedynie, że problem dotyczy kolejkowania połączeń w protokole TCP i pozwala na przeprowadzenie ataku DoS (ang. Denial of Service). Atak wymaga ustanowienia pełnych połączeń TCP ze zdalnym hostem (ang. three-way handshake), jednak ilość ruchu konieczna do wygenerowania przez atakującego jest stosunkowo mała. Zgodnie z informacjami udostępnionymi przez fiński CERT, prace mające na celu wyeliminowanie tej podatności są na zaawansowanym etapie i najprawdopodobniej jeszcze w 2009 roku producenci wydadzą odpowiednie aktualizacje.
11 czerwca 2009 roku, w magazynie Phrack ukazał się artykuł opisujący nowy mechanizm ataku DoS . Artykuł „Exploiting TCP Persist Timer Infiniteness” autorstwa ithilgore poświęcony jest podatności związanej z mechanizmem czasu oczekiwania (ang. persist timer) wykorzystywanym w protokole TCP do kontroli przepływu (a dokładnie do eliminowania zakleszczeń przy wstrzymaniu transmisji za pomocą zerowej szerokości okna). Spekulowano, że opisany atak jest jednym z ataków zgłoszonych do Fińskiego CERT. Jednakże zespół CERT-FI stwierdził, że chociaż metoda opisana w Phrack’u dotyczy podobnych zagadnień, to nie wykorzystuje słabości protokołu TCP, których dotyczył ich komunikat, a jej upublicznienie w żaden sposób nie wpłynie na koordynowane przez ten zespół prace.
Na czym więc polega nowa metoda ataków DoS ?
Implementacja czasu oczekiwania wyspecyfikowana w dokumentach RFC powstała 20 lat temu i nie była opracowywana pod kątem ochrony przed wysublimowanymi atakami. W ciągu ostatnich lat systemy operacyjne ewoluowały stosując rozwiązania chroniące przez rozmaitymi formami złośliwej aktywności takimi jak ataki DoS, nawet kosztem częściowej niezgodności ze standardami RFC. Jednak implementacja mechanizmu persist timer w jądrach systemu Linux i *BSD (autor artykułu z Phrack’a przeprowadził testy na systemie z jądrem Linux 2.6.18, jak również na systemach *BSD) ściśle stosuje się do RFC i w rezultacie umożliwia przeprowadzenie ataku DoS poprzez wyczerpanie pamięci jądra lub limitów aplikacji sieciowej przy minimalnym wykorzystaniu łącza.
(more…)