Спецпроекты

ПО Безопасность Бизнес Электроника

Линус Торвальдс назвал патчи Intel против «чипокалипсиса» мусором и уродством

Линус Торвальдс раскритиковал патчи, выпущенные Intel для уязвимости Spectre, «абсолютным мусором», и «уродским хаком». В своем гневном послании он также задался вопросом относительно вменяемости Intel.

«Уродский хак»

Создатель Linux Линус Торвальдс (Linus Torvalds) разразился гневным письмом в рассылке разработчиков ядра Linux относительно патчей, которые выпустила компания Intel к печально знаменитой уязвимости Spectre. По заявлению Торвальдса, ничего полезного это исправление не вносит, зато делает массу ненужных вещей.

В основу своих патчей Intel положила технологию Indirect Branch Restricted Speculation (IBRS), позволяющую регулировать спекулятивное исполнение инструкций процессором. IBRS теперь предлагается использовать для адаптивного включения/выключения спекулятивного выполнения косвенных переходов во время обработки прерываний, системных вызовов, переключений контекста между процессами и между виртуальными машинами.

В отличие от предложенного ранее Google решения retpoline патч Intel не требует изменений компонентов в пространстве пользователя при включении полного режима работы (IBRS_ALL).

Высказывая свою позицию, Торвальдс в выражениях не стеснялся, и его письмо, адресованное, в первую очередь, инженеру Amazon и одному из давних соразработчиков ядра Linux) Дэвиду Вудхаусу (David Woodhouse), изобилует заглавными буквами.

Линус Торвальдс раскритиковал патчи Intel

«IBRS_ALL однозначно говорит пользователям: "Intel не относится к этому серьезно; мы сделаем уродский хак [ugly hack], который будет настолько понижать произволительность, что никто не захочет активировать его по умолчанию, потому что на бенчмарках это будет смотреться ужасно”. Поэтому они [Intel] пытаются слить на нас эту дрянь. Причем делают все даже с технической точки зрения неверно, — написал Торвальдс. — Уверен, где-то там сидит юрист, который говорит: “Нам понадобится писать много ходатайств во избежание исков”. Но юридические причины не способствуют появлению ни хороших технологий, ни качественных патчей...»

«Абсолютный мусор»

По мнению Торвальдса, сама технология IBRS никуда не годится. «Эти патчи — полнейший и абсолютный мусор [complete and utter garbage], — написал разработчик. По его наблюдению, текущая имплементация подразумевает, что администраторы и пользователи должны при первой загрузке давать согласие на установку исправления — хотя Spectre и Meltdown это не тот тип уязвимостей, где у пользователя принято спрашивать разрешение.

«Они делают в буквальном смысле безумные вещи. Вещи, которые не имеют смысла... Что за ерунда [f*ck] происходит? И это притом, что абсолютно игнорируется куда более серьезная проблема — а именно то, что весь аппаратный интерфейс делали в буквальном смысле недоумки [morons]», — заявил создатель Linux.

Вудхаус впоследствии признал частичную правоту Торвальдса, отметив, что элемент «добровольности» тут сугубо лишний.

Представители Intel, со своей стороны, поспешили заявить, что со всей ответственностью относятся к ситуации. «Мы самым серьезным образом изучаем реакцию наших отраслевых партнеров, — сообщили они. — Мы также активно сотрудничаем с сообществом разработчиков Linux, включая лично Линуса, по мере того, как стараемся работать над решениями проблем сообща».

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

Что такое уязвимость Spectre

В начале января 2017 г. появилась информация о том, что в процессорах Intel, AMD и ARM64 обнаружены две серьезные уязвимости. Они получили названия Meltdown и Spectre. Meltdown дает возможность пользовательскому приложению получить доступ к памяти ядра, а также к другим областям памяти устройства. Spectre же нарушает изоляцию памяти приложений, благодаря чему через эту уязвимость можно получить доступ к данным чужого приложения. Уязвимость затрагивает все более-менее современные процессоры, причем не только Intelи AMD, но и других производителей. Из-за того огромного количества устройств, которые в итоге оказались под ударом, обнаружение Meltdown и Spectre получило в прессе название «чипокалипсис».

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

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

Ожидается, что в будущих поколениях процессоров эти ошибки будут отсутствовать, но до их реализации пройдет еще какое-то время.

Роман Георгиев

Короткая ссылка