5 лет назад 16 мая 2019 в 19:43 86164

Процессоры Intel оказались под ещё большей угрозой, чем показали уязвимости Spectre и Meltdown. Новое исследование спекулятивного выполнения раскрыло ряд уязвимостей — RIDL, Fallout, STLF и ZombieLoad — почти во всех процессорах Intel, выпущенных с 2011 года, пишет Ars Technica.

Уязвимости обнаружили отдел компьютерных наук Амстердамского свободного университета, Центр информационной безопасности немецкого объединения Гельмгольца, команда Грацского технического университета, Мичиганского университета и Вустерского политехнического института. Компания Intel перепроверила и подтвердила находки исследователей ещё в июне 2018 года, в терминологии компании набор уязвимостей получил название «Микроархитектурная выборка данных» (MDS, Microarchitectural Data Sampling).

MDS объединяет в себе STLF (Store-to-Leak Forwarding), RIDL (Rogue In-Flight Data Load), Fallout, STLF и ZombieLoad. В целом уязвимости аналогичны Spectre, Meltdown и Foreshadow, которые позволяли читать данные из кэша. MDS, в свою очередь, позволяет читать данные из трёх различных мест внутри процессора. Первым таким местом является буфер заполнения строк (LFB, Line Fill Buffer), который используются для загрузки данных в кэш первого уровня. Этот кэш используется тогда, когда процессор намеревается запросить данные из оперативной памяти — перед отправкой запроса проверяется кэш данных первого уровня, и, если в кэше нет нужных данных, то запрос отправляется в основную память. Ответ записывается в кэш, но перед этим данные проходят LFB. Вторая дыра — буферы, в которые процессор помещает данные перед записью в оперативную память. С помощью процесса, называемого «переадресацией из буфера в хранилище» (англ. Store-to-Load Forwarding) эти буферы можно использовать для чтения. Наконец, третья уязвимость кроется в структурах, называемых портами обработки (англ. load ports), которые используются для копирования данных из памяти в регистр.

Все три места могут содержать устаревшие данные: LFB может содержать данные из предыдущего запроса, буферы могут содержать сочетание данных из различных источников (а, следовательно, могут отправить смесь из новых и старых данных на обработку), как и порты обработки, которые могут содержать старые данные в ожидании новых. Как и в уже известных Spectre и Meltdown, уязвимость MDS позволяет получить слегка устаревшие данные, но не из кэша, а из одного из этих буферов. Название «Микроархитектурная выборка данных» группе уязвимостей дано не случайно. Злоумышленник не может контролировать что именно должно оказаться в буферах, некоторые из находящихся в них данных могут представлять интерес для злоумышленника, но будут смешаны с совершенно бесполезными для атаки данными. Чтобы собрать пригодные для использования данные, нужно сделать огромное количество попыток чтения буферов, отсюда слово «выборка» в названии уязвимости.

Усложнить эксплуатацию уязвимости может отключение функции многопоточности процессора, Intel называет эту функцию Hyper-Threading. Полностью устранить уязвимости в уже выпущенных моделях процессоров невозможно, но помочь предотвратить последствия могут обновления микрокода процессоров, которые Intel уже подготовила и передала производителям оборудования. Разработчики операционных систем также готовят патчи, которые помогут устранить некоторые уязвимости. Каждое из этих решений так или иначе снизит производительность процессоров.

Никто не прокомментировал материал. Есть мысли?