Новые уязвимости позволяют обойти защиту от 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 и делая систему уязвимой к атакам по сторонним каналам.

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

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


Один хакер может причинить столько же вреда, сколько 10 000 солдат! Подпишись на наш Телеграм канал, чтобы узнать первым, как выжить в цифровом кошмаре!