×

В фильме «Начало» идеи закладываются в сознание жертвы во время сна — юла помогала отличать сны от реальности. Исследователям ETH удалось провести компьютерную атаку, которая работает аналогичным образом. Источник.

Одна из самых загадочных сторон нашей природы ‒ сны. Наверное, каждый человек хоть однажды испытал их влияние на себе: от них может зависеть не только наше настроение, но и поступки. Однако проникновение в чужие сны ‒ и слава всем богам! ‒ пока не доступно науке. А уж внушение спящему человеку идеи сделать что-то после пробуждения, ‒ тем более остаётся предметом научной фантастики. Вы, скорее всего, помните фильм «Inception» («Начало») 2010 года, где персонаж Леонардо ди Каприо, путём ловких манипуляций сознанием наследника богатого бизнесмена, управляет его сном, чтобы заставить того разрушить империю отца. В результате взгляды бедолаги на родителя меняются настолько, что он всё-таки отказывается продолжать бизнес.

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

И вроде бы ничего необычного, мы сталкиваемся с этим каждый день, но группа исследователей из Федерального технического университета Цюриха (ETH Zurich) обнаружила кое-что ещё.

Оказалось, перед лицом вредоносных «идей» существует серьёзная уязвимость со стороны некоторых центральных процессоров. То есть злоумышленник может внедрить эквивалент идеи (программную установку) непосредственно в ЦП жертвы, чтобы заставить его выполнять определённые команды и, таким образом, получить доступ ко сколь угодно конфиденциальной информации. Руководитель исследования Каве Разави, профессор кафедры информационных технологий и инженерии, и его коллеги представляют свою работу на конференции по безопасности USENIX Security 2023.

Комплексная атака.

Хотя исследовательская статья Разави включает в себя имена, которые больше напоминают о Джеймсе Бонде и фильмах-катастрофах, большая её часть посвящена сложной высокоуровневой вычислительной науке.

«Действительно, атака «Inception», как и одноименный фильм, особенно сложна и трудна для объяснения», ‒ говорит студент магистратуры Даниэль Трухильо. Он-то как раз и обнаружил эту новую уязвимость во время работы над диссертацией в группе Разави.

«Тем не менее, в основе всех этих атак лежит одна простая вещь: центральный процессор компьютера должен постоянно делать предположения, и этими предположениями можно манипулировать», ‒ добавляет кандидата наук Йоханнес Викнер, под чьим руководством Трухильо писал свою диссертацию.

 аппаратное обеспечение

Аппаратное обеспечение, используемое исследователями ETH с одним из компьютерных чипов, подверженных атаке Inception. Источник.

В современных компьютерах подобные «догадки» процессора абсолютно необходимы. Это обусловлено некоторой зависимостью выполнения следующей команды от выбора, сделанного на основе извлекаемой из памяти компьютера информации. Да, в последние годы процессоры стали невероятно быстрыми: во время исполнения программы ‒ будь то игры или браузер ‒ ЦП должен принимать сотни миллионов решений в секунду. Однако всё дело в том, что скорость, с которой данные могут быть переданы из памяти (DRAM) в ЦП, не в состоянии поспеть за этим ускорением. В результате процессору пришлось бы тратить много времени на ожидание свежих данных, чтобы принять решение.

Ускорение путём угадывания.

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

«Атака Spectre, которая была обнаружена в 2018 году, основана на таких неверных прогнозах, ‒ говорит Разави, ‒ но изначально казалось, что производители нашли способы смягчить её». 

На самом же деле, производители чипов предусмотрели частичную очистку таблиц при изменении контекста безопасности (то есть при доступе к ядру системы) и добавление бита информации, маркирующего для ЦП оригинальность прогноза, созданного в ядре.

Посадка идеи в процессор.

Тем не менее, Разави и его коллеги решили проверить, можно ли даже с новыми мерами безопасности начать атаку. После долгих поисков они наткнулись на кое-что странное: «Казалось, что мы можем заставить процессоры AMD поверить в то, что они видели определённые инструкции раньше, тогда как на самом деле этого никогда не было», ‒ говорит Трухильо. Как и в вышеупомянутом фильме, учёные сумели внедрить идею в процессор, пока он ‒ в некотором смысле ‒ мечтал.

Как следствие, справочной таблицей, которую ЦП постоянно создаёт из прошлых инструкций, снова можно было манипулировать. Поскольку ЦП был убеждён, что записи в справочной таблице происходят из инструкций, видимых им ранее, функция безопасности, которая должна была гарантировать, что учитываются только заслуживающие доверия прогнозы, была обойдена. Таким образом, исследователи ETH смогли извлечь данные из любой точки памяти компьютера, включая конфиденциальную информацию: например, хэш пароля root.

Серьёзная уязвимость.

Это, конечно, очень серьёзная уязвимость в системе безопасности, поэтому Разави проинформировал AMD в феврале, чтобы убедиться, что у них есть время придумать патч до публикации исследовательской статьи (AMD присвоила уязвимости номер CVE-2023-20569).

«Эта концепция нового класса опасных атак особенно актуальна в контексте облачных вычислений, когда несколько клиентов используют одно и то же оборудование, ‒ поясняет профессор.

Это также вызывает «вопросы на будущее», говорит исследователь. Например, существуют ли другие подобные атаки и возможна ли атака типа «Inception» на процессоры других производителей.

 


АРМК, по материалам ETH Zurich.