Piękny atak 0-day stawia pod znakiem zapytania bezpieczeństwo desktopowego Linuksa

Piękny atak 0‑day stawia pod znakiem zapytania bezpieczeństwo desktopowego Linuksa

Piękny atak 0-day stawia pod znakiem zapytania bezpieczeństwo desktopowego Linuksa
23.11.2016 15:54

Wiele osób próbuje przedstawić Linuksa jako panaceum nabezpieczeństwo – zainstalujesz i już jest dobrze, niestraszneżadne znane z Windowsa zagrożenia. Czy aby na pewno? Odkrytaostatnio luka we frameworku mediów Gstreamer pokazuje, że typowydesktopowy system linuksowy też może być pełen luk, których poprostu nikt nie zauważył, mimo otwartości kodu.

Chris Evans, badacz który odkryłlukę, pokazał zarazem, jak ją w spektakularny sposóbwyexploitować, i to w warunkach wydawałoby się skrajnieniesprzyjających. Jego atak działa na najnowszych dystrybucjachLinuksa, w tym Ubuntu 16.04 i Fedorze 24 (a także dopiero co wydanejFedorze 25). Wykorzystana została podatność uszkodzenia stosu,tkwiąca w dekoderze formatu FLIC, znajdującym się z jakiegośpowodu w domyślnym pakiecie kodeków Gstreamera.

Po co komu FLIC? Większość użytkowników od dawna pewnie niemiała do czynienia z plikami w tym antycznym formacie animacji,stworzonym niegdyś przez Autodesk. A mimo tego, że dekoder jestfatalnie napisany i w praktyce całkowicie zbyteczny, znalazł się wzestawie „dobrych” kodeków Gstreamera, domyślnie instalowanychw niemal każdej dystrybucji Linuksa (Gstreamer ma jeszcze zestawy„zły” i „brzydki”, które zainstalować można zrepozytoriów).

Nowoczesne systemy linuksowe zapewniają zabezpieczenia takie jakASLR czy DEP, które powinny chronić przed takimi atakami – ioczywiście chronią. Napastnicy obchodzą je za pomocą przeróżnychsztuczek programistycznych, manipulując środowiskiem systemowymtak, by można było posunąć atak do przodu. Jak jednak manipulowaćsystemem przez dekoder formatu animacji? Sytuacja wydaje siętragiczna. Jak napastnik wyexploituje przeglądarkę, to ma zwykle dodyspozycji silnik JavaScriptu. We Flashu mamy ActionScript. Przyataku na kernel do dyspozycji jest program działający już wprzestrzeni użytkownika. Wystarczy mieć jakiś turing-kompletny(zdolny do uruchamiania oprogramowania) system w oprogramowaniu.

Niesamowity przykład takiego ataku został zaprezentowanyostatnio przez Chrisa Evansa w odniesieniu do plików muzycznych NSF,z gier na stare Nintendo. Tam exploit przeprowadzany jest za pomocąkodu assemblerowego dla 8-bitowego procesora 6502 – i to wystarczy,by przejąć nowoczesny linuksowy desktop. No cóż, bardzo fajnie,ale co zrobić z takim prostym formatem animacji, w którym nie mamiejsca na żadne skryptowanie? Tutaj można jedynie wstrzelić wdekoder ciąg bajtów i liczyć, że uda się coś zrobić bezjakichkolwiek dalszych interakcji z systemem.

Obraz

I najwyraźniej się udaje. Badacz pokazał, że można ręczniezestawiając kod ataku bajt po bajcie, stworzyć zbiór danych, którycałkowicie obezwładni systemowe zabezpieczenia. Jasne, nie jest tołatwe, ale zrobiona przez niego praca ma zarówno akademickie jak ipraktyczne znaczenie dla bezpieczeństwa Linuksa, stanowiąc dowód,że nieskryptowe exploity są możliwe, nawet pomimo tych wszystkichzabezpieczeń. Napastnik wprowadzając do pętli dekodera odpowiedniedane może zarządzać operacjami na pamięci równie dobrze, jakrobiłby to za pomocą np. JavaScriptu, modyfikując zmienneśrodowiskowe.

Przykładowy atak z ominięciem zabezpieczeń został wymierzony wodtwarzacz rhythmbox, domyślnie instalowany w Fedorze. Złośliwyplik .flac (popularny format muzyczny) otwierany jest poprzezxdg-open z terminala, ale równie dobrze mógłby być otworzonykliknięciem w link w przeglądarce. Analiza kodu dekodera pokazała,że nie ma tam żadnych ograniczeń co do rozmiarów danych pisanychdo bufora. Hulaj dusza, piekła nie ma – zainteresowanych tym, coEvans robił krok po kroku (a właściwie ramka po ramce animacji),zapraszamy na jegobloga. Odtworzenie 20 ramek wystarczyło, by uruchomić za pomocątego exploita kalkulator środowiska GNOME.

Przeprowadzenie takiego ataku jest jak widać trudne, ale nieniemożliwe. Co szczególnie istotne, wybór Fedory, a nie np.znacznie popularniejszego Ubuntu, był nieprzypadkowy – Fedora jestznacznie trudniejsza do wyexploitowania niż Ubuntu, w którym tosystemie w większości binarek brakuje zabezpieczeń takich jak ASLRczy RELRO.

W świetle swoich odkryć Evans twierdzi, że to kolejny dowód nato, że istnieją subtelne sposoby na wyexploitowanie niemal każdejpodatności. To jednak nie wszystko: musimy w ogóle zastanowić sięnad stanem bezpieczeństwa Linuksa: czy cokolwiek proaktywnego sięrobi, by go wzmocnić, czy też deweloperzy Linuksa jedynie reagująna nowo odkryte luki?

Jak się zabezpieczyć?

Canonical już wydałłatki do Gstreamera w Ubuntu, niebawem poprawki powinny pojawićsię w repozytoriach innych dystrybucji, zalecamy więc jaknajszybszą aktualizację.

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (195)