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

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

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

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

Do odkrycia doszło przypadkiem – jedna z google'owych aplikacjiużywających SSH doświadczała naruszenia ochrony pamięci zakażdym razem, gdy próbowała łączyć się z określonym adreseminternetowym. Nieco pracy z debuggerem pozwoliło znaleźć błądprzepełnienia bufora w glibc. Może on zostać wyexploitowany gdypodatne oprogramowanie połączy się ze złośliwymi serwerami DNS,kontrolerami domen czy też stanie się ofiarą atakuman-in-the-middle, w którym napastnik modyfikuje w czasierzeczywistym odpowiedzi „dobrych” serwerów.

Przygotowanie działającegoexploita nie zajęło wiele czasu, podobnie jak i jegomilitaryzacja, polegająca na połączeniu exploita z atakiemobejścia randomizacji przestrzeni adresowej. Na szczęścieujawniony exploit nie jest tą „wojskową” wersją, pozwala conajwyżej zawiesić aplikację. Niewiele jednak czasu zajmie zdolnymblackhatom przygotowanie własnej cyberbroni na jego podstawie.

Obraz

Co najbardziej w tym wszystkim zaskakuje, to fakt, że po razpierwszy opiekunowie glibc dowiedzieli się o problemie w lipcuzeszłego roku, odkrycia tego niezależnie dokonali też inżynierowieRedHata. 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łosię przełożyć ich wiedzę na kompleksową łatkę i testregresji, 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 jakopierwszy wydał poświęcony temu biuletynbezpieczeństwa. Wszyscy ci, którzy nie mogą skorzystaćobecnie z łatek, powinni wdrożyć metody blokujące atak – przedewszystkim skonfigurować zaporę sieciową tak, by odrzucała pakietyUDP DNS większe niż 512 bajtów, i TCP DNS większe niż 1024bajty.

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

O urządzenia bowiem chodzi, szczególnie tę drobnicę InternetuRzeczy, w której wykorzystuje się lekkie implementacje Linuksa,często dla zaoszczędzenia zasobów pozbawione kluczowychmechanizmó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ł czyautonomiczne kamerki internetowe?

Spokojnie mogą za to spać użytkownicy Androida. Choć systemten wykorzystuje linuksowe jądro, to w swojej mądrości Google nieskorzystało z glibc, lecz z Bionic, znacznie lżejszej i szybszej (aprzy tym atrakcyjniej licencjonowanej) wersji biblioteki standardowejC.

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (96)