Разработка патчей для предотвращения эксплойта уязвимостей Meltdown и Spectre, опубликованных на прошлой неделе, идет полным ходом. Реальных атак на устройства, использующие уязвимые микропроцессоры Intel, AMD и ARM, на настоящий момент не зафиксировано.

В настоящее время усилия вендоров по защите направлены на исключение трех векторов возможных атак. Патчи против Meltdown реализуют техники KPTI (Kernel Page Table Isolation — изоляция таблицы страниц ядра) и KAISER (Kernel Address Isolation to have Side-channels Efficiently Removed — изоляция пространства адресов ядра во избежание атак по стороннему каналу). В минувший четверг специалисты Google рассказали о программной конструкции retpoline, созданной ими для защиты от атак Spectre.

Компания Intel на прошлой неделе заявила, что она “разработала и ускоренными темпами выпускает обновления для всех типов компьютерных систем на базе Intel”, включающие патчи для программного обеспечения и апдейты прошивки, которые “иммунизируют” более 90% процессоров, появившихся за последние пять лет. Разработчик обещает завершить эти энергичные усилия по патчингу к концу текущей недели.

Эксперты, со своей стороны, считают, что “иммунизация” от обоих вариантов Spectre — задача не из легких. Напомним, на настоящий момент известны два сценария Spectre-атак: bounds check bypass (обход проверки границ) и branch target injection (манипуляция целевым кэшем адресов ветвлений). Атака Meltdown определяется как rogue data cache load — получение данных, осевших в кэше.

“Meltdown — это хорошо определенная уязвимость, при которой программа режима пользователя может получить доступ к привилегированной памяти режима ядра, — поясняет Джефф Танг (Jeff Tang), старший аналитик в Cylance. — По этой причине пропатчить Meltdown значительно легче, чем Spectre, — достаточно сделать так, чтобы распределение памяти ядра не отображалось в режиме пользователя, что и получается при изоляции таблицы страниц ядра (KPTI)”.

Уязвимости Spectre гораздо труднее использовать, так как при этом нарушается изоляция памяти приложений, однако пропатчить их тоже нелегко. Бен Карр (Ben Carr), вице-президент Cyberbit по вопросам стратегического развития, убежден, что ни один из выпущенных патчей не способен надежно защитить от атак Spectre, и что такое решение потребует дополнительных усилий. Эксплойт Spectre, по его словам, не полагается на конкретную функцию системы процессора, отвечающей за управление памятью и ее защиту, поэтому такие атаки будут проводиться как часть общей стратегии по подрыву работы ЦП.

“Случай со Spectre — это класс атак, а не конкретная уязвимость, — говорит Карр. — Эксплойт здесь основан на побочных эффектах спекулятивного выполнения инструкций, а точнее, на прогнозировании ветвлений. Такие эксплойты будут оптимизированы, продолжат развиваться и изменяться, что сильно усложнит создание патчей”.

Эксперты также не преминули отметить, что противодействие Spectre-атакам потребует более четкой координации усилий всех заинтересованных сторон. Так, Алекс Ионеску (Alex Ionescu) из CrowdStrike полагает, что для защиты от bounds check bypass (первый вариант Spectre) вендоры должны выпустить специально скомпилированные бинарные коды, а против branch target injection (второй вариант) — обновление микрокода, распространяемое через OEM-партнеров Intel, а также патчи для ядра ОС с учетом обновления микрокода.

“Все основные браузеры получили заплатки; следует также пропатчить и JIT-движок ядра Linux, — комментирует Ионеску первый вариант Spectre-атаки. — Отдельные патчи должны получить также прочие JIT-приложения, библиотеки и компоненты ядра, способные запускать произвольные коды”.

Microsoft, по словам эксперта, выпустила патч для защиты ядра Windows от Spectre-атак по сценарию 2. Разработчики Linux в настоящее время встраивают такую же заплатку в основное ядро, чтобы обеспечить соответствующее обновление дистрибутивов.

Поскольку патчи против Spectre требуют новых техник защиты, производители программных продуктов должны модифицировать свои компиляторы и выпустить новые сборки с патчами, а пользователи — установить их. “Это настоящий конвейер по устранению единственной уязвимости, притом с огромным окном возможности для злоупотреблений”, — отметил Танг.

Защита от Spectre также не терпит отлагательств. В случае с Meltdown атакующий должен вначале проникнуть в целевую систему, а Spectre-атаки можно проводить по-разному и удаленно — например, через браузер. “Атака с помощью JavaScript позволяет получить содержимое памяти браузера и может повлечь кражу учетных данных и ключей сеанса связи в обход множества средств защиты”, — констатирует Джимми Грэм (Jimmy Graham), директор по управлению продукцией в Qualys.

На прошлой неделе Mozilla вслед за Microsoft и Google обновила свой браузер, сильно затруднив эксплойт Spectre.

Еще одна проблема, связанная с латанием Spectre, — снижение производительности ЦП, намного более заметное, чем при установке патчей для Meltdown. Google пишет, что техника retpoline уже развернута в облачной инфраструктуре и ее влияние на производительность “ничтожно”.

Retpoline-патч способен защитить от атак Spectre по сценарию 2 (branch target injection) — самых каверзных — и предполагает наличие обновлений микрокода. Intel пообещала такие апдейты, а AMD их уже предлагает.

“Техника Retpoline в настоящее время вводится в компилятор Clang/LLVM как средство защиты от одного из вариантов Spectre-уязвимостей, — говорит Танг. — Однако компилятор LLVM преимущественно используется в Apple macOS, некоторых Linux и BSD-дистрибутивах, а также в Google Chrome. В этом списке отсутствуют Microsoft Windows и другие популярные программы для Microsoft Windows, которые обычно используют компилятор C/C++ производства Microsoft”.

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

“Поскольку внимание к атакам на механизм спекулятивного выполнения инструкций (по стороннему каналу) растет, а наличные обновления — лишь ограничительные меры, можно ожидать появления весьма изобретательных путей обхода, способных продлить жизнь этим уязвимостям либо породить новые бреши того же класса”, — предупреждает Танг. В подтверждение своих прогнозов эксперт напомнил, что баги переполнения буфера и Heartbleed долгие годы “аукались” в виде уязвимых программ. Meltdown и Spectre, по его мнению, окажут аналогичное влияние на ИБ-пространство.

Категории: Главное, Кибероборона, Уязвимости