r   e   k   l   a   m   a
r   e   k   l   a   m   a

Miało być bezpieczniej, a otworzono groźną lukę: w linuksowe systemy można wstrzyknąć złośliwe pakiety TCP

Strona główna AktualnościBEZPIECZEŃSTWO

Początek sierpnia obfitował w doniesienia o przeróżnych problemach z bezpieczeństwem przeróżnych systemów informatycznych – a to jeszcze nie koniec. Podczas konferencji Usenix pokazano, jak zaimplementowany w Linuksie nowy standard, który miał uczynić internetowy protokół TCP odporniejszym na ataki, w rzeczywistości pozwala nawet na zdalne uruchomienie złośliwego kodu na podatnych maszynach. Zagrożone są dosłownie miliardy pracujących pod kontrolą Linuksa urządzeń – od serwerów, przez androidowe smartfony, po inteligentne pralki czy telewizory.

Dokument RFC 5961 przedstawia utwardzoną wersję implementacji protokołu TCP, która w założeniu miała stać się odporniejsza na wstrzykiwanie sfałszowanych pakietów w ustanowione połączenie sieciowe, np. w celu przeprowadzenia ataku man-in-the-middle czy denial-of-service. W całości RFC 5961 trafiło do Linuksa wraz z jądrem 3.6 – inne systemy operacyjne do tej pory standardu tego w całości nie zaimplementowały.

I dobrze dla nich. Amerykańscy badacze z University of California – Yue Cao, Zhiyun Qian, Zhongjie Wang, Tuan Dao oraz Srikanth V. Krishnamurthy, przedstawili metodę ataku, która poprzez wykorzystanie subtelnej podatności w „utwardzonym” standardzie TCP, pozwala napastnikowi odkryć, czy dwa dowolne hosty w sieci komunikują się po TCP, a jeśli tak, to odkryć numery sekwencji pakietów, by przerwać ich połączenie lub wstrzyknąć własne pakiety o dowolnej zawartości. Metodę tę dokładnie opisano w artykule pt. Off-Path TCP Exploits: Global Rate Limit Considered Dangerous, opublikowanym już w ramach materiałów konferencyjnych tegorocznej konferencji Usenix – spodziewajcie się więc niebawem ciekawych ataków.

r   e   k   l   a   m   a

Wiadomości przesyłane po protokole TCP są dzielone przez nadawcę na sekwencje pakietów danych, rozpoznawalne po swoich unikatowych numerach. Odbiorca przyjmując pakiety danych, składa je w pierwotną wiadomość. Nowy atak wykorzystuje tzw. side channel, poboczne źródło informacji, pozwalając w ciągu kilkudziesięciu sekund zgadnąć sekwencję numerów pakietów TCP, wykorzystując do tego jedynie adresy IP komunikujących się hostów.

Tym pobocznym źródłem informacji stały się wprowadzone do TCP specjalne odpowiedzi typu challenge ACK (potwierdzenie z wyzwaniem) oraz limity ustawione na pakiety kontrolne TCP. Napastnik wysyłając sfałszowane pakiety, doprowadza do sytuacji sporu o współdzielony zasób – w tym wypadku licznik globalnego limitu pakietów kontrolnych. Obserwując wpływ tej operacji na licznik poprzez próbkowanie pakietów, jest w stanie odkryć sekwencje numerów pakietów TCP. Co szczególnie istotne, napastnik nie musi tu się silić na atak typu man-in-the-middle, wystarczy, że zna adresy IP stron komunikacji.

Możliwości tego ataku przedstawiono podczas prezentacji na Useniksie: w ciągu kilkunastu sekund udało się wstrzyknąć własny kod HTML w komunikację między stroną internetową USA Today, a przeglądarką. To jednak małe piwo, w porównaniu tego, co wspomniany atak może zrobić użytkownikom sieci Tor – wśród których wielu przecież korzysta z linuksowych dystrybucji, takich jak np. Tails. Zrywając tym atakiem wybrane połączenia między węzłami Tora, napastnik może zmusić nieświadome ofiary do korzystania z kontrolowanych przez niego węzłów wyjściowych sieci – i odkryć ich tożsamość oraz wychodzącą komunikację.

Łatki usuwające tę podatność pojawiły się już dla głównych dystrybucji, trzeba jednak pamiętać, że większość tych wszystkich urządzeń Internetu Rzeczy nigdy ich nie dostanie. Najprostszym sposobem zablokowania ataku jest dodanie do pliku konfiguracyjnego /etc/sysctl.cfg linijki
net.ipv4.tcp_challenge_ack_limit = 999999999
a następnie wydanie polecenia sysctl -p by włączyć nową regułę. Oczywiście trzeba mieć do tego uprawnienia roota – co ma więc powiedzieć użytkownik linuksowego telewizora?

Jeszcze raz podkreślamy, że zagrożeni są użytkownicy linuksowych systemów z kernelem 3.6 i nowszymi, a więc w praktyce większości używanych dziś i wspieranych dystrybucji. Użytkownicy innych niż linuksowe systemów (a więc Windows, macOS czy FreeBSD) mogą spać spokojnie. W nich pełnej implementacji RFC 5961 nie znajdziecie. Przypominamy zarazem, że Android to na tym poziomie też Linux i też jest podatny na wspomniany atak.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.