Każdą lukę można wykorzystać: eksperci Google'a nie dali szans ważnej bibliotece Linuksa

Każdą lukę można wykorzystać: eksperci Google'a nie dali szans ważnej bibliotece Linuksa27.08.2014 14:44

Zainicjowany w lipcu br. przez ekspertów z Google Project Zeropostawił sobie bardzo ambitny cel – wyeliminowanie luk wzabezpieczeniach wszelkiego oprogramowania, które ma coś wspólnegoz Internetem. Wystarczyło kilka tygodni, by członkowie zespołuosiągnęli spektakularne rezultaty. Znany ze znęcania się nadWindows programista Tavis Ormandy znalazł tym razem mały, alepotencjalnie bolesny w skutkach błąd w linuksowej standardowejbibliotece C (glibc). Pierwszą reakcją był jednak sceptycyzm, błąduznano za niemożliwy do wyexploitowania. Google'owi eksperci nielubią najwyraźniej słowa niemożliwy. Udało im się stworzyćskutecznego exploita. Luka w glibc jest już załatana, ale każe sięnam zastanawiać, ile takich małych, a katastrofalnych w skutkachbłędów tkwi w używanym przez nas oprogramowaniu?

W 1998 roku badacz Olaf Kirch przedstawiłatak, który nazwał zatrutym bajtem NUL.Błąd programistyczny typu off by one (czyli pomyłka o jeden,występująca gdy np. zaczniemy pętlę od 1, podczas gdy powinnozacząć się od 0) pozwalał w nim na zapisanie bajtu NUL(oznaczającego koniec łańcucha znaków w językach C-podobnych)poza granicami aktualnej ramki stosu (czyli warstwy, w którejprzechowuje się informacje o wywołanych w programie funkcjach). Na32-bitowej architekturze x86 pozwalało to na nadpisanie najmniejznaczącego bitu (LSB) wskaźnika do danych w segmencie stosu, wefekcie pozwalając na uruchomienie dowolnego kodu. Jak przypominaChris Evans, członek Google Project Zero, w tamtych czasach ludziebyli zarówno zaskoczeni jak i przerażeni, że tak drobny błądmoże doprowadzić do tak strasznych konsekwencji.

Tavis Ormandy to ekspertGoogle'a, znany m.in. z tego, że w 2010 roku, zaledwie kilka dni poodkryciu przez siebie luki w Windows XP i Windows Serverze 2003opublikował na publicznej liście szczegóły ataku wraz zdziałającym exploitem, nie dając Microsoftowi żadnych szans naprzygotowanie łatki. Wówczas działania Ormandy'ego bardzospolaryzowały środowisko. Jedni jego bezwzględność pochwalili,twierdząc, że gdyby nie zrobił tego co zrobił, to Microsoftgroźną lukę naprawiałby miesiącami. Inni potępiali go zawystawienie ogromnej rzeszy użytkowników na atak cyberprzestępców.Google najwyraźniej było z zachowania swojego pracownikazadowolone. Ormandy nie tylko nie otrzymał żadnej nagany, ale kilkalat później zrobił z Windows to samo, upubliczniając exploitwykorzystujący dopiero co odkrytą lukę w jądrze Windows w ciąguniespełnadnia.

W lipcu Ormandy zaprezentowałwykorzystanie zatrutego bajtu NUL w bibliotece glibc – kluczowej wlinuksowych systemach standardowej bibliotece języka C. Reakcjedeweloperów glibc były bardzo wstrzemięźliwe, podkreślano żefunkcje normalizacji uniemożliwią dostęp do zapisywalnegokatalogu, a utwardzenie funkcji malloc (przydzielania pamięci) wglibc uniemożliwi uruchomienie exploita. Członkowie Project Zerouparli się jednak, że dadzą radę. Jak pisze Evans, wyzwaniepodjął George „geohot” Hotz, znany m.in. z pokonaniazabezpieczeń Playstation 3, przygotowując scenariusze ataku dlacałego zespołu. Już po kilku dniach osiagnięto sukces.

Na celownik wzięto 32-bitowąwersję Fedory i zawarte w niej polecenie pkexec,będące częścią pakietu PolicyKit. Plik ten ma ustawioną flagęsetuid root, co oznacza, że zawsze będzie uruchomiany zuprawnieniami roota. Ten, kto uruchomi za pomocą takiego programuswój kod, uzyska dostęp administracyjny do maszyny. Wyexploitowaniebłędu wymagało jednak pokonania randomizacji przestrzeni adresowej(ASLR) – zabezpieczenia używanego we współczesnych systemachoperacyjnych. Okazuje się, że całkiem łatwo, wykorzystującpolecenie ulimit,całkowicie obejść ASLR, zmuszając obraz i biblioteki pkexecdo pojawienia się w określonych lokalizacjach.

W dodatku do błędu w glibc, wexploicie wykorzystano sprytnie wyciek pamięci w pkexec,wywołując polecenie ze ścieżką składającą się z ukośnika(/), po którym następowało 469 jedynek (1). Sposób ataku, zwykorzystaniem komunikatu o błędzie generowanym przez program,wygląda na dość uniwersalny. Zapoznać się z nim możecie nabloguProject Zero. W połączeniu z plikami setuid root, może okazaćsię on bardzo niebezpieczny.

Linux najwyraźniej w Googletraktowany jest lepiej niż Windows, więc exploit zostałupubliczniony dopiero po załataniuluki w glibc, 44 dni po jej zgłoszeniu. Niezależni specjaliścizwracają uwagę na znaczenie ataku – choć działa on w obecnejformie tylko na 32-bitowych systemach, to systemów takich jestcałkiem w Sieci sporo. Co prawda większość komputerówwbudowanych zamiast glibc używa biblioteki uClibc, a w Androidziezastosowano bibliotekę Bionic libc, to jednak sporo jest dyskówNAS, działających pod kontrolą rozmaitych GNU/Linuksów, jakrównież komputerków typu Raspberry Pi, ze specjalizowanymidystrybucjami, wykorzystującymi glibc. Odkrycie poucza nas też, żenie ma co marnować czasu na debatowanie, czy dany błąd możnawyexploitować, czy też nie. Nawet jeśli deweloper przekonany jest,że „to nic groźnego”, to zawsze może znaleźć sięinteligentniejszy od niego haker, który znajdzie sposób na exploitwcześniej niewyobrażalny.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.