Вчера стало известно о серьезной уязвимости во всех процессорах Intel, выпущенных за последние десять лет. Обнаруженный баг связан с безопасностью пользователя, поэтому его исправление — обязательное мепроприятие.
Вот только попытка исправить уязвимость приведет к замедлению абсолютно любого компьютера, неважно это Windows, Linux или macOS – совместимая машина.
Попробуем объяснить, в чем причина такого серьезного фейла Intel, который можно смело отнести к крупнейшему в истории чипмейкера.
Это пояснение приводит один из пользователей форума Reddit. Оно максимально адаптировано под рядового потребителя и может вызвать улыбку у технически подкованного специалиста. Но главное в тексте — максимально наглядно пояснить суть уязвимости.
Как работает процессор и программы
Операционная система — это посредник между оборудованием и программным обеспечением (ПО). Задача операционной системы — планировать и распределять ресурсы (мощность процессора и память) при соответствующем запросе от ПО.
Из соображений безопасности процессора имеет два режима: пользовательский режим и режим ядра. В первом работают все приложения и программы, во втором выполняются операции, которые невозможно выполнить в пользовательском режиме.
Итак, предположим, что вы работаете с браузером Chrome и в какой-то момент вам нужно сохранить что-то на жесткий диск (либо браузер планирует сделать это самостоятельно, без вашего ведома).
В этом случае Chrome посылает запрос операционной системе, операционная система сообщает о необходимости записи на жесткий диск процессору, процессор разрешает эту операцию и подтверждает ее ОС, после чего ОС обращается к процессу Chrome.
Установленная в компьютере память разделена на ячейки. При работе с приложениями все процессы ссылаются на определенные ячейки памяти, но не на физические, а на виртуальные. Такие виртуальные ячейки сортируются на так называемые страницы, имеющие определенный размер. Например, 1 килобайт.
В процессоре хранится таблица страниц для каждого процесса, которая точно демонстрирует какая страница виртуальной памяти соответствует конкретному разделу физической памяти.
Выглядит это примерно так:
Для любого процесса выделяется определенный размер физической памяти, в котором хранятся данные на весь период работы. В свою очередь, часть памяти использует и операционная система.
В чем ошибка Intel
В целях безопасности процессоры Intel хранили часть памяти ядра отдельно от самого процесса. Т.е. происходила ситуация, при которой процесс конкретного приложения «уверен», что его таблица (ссылок на память) имеет 2 000 страниц.
На самом же деле страниц 2 400, 400 из которых не в курсе того, что ОС хранит дополнительные ссылки на физическую память.
Когда процесс посылает запрос на обработку операционной системе, а та, в свою очередь, передает запрос процессор, он сначала переключается в режима ядра для сверки таблицы страниц, а затем обратно в пользовательский режим.
Так должен работать процессор. Но выяснилось, что обычный процесс может вполне получить доступ к таблицам, хранящимся в режиме ядра. Как именно это происходит, Intel пока не сообщает и обещает раскрыть все подробности к концу января.
Почему все очень грустно
Если это действительно так, то мы сталкиваемся со следующей ситуацией. Сейчас все процессоры работают по такой «упрощенной схеме», при которой любое приложение имеет доступ к закрытому режиму ядра процессора. Мы уже воспринимаем это как данность и привыкли к такому темпу работы нашего ноутбука или компьютера.
Исправление бага означает лишь одно. Процесс будет отсылать запрос операционной системе —> ОС оповещать об это процессор —> процессор переключаться в режим ядра для сверки таблицы страниц —> сверив таблицы страниц процесса с таблицами страниц ядра процессор обратно переключится в пользовательский режим.
Так изначально должны были работать все процессоры Intel. Но они так не работали, а с точки зрения безопасности это очень плохо.
Как результат, выпуск нового патча для устранения уязвимости (а заниматься этим будут разработчики операционных систем Windows, Linux и macOS) может замедлить наши компьютеры и ноутбуки вплоть до 30%.
Таковы печальные реалии, с которыми придется смириться.
10 комментариев
Форум →Наконец-то будут хоть как-то задействованы дополнительные ядра, простаивающие в бытовых задачах без дела.)))))
давно бы послали этих интел и нивидию и клепали свои А-чипы в маки
@Илья Березовский, не поможет – эта же уязвимость есть и в ARM64.
Глупые copy pasteы – на reallife нагрузках разница не более 5%
@iAur, на свежих 5%, на старых 30%, Intel не глупее Эппл в новых процессорах мизерный прирост производительности а продавать нужно
@ya ne robot, :D :D :D точно! теория заговора! )
идите учите мат часть и как устроены ОС. самый большой overhead на syscall’ах которые делают мизерную работу – типа getpid, gettimeoffday и прочие. на всех остальных – не заметно. поэтому большая часть программ никак не заметит overhead.
@iAur, а ты думал лол что корпорации для тебя стараются, ну уморил … )))
Оставь адрес я тебе результаты скину, грамотный ты наш
dislike вам.
Пустая статья.
да пропатчили уже, в конце ноября, ничего хуже не стало
харош нагнетать уже
А с какого поколения процессоров Intel касается эта уязвимость?
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Как восстановить недавно удаленные файлы из iCloud
Как проверить, не привязан ли iPhone к какому-то оператору
Как отформатировать флешку в NTFS на Mac
Как обновить прошивку беспроводной гарнитуры Beats?
Как увеличить размер шрифта на iPhone
Как выводить звук Mac на разъём наушников и HDMI одновременно
Как отвязать Apple Watch от iPhone, если смартфон украли
Как синхронизировать заметки с iPhone на Android-смартфоне