Утечка данных через кольцевую шину CPU Intel

Группа исследователей из Иллинойсского университета разработала новую технику атаки по сторонним каналам, манипулирующую утечкой информации через кольцевую шину (Ring Interconnect) процессоров Intel. Атака позволяет выделять сведения о работе с памятью в другом приложении и отслеживать информацию о времени нажатия клавиш. Исследователи опубликовали инструментарий для проведения сопутствующих измерений и несколько прототипов эксплоитов.

Предложено три эксплоита, которые позволят:

  • Восстановить отдельные биты ключей шифрования при использовании реализаций RSA и EdDSA, уязвимых к атакам по сторонним каналам (если задержки при вычислении зависят от обрабатываемых данных). Например, утечки отдельных битов с информацией о векторе инициализации (nonce) EdDSA достаточно для применения атак по последовательному восстановлению всего закрытого ключа. Атака труднореализуема на практике и может быть совершена при большом числе оговорок. Например, успешная эксплуатация показана при отключении SMT (HyperThreading) и сегментировании LLC-кэша между ядрами CPU.
  • Определить параметры о задержках между нажатием клавиш. Задержки зависят от положения клавиш и позволяют через проведение статистического анализа с определённой вероятностью воссоздать вводимые с клавиатуры данные (например, большинство людей обычно набирают “s” после “a” значительно быстрее, чем “g” после “s”).
  • Организовать скрытый канал связи для передачи данных между процессами со скоростью около 4 мегабит в секунду, в котором не используется разделяемая память, процессорный кэш и специфичные для ядер CPU ресурсы и процессорные структуры. Отмечается, что предложенный метод создания скрытого канала очень трудно блокировать существующими методами защиты от атак по сторонним каналам.

Эксплоиты не требуют повышенных привилегий и могут быть использованы обычными непривилегированными пользователями. Отмечается, что потенциально атака может быть адаптирована для организации утечки данных между виртуальными машинами, но данный вопрос вышел за рамки исследования и тестирование систем виртуализации не проводилось. Предложенный код опробован на CPU Intel i7-9700 в окружении Ubuntu 16.04. В общем виде метод атаки протестирован на настольных процессорах семейства Intel Coffee Lake и Skylake, а также потенциально применим к серверным процессорам Xeon семейства Broadwell.

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

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

Дополнительно можно отметить выявление следов применения при атаках на системы Linux эксплоита для первого варианта уязвимости Spectre (CVE-2017-5753). Утечка информации по сторонним каналам в эксплоите используется для поиска суперблока в памяти, определения inode файла /etc/shadow и вычисления адреса страницы памяти для извлечения файла из дискового кэша.

Release. Ссылка here.