Nowy Linux całkiem odporny na luki Spectre, wytrzyma też dłużej na baterii

Nowy Linux całkiem odporny na luki Spectre, wytrzyma też dłużej na baterii03.04.2018 13:52

To mało ekscytujące wydanie, nawet w oczach samego LinusaTorvaldsa, który nie bacząc na połączenie Pierwszego Kwietnia iświąt Wielkiej Nocy wydałLinuksa 4.16. Znacznie ciekawsze rzeczy czekają na nas w 4.17, ale itak warto skupić się na dojrzałych owocach ponad dwóch miesięcypracy linuksowych deweloperów.

Linux 4.16 to niemal 15 tys. commitów, ponad 12 tys. zmienionychplików, ponad 25 MB kodu źródłowego. W tych wszystkich zmianachnajważniejsze są dłuższy czas pracy urządzeń zasilanychbateryjnie, łatka na pierwszy wariant ataku Spectre, lepsza pracalinuksowych gości w VirtualBoksie, możliwość indywidualnegoszyfrowania maszyn wirtualnych pod hiperwizorem KVM na procesorachAMD, oraz zwiększenie bezpieczeństwa kernela poprzez domyślnewłączenie opcjonalnych dotychczas zabezpieczeń.

Dłuższa praca z notebookiem

Nowa opcja konfiguracji kernela pozwala wreszcie na ustalaniepolityk LPM (ATA Link Power Management). Pozwala to na czipsetachIntela kontrolować oszczędzanie energii przez dyski, zapewniajączmniejszenie jej zużycia o 1-1,5 W na jałowym biegu. Pozwala towydłużyć pracę przeciętnego notebooka o nawet godzinę.

Wcześniej próby takiej kontroli na Linuksie kończyły się źle,najczęściej utratą danych. Jednak nowy programowalny tryboszczędzania DIPM (Device Initiated Power Management) pozwolił naobejście tych problemów. Wykorzystano doświadczenia prowadzoneprzez Intela na Windowsie, konfigurując polityki ALPM dokładnie taksamo, jak konfiguruje je oficjalny intelowy sterownik na systemyMicrosoftu. Teraz opiekunowie kerneli w ramach danej dystrybucji mogąpo prostu nakazać automatyczne włączenie DIPM – przynajmniej nalaptopach z mobilnymi czipsetami Intela. Pierwszą dystrybucją,która ma zapewnić wsparcie tego rozwiązania będzie Fedora 28.

Na wydłużenie czasu pracy urządzeń zasilanych bateryjniewpłynie też druga opcja pozwalająca na automatyczne włączaniemechanizmu usypiania łączności Bluetooth, gdy tylko jest tomożliwe. Do tej pory takie usypianie było możliwe tylko po ręcznejaktywacji. Teraz włączać będzie to sam kernel, przy okazjiobniżając zużycie energii przez sam kontroler USB i pozwalającprocesorowi na głębsze stany uśpienia. Według autora tegorozwiązania, pozwoli ono obniżyć zużycie energii o przynajmniej0,4 W. Wbrew pozorom nie jest to mało, ultralekkie laptopy najałowym biegu są dziś przecieć w stanie pobierać 5 W.

Spectre mniej straszne

Nowy kernel skuteczniej i bez takich strat w wydajności chroniprzez pierwszym wariantem ataku Spectre (Bounds Check Bypass).Znaleziono potencjalnie podatne na Spectre fragmenty kodu iprzepisano je tak, aby uniemożliwić spekulatywne wykonywanie,poprzez wywoływanie specjalnie do tego celu stworzonych makr. Terazodczytanie zawartości plikusys/devices/system/cpu/vulnerabilities/spectre_v1zwraca ciąg __user pointer sanitization.

Prawdopodobnie na tych łatkachsię nie skończy, poszukiwane są kolejne miejsca kernela mogącezostać zaatakowane przez Spectre, powstać ma opensource’owenarzędzie do automatycznego wskazywania takich lokalizacji.

Jeśli chodzi o drugą wersjęataku Spectre (Branch Target Injection), to wciąż korzysta się ztechniki Return Trampoline (retpoline), która choć sprawdzała sięw większości scenariuszy, zawodziła w przypadku wirtualizacji. Wkernelu 4.16 retpoline zostało nieco ulepszone, wykorzystywane sąteż niektóre funkcje IBC (Indirect Branch Control), wprowadzone poostatnich aktualizacjach mikrokodu procesorów Intela i AMD.

IBC zostało w całości przyjęteprzez Windowsa, mimo jego poważnego wpływu na wydajność systemu,tymczasem większość linuksowych dystrybucji wolała trzymać sięmniej kosztownej retpoline, mimo tego, że nie zapewniała onabezpiecznej wirtualizacji i była niewystarczająca dla procesorówSkylake i późniejszych generacji. Teraz dzięki selektywnemuwybraniu niektórych mechanizmów IBC (dostępnych nawet bez wgraniamikrokodu) Linux eliminuje znane słabości repotline i pozwalabezpiecznie zwirtualizować Windowsa. Dodatkowo za pomocą jednego zmechanizmów z IBC chroni teraz też przed wymuszeniem zrzutu obrazupamięci w razie awarii programu – w zrzutach takich może siępojawić wiele wrażliwych danych.

Nie oznacza to, że Spectreprzestało być problemem – przykładowo Red Hat nie jest w ogóleprzekonany do retpoline i od początku w RHEL-u stosuje wyłączniezabezpieczenie IBC. Wciąż też pozostaje sporo do zrobienia wzakresie optymalizacji łatek nie tylko przeciw Spectre (szczególniena innych niż x86-64 architekturach) ale też przeciwko Meltdown.Pozostają też problemy z 32-bitowymi systemami uruchamianymi na64-bitowych procesorach, gdzie wydajność spadła najbardziej, azabezpieczenia przed Meltdown wciąż nie wprowadzono. Niestety miniejeszcze sporo czasu, zanim deweloperzy będą mogli przestać sięprzejmować 32-bitową architekturą x86.

Domyślnie bezpieczniej

Oprócz zabezpieczeń przed Meltdown i Spectre, zadbano też oinne sprawy w tej dziedzinie. Wprowadzono od dawna rekomendowanąblokadę dostępu do pamięci fizycznej przez urządzenie /dev/mem.

Automatycznie jest także aktywowana ochrona stosu (StackProtector), przynajmniej dla architektur i kompilatorów które towspierają. Poczyniono także zmiany mające na celu zabezpieczeniewymiany danych między kernelem a przestrzenią użytkownika.

VirtualBox bez dodatków

Domyślny kernel 4.16 zawiera już wszystko co potrzeba, abyuruchomione w VirtualBoksie linuksowe maszyny wirtualne od razu mogłykorzystać z akceleracji grafiki 3D, obsługiwały integracjęschowka, a także działały w trybie zintegrowanym, w którymaplikacje systemu gościa wyświetlane są w okienkach na pulpiciegospodarza.

Wciąż trwają prace nad ulepszeniem jakości sterownikagraficznego Vboxvideo, a także poprawieniem działania sterownikaVboxsf, pozwalającego na integrację systemów plików międzygościem a gospodarzem. Gdy prace te zostaną ukończone,uruchamianie zwirtualizowanych linuksowych systemów będzie znaczniełatwiejsze i wygodniejsze – nie trzeba będzie kompilowaćspecjalnych modułów do kernela, koniecznych dziś do wykorzystaniawszystkich możliwości wirtualizacji.

Wirtualizacja grafiki na Intelu

Zmiany w sterownikach grafiki Intela pozwolą wreszcie wykorzystaćtechnologię GVT-g, która pozwala przypisywać maszynom wirtualnymmechanizmy sprzętowej akceleracji grafiki dostępnesystemowi-gospodarzowi. W teorii działało to już od Linuksa 4.8,ale nie było sposobu na efektywne przesłanie obrazu stworzonego wsystemie-gościu do gospodarza. Teraz taki sposób powstał – nowaścieżka przekierowania grafiki wykorzystuje współdzieleniebuforów z bezpośrednim dostępem do pamięci.

Dzięki tej nowej ścieżce kompozytor grafiki na hoście będziemógł łatwo wykorzystać obraz z maszyny-gościa w okienku na swoimpulpicie, tak samo jakby np. korzystał z grafiki 3D. Można w tensposób też przesłać obraż bezpośrednio na drugi monitor wtrybie pełnoekranowym, a nawet zdalnie po sieci do zdalnego systemuz wykorzystaniem protokołu Spice.

Całe rozwiązanie działa już na hiperwizorze KVM z odpowiednimzmodyfikowanym Qemu. W ciągu najbliższych miesięcy powinno staćsię stałą częścią linuksowej wirtualizacji. Już teraz mówisię o wykorzystaniu tego do obsługi wirtualnych pulpitów czystrumieniowania gier z chmury.

Sieci i dyski

Sporo się dzieje w zakresie ulepszania popularnego systemu plikówXFS. Mechanizmy odwrotnego mapowania i referencyjnejgo linkowaniaprzestały być eksperymentalne. By zadziałać, potrzebująuaktualnionych narzędzi do obsługi systemu plików, ale testy jużpokazują, że skopiowanie pliku z opcją --reflink pozwalazaoszczędzić mnóstwo czasu: zamiast kopiować zawartość pliku,XFS tworzy jedynie nowy wpis w systemie plików z kopią metadanych,wskazujących na ten sam blok danych – tak jak to jest np. wsystemach ZFS i Btrfs. Wciąż jako eksperymentalny pozostajemechanizm automatycznych napraw systemu plików bez koniecznościodmontowywania partycji.

Protokół CIFS używany w windowsowych sieciach lokalnychobsługuje teraz zasoby udostępniane po najnowszym SMB3, w którychdane są rozprowadzane poprzez rozproszony system plików (DFS).Pojawiło się też eksperymentalne wsparcie dla SMB3 Direct,pozwalające klientowi bezpośrednio czytać i pisać na wyznaczonychobszarach pamięci serwera poprzez mechanizm zdalnego bezpośredniegodostępu (RDMA). Pozwala to na bardzo szybką komunikację międzyklientem i serwerem, praktycznie bez narzutów.

Na pewno też Linux 4.16 powinien znacznie przyspieszyć przywszystkich operacjach na małych obciążeniach I/O. Zmiana w kodzieobsługującym pole i_version dla i-węzłów (czyli strukturopisujących pliki w systemie) sprawiła, że w popularnym benchmarkuFIO uzyskano wynik o 244% lepszy niż przed zmianą. Zmiana jestnaprawdę trywialna: i_version było zwiększane o 1 przy każdejzmianie danych i-węzła czy metadanych. Jednak ta inkrementacja doniczego nie była potrzebna, i teraz po zakończeniu tej bezsensownejaktualizacji pola, operacje odczytu i zapisu dla wielu małych plikówpowinny gwałtownie przyspieszyć. Dobra to wiadomość, szczególniebiorąc pod uwagę spadki wydajności I/O po zastosowaniu łatek naMeltdown i Spectre.

Sterowniki

Nowy kernel obsługuje teraz karty GeForce 1030, lepiej sobieradzi ze wsparciem dla procesorów Cannon Lake Intela, dodajewsparcie dla dziesiątków urządzeń z procesorami ARM (w tympopularnego Orange Pi R1), obsługuje nowe sterowniki dźwiękowe (wtym coraz częściej stosowany Allwinner A83T) i wprowadza sporopoprawek dla laptopów firm takich jak Dell, Lenovo i Asus.

Bardziej szczegółowe informacje na temat kernela 4.16znajdziecie niebawem na kernelnewbies.org.

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.