Site categories All
#spectre
Разработчики проекта OpenSSH добавили изменение, призванное обеспечить защиту от различных атак по сторонним каналам, таких как Spectre, Meltdown, Rowhammer и Rambleed, с помощью которых злоумышленники могут извлечь важные данные из памяти.

Изменения в код были внесены на минувшей неделе одним из разработчиков OpenSSH и OpenBSD, специалистом Google Дэмианом Миллером (Damien Miller). Добавленная защита предотвращает восстановление закрытого ключа, содержащегося в оперативной памяти. Закрытые ключи SSH могут использоваться атакующими для подключения к удаленному серверу без авторизации.

Как пояснил Миллер, суть защиты заключается в шифровании закрытых ключей (в моменты, когда они не используются) с помощью симметричного ключа, полученного из относительно большого предварительного ключа (prekey), состоящего из случайных данных (в настоящее время его размер составляет 16 КБ). В случае, если злоумышленнику удастся извлечь данные из памяти компьютера или сервера, он получит зашифрованную версию ключа SSH.
В начале прошлого года компьютерное сообщество было потрясено открытием аппаратных уязвимостей Meltdown и Spectre, которые присутствуют в большинстве современных процессоров. Если коротко, то Meltdown позволяла вредоносному коду внедряться в ядро операционной системы, а Spectre подразумевала возможность чтения произвольных мест в компьютерной памяти, тем самым нарушая принцип её изоляции между программами.
 
Научные специалисты Вустерского политехнического института (штат Массачусетс, США) в сотрудничестве с коллегами из Университета Любека (Германия) обнаружили новую уязвимость, которую они назвали Spoiler. Она затрагивает все процессоры Intel Core с 2006 года, в то время как решения AMD и на архитектуре ARM не подвержены данной проблеме.
 
Согласно заявлениям ученых, они проинформировали Intel о Spoiler в декабре 2018 года. Однако, похоже, корпорация до сих пор не приняла никаких мер по противодействию уязвимости. Spoiler позволяет вредоносным программам эксплуатировать механизм Memory Order Buffer (MOB) и получать доступ к пользовательским данным в памяти. По мнению исследователей, программное решение данной проблемы невозможно, а ее исправление может занять несколько лет.
В ядре Linux найдена уязвимость (CVE-2019-7308), позволяющая обойти защиту от проведения атак класса Spectre v1 через использование подсистемы eBPF. Проблема устранена в выпусках ядра 4.19.19 и 4.20.6, но в дистрибутивах пока остаётся неисправленной (Debian, RHEL, SUSE, Ubuntu).

Для чтения данных из привилегированных областей памяти при помощи атаки Spectre v1 необходимо наличие в привилегированном коде определённой последовательности команд. Подобные сочетания команд были удалены из ядра Linux, но разработчики не учли то, что подсистема eBPF позволяет инициировать выполнение в контексте ядра произвольных BPF-программ. Через манипуляцией с байткодом BPF атакующий может добиться выполнения JIT-компилятором eBPF необходимого для совершения атаки Spectre v1 сочетания машинных инструкций, приводящих к спекулятивному обращению к внешним областям памяти при совершении операций с указателем.

Дополнительно, можно отметить предложение включить в состав ядра Linux патч, реализующий дополнительный режим для отключения базирующейся на использовании PSTATE-бита SSBS (Speculative Store Bypass Safe) защиты от атак Spectre. Подобная защита ощутимо снижает производительность, поэтому включается на уровне приложения при помощи команды PR_SET_SPECULATION_CTRL в prctl (как правило, атаке подвержены программы с JIT, например, Java). Проблема в том, что при отключении спекулятивных операций, данное состояние наследуется и для дочерних процессов. Для отключения наследования защиты (наследования блокировки спекулятивных операций) при запуске новых процессов предложен флаг PR_SPEC_DISABLE_NOEXEC.
Spectre и Meltdown больше не самые опасные атаки на CPU Intel. Исследователи сообщили об уязвимости Foreshadow
 
Потенциально уязвимость Foreshadow (L1 Terminal Fault в классификации Intel) через эксплуатацию исполнения спекулятивного кода может получить доступ к L1-кэшу процессора, а также к защищенной области SGX трех последних поколений процессоров Intel. При этом Foreshadow может извлечь из кэша любую информацию, в том числе и информацию о режиме эксплуатации системы, к Kernel-ядруили гипервизору. 
https://habr.com/company/crossover/blog/420291/
https://www.bbc.co.uk/news/technology-45191697