Один из ведущих разработчиков ядра Linux Грег Кроа-Хартман считает, что одновременная многопоточность Intel (SMT) должна быть отключена для обеспечения безопасности.
Самой последней уязвимостью, обнаруженной ранее в этом году, была уязвимость Microarchitectural Data Sampling (MDS), и она являлась продолжением атак Spectre / Meltdown, раскрытых годом ранее, поскольку в ней использовалась спекулятивная модель выполнения, обнаруженная в процессорах Intel.
«Уязвимость MDS — это место, где одна программа может читать данные другой программы. Это плохо, когда вы работаете в общей среде, такой как облачные вычисления, даже между вкладками браузера».
«Многие из них могут пересекать границы виртуальных машин. В MDS используется тот факт, что процессоры являются гиперпоточными (используют технологию Hyper-Threading), с несколькими ядрами на одном кристалле, которые совместно используют кэши. Во время обмена кэшами, можно определить, что делало другое ядро процессора». – сообщает Грег Кроа-Хартман.
Есть и другая проблема: «Люди не понимают, как мы создаем обновления безопасности, всю эту неразбериху с CVE, которые нам нужны. Linux не меньше безопасен и не менее безопасен, чем что-либо другое. Проблема в том, что это ошибки в чипах. Мы исправляем их вовремя, но мы должны убедиться, что все обновляются, применяя обновления безопасности».
Оказывается, сообщество OpenBSD (свободная многоплатформенная операционная система, основанная на Unix), намного опередив самих разработчиков Linux, первым поняло, что технология, на которой базировалось спекулятивное выполнение, а именно SMT (одновременная многопоточность) от Intel, где центральный процессор разделяется на несколько виртуальных ядер, была проблематичной. И они же призвали отключить SMT в июне 2018 года, задолго до появления Zombieload, RIDL (Rogue Inflight Data Load), Fallout, MDS и других уязвимостей. Все они являются вариациями одних и тех же базовых уязвимостей, и поэтому отключение многопоточности устранило многие из возникших проблем.
По словам Кроа-Хартмана, хотя это и аппаратные ошибки, ядро операционной системы должно их исправлять. Для предотвращения подобных атак, пользователи должны отключить гиперпоточность, обновить используемое ядро системы и BIOS своего оборудования. «Если вы просто выполните только одну из рекомендаций, то вы не будете в безопасности», - сказал он. Например, RIDL и Zombieload могут похищать данные между приложениями, виртуальными машинами и даже защищенными анклавами (Secure Enclave).
Цена безопасности
Недостатком исправления этих уязвимостей является тот факт, что процессоры будут работать медленнее.
Неудивительно, что большая часть работы самого Кроа-Хартмана по поддержке старых версий ядра Linux — это сборка ядер, процесс, который сильно загружает процессор. «Чем больше у меня процессоров, тем лучше», - сказал он. Даже при включенной гиперпоточности он стал свидетелем примерно 2-процентного снижения производительности ЦП при использовании новых исправлений. Когда же он отключил гиперпоточность, замедленнее процессора стало достигать до 15%.
Тем не менее, каждый конечный пользователь должен протестировать собственные рабочие нагрузки, чтобы убедиться в производительности. Некоторые рабочие нагрузки могут вообще не замедляться, другие могут сильно замедлиться.
Об оповещениях Intel
В качестве заключительной темы, Кроа-Хартман углубился в процесс оповещения Intel об обнаружении уязвимостей. Резюмируя: на начальном этапе это могло быть лучше, и все еще есть возможности для улучшения.
По его словам, в прошлом году во время обнаружения первых уязвимостей Spectre и Meltdown, Intel проинформировала сообщество Linux лишь на поздней стадии. Разработчики из Linux были застигнуты врасплох, что позволило стать пользователям Linux уязвимыми для атак.
В дальнейшем Intel подготовили определенный, достаточно быстрый способ оповещения и взаимодействия. Это позволило сообществу Linux подготовить исправления до того, как было сообщено об уязвимостях. Однако, не все были проинформированы. Разработчикам дистрибутива Debian сообщили лишь за 48 часов до релиза. К их чести, команда Debian пыталась подготовить патчи.
AMD или Intel?
AMD безопаснее Intel? «Все проблемы, которые появились в этом году, не затронули AMD», - ответил Кроа-Хартман. Будет ли он включить SMT на AMD? «На сегодняшний день это все еще безопасный вариант из всего, что я знаю. Да».
Заключение
Уязвимости MDS активно используются вредоносными программами? «Их не так сложно эксплуатировать», - сказал Кроа-Хартман. «Исследование показало, как это сделать. Сложность в том, что никто не может сказать, используются ли уязвимости. Но это известная проблема, вы можете воспроизвести ее самостоятельно. У ребят из Zombieland отличная демоверсия. Это реальная проблема и её нужно решать».