Отец Linux призвал отключить защиту от «чипокалипсиса»
Средства защиты от «чипокалиптической» атаки активируются в операционных системах автоматически и сильно сказываются на быстродействии компьютеров. Основатель проекта Linux считает, что защита от SpectreV2 должна быть сугубо опциональной.
Защита от «чипокалипсиса» вредна
Основатель проекта по созданию Linux Линус Торвальдс (Linus Torvalds) заявил, что защиту от «чипокалиптических» атак Spectre V2, реализованную на уровне операционной системы, следует отключить. Причиной столь неожиданного заявления стал тот факт, что реализованная защита в процессорах с поддержкой технологии Hyper-Threading существенно (до 50%) снижает их производительность.
В начале этого года стало известно, что процессоры Intel содержат ряд уязвимостей, которые делают возможными атаки спекулятивного выполнения инструкций.
В целях оптимизации быстродействия CPU прогнозируют ветвление команд и на основе этих прогнозов производят спекулятивное их выполнение. Если прогноз оказывается ошибочным, выполнение откатывается, но в кэше остаются определенные данные. И злоумышленник может с помощью вредоносного ПО вынудить процессор выполнить нужные ему прогнозы и использовать это для кражи данных.
Напомним две серьезные уязвимости — Spectre и Meltdown — были обнаружены в январе 2018 г. в процессорах Intel, AMD и ARM64. Meltdown давал возможность пользовательскому приложению получить доступ к памяти ядра, а также к другим областям памяти устройства. Spectre же нарушал изоляцию памяти приложений, благодаря чему через эту уязвимость можно получить доступ к данным чужого приложения. В совокупности эти проблемы и получили название «чипокалипсиса». Позже выяснилось, что под угрозой находятся не только центральные, но и графические процессоры.
Технические подробности
Защита от Spectre и Meltdown требует, в разных случаях, внесения патчей в микрокод процессоров или в операционные системы. Защита от Spectre V2 реализована на уровне ядра Linux, начиная с версии 4.20; позднее ее перенесли и на более раннюю версию — 4.19.2. Защитная функция носит название STIBP (Single Thread Indirect Branch Preditors — косвенные предикторы ветвлений одиночного потока): она предотвращает возможную эксплуатацию модуля прогнозирования ветвлений при спекулятивном исполнении инструкций процессором, и, соответственно, блокирует возможность вывода данных.
Но при этом сильно страдает производительность, особенно в процессорах, поддерживающих одновременное многопоточное выполнение функций (simultaneous multi-threading — SMT). Настолько сильно, что, по мнению Линуса Торвальдса, многие пользователи начинают задумываться, а есть ли вообще какой-либо смысл в этой защите. «Тогда лучше вообще отключать SMT, что люди, озабоченные своей безопасностью, и так делают», — говорит Торвальдс.
Директор команды разработчиков ядра в SUSE Labs Иржи Косина (Jiri Kosina) заметил, что на практике атака Spectre V2 может подразумевать использование JavaScript в одной вкладке браузера для атаки на приватные данные в другой вкладке. Торвальдс с большой долей скепсиса ответил, что атака Spectre вообще реализуема в куда меньшей степени, чем, например, Meltdown.
«Вы вообще наблюдали реалистичные атаки на обычных пользователей, такие, которые вообще каким-либо образом должны заботить ядро? — вопрошает он в рассылке для разработчиков. — Вариант с JavaScript — это проблема браузеров, ядро не должно решать, что теперь все должно работать на 50% медленнее».
Так ли все плохо?
Не все, впрочем, считают, что STIBP оказывает столь негативное воздействие. Инженер в Центре открытых технологий Intel Тим Чень (Tim Chen) написал, что при тестах замедление составило не более 21%. Впрочем, реальное снижение производительности зависит от многих факторов, в том числе, нагрузки и аппаратной части.
Торвальдс, однако, настаивает на выпуске нового патча, который сделает использование STIBP опциональным, а не обязательным, как сейчас. С ним согласился Арьян ван ден Вен (Arjan van de Ven), соразработчик ядра Linux и заслуженный исследователь Intel. «В своей документации AMD официально рекомендует не использовать STIPB по умолчанию, и я могу сказать, что мы в Intel исходим из той же позиции: по умолчанию эту функцию лучше не активировать», — Лучше использовать эти инструменты более тонко, например, когда этого требует “параноидальная” задача или когда вам нужна хардкорная безопасность для определенных действий. Но все время? Это ой».
«В IИТ-сфере часто нужно решать вопрос о количестве ресурсов, которые можно выделить на безопасность системы, — говорит Роман Гинятуллин, эксперт по информационной безопасности компании SEC Consult Services. — Антивирусы замедляют работу операционных систем, собственные средства защиты ОС могут притормаживать запуск приложений и так далее. Вопрос в том, когда компромисс между безопасностью и производительностью системы перестает так или иначе устраивать пользователей. Замедление на 20-50% — слишком высокая цена для защиты от атаки, потенциальные потери от реализации которой у многих вызывают вопросы».