Jak wyłączyć Izolowanie tabeli stron, aby odzyskać wydajność utraconą z powodu poprawki dziury w zabezpieczeniach procesora Intel?


43

Ze względu na obecny problem dziury w zabezpieczeniach procesora Intel, oczekiwana jest łatka, która spowalnia działanie systemu.

Jak mogę się upewnić, że ta łatka nie zostanie zainstalowana w moim systemie Ubuntu?


49
Możesz jeszcze bardziej zwiększyć wydajność systemu, wyłączając różne inne mechanizmy bezpieczeństwa. Nie, to nie jest rekomendacja.
scai

11
Jeśli wydajność jest dla Ciebie ważna, zalecam samodzielne zbudowanie najnowszego kandydata do wydania jądra i przetestowanie utraty wydajności na obciążeniu. Może się okazać, że koszty ogólne są nieistotne lub dopuszczalne.
Jeffrey Bosboom

5
Nie mogę przecenić, jak straszny jest to pomysł.
Alexander

13
Będę się sprzeciwiać. Osobiście nie radziłbym wyłączać funkcji bezpieczeństwa, ale dla użytkowników, którzy zauważą spadek wydajności, wyłączenie pti może być rozsądną opcją, biorąc pod uwagę, jak trudne może być wykorzystanie ataku przeciwko tej szczególnej luce bezpieczeństwa i wartości docelowego komputera / danych. Pytanie brzmi: jak wyłączyć tę opcję, nie powinienem wyłączać tej opcji.
Panther

2
Zgadzam się, PTI to funkcja bezpieczeństwa, która może mieć nie bez znaczenia koszt. To OP musi zdecydować, czy jest to dla nich odpowiednie i wykracza poza zakres tego pytania.
Jake

Odpowiedzi:


55

Łatka (znana również jako „Izolacja tablicy stron”) będzie częścią normalnej aktualizacji jądra (którą otrzymasz podczas aktualizacji systemu). Zaleca się jednak aktualizowanie jądra, ponieważ zawiera ono również wiele innych poprawek bezpieczeństwa. Tak bym nie polecam tylko przy użyciu przestarzałej jądra bez poprawki.

Można jednak skutecznie wyłączyć łatkę, dodając pti=off( łata do jądra dodając tę ​​opcję, więcej informacji ) do wiersza poleceń jądra ( howto ). Pamiętaj, że zrobienie tego spowoduje mniej bezpieczny system.

Więcej informacji i testów wydajności z włączonym i wyłączonym PTI na liście mailingowej PostgreSQL - TLDR ma wpływ między 10 a 30% wydajności (to znaczy w przypadku ProstgreSQL - inne rzeczy, takie jak gry , prawdopodobnie nie będą miały większego wpływu) .

Należy pamiętać, że wpłynie to tylko na procesory Intel, ponieważ AMD najwyraźniej pozostaje nienaruszone ( reddit ), więc prawdopodobnie będzie to domyślnie wyłączone w AMD.


2
„... będzie przewidywalnie wyłączone domyślnie na AMD”. Czy to oznacza, że ​​będzie dostępna dodatkowa wersja jądra dla systemów operacyjnych Ubuntu działających na komputerach z procesorem AMD dostarczonym przez Canonical? :)
cl-netbox

16
Nie, jądro wykrywa (podczas uruchamiania) pogodę, że działa na procesorze AMD i wyłącza poprawkę, jeśli tak jest. @ cl-netbox
JonasCz - Przywróć Monikę

1
Według informacji tamgister.co.uk/2018/01/04/intel_amd_arm_cpu_vulnerability Na układy AMD wpływa co najmniej jedna różnorodność ataków Spectre (wstrzyknięcie celu gałęzi), dlatego w tym tygodniu otrzymają prawdopodobnie wpływającą na wydajność aktualizacji jądra, też, mimo że nie podlegają one właściwemu Meltdown.
Dave Sherohman

1
Najwyraźniej ta funkcja jest w architekturze x64, ale nie w i386 / IA-32. Z tego powodu łatka nie wpływa również na 32-bitowy system Linux (bezpieczeństwo / Kconfig wymaga X86_64, aby włączyć PAGE_TABLE_ISOLATION). rodzi to jednak inne pytanie. co z maszynami x64 z zainstalowanym 32-bitowym linuksem, czy można to zmienić? Jeśli tak, to co ze starymi komputerami x64, które są ograniczone przez BIOS do uruchamiania tylko 32-bitowych instrukcji (takich jak stare netbooki oparte na atomach)? czy siedzą kaczki?
thePiGrepper

2
Dopóki nie dowiedziałem się na pewno, że istnieje atak oparty na JavaScript, którego zamierzałem użyć.
Jozuego

35

Aktualizacja: Problemowi nadano parę pseudonimów: Meltdown i Spectre . Zaktualizowałem odpowiedź o nowe informacje.

Początkowo będzie to łatka na jądro. Pojawi się jako wyższa wersja. Zostanie zainstalowany, ponieważ został linux-image-genericzainstalowany. Po to jest ten pakiet. Więc możesz usunąć linux-image-generic. To okropny, katastrofalny pomysł, który narazi cię na wszelkiego rodzaju paskudności, ale możesz to zrobić. Nie mogą być również mikrokodu CPU, który następuje w linux-firmwareza poprawki w CPU. To naprawdę zależy od Intela.

Metoda zastosowana w celu usunięcia tego problemu jest nieistotna. Prosisz o ominięcie czegoś, w którym nie znasz prawdziwego wpływu błędu ani kosztu wydajności jego naprawy.

  • Błąd jest paskudny. Zgłoszone CVE to odczyt pamięci międzyprocesowej. Każdy proces może odczytać pamięć dowolnego innego procesu. Wejście, hasła, cała partia. Prawdopodobnie ma to również wpływ na piaskownice. Jest bardzo wcześnie i oczekuję, że ludzie posuną się dalej, zarówno pod względem wpływu, jak i dostępu.

  • Wydajność prawdopodobnie nie jest tak duża, jak się martwisz. Liczby, które ludzie rzucają, skupiają się na teoretycznej wydajności podsystemu lub w najgorszym przypadku. Mocno zbuforowana baza danych zostanie uderzona najmocniej. Gry i codzienne rzeczy prawdopodobnie nie zmienią się w wymierny sposób.

Nawet teraz możemy zobaczyć, jaki jest prawdziwy błąd, jest o wiele za wcześnie, aby powiedzieć, jaki jest jego wpływ. Chociaż swobodny dostęp do odczytu pamięci RAM jest zły, istnieją gorsze rzeczy. Sprawdziłbym również, jak bardzo poprawka wpływa na ciebie (z tym, co robisz).

Nie zaczynaj jeszcze wstępnego wczytywania konfiguracji GRUB-a z flagami ani usuwania meta-pakietów Kernela.


7
Wszystko, co musisz zrobić, to dodać pti=offdo wiersza poleceń jądra (w GRUB), aby wyłączyć łatkę.
JonasCz - Przywróć Monikę

3
@JonasCz ten komentarz - jeśli to prawda, nie wiem - brzmi, jakby był wart osobnej odpowiedzi, szczególnie jeśli możesz to zrobić za pomocą odwołania.
Bajt Dowódca

IMHO nopti to lepszy wybór
Panther

3
@Oli Zgadzam się z tą radą i dałem ją sobie gdzie indziej. To powiedziawszy, pytanie brzmi, jak wyłączyć tę nową funkcję bezpieczeństwa, jeśli to pożądane, a IMO, nopti jest taką opcją.
Panther

1
Tak, spowolniłem niektóre działania mojego systemu o 99% podczas korzystania z maszyn wirtualnych. Kopiowanie plików z hosta na maszynę wirtualną trwało 2-3 sekundy, teraz zajmuje ponad minutę.
rboy

14

Chociaż nie polecam tego, możliwe jest wyłączenie PTI

z parametrem wiersza polecenia jądra nopti

według Phoronix .

Aby to zrobić, wykonaj Dołącz noptido łańcucha obok linii zaczynającej się GRUB_CMDLINE_LINUX_DEFAULTw /etc/default/grub, a następnie uruchomiony

sudo update-grub

następnie następuje restart.

Więcej informacji o parametrach rozruchowych jądra w celu wyłączenia funkcji bezpieczeństwa związanych z wydajnością, zobacz: Spectre & Meltdown MitigationControls na Ubuntu Wiki


1
Jaka jest różnica między parametrami rozruchu jądra nopti i pti = off ?
niutech

@niutech nie ma różnicy, na dowód, że możesz tu
nixpower



3

Najprostszy sposób: odznacz w konfiguracji jądra

-> Opcje bezpieczeństwa

[] Usuń mapowanie jądra w trybie użytkownika

następnie skompiluj nowe jądro


1
Witamy w Ask Ubuntu! W obecnej formie twoja odpowiedź nie jest tak dobra, jak mogłaby być. Czy mógłbyś przeczytać, jak napisać dobrą odpowiedź oraz przewodnik po stylach dla pytań i odpowiedzi . - Z recenzji
J. Starnes

2
Niestety J. Starnes ma rację. Nie kompilujesz już własnego jądra, chyba że jako ostateczność.
Jozuego

Jest to dość trywialna zmiana opcji jądra, ale IMO noptijest prawdopodobnie lepszym / łatwiejszym wyborem.
Panther
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.