Аппаратная защита не помогла: Intel Cascade Lake атакует Zombieload v2
Новейшие процессоры Intel Cascade Lake, которые компания обещала защитить на аппаратном уровне от атак на микроархитектуру и технологию спекулятивных (упреждающих) вычислений, оказались уязвимы к новым видам атаки по побочным каналам на все ту же технологию спекулятивных вычислений.
Новая атака Zombieload v2 стала вариацией на тему так называемых MDS-атак, раскрытых в мае этого года. Атака Zombieload v2 затронула не только старые процессоры Intel, но также линейку новейших серверных процессоров поколения Cascade Lake и производных из этой линейки в виде самых мощных настольных процессоров компании. Например, исследователи показали работу новой уязвимости на моделях Intel Core i9-9900K и Xeon Gold 5218, а ведь они-то были аппаратно защищены от похожей уязвимости Meltdown.
Уязвимость и механизм атаки Zombieload v2 были обнаружены еще в мае вместе с четырьмя другими видами уязвимостей MDS (Microarchitectural Data Sampling, по-русски микроархитектурная выборка данных). Но исследователи скрыли эту информацию до тех пор, пока Intel не смогла подготовить микрокод для защиты от атаки с использованием новой уязвимости. Этот микрокод уже выпущен и Intel рекомендует воспользоваться им всем тем, кто имеет дело с критически важными данными. Что же атакуют "зомби-загрузки" второй версии?
По какой-то злой иронии атаке подверглась технология работы с транзакционной памятью, с которой у Intel уже были проблемы в 2013 году, когда она выпустила процессоры на архитектуре Haswell. Вскоре после этого выяснилось, что работа с транзакционной памятью с помощью инструкций TSX (Transactional Synchronization Extensions) в ряде случаев выполняется с ошибками. Был выпущен патч и рекомендации отключать TSX тем, кому это не нужно. Сам набор инструкций TSX помогал ускорять работы баз данных, что было критично для Xeon и не очень для Core. Атака Zombieload v2, как выяснилось, тоже бьет по TSX.
Прежде, чем перейти к Zombieload v2, вспомним о Zombieload. Как уже сказано выше, атака Zombieload использует уязвимости в спекулятивном механизме вычислений с извлечением (выборкой) данных из микроархитектуры процессоров, в частности, из буферов и портов. Это дает возможность злоумышленнику вытащить из буферов информацию, включая пароли и прочее. По большому счету Zombieload относится к тому же классу атак, что и Meltdown, и Spectre? она атакует по побочным каналам, чтобы получить доступ к данным, хранящимся в местах, которые непосредственно не подвержены атаке. Конкретно Zombieload позволяла следить за действиями пользователя в сети, включая Интернет и несмотря на установленное защитное ПО и работу с с использованием браузера Tor.
Атака Zombieload v2 с официально присвоенным индексом CVE-2019-11135 эксплуатирует операцию асинхронного прерывания в механизме Transactional Synchronization Extensions. В Intel назвали уязвимость TAA (TSX Asynchronous Abort). Злоумышленник, используя TAA и вредоносный код, запускаемый на атакуемом процессоре, вызывает конфликт между операциями чтения в процессоре. Конфликт ведет к утечке данных о том, что обрабатывается процессором. Эта уязвимость затрагивает все процессоры компании с технологией TSX, а внедрена она была с 2013 года и, как видим, даже перекочевала в неизменном (уязвимом) виде в самые современные процессоры Intel.
По словам Intel, уязвимость Zombieload v2, во-первых, уже закрыта микрокодом и, во-вторых, трудно реализуема на практике. Компания не считает эту атаку чем-то опасным, хотя рекомендует обновить микрокод всем, кто оперирует чувствительными к утечкам данными. Но даже запуск на процессоре вредоносного кода с использованием Zombieload v2 не дает никаких гарантий кражи чувствительных данных, заявляют в Intel. Злоумышленник не сможет контролировать утечки и извлекать то, что ему нужно. В крайнем случае, предлагают в Intel, просто отключите поддержку процессором инструкций TSX. Это снизит производительность при обработке больших массивов данных, но позволит спать спокойно.
Впрочем, исследователи докладывают, что Intel не смогла в полной мере защититься даже от обнаруженных в мае уязвимостей MDS (и Zombieload). Набор инструкций VERW, который должен был защитить от четырех уязвимостей MDS, оказалось можно обойти, что и было продемонстрировано. В Intel признались, что VERW действительно не дает полной защиты от атак на микроархитектуру, а лишь усложняет проведение этого типа атак. Враги! Кругом враги.