ຕົວແປໃໝ່ຂອງການໂຈມຕີ Zombieload ໃນໂປເຊດເຊີ Intel ໄດ້ຖືກກໍານົດ

Исследователи из Грацского технического университета (Австрия) ເປີດເຜີຍ сведения о новом методе атаки по сторонним каналам Zombie Load 2.0 (CVE-2019-11135), позволяющем извлечь конфиденциальную информацию из других процессов, операционной системы, виртуальных машин и защищённых анклавов (TEE, Trusted Execution Environment). Проблема затрагивает только процессоры Intel. Компоненты для блокирования проблемы ສະເໜີ во вчерашнем обновлении микрокода.

Проблема относится к классу MDS (Microarchitectural Data Sampling) и является модернизированным вариантом обнародованной в мае атаки ZombieLoad. ZombieLoad 2.0, как и другие атаки класса MDS, основываются на применении методов анализа по сторонним каналам к данным в микроархитектурных структурах (например, в буферах заполнения (Line Fill Buffer) и хранения (Store Buffer), в которых временно сохраняются данные, используемые в процессе выполнения операций Load и Store).

Новый вариант атаки Zombieload ແມ່ນອີງໃສ່ на утечке, возникающей при работе механизма асинхронного прерывания операций (TAA, TSX Asynchronous Abort), реализованного в расширении TSX (Transactional Synchronization Extensions), предоставляющем средства для работы с транзакционной памятью, позволяющей повысить производительность многопоточных приложений за счёт динамического исключения лишних операций синхронизации (поддерживаются атомарные транзакции, которые могут быть либо приняты, либо прерваны). В случае прерывания, операции, выполненные с транзакционным регионом памяти, откатываются.

Прерывание транзакции выполняется асинхронно, и в это время другие потоки могут обращаться к кэшу, который также используется в отбрасываемом транзакционном регионе памяти. В момент от начала до фактического завершения асинхронного прерывания транзакции не исключено возникновение ситуаций, когда процессор в ходе спекулятивного выполнения операции может прочитать данные из внутренних микроархитектурных буферов и передать их в спекулятивно выполняемую операцию. Затем конфликт будет выявлен, а спекулятивная операция отброшена, но данные останутся в кэше и могут быть извлечены с использованием методов восстановления кэша по сторонним каналам.

Атака сводится к открытию TSX транзакций и созданию условий для их асинхронного прерывания, во время которого возникают условия для утечки содержимого внутренних буферов, спекулятивно заполненных данными из выполняемых на том же ядре CPU операций чтения памяти. Утечка ограничена текущим физическим ядром CPU (на котором выполняется код атакующего), но так как микроархитектурные буферы совместно используются разными потоками в режиме Hyper-Threading, возможно возникновение утечки операций с памятью, выполняемых в других потоках CPU.

Атаке ຂຶ້ນກັບ некоторые модели восьмого, девятого и десятого поколений процессоров Intel Core, а также Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W и второе поколение Intel Xeon Scalable. В том числе атаке подвержены и новые процессоры Intel на базе представленной в апреле микроархитектуры Cascade Lake, изначально не подверженной атакам RIDL и Fallout. Кроме Zombieload 2.0 исследователи также выявили возможность обхода ранее предложенных методов защиты от MDS-атак, основанных на использовании инструкции VERW для очистки содержимого микроархитектурных буферов в момент возвращения из ядра в пространство пользователя или при передаче управления гостевой системе.

В отчёте Intel утверждается, что в системах с разнородной нагрузкой возможность проведения атаки затруднена, так как утечка из микроархитектурных структур охватывает всю активность в системе и атакующий не может влиять на источник извлекаемых данных, т.е. может лишь накапливать всплывающие в результате утечки сведения и пытаться выявить среди этих данных полезную информацию, без возможности целенаправленно перехватить данные, связанные с конкретными адресами памяти. Тем не менее, исследователями опубликован ການຂຸດຄົ້ນຕົ້ນແບບ, работающий в Linux и Windows, а также продемонстрирована возможность применения атаки для определения хэша пароля пользователя root.
ອາດຈະເປັນ проведение атаки из гостевой системы для накопления данных, которые фигурируют в операциях других гостевых систем, хост-окружения, гипервизора и анклавов Intel SGX.

Исправления для блокирования уязвимости ລວມ в кодовую базу ядра Linux и вошли в состав выпусков 5.3.11, 4.19.84, 4.14.154, 4.9.201 и 4.4.201. Обновления с ядром и микрокодом также уже выпущены для основных дистрибутивов (Debian, SUSE/openSUSE, Ubuntu, RHEL, Fedora, FreeBSD). Проблема была выявлена в апреле и исправление было скоординировано Intel с разработчиками операционных систем.

Простейшим методом блокирования Zombieload 2.0 является отключение поддержки TSX в CPU. Предложенное для ядра Linux исправление включает несколько вариантов защиты. Первый вариант предлагает параметр «tsx=on/off/auto», позволяющий управлять включением расширения TSX в CPU (значение auto отключает TSX только для уязвимых CPU). Второй вариант защиты включается параметром «tsx_async_abort=off/full/full,nosmt» и основан на очистке микроархитектурных буферов, во время переключения контекста (флаг nosmt дополнительно отключает SMT/Hyper-Threads). Для проверки подверженности системы уязвимости в sysfs предусмотрен параметр «/sys/devices/system/cpu/vulnerabilities/tsx_async_abort».

ນອກຈາກ, ໃນ ອັບເດດ микрокода ລົບລ້າງ ещё одна ຄວາມອ່ອນແອ (CVE-2018-12207) в процессорах Intel, которая также блокирована в свежем ອັບເດດ ядра Linux. Уязвимость ອະນຸຍາດ непривилегированному атакующему инициировать отказ в обслуживании, приводящий к зависанию системы в состоянии «Machine Check Error».
Атака в том числе может быть совершена из гостевой системы.

ແຫຼ່ງຂໍ້ມູນ: opennet.ru

ເພີ່ມຄວາມຄິດເຫັນ