10/10 w skali CVSS: przez błąd w UDP zdalny exploit Linuksa i Androida
CVE-2016-10229 – tak, bez żadnych specjalnych, chwytliwychnazw, oznaczono lukę w linuksowym kernelu, która pozwalanapastnikowi na zdalne uruchomienie kodu, i to z uprawnieniamiadministratora, poprzez manipulowanie ruchem sieciowym po protokoleUDP. Podatność dotyczyła większości dostarczanych na rynekkompilacji linuksowego kernela, od wersji 2.6 do 4.5. Łatkidostarczono po cichu, co miało zostać zaktualizowane,zaktualizowane już zostało w poprzednich tygodniach. Ale wcale nieoznacza to, że możecie się cieszyć.
14.04.2017 13:42
Liczba podłączonych do sieci urządzeń, na których działalinuksowy kernel, idzie w setki milionów. Ile z nich należy taknaprawdę do botmasterów, którzy przejęli je na potrzebycyberataków – tego nie wiadomo, ale nawet pomniejsze botnetypotrafią narobić kłopotów, ostatnio jedna z amerykańskichuczelni przez 54 godziny była odcięta od sieci DDoS-em, w którymwykorzystano niespełna 10 tys. urządzeń. Nie łudźmy się,oprogramowanie większości tych urządzeń nigdy nie będziezaktualizowane, tak więc z roku na rok w miarę odkrywania nowychpodatności, liczba zarażonych końcówek Internetu Rzeczy możetylko rosnąć.
O co chodzi w tej luce?
Wspomniany na początku atak wydaje się naprawdę dziwaczny. Wopisie lukimożemy przeczytać, że wskutek błędu w udp.c, spreparowany ruchsieciowy UDP może wywołać niebezpieczne drugie przeliczenie sumkontrolnych podczas wywołania funkcji recv() z ustawioną flagąMSG_PEEK, prowadząc do uszkodzenia pamięci, przez które uruchomićmożna własny kod z poziomu kernela. Łatwo odkryć, że to bardzotypowe wywołanie – wyszukiwarka kodu Debiana zwraca około 140wystąpień, w ważnych bibliotekach systemowych (np. glibc) ipopularnych narzędziach (git, wget, lftp, tinyproxy).
Dlaczego dwukrotne przeliczenie sumy kontrolnej dla UDP możedoprowadzić do takiej masakry, nam trudno jest powiedzieć. My tonic, gorzej, że nierozumieją tego takie tuzy w dziedzinie bezpieczeństwa IT jakTavis Ormandy z google’owego Projektu Zero. Zapewne takie są urokiprogramowania w C, języku dogłębnie niebezpiecznym.
Komu łatka, komu?
Samą lukę odkryłpod sam koniec 2015 roku Eric Dumazet z Google, a łatka do koduLinuksa trafiła kilka dni później. Mimo tego do popularnychdystrybucji trafiła dość późno, np. Ubuntu dostałoją dla wspieranych kerneli dopiero w październiku zeszłegoroku, podobnie jak i Debian. Co ciekawe, kernele przygotowywane przezRed Hata nigdy tej luki nie miały, więc najważniejsza komercyjnadystrybucja Linuksa nigdy łatek dla niej nie dostała.
Podatny za to był Android. Google załatało lukę odkrytą przezswojego pracownika na przełomie 2015/2016 dopiero na początkukwietnia 2017 roku. Ręka w górę, kto otrzymał już na swoichandroidowych urządzeniach kwietniowe łatki. Wiadomo, użytkownicysmartfonów Pixel i Nexus, ostatnio także wspieranych wciążurządzeń Samsunga i LG. Co z pozostałymi? Sprawdzając sprzęt wswoim domu, autor newsa znalazł dwa podatne androidowe smartfony,jeden router (pracujący jako repeater Wi-Fi), jeden dysk sieciowy ijeden odtwarzacz multimedialny.
Na pocieszenie można powiedzieć, że na razie nie wiadomo nic ozautomatyzowanych narzędziach, które exploitowałyby tę ocenionąna 10,0 w dziesięciopunktowej skali CVSS lukę. Na razie.