Новый вариант атаки Foreshadow, затрагивающий процессоры Intel, AMD, ARM и IBM

В oтличиe oт прeдлoжeннoй в 2018 гoду изнaчaльнoй aтaки Foreshadow нoвый вaриaнт нe спeцифичeн про прoцeссoрoв Intel и зaтрaгивaeт CPU другиx прoизвoдитeлeй, тaкиx кaк ARM, IBM и AMD. Крoмe тoгo, нoвый вaриaнт нe трeбуeт высoкoй производительности и дегаже может быть осуществлена даже быть помощи запуска JavaScript и WebAssembly в web-браузере. Дегаже Foreshadow пользуется тем, что близ доступе к памяти по виртуальному адресу, приводящему к исключению (terminal page fault), сердце компьютера спекулятивно рассчитывает физический адрес и загружает показатели, если они имеются в L1-кэше. Спекулятивное требование выполняется до завершения перебора таблицы страниц памяти и необусловленно от состояния записи в таблице страниц памяти (PTE), т.е. до самого проверки наличия данных в физической памяти и их доступности интересах чтения. После завершения проверки доступности памяти, в случае отсутствия флага Present в PTE процесс отбрасывается, но данные оседают в кэше и их позволяется извлечь при помощи методов определения содержимого кэша в области сторонним каналам (через анализ изменения времени доступа к прокэшированным и без- прокэшированным данным). Исследователи показали, чего имеющиеся методы защиты от Foreshadow неэффективны и реализованы с неверной трактовкой проблемы. Чувствительность Foreshadow может быть эксплуатирована единовластно от применения в ядре механизмов защиты, которые впереди считались достаточными. В итоге исследователями была продемонстрирована допустимость совершения атаки Foreshadow в системах с насчет старыми ядрами, в которых включены однако имеющиеся режимы защиты от Foreshadow, а в свою очередь с новыми ядрами, в которых отключена один защита от Spectre-v2 (используется опция ядра Linux nospectre_v2). Было обнаружено, кое-что эффект упреждающей загрузки не связан с программными инструкциями prefetch неужто аппаратным эффектом упреждающей загрузки в процессе доступа к памяти, а возникает рядом спекулятивном разыменовании регистров пространства пользователя в ядре. Подобное неверное учение причины возникновения уязвимости изначально привело к предположению, в чем дело? утечка данных в Foreshadow может родиться только через кэш L1, в то дата как наличие в ядре определённых отрывков заключение (prefetch-гаджетов) может способствовать утечке данных кроме L1-кэша, например, в кэш L3. В качестве демонстраций исследователи показали реальность использования выявленного эффекта для извлечения данных изо одного процесса в другой с производительностью рядом 10 бит в секунду на системе с CPU Intel Core i7-6500U CPU. Равно как показана возможность утечки содержимого регистров изо анклава Intel SGX (на определение 32-разрядного значения, записанного в 64-разрядный указатель ушло 15 минут). Некоторые цель атак оказалось возможным реализовать получи и распишись JavaScript и WebAssembly, например, удалось разведать физический адрес JavaScript-переменной и охватить 64-разрядные регистры значением, контролируемым атакующим. Для того блокирования атаки Foreshadow через кэш L3 эффективен манер защиты Spectre-BTB (Branch Target Buffer), реализованный в наборе патчей retpoline. Таким образом, исследователи считают необходимым бросание retpoline включённым даже на системах с новыми CPU, в которых сделано имеется защита от известных уязвимостей в механизме спекулятивного выполнения инструкций CPU. Близ этом представители Intel заявили, кое-что не планируют добавлять в процессоры дополнительные распоряжения защиты от Foreshadow и считают достаточным включения защиты через атак Spectre V2 и L1TF (Foreshadow). Источник: http://www.opennet.ru/opennews/art.shtml?num=53513