В компьютерной безопасности атака с холодной загрузкой (или, в меньшей степени, атака с перезагрузкой платформы ) — это тип атаки по побочному каналу , при которой злоумышленник, имеющий физический доступ к компьютеру, выполняет дамп оперативной памяти компьютера (ОЗУ). ), выполнив полный сброс целевой машины. Обычно атаки с холодной загрузкой используются для получения ключей шифрования из работающей операционной системы в злонамеренных или уголовных целях. [1] [2] [3] Атака основана на свойстве остаточной намагниченности данных DRAM и SRAM для извлечения содержимого памяти, которое остается читаемым в течение секунд или минут после отключения питания. [2] [4] [5]
Злоумышленник, имеющий физический доступ к работающему компьютеру, обычно выполняет атаку с «холодной загрузкой», загружая машину с «холодной» загрузкой и загружая облегченную операционную систему со съемного диска, чтобы сбросить содержимое предзагрузочной физической памяти в файл. [6] [2] Затем злоумышленник может проанализировать данные, выгруженные из памяти, чтобы найти конфиденциальные данные, такие как ключи , используя различные формы атак с поиском ключей . [7] [8] Поскольку атаки с холодной загрузкой нацелены на оперативную память , схемы полного шифрования диска , даже с установленным доверенным платформенным модулем, неэффективны против такого рода атак. [2] Это связано с тем, что проблема в основном аппаратная (незащищенная память), а не программная . Однако злонамеренный доступ можно предотвратить, ограничив физический доступ и используя современные методы, позволяющие избежать хранения конфиденциальных данных в оперативной памяти .
Модули памяти DIMM постепенно теряют данные по мере потери питания, но не теряют все данные сразу при отключении питания. [2] Для некоторых модулей памяти временной интервал атаки можно продлить до часов или даже недели, охладив их замораживающим спреем и жидким азотом. Более того, поскольку биты со временем исчезают в памяти, их можно восстановить, поскольку они исчезают предсказуемым образом. [2] Следовательно, злоумышленник может выполнить дамп памяти ее содержимого, выполнив атаку с холодной загрузкой. Возможность успешного выполнения атаки с холодной загрузкой значительно различается в зависимости от системы, типа памяти, производителя памяти и свойств материнской платы, и ее может быть сложнее реализовать, чем программные методы или атака DMA . [9] Хотя в настоящее время основное внимание уделяется шифрованию дисков, любые конфиденциальные данные, хранящиеся в памяти, уязвимы для атаки. [2]
Злоумышленники выполняют атаки с холодной загрузкой, принудительно и резко перезагружая целевой компьютер, а затем загружая предустановленную операционную систему с USB-накопителя , компакт-диска или по сети . [3] В тех случаях, когда выполнить полную перезагрузку целевой машины нецелесообразно, злоумышленник может альтернативно физически удалить модули памяти из исходной системы и быстро поместить их в совместимую машину под контролем злоумышленника, которая затем загружается для доступа к Память. [2] Затем можно выполнить дальнейший анализ данных, выгруженных из ОЗУ .
Подобный тип атаки также может быть использован для извлечения данных из памяти, например, атака DMA , которая позволяет получить доступ к физической памяти через высокоскоростной порт расширения, такой как FireWire . [3] Атака с холодной загрузкой может быть предпочтительнее в определенных случаях, например, когда существует высокий риск повреждения оборудования. Использование высокоскоростного порта расширения в некоторых случаях может привести к короткому замыканию или физическому повреждению оборудования. [3]
Атаки с холодной загрузкой обычно используются для цифровых криминалистических расследований , вредоносных целей, таких как кража, и восстановления данных. [3]
В некоторых случаях атака с холодной загрузкой используется в цифровой криминалистике для криминалистического сохранения данных, содержащихся в памяти, в качестве доказательств уголовного преступления. [3] Например, когда сохранить данные в памяти другими способами нецелесообразно, может быть использована атака «холодной загрузки» для выполнения дампа данных, содержащихся в оперативной памяти . Например, атака с холодной загрузкой используется в ситуациях, когда система защищена и доступ к компьютеру невозможен. [3] Атака с холодной загрузкой также может потребоваться, если жесткий диск зашифрован с помощью полного шифрования диска и потенциально содержит доказательства преступной деятельности. Атака с холодной загрузкой обеспечивает доступ к памяти, которая может предоставить информацию о состоянии системы в данный момент, например о том, какие программы запущены. [3]
Атака с холодной загрузкой может использоваться злоумышленниками для получения доступа к зашифрованной информации, такой как финансовая информация или коммерческая тайна , со злыми намерениями. [10]
Обычной целью атак с холодной загрузкой является обход программного шифрования диска. Атаки с холодной загрузкой, используемые в сочетании с атаками с поиском ключей, оказались эффективным средством обхода схем полного шифрования диска различных поставщиков и операционных систем , даже если используется безопасный криптопроцессор Trusted Platform Module (TPM) . [2]
В случае приложений шифрования диска, которые можно настроить так, чтобы операционная система загружалась без ввода PIN-кода перед загрузкой или наличия аппаратного ключа (например, BitLocker в простой конфигурации, которая использует TPM без PIN-кода двухфакторной аутентификации ). или USB-ключ), временные рамки атаки вообще не ограничиваются. [2]
BitLocker в конфигурации по умолчанию использует доверенный платформенный модуль , которому не требуется ни PIN-код , ни внешний ключ для расшифровки диска. При загрузке операционной системы BitLocker извлекает ключ из доверенного платформенного модуля без какого-либо взаимодействия с пользователем. Следовательно, злоумышленник может просто включить компьютер, дождаться начала загрузки операционной системы , а затем выполнить атаку с холодной загрузкой на компьютер, чтобы получить ключ. В связи с этим для обхода этой уязвимости в реализации BitLocker по умолчанию следует использовать двухфакторную аутентификацию , такую как ПИН-код перед загрузкой или съемное USB-устройство, содержащее ключ запуска вместе с доверенным платформенным модулем. [11] [5] Однако этот обходной путь не мешает злоумышленнику получить конфиденциальные данные из памяти или получить ключи шифрования, кэшированные в памяти.
Поскольку дамп памяти можно легко выполнить, выполнив атаку с холодной загрузкой, хранение конфиденциальных данных в оперативной памяти, например ключей шифрования для полного шифрования диска , небезопасно. Было предложено несколько решений для хранения ключей шифрования в областях, отличных от оперативной памяти . Хотя эти решения могут снизить вероятность взлома полного шифрования диска, они не обеспечивают защиты других конфиденциальных данных, хранящихся в памяти.
Одним из решений для хранения ключей шифрования в памяти является хранение ключей на основе регистров. Реализациями этого решения являются TRESOR [12] и Loop-Amnesia. [13] Обе эти реализации модифицируют ядро операционной системы так, что регистры ЦП (в случае TRESOR — регистры отладки x86 , а в случае Loop-Amnesia — регистры профилирования AMD64 или EMT64) могут использоваться для хранения ключей шифрования, а не для хранения ключей шифрования. БАРАН. Ключи , хранящиеся на этом уровне , нелегко прочитать из пользовательского пространства и теряются при перезагрузке компьютера по любой причине. И TRESOR, и Loop-Amnesia должны использовать генерацию ключей «на лету» из-за ограниченного пространства, доступного для хранения криптографических токенов таким способом. В целях безопасности оба отключают прерывания, чтобы предотвратить утечку ключевой информации в память из регистров ЦП во время шифрования или дешифрования, и оба блокируют доступ к регистрам отладки или профиля.
В современных процессорах x86 есть две потенциальные области для хранения ключей: регистры SSE , которые фактически можно сделать привилегированными, отключив все инструкции SSE (и обязательно любые программы, использующие их), и регистры отладки, которые были намного меньше, но не имели такие проблемы.
Было разработано доказательство распространения концепции под названием «паранойс», основанное на методе регистров SSE . [14] Разработчики утверждают, что «при запуске TRESOR на 64-битном процессоре, поддерживающем AES-NI , нет снижения производительности по сравнению с общей реализацией AES », [15] и он работает немного быстрее, чем стандартное шифрование, несмотря на необходимость перерасчет ключей. [12] Основное преимущество Loop-Amnesia по сравнению с TRESOR заключается в том, что она поддерживает использование нескольких зашифрованных дисков; Основными недостатками являются отсутствие поддержки 32-битной версии x86 и худшая производительность на процессорах, не поддерживающих AES-NI.
«Замороженный кэш» (иногда известный как «кэш в оперативной памяти») [16] может использоваться для безопасного хранения ключей шифрования. Он работает путем отключения кэша L1 процессора и использует его для хранения ключей, однако это может значительно ухудшить общую производительность системы до такой степени, что она станет слишком медленной для большинства целей. [17] [ нужен лучший источник ]
Аналогичное решение на основе кэша было предложено Guan et al. (2015) [18] за счет использования режима кэша WB (обратная запись) для хранения данных в кэшах, что сокращает время вычислений алгоритмов с открытым ключом.
Mimosa [19] в IEEE S&P 2015 представила более практичное решение для криптографических вычислений с открытым ключом против атак с холодной загрузкой и атак DMA. Он использует аппаратную транзакционную память (HTM), которая изначально была предложена как механизм спекулятивного доступа к памяти для повышения производительности многопоточных приложений. Строгая гарантия атомарности, обеспечиваемая HTM, используется для предотвращения несанкционированного одновременного доступа к пространству памяти, содержащему конфиденциальные данные. Закрытый ключ RSA шифруется в памяти ключом AES, защищенным TRESOR. По запросу в рамках транзакции HTM выполняется вычисление закрытого ключа RSA: сначала закрытый ключ расшифровывается в памяти, а затем выполняется расшифровка или подписание RSA. Поскольку закрытый ключ RSA в виде простого текста появляется только как измененные данные в транзакции HTM, любая операция чтения этих данных приведет к отмене транзакции — транзакция вернется к исходному состоянию. Обратите внимание, что закрытый ключ RSA зашифрован в исходном состоянии и является результатом операций записи (или расшифровки AES). В настоящее время HTM реализуется в кэшах или буферах хранения, оба из которых расположены в процессорах, а не во внешних микросхемах оперативной памяти. Таким образом, атаки с холодной загрузкой предотвращаются. Mimosa противостоит атакам, которые пытаются прочитать конфиденциальные данные из памяти (включая атаки с холодной загрузкой, атаки DMA и другие программные атаки), и она приводит лишь к небольшому снижению производительности.
Передовая практика рекомендует отключать все зашифрованные несистемные диски, когда они не используются, поскольку большинство программ шифрования дисков предназначены для безопасного удаления ключей, кэшированных в памяти, после использования. [20] Это снижает риск того, что злоумышленник сможет спасти ключи шифрования из памяти, выполнив атаку с холодной загрузкой. Чтобы свести к минимуму доступ к зашифрованной информации на жестком диске операционной системы, компьютер следует полностью выключать, когда он не используется, чтобы снизить вероятность успешной атаки с холодной загрузкой. [2] [21] Однако данные могут оставаться читаемыми от десятков секунд до нескольких минут в зависимости от физического устройства оперативной памяти в машине, что потенциально позволяет злоумышленнику получить некоторые данные из памяти. Настройка операционной системы на выключение или спящий режим, когда она не используется, вместо использования спящего режима может помочь снизить риск успешной атаки с холодной загрузкой.
Обычно атаку с холодной загрузкой можно предотвратить, ограничив физический доступ злоумышленника к компьютеру или усложнив проведение атаки. Один из методов заключается в пайке или приклеивании модулей памяти к материнской плате , чтобы их нельзя было легко извлечь из разъемов и вставить в другую машину, находящуюся под контролем злоумышленника. [2] Однако это не мешает злоумышленнику загрузить компьютер жертвы и выполнить дамп памяти с помощью съемного USB-накопителя . Такие средства защиты , как безопасная загрузка UEFI или аналогичные подходы к проверке загрузки, могут быть эффективными для предотвращения загрузки злоумышленником специальной программной среды для выгрузки содержимого припаянной основной памяти. [22]
Шифрование оперативной памяти (ОЗУ) снижает вероятность того, что злоумышленник сможет получить ключи шифрования или другие материалы из памяти посредством атаки с холодной загрузкой. Этот подход может потребовать внесения изменений в операционную систему, приложения или оборудование. Один из примеров аппаратного шифрования памяти был реализован в Microsoft Xbox . [23] Реализации на более новом оборудовании x86-64 доступны у AMD, а также на Intel Willow Cove и новее.
Программное шифрование всей памяти аналогично хранению ключей на базе ЦП, поскольку материал ключа никогда не передается в память, но является более полным, поскольку все содержимое памяти зашифровано. Как правило, операционная система расшифровывает и читает на лету только непосредственные страницы. [24] Реализации программных решений шифрования памяти включают: коммерческий продукт от PrivateCore . [25] [26] [27] и RamCrypt — патч для ядра Linux, который шифрует данные в памяти и сохраняет ключ шифрования в регистрах ЦП аналогично TRESOR . [12] [24]
Начиная с версии 1.24, VeraCrypt поддерживает шифрование ключей и паролей в оперативной памяти. [28]
Совсем недавно было опубликовано несколько статей, в которых подчеркивалась доступность обычных процессоров x86 и ARM с повышенной безопасностью. [29] [30] В этой работе процессор ARM Cortex A8 используется в качестве основы, на которой построено решение для полного шифрования памяти. Сегменты процесса (например, стек, код или куча) могут шифроваться индивидуально или в составе. Эта работа знаменует собой первую реализацию полного шифрования памяти на процессоре общего назначения. Система обеспечивает как конфиденциальность, так и защиту целостности кода и данных, которые шифруются повсюду за пределами процессора.
Поскольку атаки с холодной загрузкой нацелены на незашифрованную оперативную память , одним из решений является стирание конфиденциальных данных из памяти, когда она больше не используется. «Спецификация предотвращения атак сброса платформы TCG», [31] являющаяся ответом отрасли на эту конкретную атаку, заставляет BIOS перезаписывать память во время POST , если операционная система не была завершена корректно. Однако эту меру все же можно обойти, удалив модуль памяти из системы и прочитав его обратно в другой системе под контролем злоумышленника, которая не поддерживает эти меры. [2]
Эффективная функция безопасного стирания заключается в том, что в случае сбоя питания ОЗУ очищается менее чем за 300 мс до отключения питания в сочетании с безопасным BIOS и контроллером жесткого диска/SSD, который шифрует данные на портах M-2 и SATAx. . Если бы сама ОЗУ не содержала последовательных данных или других данных, а тайминги хранились в BIOS с некоторой формой отказоустойчивости, требующей аппаратного ключа для их изменения, было бы практически невозможно восстановить какие-либо данные, а также было бы невосприимчиво к атакам TEMPEST . «Человек в оперативной памяти» и другие возможные методы проникновения. [ нужна ссылка ] [32]
Некоторые операционные системы , такие как Tails, предоставляют функцию, которая безопасно записывает произвольные данные в системную память при выключении операционной системы, чтобы предотвратить атаку с холодной загрузкой. [33] Однако стирание видеопамяти по-прежнему невозможно, и по состоянию на 2022 год это все еще открытая заявка на форуме Tails. [34] Потенциальные атаки, которые могут использовать эту уязвимость:
Атаку с холодной загрузкой можно предотвратить, гарантируя, что на атакуемом оборудовании не хранятся никакие ключи.
Скремблирование памяти может использоваться для минимизации нежелательных паразитных эффектов полупроводников, которые являются особенностью современных процессоров Intel Core . [38] [39] [40] [41] Однако, поскольку скремблирование используется только для декорреляции любых шаблонов в содержимом памяти, память может быть дескремблирована с помощью атаки дескремблирования. [42] [43] Следовательно, шифрование памяти не является эффективным средством защиты от атак с холодной загрузкой.
Спящий режим не обеспечивает дополнительной защиты от атаки «холодной загрузки», поскольку в этом состоянии данные обычно все еще находятся в памяти. Таким образом, продукты полнодискового шифрования по-прежнему уязвимы для атак, поскольку ключи находятся в памяти и их не нужно вводить повторно после выхода машины из состояния низкого энергопотребления.
Хотя ограничение параметров загрузочного устройства в BIOS может немного затруднить загрузку другой операционной системы, прошивка современных чипсетов имеет тенденцию позволять пользователю переопределять загрузочное устройство во время POST , нажав указанную горячую клавишу. [5] [44] [45] Ограничение вариантов загрузочного устройства не помешает удалению модуля памяти из системы и повторному считыванию в альтернативной системе. Кроме того, большинство чипсетов предоставляют механизм восстановления, позволяющий сбросить настройки BIOS до значений по умолчанию, даже если они защищены паролем. [10] [46] Настройки BIOS также можно изменить во время работы системы, чтобы обойти любые применяемые ею меры защиты, такие как очистка памяти или блокировка загрузочного устройства. [47] [48] [49]
Атаку с холодной загрузкой можно адаптировать и провести аналогичным образом на смартфонах Android . [50] Поскольку в смартфонах нет кнопки сброса, холодную перезагрузку можно выполнить, отсоединив аккумулятор телефона, чтобы принудительно выполнить полный сброс. [50] Затем на смартфон прошивается образ операционной системы, который может выполнить дамп памяти . Обычно смартфон подключается к машине злоумышленника через USB- порт.
Обычно Android -смартфоны безопасно стирают ключи шифрования из оперативной памяти, когда телефон заблокирован. [50] Это снижает риск того, что злоумышленник сможет получить ключи из памяти, даже если ему удалось провести атаку с холодной загрузкой телефона.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка )