Masz Linuxa? Możesz mieć problemy – defekt w bibliotece języka C GNU
Okazało się, że jeden z głównych komponentów systemu Linux, a mianowicie biblioteka C, oparta na GNU (tzw. glibc), jest podatny na aktywność hakerów, którzy mają niemalże nieograniczone pole do ataku.
Glibc to biblioteka na wolnej licencji. Wykorzystuje się ją w ogromnej ilości linuxowych aplikacji i w oprogramowaniu obsługującym wybrane urządzenia (np. routery). Ich użytkownicy muszą się jednak mieć na baczności, okazuje się bowiem, że dzięki luce w bibliotece, zdalnie zadane linie kodu mogą być odpalane nawet przez czynności tak powszechnej, jak wejście na stronę internetową czy połączenie z serwerem. Podobny problem (CVE-2015-0235) wystąpił już w zeszłym roku, przy okazji wykrycia innego defektu, umożliwiającego typ ataków oparty na zdalnym uruchamianiu sekwencji kodu.<!–more–>
Gdzie znajduje się furtka dla hakerów?
Nadużycia są możliwe dzięki używanej w DNS funkcji, służącej do zamiany nazw stron internetowych na adresy IP zrozumiałe dla komputera. To właśnie wtedy przemycane są sekwencje kodu, które po uruchomieniu mogą przejąć kontrolę nad oprogramowaniem łączącym się z danym serwerem, a później nawet nad całym systemem. Wykorzystywany jest do tego efekt przeładowania bufora. Fermin J. Serna z działu bezpieczeństwa Google wyjaśnia: Klient obsługujący DNSa jest podatny na przeładowanie bufora przy użyciu funkcji getaddrinfo(). Wszystkie programy wykorzystujące tę funkcję mogą być narażone na atak poprzez nazwę domen, serwery DNS kontrolowane przez hakerów lub techniki Man in the middle.
Nazwy domen mogą być zawarte w logach serwerów i w rezultacie doprowadzić do wykonania kodu. Na niepożądane działania narażone jest także oprogramowanie obsługujące protokoły komunikacyjne TCP/IP. Atak jest utrudniony dzięki zabezpieczeniom systemu operacyjnego, uniemożliwiającym zdalne uruchamianie skryptów w komputerze. Można je jednak obejść Dodatkowo stosowane są ataki, podczas których hakerzy manipulują danymi wysyłanymi pomiędzy serwerami i komputerami użytkownika, pośrednicząc w podrzucaniu inwazyjnych skryptów.
Co jest zagrożone?
Na ataki podatne są biblioteki powyżej wersji 2.9, a więc problem dotyczy większość dystrybucji Linuxa i języków programowania korzystających z glibc, takich jak Python, PHP czy Ruby on Rails. Zagrożone jest również wszelkie oprogramowanie bazujące na źródłach linuxowskich, a według pogłosek nawet oprogramowanie obsługujące wirtualną walutę BitCoin.
Problemu, niejako przypadkowo, uniknęły lżejsze, alternatywne wersje bibliotek. Bezpieczne są systemy Android, w których glibc został zastąpiony biblioteką Bionic. Zagrożenie nie dotyczy też urządzeń z wbudowanym systemem opartym na odmianach systemu Linux, które wykorzystują uclibc zamiast glibc.
Błąd odkryli działający niezależnie programiści pracujący w Google i Red Hat. Fermin J. Serna tłumaczy: Jeden z naszych inżynierów zauważył problem z nieprawidłowym zachowaniem SSH, co okazało się jednak defektem związanym z glibc. Udało nam się wykryć, że zjawisko to może być wykorzystane do zdalnego uruchomienia kodu. Z miejsca przystąpiliśmy do działania, by zobaczyć, czy rzeczywiście można wykorzystać te lukę w sposób inwazyjny i – jeśli będzie taka potrzeba – wymyślić sposób, w jaki będzie można to naprawić. Potraktowaliśmy to jak wyzwanie i po intensywnych próbach hackerskich rzeczywiście udało nam się opracować działający sposób na złamanie zabezpieczeń.
Podatność na ataki została zgłoszona zespołowi glibc w czerwcu 2015 roku i już wtedy programiści Red Hat (z którymi Google skontaktowało się po zbadaniu potencjalnych zagrożeń) pracowali nad rozwiązaniem. Problem został szczegółowo opisany między innymi na blogu zespołu Google ds. bezpieczeństwa w internecie.
W czym tkwi problem i jak go rozwiązać?
Atak jest możliwy dzięki efektowi przeładowania bufora DNS. Inżynierowie Google wyjaśniają, że w przypadku większej ilości danych niż przypisane 2048 bajtów, mogą one zostać nieodpowiednio ulokowane, co narusza zasady bezpieczeństwa. Zjawisko to zaprezentowane jest tutaj. Jest to wersja „rozbrojona”, która nie może zostać zastosowana do inwazyjnych działań, lecz wyjaśnia mechanizm związany z błędem biblioteki.
Łatka biblioteki została opracowana przez Google oraz Red Hat i udostępniona online. W sposób bezpośredni mogą z niej skorzystać użytkownicy serwerów pracujących w systemie Linux. W przypadku lwiej części oprogramowania nie jest to jednak problem łatwy do naprawienia i wiele zależy od zaangażowania programistów, którzy powinni dokonać ponownych kompilacji programów z już uaktualnioną i bezpieczną wersją biblioteki glibc.