PortSmash: очередная неприятность у Intel

Ноябрь принёс очередную публикацию о новых архитектурных проблемах в процессорах Intel. На этот раз уязвимость, обнаруженная группой исследователей из финского Тампере и кубинской Гаваны, позволила прочитать 384-битный секретный ключ из памяти соседнего процесса.

Уязвимость, получившая обозначение CVE-2018-5407, была продемонстрирована на примере OpenSSL 1.1.0h. В криптобиблиотеке этот фрагмент кода уже исправили, но до исправления злоумышленники, ориентируясь на время работы сторонней программы, потенциально могли выяснить секретный ключ. Иными словами, PortSmash — очередная атака по побочным каналам. Опирается она на технологию HyperThreading, позволяющую выполнять на одном из нескольких процессорных ядер сразу две программы. В идеале они оказываются изолированными друг от друга, но в данном случае обнаружилась брешь в изоляции. Правда, для этого требуется, чтобы программа-шпион выполнялась на том же ядре того же процессора, что и жертва, а добиться этого на одном компьютере просто, но вот на облачном хостинге сложно, поэтому ущерб сравнительно ограничен.

На этот раз, в отличие от Spectre и Meltdown, речь не идёт о следах спекулятивного выполнения. В Intel настаивают, что избежать неприятностей поможет более аккуратное написание кода. Но, как показывает практика, надеяться на то, что этому совету последует большинство программистов, довольно трудно.

Идея, что гипертрединг позволит рано или поздно организовать атаку по побочным каналам, не нова — впервые эта мысль прозвучала ещё в 2015 году (а то и раньше), но атака появилась только сейчас, когда процессоры от Intel попали в фокус внимания исследователей. Билл Брамли (Bill Brumley), опубликовавший описание уязвимости, рекомендует выключать гипертрединг на уровне BIOS. Он не оригинален в своих предположениях — аналогичную идею уже высказывал Тео де Раадт, автор операционной системы OpenBSD.

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

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


Автор:  Дмитрий Белявский (ТЦИ)

Возврат к списку