> > > > Уязвимость в предсказании ветвлений: BranchScope как вариант Spectre

Уязвимость в предсказании ветвлений: BranchScope как вариант Spectre

Опубликовано:

intelПоследствия уязвимостей Spectre и Meltdown пока еще не были полностью осмыслены, хотя Intel уже представила патчи и обновления микрокода, да и процессоры с соответствующими изменениями архитектуры выйдут к концу 2018. После обнаружения двух данных уязвимостей, особенно в случае второго варианта Spectre, у экспертов появились опасения по поводу существования других потенциальных уязвимостей, касающихся предсказания ветвлений современных процессоров.

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

Исследователи из Колледжа Вильгельма и Марии, Университета Карнеги-Меллона, Калифорнийского университета в Риверсайде и Бингемтонского университета разработали атаку, которая позволяет получить несанкционированный доступ к информации. Между BranchScope и вторым вариантом Spectre есть общая особенность: использование уязвимости предсказания перехода. Spectre 2 использует буфер Branch Target Buffer (BTB). Он содержит информацию о цели перехода. BranchScope, с другой стороны, использует таблицу Pattern History Table (PHT). Она определяет направление, в котором будет предсказан переход. PHT содержит список сработавших и ошибочных переходов. Что облегчает задачу предсказания перехода в будущем. Информация хранится фрагментами по два бита. И через подмену данных битов можно манипулировать тем, как будет предсказан переход в будущем. Атакующий может придать предсказаниям нужное направление, после чего отследить, на какую цель будет выполнен переход.

Исследователи нашли способ обойти защиту Intel SGX (Software Guard Extensions). Она как раз и должна предотвратить считывание подобной информации. До сих пор уязвимость BranchScope тестировалась только на процессорах Intel. Исследователи полагают, что уязвимость BranchScope, как и Spectre во втором варианте, может быть закрыта сочетанием обновления микрокода и программного обеспечения. Но, как и в случае Spectre 2, в полной мере уязвимость еще не исследована. И пока не совсем понятно, что с ней можно сделать, если не отказываться от самого принципа предсказания ветвлений. В будущем мы наверняка получим более подробную информацию, да и разработчики CPU наверняка проведут собственные глубокие исследования.

Intel подтвердила существование уязвимостей и предполагает, что для ее закрытия помогут те же меры, что и в случае Spectre 2.

"We have been working with these researchers and we have determined the method they describe is similar to previously known side channel exploits. We anticipate that existing software mitigations for previously known side channel exploits, such as the use of side channel resistant cryptography, will be similarly effective against the method described in this paper. We believe close partnership with the research community is one of the best ways to protect customers and their data, and we are appreciative of the work from these researchers."