Никакой тревоги, никаких логов, а ключ уже у злоумышленника.
Исследователи из Университета Флориды представили принципиально новую атаку по побочным каналам , которую они назвали SleepWalk. Она использует характерный всплеск мощности, возникающий в момент переключения контекста между задачами в операционной системе — особенно при вызове встроенной функции <code>sleep()</code> — для извлечения чувствительных данных, таких как криптографические ключи . В отличие от традиционных атак по энергетическому каналу, SleepWalk требует лишь одного измерения мощности, зафиксированного в момент <code>context switch</code>, без необходимости анализа всей временной трассы, использования синхронизаторов или сложной предобработки сигнала.
Атака была продемонстрирована на 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.
Суть уязвимости заключается в том, что каждый <code>context switch</code> в ядре Linux вызывает последовательность операций <code>store/load</code>, при которых сохраняется и восстанавливается состояние регистров (GPR) задачи — что требует значительной внутренней активности в CPU, памяти и шинах, в том числе обнуления предвыбранных инструкций (pipeline flush) и сброса компонентов вроде TLB и буфера предвыборки инструкций. Эта активность генерирует мощный и чётко выраженный всплеск потребления, хорошо различимый даже при одиночном измерении.
Однако ключевое открытие состоит в том, что <strong>амплитуда всплеска напрямую зависит не только от текущего состояния регистров, но и от «остаточной» мощности, связанной с инструкциями и данными, которые выполнялись до <code>context switch</code>.</strong> Таким образом, один-единственный пик в момент вызова <code>sleep()</code> даёт двойной побочный канал:
Влияние имела даже длительность выполнения кода до <code>sleep()</code>: при увеличении количества инструкций возрастала температура кристалла, а с ней — и ток утечки (<code>leakage power</code>), дополнительно усиливающий амплитуду пика. Таким образом, исследователи построили тепло-энергетическую модель, объясняющую поведение пиков и позволяющую предсказывать уязвимые конфигурации.
В рамках демонстрации эффективности SleepWalk были реализованы атаки на две криптографические системы:
Все атаки были реализованы на обычном оборудовании без модификации прошивок или ядер, что подчёркивает их применимость к потребительским устройствам. При этом ни одна из атак не использует внешних синхросигналов, временных привязок или сложной трассировки — только пиковое значение во время вызова <code>sleep()</code>.
Код и демонстрации PoC уже опубликованы в открытом репозитории , а уведомления об уязвимости были отправлены Broadcom и ARM ещё в январе 2025 года. Авторы подчёркивают, что уязвимость проявляется на стандартном оборудовании и способна подорвать безопасность даже защищённых реализаций, ранее считавшихся стойкими к анализу энергопотребления.
Это первая работа, демонстрирующая практическую атакующую технику, опирающуюся только на спонтанно возникающий побочный канал от функции сна, и открывающая новое направление в изучении энергетических утечек: одна точка — и всё, что было до, оказывается доступным.
Исследователи из Университета Флориды представили принципиально новую атаку по побочным каналам , которую они назвали SleepWalk. Она использует характерный всплеск мощности, возникающий в момент переключения контекста между задачами в операционной системе — особенно при вызове встроенной функции <code>sleep()</code> — для извлечения чувствительных данных, таких как криптографические ключи . В отличие от традиционных атак по энергетическому каналу, SleepWalk требует лишь одного измерения мощности, зафиксированного в момент <code>context switch</code>, без необходимости анализа всей временной трассы, использования синхронизаторов или сложной предобработки сигнала.
Атака была продемонстрирована на 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.
Суть уязвимости заключается в том, что каждый <code>context switch</code> в ядре Linux вызывает последовательность операций <code>store/load</code>, при которых сохраняется и восстанавливается состояние регистров (GPR) задачи — что требует значительной внутренней активности в CPU, памяти и шинах, в том числе обнуления предвыбранных инструкций (pipeline flush) и сброса компонентов вроде TLB и буфера предвыборки инструкций. Эта активность генерирует мощный и чётко выраженный всплеск потребления, хорошо различимый даже при одиночном измерении.
Однако ключевое открытие состоит в том, что <strong>амплитуда всплеска напрямую зависит не только от текущего состояния регистров, но и от «остаточной» мощности, связанной с инструкциями и данными, которые выполнялись до <code>context switch</code>.</strong> Таким образом, один-единственный пик в момент вызова <code>sleep()</code> даёт двойной побочный канал:
- <strong>Отпечаток переключения контекста (context-switch power signature)</strong> — зависит от веса Хэмминга данных в регистрах (чем больше единичных битов, тем выше потребление).
- <strong>Отпечаток остаточной мощности (residual power signature)</strong> — отражает совокупное поведение ранее исполняемой программы, включая её интенсивность, типы операций, количество команд и характер данных.
Влияние имела даже длительность выполнения кода до <code>sleep()</code>: при увеличении количества инструкций возрастала температура кристалла, а с ней — и ток утечки (<code>leakage power</code>), дополнительно усиливающий амплитуду пика. Таким образом, исследователи построили тепло-энергетическую модель, объясняющую поведение пиков и позволяющую предсказывать уязвимые конфигурации.
В рамках демонстрации эффективности SleepWalk были реализованы атаки на две криптографические системы:
- <strong>SIKE (Supersingular Isogeny Key Encapsulation)</strong> — постквантовая схема, построенная на эллиптических кривых. Исследователи использовали версию из библиотеки CIRCL (Cloudflare) и показывали два сценария:
- <li> <strong>PoC-атака с вставкой <code>sleep()</code> в код SIKE</strong> после уязвимого участка Montgomery ladder. Контекстный отпечаток фиксировал аномальные нули в регистрах, связанные с определёнными битами ключа. Использовалась простая бинарная классификация амплитуд, позволившая извлечь полный секретный ключ.
- <strong>Атака на «чистую» SIKE</strong>, где <code>sleep()</code> вызывался только в обёртке, после декрипта. Даже в этом случае остаточная мощность от обработки определённых входных данных позволяла статистически восстановить биты ключа. Авторы разработали пошаговый алгоритм на основе сравнения амплитуд двух последовательных вызовов с разными догадками по биту ключа, восстанавливая ключ по одному биту за итерацию.
- <li> <strong>PoC-атака с вставкой <code>sleep()</code> в код SIKE</strong> после уязвимого участка Montgomery ladder. Контекстный отпечаток фиксировал аномальные нули в регистрах, связанные с определёнными битами ключа. Использовалась простая бинарная классификация амплитуд, позволившая извлечь полный секретный ключ.
- <strong> AES-128 </strong> — была реализована атака на финальный раунд симметричного шифрования с использованием подхода выбранного открытого текста. Специально сформированные входные данные гарантировали, что выход S-box и ShiftRows будет содержать байт 0x00, создающий минимальный вес Хэмминга и, соответственно, минимальный остаточный вклад в пик. Сравнение этих случаев с другими входами дало возможность выделить байты с максимальной точностью. В результате атаки удалось восстановить 10 из 16 байтов финального раундового ключа, сократив сложность перебора с 2¹²⁸ до 2⁴⁸.
Все атаки были реализованы на обычном оборудовании без модификации прошивок или ядер, что подчёркивает их применимость к потребительским устройствам. При этом ни одна из атак не использует внешних синхросигналов, временных привязок или сложной трассировки — только пиковое значение во время вызова <code>sleep()</code>.
Код и демонстрации PoC уже опубликованы в открытом репозитории , а уведомления об уязвимости были отправлены Broadcom и ARM ещё в январе 2025 года. Авторы подчёркивают, что уязвимость проявляется на стандартном оборудовании и способна подорвать безопасность даже защищённых реализаций, ранее считавшихся стойкими к анализу энергопотребления.
Это первая работа, демонстрирующая практическую атакующую технику, опирающуюся только на спонтанно возникающий побочный канал от функции сна, и открывающая новое направление в изучении энергетических утечек: одна точка — и всё, что было до, оказывается доступным.
- Источник новости
- www.securitylab.ru