SleepWalk: Linux "заснул" — и во сне выдал криптографические ключи
NewsMakerНикакой тревоги, никаких логов, а ключ уже у злоумышленника.
Исследователи из Университета Флориды представили принципиально новую атаку по побочным каналам , которую они назвали SleepWalk. Она использует характерный всплеск мощности, возникающий в момент переключения контекста между задачами в операционной системе — особенно при вызове встроенной функции
Атака была продемонстрирована на Raspberry Pi 4 Model B с 4-ядерным процессором ARM Cortex -A72 ( Broadcom BCM2711), под управлением Linux (Debian 12, ядро 6.6, GLIBC 2.36). Сигналы фиксировались с помощью осциллографа Keysight DSOX1102G, подключённого напрямую к шинам питания устройства (5V и GND), и обрабатывались скриптами на Python, которые извлекали амплитуду пика после усреднения данных по окну в 10 отсчётов. Управление осциллографом происходило через интерфейс VISA.
Суть уязвимости заключается в том, что каждый
Однако ключевое открытие состоит в том, что амплитуда всплеска напрямую зависит не только от текущего состояния регистров, но и от «остаточной» мощности, связанной с инструкциями и данными, которые выполнялись до
Влияние имела даже длительность выполнения кода до
В рамках демонстрации эффективности SleepWalk были реализованы атаки на две криптографические системы:
Все атаки были реализованы на обычном оборудовании без модификации прошивок или ядер, что подчёркивает их применимость к потребительским устройствам. При этом ни одна из атак не использует внешних синхросигналов, временных привязок или сложной трассировки — только пиковое значение во время вызова
Код и демонстрации PoC уже опубликованы в открытом репозитории , а уведомления об уязвимости были отправлены Broadcom и ARM ещё в январе 2025 года. Авторы подчёркивают, что уязвимость проявляется на стандартном оборудовании и способна подорвать безопасность даже защищённых реализаций, ранее считавшихся стойкими к анализу энергопотребления.
Это первая работа, демонстрирующая практическую атакующую технику, опирающуюся только на спонтанно возникающий побочный канал от функции сна, и открывающая новое направление в изучении энергетических утечек: одна точка — и всё, что было до, оказывается доступным.

Исследователи из Университета Флориды представили принципиально новую атаку по побочным каналам , которую они назвали SleepWalk. Она использует характерный всплеск мощности, возникающий в момент переключения контекста между задачами в операционной системе — особенно при вызове встроенной функции
sleep()
— для извлечения чувствительных данных, таких как криптографические ключи . В отличие от традиционных атак по энергетическому каналу, SleepWalk требует лишь одного измерения мощности, зафиксированного в момент context switch
, без необходимости анализа всей временной трассы, использования синхронизаторов или сложной предобработки сигнала. Атака была продемонстрирована на Raspberry Pi 4 Model B с 4-ядерным процессором ARM Cortex -A72 ( Broadcom BCM2711), под управлением Linux (Debian 12, ядро 6.6, GLIBC 2.36). Сигналы фиксировались с помощью осциллографа Keysight DSOX1102G, подключённого напрямую к шинам питания устройства (5V и GND), и обрабатывались скриптами на Python, которые извлекали амплитуду пика после усреднения данных по окну в 10 отсчётов. Управление осциллографом происходило через интерфейс VISA.
Суть уязвимости заключается в том, что каждый
context switch
в ядре Linux вызывает последовательность операций store/load
, при которых сохраняется и восстанавливается состояние регистров (GPR) задачи — что требует значительной внутренней активности в CPU, памяти и шинах, в том числе обнуления предвыбранных инструкций (pipeline flush) и сброса компонентов вроде TLB и буфера предвыборки инструкций. Эта активность генерирует мощный и чётко выраженный всплеск потребления, хорошо различимый даже при одиночном измерении. Однако ключевое открытие состоит в том, что амплитуда всплеска напрямую зависит не только от текущего состояния регистров, но и от «остаточной» мощности, связанной с инструкциями и данными, которые выполнялись до
context switch
. Таким образом, один-единственный пик в момент вызова sleep()
даёт двойной побочный канал: - Отпечаток переключения контекста (context-switch power signature) — зависит от веса Хэмминга данных в регистрах (чем больше единичных битов, тем выше потребление).
- Отпечаток остаточной мощности (residual power signature) — отражает совокупное поведение ранее исполняемой программы, включая её интенсивность, типы операций, количество команд и характер данных.
HWT_VALUE
) в регистрах перед вызовом сна была зафиксирована линейная зависимость мощности от количества битов со значением 1. Аналогично, даже при одинаковых регистрах, варьирование ранее обработанных данных (с использованием команд OR, не изменяющих HWT) также приводило к различиям в мощности, указывая на сохранение теплового/энергетического «следа» от выполнения. Были протестированы также сдвиги с высокой дистанцией Хэмминга (HD), и они также показали измеримый вклад в пик мощности. Влияние имела даже длительность выполнения кода до
sleep()
: при увеличении количества инструкций возрастала температура кристалла, а с ней — и ток утечки (leakage power
), дополнительно усиливающий амплитуду пика. Таким образом, исследователи построили тепло-энергетическую модель, объясняющую поведение пиков и позволяющую предсказывать уязвимые конфигурации. В рамках демонстрации эффективности SleepWalk были реализованы атаки на две криптографические системы:
- SIKE (Supersingular Isogeny Key Encapsulation) — постквантовая схема, построенная на эллиптических кривых. Исследователи использовали версию из библиотеки CIRCL (Cloudflare) и показывали два сценария:
- PoC-атака с вставкой
sleep()
в код SIKE после уязвимого участка Montgomery ladder. Контекстный отпечаток фиксировал аномальные нули в регистрах, связанные с определёнными битами ключа. Использовалась простая бинарная классификация амплитуд, позволившая извлечь полный секретный ключ.
- Атака на «чистую» SIKE, где
sleep()
вызывался только в обёртке, после декрипта. Даже в этом случае остаточная мощность от обработки определённых входных данных позволяла статистически восстановить биты ключа. Авторы разработали пошаговый алгоритм на основе сравнения амплитуд двух последовательных вызовов с разными догадками по биту ключа, восстанавливая ключ по одному биту за итерацию.
- AES-128 — была реализована атака на финальный раунд симметричного шифрования с использованием подхода выбранного открытого текста. Специально сформированные входные данные гарантировали, что выход S-box и ShiftRows будет содержать байт 0x00, создающий минимальный вес Хэмминга и, соответственно, минимальный остаточный вклад в пик. Сравнение этих случаев с другими входами дало возможность выделить байты с максимальной точностью. В результате атаки удалось восстановить 10 из 16 байтов финального раундового ключа, сократив сложность перебора с 2¹²⁸ до 2⁴⁸.
sleep()
выполняются десятки или сотни тысяч шифрований, накапливающих энергетический след. Авторы использовали до 150 000 вызовов шифрования, чтобы усилить сигнал и добиться приемлемой точности при сборе данных осциллографом. Все атаки были реализованы на обычном оборудовании без модификации прошивок или ядер, что подчёркивает их применимость к потребительским устройствам. При этом ни одна из атак не использует внешних синхросигналов, временных привязок или сложной трассировки — только пиковое значение во время вызова
sleep()
. Код и демонстрации PoC уже опубликованы в открытом репозитории , а уведомления об уязвимости были отправлены Broadcom и ARM ещё в январе 2025 года. Авторы подчёркивают, что уязвимость проявляется на стандартном оборудовании и способна подорвать безопасность даже защищённых реализаций, ранее считавшихся стойкими к анализу энергопотребления.
Это первая работа, демонстрирующая практическую атакующую технику, опирающуюся только на спонтанно возникающий побочный канал от функции сна, и открывающая новое направление в изучении энергетических утечек: одна точка — и всё, что было до, оказывается доступным.