Атаки холодной загрузки: что ОЗУ помнит после отключения питания
Выключить компьютер кажется жестким рубежом. Это не так. DRAM, в которой находится рабочая память запущенной системы, — это сетка крошечных конденсаторов, а конденсаторы разряжаются постепенно. Секунды, а иногда минуты после исчезновения питания чипы все еще хранят большую часть записанного, включая ключи томов, которые шифрование диска загружает при старте. Атакующий, который перезагрузит такую машину с минимальным загрузчиком и выгрузит остатки, уйдет с этими ключами. Это и есть атака холодной загрузки, и с 2008 года она продемонстрирована на реальных, широко распространенных продуктах шифрования.
Работа Принстона, которая назвала проблему
Каноническую демонстрацию провели исследователи Center for Information Technology Policy Принстонского университета и их соавторы. Их статья, 'Lest We Remember: Cold Boot Attacks on Encryption Keys', была представлена на симпозиуме USENIX Security в Сан-Хосе в июле 2008 года. Разрыв между тем временем и нынешним стоит обозначить прямо: техника стара, и предупреждение тоже. Авторы показали, что DRAM сохраняет содержимое секунды и минуты после потери питания, даже при рабочей температуре и даже после извлечения модулей из материнской платы, а простое охлаждение — команда применяла охлаждающий спрей — растягивает это окно драматически. Не имея особых устройств и материалов, они извлекали ключи шифрования диска из образов памяти и одолевали BitLocker, FileVault, dm-crypt и TrueCrypt при холодных перезагрузках. Они также описали алгоритмы поиска ключей в частично деградировавшей памяти и исправления битовых ошибок.Почему ключи выживают
Слабое место — расписания ключей AES (key schedule). Развернутый ключ хранится в памяти с большой внутренней избыточностью, поэтому даже зашумленный дамп можно скорректировать до истинного ключа. И современное железо дыру не закрывает. Академический анализ 2017 года, 'Cold Boot Attacks are Still Hot: Security Analysis of Memory Scramblers in Modern Processors', исследовал логику скремблирования, которую современные процессоры применяют к DRAM, — меру, которая, как считалось, ослабляет такие атаки, — и признал ее неэффективной: маску скремблирования можно вывести из самого дампа. Авторы построили доказательство концепции, извлекающее ключ AES шифрования диска из памяти современного процессора, и их атака опирается на краткое прерывание питания, а не на охлаждение модулей.Почему выключение — не безопасность
Если бы ключи надежно стирались при выключении, окно было бы маленьким. Но несколько распространенных состояний питания ничего не стирают никогда. Suspend-to-RAM держит DRAM под напряжением и обновляет ее: каждый ключ, который держала система, остается на месте, за экраном блокировки, который можно атаковать напрямую. Спящий режим записывает образ RAM на диск, и это безопасно ровно настолько, насколько зашифрован том подкачки или гибернации, ведь снимок работающей памяти на незашифрованном хранилище — подарок. Даже теплая перезагрузка не отключает модули от питания надолго. Проект Tails, который документирует эту угрозу для своих пользователей, формулирует риск прямо:... может оставаться в ОЗУ до нескольких минут после выключения ...Это предупреждение адресовано обычным ноутбукам. Машина, выключенная в бытовом смысле — крышка закрыта, экран темный, состояние питания размыто, — может все еще хранить все, что нужно атакующему, а схватить ее — дело секунд.
Какие меры защиты реально существуют
Tails — самая заметная защита в повседневном использовании. При выключении система перезаписывает большую часть своей ОЗУ случайными данными, и та же очистка срабатывает, когда загрузочный носитель физически извлекают во время работы, — аварийный путь, построенный именно для момента, когда машину схватывают. Под капотом это функция ядра init-on-free плюс сторожевой процесс, следящий за USB-носителем, а заметки проекта уточняют, что файлы, нужные процессу очистки, блокируются в памяти с самого старта, чтобы очистку нельзя было вытеснить во время выполнения. Привычки, которые к этому прилагаются, неприглядны, но конкретны:- Выключайте полностью, а не уводите в спящий режим, особенно перед тем, как передать устройство кому-то еще.
- Изучите самый быстрый путь выключения вашей системы: очистке нужно время на выполнение.
- Никогда не оставляйте работающий или спящий ноутбук без физического присмотра.
- Если железо пропало из виду в зоне повышенного риска, считайте его возможно скомпрометированным, а не просто выключенным.










