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

Glibc pod ostrzałem, luka zagraża linuksowym serwerom i Internetowi Rzeczy

Strona główna AktualnościBEZPIECZEŃSTWO

Linux stał się fundamentem Internetu – większość serwerów sieciowych i routerów działa dziś pod kontrolą tego systemu. To też oznacza, że większość tych węzłowych punktów Sieci podatna jest na atak, który pozwala napastnikom na zdalne wykonanie złośliwego kodu i przejęcie nad nimi kontroli. Winę za ten stan rzeczy ponoszą autorzy glibc, standardowej biblioteki C, która od lat dziewięćdziesiątych jest jednym z głównych komponentów Linuksa. Sytuacja jest bardzo poważna, gotowy exploit już pozwala na wykrycie podatnych serwerów. Co najgorsze, trudno ocenić, ile kodu jest na atak podatne – z użyciem glibc kompilowana była ogromna ilość oprogramowania wszelkiego rodzaju, w tym firmware, którego aktualizacja może być w praktyce niemożliwa.

Jedna z wprowadzonych w 2008 roku łatek do glibc zaowocowała wprowadzeniem do funkcji getaddrinfo() służącej do konwersji adresów IP czy nazw hostów na dynamiczne struktury pamięci błędu, który pozwalał na przepełnienie bufora. Wszystkie wersje tej biblioteki standardowej od wersji 2.9 podatne są na atak, przeprowadzony poprzez odpowiednio spreparowaną odpowiedź DNS, wysłaną po protokole UDP lub TCP. Bez większych trudności badaczom z Google'a udało się przepełnić nim bufor i wykonać jedno własne wywołanie funkcji free() (czyli zdealokować wcześniej alokowaną pamięć).

Do odkrycia doszło przypadkiem – jedna z google'owych aplikacji używających SSH doświadczała naruszenia ochrony pamięci za każdym razem, gdy próbowała łączyć się z określonym adresem internetowym. Nieco pracy z debuggerem pozwoliło znaleźć błąd przepełnienia bufora w glibc. Może on zostać wyexploitowany gdy podatne oprogramowanie połączy się ze złośliwymi serwerami DNS, kontrolerami domen czy też stanie się ofiarą ataku man-in-the-middle, w którym napastnik modyfikuje w czasie rzeczywistym odpowiedzi „dobrych” serwerów.

r   e   k   l   a   m   a

Przygotowanie działającego exploita nie zajęło wiele czasu, podobnie jak i jego militaryzacja, polegająca na połączeniu exploita z atakiem obejścia randomizacji przestrzeni adresowej. Na szczęście ujawniony exploit nie jest tą „wojskową” wersją, pozwala co najwyżej zawiesić aplikację. Niewiele jednak czasu zajmie zdolnym blackhatom przygotowanie własnej cyberbroni na jego podstawie.

Co najbardziej w tym wszystkim zaskakuje, to fakt, że po raz pierwszy opiekunowie glibc dowiedzieli się o problemie w lipcu zeszłego roku, odkrycia tego niezależnie dokonali też inżynierowie RedHata. Usunięcie problemu nie było najwyraźniej łatwe, skoro łatka została wydana dopiero teraz. Badacze Google'a piszą, że dzięki ciężkiej pracy i kooperacji wspomnianych grup, udało się przełożyć ich wiedzę na kompleksową łatkę i test regresji, by ochronić użytkowników glibc.

Co robić, jak żyć?

Użytkownicy większości linuksowych dystrybucji powinni już dostać poprzez swoje repozytoria poprawki do glibc. Red Hat jako pierwszy wydał poświęcony temu biuletyn bezpieczeństwa. Wszyscy ci, którzy nie mogą skorzystać obecnie z łatek, powinni wdrożyć metody blokujące atak – przede wszystkim skonfigurować zaporę sieciową tak, by odrzucała pakiety UDP DNS większe niż 512 bajtów, i TCP DNS większe niż 1024 bajty.

Nowe poprawione glibc nie rozwiązuje problemu aplikacji statycznie skompilowanych z wykorzystaniem podatnej wersji biblioteki – tu przede wszystkim chodzi o własnościowe oprogramowanie, które będzie musiało być teraz zrekompilowane. Zajmie to sporo czasu, i znając życie możemy się spodziewać, że jeszcze za kilka lat będzie można napotkać w sieci podatne na atak urządzenia.

O urządzenia bowiem chodzi, szczególnie tę drobnicę Internetu Rzeczy, w której wykorzystuje się lekkie implementacje Linuksa, często dla zaoszczędzenia zasobów pozbawione kluczowych mechanizmów bezpieczeństwa, takich jak ASLR czy Exec Shield/PaX. Ich zaatakowanie będzie bardzo łatwe, a powiedzmy sobie szczerze – kto będzie aktualizował te wszystkie routerki za 60 zł czy autonomiczne kamerki internetowe?

Spokojnie mogą za to spać użytkownicy Androida. Choć system ten wykorzystuje linuksowe jądro, to w swojej mądrości Google nie skorzystało z glibc, lecz z Bionic, znacznie lżejszej i szybszej (a przy tym atrakcyjniej licencjonowanej) wersji biblioteki standardowej C.

© 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.