Компания Intel раскрыла сведения о двух новых уязвимостях в CPU Intel, вызванных утечкой данных из кэша L1D (CVE-2020-0549, L1DES - L1D Eviction Sampling) и векторных регистров (CVE-2020-0548, VRS - Vector Register Sampling). Уязвимости относятся к классу MDS (Microarchitectural Data Sampling) и основываются на применении методов анализа по сторонним каналам к данным в микроархитектурных структурах. AMD, ARM и другие процессоры проблемам не подвержены.
Наибольшую опасность представляет уязвимость L1DES, которая допускает утечку блоков прокэшированных данных (cache line), вытесняемых из кэша первого уровня (L1D), в неиспользованный буфер заполнения (L1D Fill Buffer). Для определения осевших в буфере заполнения данных применимы методы анализа по сторонним каналам, ранее предложенные в атаках MDS (Microarchitectural Data Samping) и TAA (Transactional Asynchronous Abort).
В итоге, атакующий может добиться определения вытесненных из кэша первого уровня данных, которые были изменены в ходе выполнения приложения, до этого занимавшего ядро CPU, или приложений, параллельно выполняющихся в других логических потоках (hyperthread) на том же ядре CPU (отключение HyperThreading существенно снижает эффективность атаки). В отличие от атаки L1TF, L1DES не позволяет выбирать конкретные физические адреса для проверки, но даёт возможность пассивно отслеживать активность в других логических потоках, связанную с загрузкой или сохранением в память значений.
На базе L1DES различные команды исследователей разработали несколько вариантов атак, которые, потенциально позволяют извлечь конфиденциальную информацию из других процессов, операционной системы, виртуальных машин и защищённых анклавов SGX.
• Команда VUSec адаптировала метод атаки RIDL для уязвимости L1DES. Доступен прототип эксплоита, который в том числе обходит предложенных Intel метод защиты от MDS, основанный на использовании инструкции VERW для очистки содержимого микроархитектурных буферов в момент возвращения из ядра в пространство пользователя или при передаче управления гостевой системе (исследователи изначально настаивали, что VERW для защиты недостаточно и требуется полный сброс L1 кэша при каждом переключении контекста).
• Source: https://mdsattacks.com/#ridl-nng
• Exploit: https://github.com/vusec/ridl/blob/master/pocs/verw_bypass_l1des.c
• Команда ZombieLoad обновила свой метод атаки c учётом уязвимости L1DES.
• Source: https://zombieloadattack.com/
• Source: https://zombieloadattack.com/zombieload.pdf
• Исследователи из Мичиганского университета разработали собственный метод атаки CacheOut, позволяющий извлечь конфиденциальную информацию из ядра операционной системы, виртуальных машин и защищённых анклавов SGX. Метод базируется на манипуляциях с механизмом асинхронного прерывания операций (TAA, TSX Asynchronous Abort) для определения содержимого буфера заполнения после утечки данных из кэша L1D.
• Source: https://cacheoutattack.com/
• Source: https://cacheoutattack.com/CacheOut.pdf
Вторая уязвимость VRS (Vector Register Sampling) связана с утечкой в буфер хранения (Store Buffer) результатов операций чтения из векторных регистров, изменённых при выполнении векторных инструкций на том же ядре CPU. Утечка возникает при достаточно редком стечении обстоятельств. По аналогии с уязвимостью L1DES, содержимое буфера хранения затем может быть определено при помощи методов атак MDS и TAA. Исследователи из группы VUSec подготовили прототип эксплоита, позволяющего определять значения векторных регистров, полученных в результате вычислений в другом логическом потоке того же ядра CPU. Компания Intel оценила уязвимость VRS как слишком сложную для осуществления реальных атак и присвоила минимальный уровень опасности (2.8 СVSS).
• Exploit: https://github.com/vusec/ridl/blob/master/pocs/vrs.c
Сведения о проблемах были переданы Intel в мае 2019 года командой Zombieload из Грацского технического университета (Австрия) и группой VUSec из Амстердамского свободного университета, и позднее, после анализа других векторов применения атаки MDS, уязвимости были подтверждены некоторыми другими исследователями. В первый отчёт MDS информация о проблемах L1DES и VRS не была включена из-за отсутствия исправления. Исправление не доступно и сейчас, но оговорённые сроки неразглашения истекли. В качестве обходных методов защиты рекомендуется отключить HyperThreading, а в ядре сбрасывать кэш L1 при каждом переключении контекста (MSR бит MSR_IA32_FLUSH_CMD) и отключить расширение TSX (MSR биты MSR_IA32_TSX_CTRL и MSR_TSX_FORCE_ABORT).
Intel обещает выпустить обновление микрокода с реализацией механизмов для блокирования проблем в ближайшее время. Intel также отмечает, что применение предложенных в 2018 году методов защиты от атаки L1TF (L1 Terminal Fault) позволяет блокировать эксплуатацию уязвимости L1DES из виртуальных окружений. Атаке подвержены процессоры Intel Core, начиная с шестого поколения (Sky, Kaby, Coffee, Whiskey, Amber Lake и т.п.), а также некоторые модели Intel Xeon и Xeon Scalable.
Дополнительно можно отметить усовершенствование эксплоита, позволяющего применить методы атаки RIDL для определения содержимого хэша пароля root из /etc/shadow при периодических попытках аутентификации. Если изначально предложенный эксплоит определял хэш пароля за 24 часа, а после применения утечки при работе механизма асинхронного прерывания операций (TAA, TSX Asynchronous Abort) выполнял аналогичную операцию за 36 секунд, то новый вариант совершает атаку за 4 секунды.
• Exploit: https://github.com/vusec/ridl/
• Video: www.youtube.com/watch?v=zaTxBZXE9pQ
• Video: www.youtube.com/watch?v=4DQAcCfg3b8
• Source: https://blogs.intel.com/technology/2020/01/ipas-intel-sa-00329/
Наибольшую опасность представляет уязвимость L1DES, которая допускает утечку блоков прокэшированных данных (cache line), вытесняемых из кэша первого уровня (L1D), в неиспользованный буфер заполнения (L1D Fill Buffer). Для определения осевших в буфере заполнения данных применимы методы анализа по сторонним каналам, ранее предложенные в атаках MDS (Microarchitectural Data Samping) и TAA (Transactional Asynchronous Abort).
В итоге, атакующий может добиться определения вытесненных из кэша первого уровня данных, которые были изменены в ходе выполнения приложения, до этого занимавшего ядро CPU, или приложений, параллельно выполняющихся в других логических потоках (hyperthread) на том же ядре CPU (отключение HyperThreading существенно снижает эффективность атаки). В отличие от атаки L1TF, L1DES не позволяет выбирать конкретные физические адреса для проверки, но даёт возможность пассивно отслеживать активность в других логических потоках, связанную с загрузкой или сохранением в память значений.
На базе L1DES различные команды исследователей разработали несколько вариантов атак, которые, потенциально позволяют извлечь конфиденциальную информацию из других процессов, операционной системы, виртуальных машин и защищённых анклавов SGX.
• Команда VUSec адаптировала метод атаки RIDL для уязвимости L1DES. Доступен прототип эксплоита, который в том числе обходит предложенных Intel метод защиты от MDS, основанный на использовании инструкции VERW для очистки содержимого микроархитектурных буферов в момент возвращения из ядра в пространство пользователя или при передаче управления гостевой системе (исследователи изначально настаивали, что VERW для защиты недостаточно и требуется полный сброс L1 кэша при каждом переключении контекста).
• Source: https://mdsattacks.com/#ridl-nng
• Exploit: https://github.com/vusec/ridl/blob/master/pocs/verw_bypass_l1des.c
• Команда ZombieLoad обновила свой метод атаки c учётом уязвимости L1DES.
• Source: https://zombieloadattack.com/
• Source: https://zombieloadattack.com/zombieload.pdf
• Исследователи из Мичиганского университета разработали собственный метод атаки CacheOut, позволяющий извлечь конфиденциальную информацию из ядра операционной системы, виртуальных машин и защищённых анклавов SGX. Метод базируется на манипуляциях с механизмом асинхронного прерывания операций (TAA, TSX Asynchronous Abort) для определения содержимого буфера заполнения после утечки данных из кэша L1D.
• Source: https://cacheoutattack.com/
• Source: https://cacheoutattack.com/CacheOut.pdf
Вторая уязвимость VRS (Vector Register Sampling) связана с утечкой в буфер хранения (Store Buffer) результатов операций чтения из векторных регистров, изменённых при выполнении векторных инструкций на том же ядре CPU. Утечка возникает при достаточно редком стечении обстоятельств. По аналогии с уязвимостью L1DES, содержимое буфера хранения затем может быть определено при помощи методов атак MDS и TAA. Исследователи из группы VUSec подготовили прототип эксплоита, позволяющего определять значения векторных регистров, полученных в результате вычислений в другом логическом потоке того же ядра CPU. Компания Intel оценила уязвимость VRS как слишком сложную для осуществления реальных атак и присвоила минимальный уровень опасности (2.8 СVSS).
• Exploit: https://github.com/vusec/ridl/blob/master/pocs/vrs.c
Сведения о проблемах были переданы Intel в мае 2019 года командой Zombieload из Грацского технического университета (Австрия) и группой VUSec из Амстердамского свободного университета, и позднее, после анализа других векторов применения атаки MDS, уязвимости были подтверждены некоторыми другими исследователями. В первый отчёт MDS информация о проблемах L1DES и VRS не была включена из-за отсутствия исправления. Исправление не доступно и сейчас, но оговорённые сроки неразглашения истекли. В качестве обходных методов защиты рекомендуется отключить HyperThreading, а в ядре сбрасывать кэш L1 при каждом переключении контекста (MSR бит MSR_IA32_FLUSH_CMD) и отключить расширение TSX (MSR биты MSR_IA32_TSX_CTRL и MSR_TSX_FORCE_ABORT).
Intel обещает выпустить обновление микрокода с реализацией механизмов для блокирования проблем в ближайшее время. Intel также отмечает, что применение предложенных в 2018 году методов защиты от атаки L1TF (L1 Terminal Fault) позволяет блокировать эксплуатацию уязвимости L1DES из виртуальных окружений. Атаке подвержены процессоры Intel Core, начиная с шестого поколения (Sky, Kaby, Coffee, Whiskey, Amber Lake и т.п.), а также некоторые модели Intel Xeon и Xeon Scalable.
Дополнительно можно отметить усовершенствование эксплоита, позволяющего применить методы атаки RIDL для определения содержимого хэша пароля root из /etc/shadow при периодических попытках аутентификации. Если изначально предложенный эксплоит определял хэш пароля за 24 часа, а после применения утечки при работе механизма асинхронного прерывания операций (TAA, TSX Asynchronous Abort) выполнял аналогичную операцию за 36 секунд, то новый вариант совершает атаку за 4 секунды.
• Exploit: https://github.com/vusec/ridl/
• Video: www.youtube.com/watch?v=zaTxBZXE9pQ
• Video: www.youtube.com/watch?v=4DQAcCfg3b8
• Source: https://blogs.intel.com/technology/2020/01/ipas-intel-sa-00329/
Вложения
Последнее редактирование модератором: