LINUX.ORG.RU

Разработчики Linux и Windows работают над закрытием аппаратной уязвимости процессоров Intel

 , , ,


10

8

Ошибка проектирования всех процессоров Intel, выпущенных за последние 10 лет, заставила разработчиков Linux и Windows в срочном порядке перерабатывать схему разделения адресных пространств ядра и пользователя, брешь в которой вызвана этой ошибкой. По известным сейчас данным, переработка требует модификации критических частей ядра и приводит к падению производительности приложений от 5 до 30% (чипы Intel 2010 года и новее имеют в своём арсенале возможности, чтобы сократить это падение).

Суть уязвимости, скорее всего, заключается в том, что спекулятивное исполнение кода косвенно нарушает контроль доступа, и это позволяет приложению «видеть» содержимое защищенного адресного пространства ядра (раннее описание). Детали уязвимости находятся под эмбарго до выпуска исправлений, который намечается на середину января 2018, когда выйдет новое ядро Linux и ежемесячное обновление безопасности для Windows.

Для решения проблемы разработчикам ядер пришлось полностью разделить память ядра и память пользовательских процессов, однако такое решение приводит к серьёзному падению производительности из-за необходимости сброса части кэша транслированных виртуальных адресов (TLB) при входе в ядро.

Разработчики ядра Линукса в шутку предлагали следующие аббревиатуры для новой модели разделения памяти ядра и пользовательских процессов: User Address Separation (*_uass) и Forcefully Unmap Complete Kernel With Interrupt Trampolines (fuckwit_*), однако остановились на Kernel Page Table Isolation (kpti_*).

Компания AMD утверждает, что её процессоры уязвимости не подвержены.

Обсуждение патча на LWN, с результатами тестов.

Общие подробности от издания The Register

>>> Технические подробности, демонстрационный код PoC

★★★★★

Проверено: tailgunner ()
Последнее исправление: anonymous_incognito (всего исправлений: 6)
Ответ на: комментарий от h578b1bde

не 10. Амуде у меня еще со времен К-сколько-то который был аналогом 486. Учись студент прозорливости.

mos ★★☆☆☆
()
Ответ на: комментарий от Iron_Bug

аналогично. если я у себя на машине не запускаю виртуализацию и левых юзеров нет в приципе, то на какого пуркуа мне потеря производительности из-за попаболи облачных серверов?

Чтобы макском через жаваскрипт не поимел твой компьютер. С чего ты взяла, что это только облачных серверов касается? Если ты не столман и сидишь в нормальном интернете, на твоём компьютере постоянно исполняются мегабайты кода, про который ты понятия не имеешь.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Aceler

Я правильно понимаю, что с исправлением система начнет работать безопасно, но медленно?

Мне кажется, что да, но другие пишут, что это mitigation, а не исправление.

tailgunner ★★★★★
()
Ответ на: комментарий от praseodim

Сделай нормальный тест, пожалуйста.

На нормальный сейчас времени нет. Но на глазок уже заметно вот что: сборка ядра заметно сильнее нагружает проц в системе с включённым PTI. (Это я собрав ядро с поддержкой PTI и перезагрузившись в него, решил собрать и другое, без поддержки. У меня AMD, первое будет для тестов, второе для использования.)

anonymous
()
Ответ на: комментарий от GladAlex

Интел с огромным удовольствием исправит эту ошибку аппаратно. Возможно новые конвееры по производству чипов уже строятся, а экономический отдел рассчитывает рыночную цену новых, совершенно безопастных моделей.

kirill_rrr ★★★★★
()

Я правильно понимаю, что теперь вместо б/у пролианта с ксеоном можно брать б/у пауэрэдж с оптероном и получить те же попугаи за сумму в полтора раза меньше?

lizard ★★★
()
Ответ на: комментарий от fornlr

Никакого. Как и твое утверждение об отстутствии преимуществ в производительности у 32 бит. Ок, тут реально уже оффтоп пошел.

Man-o-Jar
()
Ответ на: комментарий от Polugnom

Надеюсь пользователей кукурзных AMD все эти исправления штеудо-проблемм не заденут?

В 4.14.11 это «исправление штеудо-проблемм» включено для всех и заметно тормозит на моём AMD, как я уже писал выше.

Впрочем, отключить его при сборке ядра никто не мешает.

В следующих версиях, может быть, примут тот самый патчик для AMD.

anonymous
()
Ответ на: комментарий от anonymous

На нормальный сейчас времени нет.

7z b запустить и проверить - дело максимум пяти минут, с учетом его скачивания, если не стоит.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от Legioner

На твоем компутере просто исполняются мегатонны кода, про который ты ничего не знаешь. Так вернее.

mos ★★☆☆☆
()
Ответ на: комментарий от tailgunner

Ты считаеш 7z b релевантным бенчмарком?

Релевантным чему?

7z - это уже хоть какие-то конкретные цифры для конкретного многопоточного и вычислительно-емкого приложения. То есть, примерно можно будет уже что-то практически оценить, а не по абстрактным заявлениям. Он есть в большинстве реп и его можно быстро запустить и проверить результат.

Ну или предложи что-то лучшее? Речь же пока не идет о том, что бы десятки разных тестов запустить для сравнения.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 2)
Ответ на: комментарий от Sorcerer

Гребанные процессоры не ржавеют, с них не облазит краска

А как же термопаста под капотом?

А что с ней не так?

Legioner ★★★★★
()
Ответ на: комментарий от fornlr

С Новым Годом! Как подарочек себе? Нравится? :D

anonymous
()
Ответ на: комментарий от praseodim

В топике речь про то, что системные вызовы станут тяжелее. В 7z из системных вызовов только ввод-вывод, да и тот буферизован, то бишь разницы ты не увидишь. А нормальные тесты можешь посмотреть на форониксе.

Legioner ★★★★★
()
Ответ на: комментарий от praseodim

Ты считаеш 7z b релевантным бенчмарком?

Релевантным чему?

Проблеме.

7z - это уже хоть какие-то конкретные цифры для конкретного многопоточного и вычислительно-емкого приложения

Я же написал в новости, что именно и почему замедляется. А конкретные цифры... вот тебе конкретные цифры: 15.

практически оценить, а не по абстрактным заявлениям

В начале обсуждения приведены ссылки на LWN, где даются результаты тестов: https://lwn.net/Articles/742404/

tailgunner ★★★★★
()
Ответ на: комментарий от mos

На твоем компутере просто исполняются мегатонны говнокода, про который ты ничего не знаешь.

Obvious fix.

h578b1bde ★☆
()

Новый год начался хорошо... сколько там уже лет закон Мура не действует.

Нужно поднять объёмы продаж, а давайте обнаружим уязвимость, Yep!

Twissel ★★★★★
()

Компания AMD утверждает, что её процессоры уязвимости не подвержены.

У компании amd научились бэкдоры в микрокод пихать зато)

devl547 ★★★★★
()
Ответ на: комментарий от pftBest

любой вебсайт сможет прочитать все твои пароли

Как минимум, нужна еще одна уязвимость, позволяющая эксплуатировать запуск произвольного кода.

Infra_HDC ★★★★★
()
Ответ на: комментарий от Legioner

А что с ней не так?

Она высыхает и через пару лет проц уже не гонится без скальпинга. И скальпинг с заменой на жидкий металл дает -25 -10 температуры cpu в жестких бенчах.

KillTheCat ★★★★★
()
Ответ на: комментарий от Iron_Bug

У меня еще один сервак не лезет в бюджет. Вот в чем проблема.

anonymous
()
Ответ на: комментарий от praseodim

Пишут, что на 7z незаметно изменение производительности.

(kernel 4.14.10-2-zen vs 4.14.11-1-zen)

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от Infra_HDC

Почему, уязвимость не нужна. Есть достаточно технологий которые позволяют запускать нативный код в браузере, например pnacl.

pftBest ★★★★
()
Ответ на: комментарий от Iron_Bug

«640kb хватит всем!» ©

И ведь он, в принципе, был прав. Осталось быдлокодерам донести в головы, что 640kb это много

anonymous
()

Аппаратный Heartbleed, лол?

EXL ★★★★★
()

АМДэшники годно унизили-подъе^Wподкололи иньтель:

-	/* Assume for now that ALL x86 CPUs are insecure */
-	setup_force_cpu_bug(X86_BUG_CPU_INSECURE);
+	if (c->x86_vendor != X86_VENDOR_AMD)
+		setup_force_cpu_bug(X86_BUG_CPU_INSECURE);

paran0id ★★★★★
()
Ответ на: комментарий от Aber

А еще я пользуюсь смартом lg p500 на android 2.2 с 2010 года, стоковый аккум до сих пор держит до 7 дней, а uptime до 200 дней.

спокойно, парень! не делай резких движений!

а теперь мееедленно отключи зарядку от смарта и положи её на пол...

anonymous
()
Ответ на: комментарий от praseodim

Уговорил. С тебя толкование всех этих цифр. На глаз, опять же, проц заметно сильнее нагружается в первом случае.

Раз:

$ uname -r
4.14.11-1
$ zgrep -i isolation /proc/config.gz
CONFIG_PAGE_TABLE_ISOLATION=y
$ 7z b

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs AMD FX(tm)-8350 Eight-Core Processor            (600F20),ASM,AES-NI)

AMD FX(tm)-8350 Eight-Core Processor            (600F20)
CPU Freq:  4127  4204  4180  4207  4206  4207  4207  4206  4206

RAM size:   32089 MB,  # CPU hardware threads:   8
RAM usage:   1765 MB,  # Benchmark threads:      8

Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:      22082   666   3223  21482  |     280347   761   3142  23912
23:      21021   672   3188  21419  |     281818   772   3157  24388
24:      21535   703   3293  23155  |     280522   780   3158  24621
25:      20792   706   3364  23740  |     276386   781   3149  24597
----------------------------------  | ------------------------------
Avr:             687   3267  22449  |              774   3151  24380
Tot:             730   3209  23414

Два:

$ uname -r
4.14.11-2
$ zgrep -i isolation /proc/config.gz
# CONFIG_PAGE_TABLE_ISOLATION is not set
$ 7z b

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=ru_RU.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs AMD FX(tm)-8350 Eight-Core Processor            (600F20),ASM,AES-NI)

AMD FX(tm)-8350 Eight-Core Processor            (600F20)
CPU Freq:  4186  4171  4205  4208  4208  4208  4207  4209  4208

RAM size:   32089 MB,  # CPU hardware threads:   8
RAM usage:   1765 MB,  # Benchmark threads:      8

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:      19218   588   3182  18696  |     287142   780   3140  24492
23:      21245   669   3235  21647  |     283866   783   3138  24565
24:      21086   686   3307  22672  |     277397   773   3149  24347
25:      20986   706   3394  23962  |     275456   780   3141  24515
----------------------------------  | ------------------------------
Avr:             662   3279  21744  |              779   3142  24480
Tot:             721   3211  23112

anonymous
()
Ответ на: комментарий от KillTheCat

Она высыхает и через пару лет проц уже не гонится без скальпинга. И скальпинг с заменой на жидкий металл дает -25 -10 температуры cpu в жестких бенчах.

Разгон процессора даже гарантией не покрывается. Это не поддерживаемый производителем режим работы для энтузиастов, который ты используешь на свой страх и риск. Высыхание термопасты через два года это ещё не самое страшное, что может случиться. В обычном режиме работы проблем нет.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от ritsufag

А в windows такого не наблюдается, потому что производительность windows по сравнению с линуксом и так на уровне плинтуса

jistake
()

Мдяяя, Зион 1230v3 был неплохим проциком, молотил себе на 1.6ггц и всего хватало, а теперь это тыква, тыква!!!аааааа

Deleted
()

Вообщем, ждем патчей от RHEL.

Как скоро могут выпустить для ядер 2.6.32-ххх ?

int13h ★★★★★
()
Ответ на: комментарий от Legioner

Это не поддерживаемый производителем режим работы

А то что они множитель разблокировали и дописали K в название - чистая случайность?

В обычном режиме работы проблем нет.

Ну, жесткий бенчмарк легко отправит старый проц в троттлинг если ты поставить СО ориентируясь на потребление проца на базовой частоте (а проц не работает на базовой).

KillTheCat ★★★★★
()
Ответ на: комментарий от greenman

C какой стати он даст прирост?

Покупаешь новый процессор, с красной крышечкой без этой дыры, получаешь прирост (минимум на эту самую просадку).

C какой стати он даст прирост? Разве только после просадки на величину той самой просадки.

Windows ★★★
()
Ответ на: комментарий от Aber

У меня телек стоит с 98ого, и до сих пор робит, один раз мастера вызывали. Я к нему подключаю ноут по переходнику от нечего делать, и музон слушал с колонками, там 3.5 джэк есть

jistake
()
Ответ на: комментарий от greenman

Разве я не об этом написал?

Запутанная тема. Кто-то говорил о росте акций Intel из-за прироста производительности. Просто хочу понять прирост относительно чего? Относительно просадки после патча и относительно того, что было до просадки перед патчем?

Windows ★★★
()
Ответ на: комментарий от Iron_Bug

производитель идёт на поводу у говнокодеров. говнокод жрёт ресурсы, процы становятся мощнее, и, считая, что так и надо, говнокод становится хуже и хуже и жрёт ещё больше

Да причем тут это? Основная проблема в экономике, а не в людях. Когда приоритет отдается скорости выхода на рынок, а не качеству, то качество будет страдать.

вообще, для пользы дела надо программистов обучать на компах с памятью 1 гигабайт и процом 1 гигагерц. когда они научатся правильно управлять ресурсами - можно давать больше :)

Сама наивность. А потом менеджеры будут ставить дедлайны и дрючить этих программеров. И по итогу всё снова скатится в говнокод...

foror ★★★★★
()
Ответ на: комментарий от greenman

сарказм - понятно

Да сарказм это.

Тогда понятно.

Windows ★★★
()
Ответ на: комментарий от tailgunner

См. выше

$ uname -r
4.14.11-1
$ zgrep -i isolation /proc/config.gz
CONFIG_PAGE_TABLE_ISOLATION=y
greenman ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.