Исследователи безопасности представили атаку под названием Volt Boot, которая нарушает фундаментальное представление о безопасности встроенной памяти. Она использует уязвимость в архитектуре распределения питания современных SoC, чтобы получать данные из кэшей, регистров и внутренней памяти.
Статическая память SRAM встроена прямо в кристалл процессора, она не сохраняет информацию при отключении питания, поэтому выглядела устойчивой к атакам холодной перезагрузки. Специалисты же представили сценарий атаки, который опирается на физическую сегментацию питания в SoC или разделение на домены — памяти, ядер и периферии. Оно позволяет изолировать питание одного домена и сохранить его активным даже при отключении остальных. Получив доступ к тестовым точкам на печатной плате, хакер может питать только нужный домен, искусственно продлевая жизнь SRAM, где на момент сброса остаются неочищенные данные.
Чтобы реализовать атаку, требуется физический доступ к устройству и внешний источник питания. При отключении основного питания через PMIC зонд продолжает подавать напряжение на домен памяти, тем самым обеспечивая сохранность данных в SRAM. При атаке не нужны экстремально низкие температуры, поскольку сохраняемое состояние зависит не от теплового отклика, а от электрического напряжения.
Исследователи смогли успешно атаковать три популярных SoC на базе ARM Cortex-A : BCM2711 и BCM2837 от Broadcom, а также i.MX535 от NXP. Они извлекли данные из кэшей L1, регистров SIMD и встроенной RAM с точностью 100% в случае с кэшами и регистрами. Стоит отметить, что даже при запуске с операционной системой Volt Boot сохранял часть содержимого кэша, несмотря на активность фоновых процессов.
Выяснилось, что особенно уязвимы к атакам криптографические приложения, которые избегают записи ключей в DRAM и хранят их во внутренних регистрах и кэше. Volt Boot извлекает эти ключи без искажений.
Кроме того, выяснилось, что в большинстве современных процессоров отсутствует жёсткое аппаратное обнуление SRAM при загрузке. По команде очистки кэша память не удаляет данные, а лишь делает их недоступными при обычном обращении. В итоге хакер может извлечь их с применением низкоуровневых инструкций или отладочных интерфейсов, например JTAG.
Исследователи предложили в качестве мер защиты обязательную аутентификацию загрузочного образа, жёсткую инициализацию SRAM на этапе старта, аппаратное стирание памяти при сбросе питания и включение TrustZone для защиты доступа к критически важным данным. Однако всё это требует значительной переработки архитектуры.
Источник: habr.com