Новые уязвимости позволяют обойти защиту от Spectre на Linux-системах

Новые уязвимости позволяют обойти защиту от Spectre на Linux-системах

Уязвимости позволяют обойти защиту за счет использования поддержки ядром Linux расширенных модулей eBPF.

В понедельник, 29 марта, исследователи безопасности раскрыли две уязвимости в дистрибутивах Linux, позволяющие обходить средства защиты от спекулятивных атак наподобие Spectre и получить конфиденциальную информацию из памяти ядра.

Уязвимости CVE-2020-27170 и CVE-2020-27171 (5,5 балла из 10 по шкале оценивания опасности CVSS) были обнаружены специалистом Symantec Threat Hunter Петром Крысюком и затрагивают все версии ядра Linux до 5.11.8. Исправления для Ubuntu, Debian и Red Hat вышли 20 марта 2021 года.

CVE-2020-27170 может использоваться для извлечения контента из любого места в памяти ядра, а CVE-2020-27171 позволяет получить данные из памяти ядра в диапазоне 4 ГБ.

Задокументированные в январе 2018 года уязвимости Spectre и Meltdown используют недостатки современных процессоров для утечки обрабатываемых на компьютере данных, тем самым позволяя злоумышленнику обойти реализованные в аппаратном обеспечении границы между приложениями. Другими словами, две атаки по сторонним каналам позволяли вредоносному коду читать память, на что у него обычно нет разрешения. Хуже того, атаки могли осуществляться удаленно через мошеннические web-сайты с вредоносным JavaScript- кодом.

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

Обнаруженные Крысюком уязвимости позволяют обойти эти меры в Linux за счет использования поддержки ядром расширенных модулей Berkeley Packet Filters (eBPF) для извлечения содержимого памяти ядра. Запущенные на уязвимых системах непривилегированные BPF-программы могут обойти меры защиты от атак Spectre и спекулятивно выполнять нагрузку за пределами выделенной области памяти без каких-либо ограничений.

В частности, было обнаружено, что ядро (kernel/bpf/verifier.c) выполняет нежелательные спекуляции с арифметикой указателей за пределами выделенной области памяти, тем самым устраняя исправления для Spectre и делая систему уязвимой к атакам по сторонним каналам.

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

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

Квантовый кот Шрёдингера ищет хозяина!

Живой, мертвый или в суперпозиции? Узнайте в нашем канале

Откройте коробку любопытства — подпишитесь