Як відключити ізоляцію таблиці сторінок, щоб відновити продуктивність, втрачену внаслідок виправлення отвору в безпеці процесора Intel?


43

Через поточну проблему з процесом захисту процесора Intel, очікується виправлення, яке уповільнює продуктивність системи.

Як я можу переконатися, що цей патч не буде встановлений у моїй системі Ubuntu?


49
Ви можете ще більше підвищити продуктивність системи, відключивши різні інші механізми захисту. Ні, це не рекомендація.
scai

11
Якщо для вас важлива ефективність, рекомендую самостійно скласти недавнього кандидата на випуск ядра та протестувати втрату продуктивності на вашому навантаженні. Ви можете виявити, що накладні витрати незначні чи терпимі.
Джеффрі Босбум

5
Я не можу переоцінити, наскільки це жахлива ідея.
Олександр

13
Я збираюся інакше. Особисто я б не радив вимкнути функції безпеки, але для користувачів, які помічають продуктивність, що відключає pti, може бути розумним варіантом, враховуючи, наскільки складно використовувати напад на цей конкретний отвір безпеки та значення цільового комп'ютера / даних. Питання в тому, як відключити цю опцію, чи не слід відключати цю опцію.
Пантера

2
Я згоден, PTI - це функція безпеки, яка може мати незначну вартість. На ОП належить вирішити, чи підходить вони їм та за межами цього питання.
Джейк

Відповіді:


55

Патч (він же "Ізоляція таблиці сторінки") буде частиною звичайного оновлення ядра (яке ви отримаєте під час оновлення системи). Однак рекомендувати оновлення ядра дуже рекомендується, оскільки воно також отримує безліч інших виправлень безпеки. Тому я б не рекомендував просто використовувати застаріле ядро ​​без виправлення.

Однак ви можете ефективно відключити патч, додавши pti=off( патч ядра, додаючи цю опцію, з додатковою інформацією ) до командного рядка ядра ( howto ). Зауважте, що це призведе до менш захищеної системи.

У списку розсилки PostgreSQL є більше тестів щодо інформації та продуктивності із включеною та відключеною функцією PTI - TLDR полягає в тому, що вона має від 10 до 30% впливу на продуктивність (для ProstgreSQL, тобто інші речі, такі як ігри , напевно, матимуть менший вплив) .

Зауважте, що це вплине лише на процесори Intel, оскільки AMD , мабуть, не впливає ( reddit ), тому це, мабуть, буде відключено за замовчуванням на AMD.


2
"... це буде передбачувано вимкнено за умовчанням для AMD." Чи означає це, що для операційних систем Ubuntu, що працюють на машинах з процесором AMD, наданим Canonical, буде додаткова версія ядра? :)
cl-netbox

16
Ні, ядро ​​виявляє (під час завантаження) погоду, що працює на процесорі AMD, і вимикає виправлення, якщо воно є. @ cl-netbox
Відновити Моніку

1
Відповідно до theregister.co.uk/2018/01/04/intel_amd_arm_cpu_vulnerability мікросхеми AMD впливають щонайменше на одну кількість нападів Spectre (введення цільової гілки), тому вони отримають оновлення ядра, що, ймовірно, впливає на ефективність цього тижня, теж незважаючи на те, що вони не підпадають під належний Meltdown.
Дейв Шерохман

1
Мабуть, ця функція є в архітектурі x64, але не в i386 / IA-32. Через те, патч не впливає і на 32-бітовий Linux (безпека / Kconfig вимагає X86_64 для включення PAGE_TABLE_ISOLATION). це викликає ще одне питання. що з машинами x64 із встановленим 32-бітовим Linux, на що це може вплинути? Якщо так, то як щодо старих машин x64, які обмежені біосами, виконувати лише 32-бітові інструкції (наприклад, старі нетбуки на основі атомів)? вони сидять качки?
thePiGrepper

2
Поки я не довідався напевно, була атака на основі JavaScript, яку я планував використовувати.
Джошуа

35

Оновлення: Випуску було надано пару моніторів: Meltdown та Spectre . Я оновив відповідь новою інформацією.

Спочатку це буде патч ядра. Він відображатиметься як вища версія. Він буде встановлений тому, що ви linux-image-genericвстановили. Ось для чого цей пакет. Так ви могли видалити linux-image-generic. Це жахлива, згубна ідея, яка викриє вас всілякими неприємностями, але ви могли це зробити. Також може бути мікрокод CPU, який слід linux-firmwareвиправити для виправлення CPU. Це справді на Intel.

Метод, який ви дотримуєтеся для усунення цього, не має значення. Ви просите обійти щось там, де не знаєте ні справжнього впливу помилки, ні вартості продуктивності його виправлення.

  • Клоп неприємний. Повідомлені CVE є перехресним зчитуванням пам'яті. Будь-який процес, здатний прочитати пам'ять будь-якого іншого процесу. Введення, паролі, весь лот. Це, ймовірно, має наслідки і для пісочниць. Це дуже ранні дні, і я очікую, що люди будуть продовжувати це і далі, і по впливу, і по доступу.

  • Швидше за все, хіт виступу не такий великий, як ви переживаєте. Цифри, які люди накидають, зосереджуються на теоретичній діяльності підсистеми, або в гіршому випадку. Неправильно кешована база даних - це те, що найсильніше потрапить. Ігрові та щоденні речі, ймовірно, не зміняться помірно.

Навіть зараз ми можемо побачити, що таке фактична помилка, поки зарано говорити, що таке вплив. Хоча вільний доступ до читання оперативної пам’яті поганий, там є і гірші речі. Я також хотів би перевірити, наскільки насправді виправлення впливає на вас (з тим, що ви робите).

Не починайте попередньо завантажувати конфігурацію GRUB прапорами чи видаляти мета-пакети Kernel.


7
Все, що вам потрібно зробити, - це додати pti=offдо командного рядка ядра (в GRUB), щоб вимкнути виправлення.
JonasCz

3
@JonasCz цей коментар - якщо це правда, я не знаю - звучить так, що варто було б отримати окрему відповідь, особливо якщо ви можете зробити це резервним посиланням.
Командир байтів

IMHO nopti - кращий вибір
Пантера

3
@Oli Я погоджуюся з цією порадою і дав собі таке в інших місцях. Зважаючи на це, питання полягає в тому, як відключити цю нову функцію безпеки, якщо бажано, і, IMO, nopti - це варіант зробити це.
Пантера

1
Так, це уповільнило деякі мої системні дії на 99% при використанні віртуальних машин. Копіювання файлів з хоста на віртуальну машину займало 2-3 секунди, зараз це займає більше хвилини.
rboy

14

Хоча я не рекомендую цього, відключити PTI можливо

з параметром командного рядка ядро nopti

за даними Phoronix .

Щоб зробити це, додайте noptiв рядок поруч з лінією , яка починається з GRUB_CMDLINE_LINUX_DEFAULTв /etc/default/grubі потім працює

sudo update-grub

з подальшим перезапуском.

Докладніше про параметри завантаження ядра для відключення функцій безпеки, що стосуються продуктивності, див. У розділі: Spectre & Meltdown MitigationControls в Ubuntu Wiki


1
Яка різниця між завантажувальним парам ядра nopti і pti = off ?
niutech

@niutech немає різниці, для доказу ви можете подивитися тут
nixpower



3

Найпростіший спосіб: зніміть прапорці в конфігурації ядра

-> Параметри безпеки

[] Видаліть відображення ядра в режимі користувача

потім компілюйте нове ядро


1
Ласкаво просимо до Ask Ubuntu! У своїй нинішній формі ваша відповідь не така хороша, як могла б бути. Чи можете ви переглянути, як написати хорошу відповідь та посібник зі стилями для запитань та відповідей . - З огляду
Дж. Старнес

2
На жаль, Дж. Старнес має рацію. Ви більше не збираєте власне ядро, крім крайнього випадку.
Джошуа

Це досить тривіальна зміна параметрів ядра, але, IMO nopti, мабуть, кращий / простіший варіант для першого.
Пантера
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.