В компьютерной безопасности атака холодной загрузки (или в меньшей степени атака сброса платформы ) — это тип атаки по сторонним каналам , при которой злоумышленник, имеющий физический доступ к компьютеру, выполняет дамп памяти оперативной памяти (ОЗУ) компьютера , выполняя жесткий сброс целевой машины. Обычно атаки холодной загрузки используются для извлечения ключей шифрования из работающей операционной системы в злонамеренных или криминальных следственных целях. [1] [2] [3] Атака основана на свойстве остаточной памяти DRAM и SRAM для извлечения содержимого памяти, которое остается читаемым в течение нескольких секунд или минут после отключения питания. [2] [4] [5]
Злоумышленник, имеющий физический доступ к работающему компьютеру, обычно выполняет атаку холодной загрузки, выполняя холодную загрузку машины и загружая облегченную операционную систему со съемного диска, чтобы сбросить содержимое физической памяти до загрузки в файл. [6] [2] Затем злоумышленник может свободно анализировать данные, сброшенные из памяти, чтобы найти конфиденциальные данные, такие как ключи , используя различные формы атак с поиском ключей . [7] [8] Поскольку атаки холодной загрузки нацелены на память с произвольным доступом , схемы полного шифрования диска , даже с установленным модулем доверенной платформы , неэффективны против такого рода атак. [2] Это связано с тем, что проблема в основном связана с оборудованием (незащищенная память), а не с программным обеспечением . Однако злонамеренный доступ можно предотвратить, ограничив физический доступ и используя современные методы, чтобы избежать хранения конфиденциальных данных в памяти с произвольным доступом .
Модули памяти DIMM постепенно теряют данные с течением времени по мере отключения питания, но не теряют все данные немедленно при отключении питания. [2] С некоторыми модулями памяти временное окно для атаки может быть увеличено до часов или даже недели путем их охлаждения замораживающим спреем и жидким азотом. Кроме того, поскольку биты исчезают в памяти со временем, их можно восстановить, поскольку они исчезают предсказуемым образом. [2] Следовательно, злоумышленник может выполнить дамп памяти ее содержимого, выполнив атаку холодной загрузки. Возможность успешного выполнения атаки холодной загрузки значительно различается в зависимости от различных систем, типов памяти, производителей памяти и свойств материнской платы, и может быть более сложной для выполнения, чем программные методы или атака DMA . [9] Хотя в настоящее время основное внимание уделяется шифрованию диска, любые конфиденциальные данные, хранящиеся в памяти, уязвимы для атаки. [2]
Злоумышленники выполняют атаки с холодной загрузкой, принудительно и резко перезагружая целевую машину, а затем загружая предустановленную операционную систему с USB-флеш-накопителя , CD-ROM или по сети . [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 извлекает ключ из TPM без какого-либо взаимодействия с пользователем. Следовательно, злоумышленник может просто включить машину, дождаться начала загрузки операционной системы , а затем выполнить холодную атаку на машину, чтобы извлечь ключ. В связи с этим для обхода этой уязвимости в реализации BitLocker по умолчанию следует использовать двухфакторную аутентификацию , такую как предзагрузочный PIN-код или съемное USB-устройство, содержащее ключ запуска вместе с TPM. [11] [5] Однако этот обходной путь не мешает злоумышленнику извлекать конфиденциальные данные из памяти или извлекать ключи шифрования, кэшированные в памяти.
Поскольку дамп памяти можно легко выполнить, выполнив атаку холодной загрузки, хранение конфиденциальных данных в оперативной памяти, например ключей шифрования для полного шифрования диска, небезопасно. Было предложено несколько решений для хранения ключей шифрования в областях, отличных от памяти с произвольным доступом . Хотя эти решения могут снизить вероятность взлома полного шифрования диска, они не обеспечивают никакой защиты других конфиденциальных данных, хранящихся в памяти.
Одним из решений для хранения ключей шифрования вне памяти является хранение ключей на основе регистров. Реализациями этого решения являются TRESOR [12] и Loop-Amnesia. [13] Обе эти реализации изменяют ядро операционной системы таким образом, что регистры ЦП (в случае TRESOR регистры отладки x86 и в случае Loop-Amnesia регистры профилирования AMD64 или EMT64) могут использоваться для хранения ключей шифрования, а не в оперативной памяти. Ключи, хранящиеся на этом уровне, не могут быть легко прочитаны из пользовательского пространства [ требуется ссылка ] и теряются при перезагрузке компьютера по любой причине. TRESOR и Loop-Amnesia должны использовать генерацию раундовых ключей «на лету» из-за ограниченного пространства, доступного для хранения криптографических токенов таким образом. В целях безопасности обе отключают прерывания, чтобы предотвратить утечку ключевой информации из регистров ЦП в память во время выполнения шифрования или дешифрования, и обе блокируют доступ к регистрам отладки или профиля.
В современных процессорах x86 есть две потенциальные области для хранения ключей: регистры SSE , которые фактически можно сделать привилегированными, отключив все инструкции SSE (и, по необходимости, все программы, на них опирающиеся), и отладочные регистры, которые были намного меньше, но не имели подобных проблем.
Разработано доказательство концепции распределения под названием «paranoix», основанное на методе регистра SSE. [ 14 ] Разработчики утверждают, что «при запуске TRESOR на 64-битном ЦП, поддерживающем AES-NI , нет никакого ухудшения производительности по сравнению с общей реализацией AES » , [15] и работает немного быстрее стандартного шифрования, несмотря на необходимость пересчета ключа. [12] Основное преимущество Loop-Amnesia по сравнению с TRESOR заключается в том, что он поддерживает использование нескольких зашифрованных дисков; основными недостатками являются отсутствие поддержки 32-битной x86 и худшая производительность на ЦП, не поддерживающих AES-NI.
«Замороженный кэш» (иногда известный как «кэш как ОЗУ») [16] может использоваться для безопасного хранения ключей шифрования. Он работает путем отключения кэша L1 ЦП и использует его для хранения ключей, однако это может значительно ухудшить общую производительность системы до такой степени, что она станет слишком медленной для большинства целей. [17] [ нужен лучший источник ]
Аналогичное решение на основе кэширования было предложено Гуаном и др. (2015) [18] путем использования режима кэширования WB (обратная запись) для хранения данных в кэшах, что сокращает время вычислений алгоритмов с открытым ключом.
Mimosa [19] в IEEE S&P 2015 представила более практичное решение для криптографических вычислений с открытым ключом против атак холодной загрузки и атак DMA. Оно использует аппаратную транзакционную память (HTM), которая изначально была предложена как механизм спекулятивного доступа к памяти для повышения производительности многопоточных приложений. Сильная гарантия атомарности, предоставляемая HTM, используется для предотвращения нелегального одновременного доступа к пространству памяти, содержащему конфиденциальные данные. Закрытый ключ RSA шифруется в памяти ключом AES, который защищен TRESOR. По запросу вычисление закрытого ключа RSA выполняется в рамках транзакции HTM: закрытый ключ сначала расшифровывается в память, а затем выполняется расшифровка или подписание RSA. Поскольку открытый текстовый закрытый ключ RSA отображается только как измененные данные в транзакции HTM, любая операция чтения этих данных прервет транзакцию — транзакция вернется к своему исходному состоянию. Обратите внимание, что закрытый ключ RSA зашифрован в исходном состоянии и является результатом операций записи (или расшифровки AES). В настоящее время HTM реализован в кэшах или буферах хранения, которые оба находятся в ЦП, а не во внешних чипах ОЗУ. Таким образом, атаки холодной загрузки предотвращаются. Mimosa отбивает атаки, которые пытаются прочитать конфиденциальные данные из памяти (включая атаки холодной загрузки, атаки DMA и другие программные атаки), и это вносит лишь небольшие издержки производительности.
Передовая практика рекомендует демонтировать все зашифрованные несистемные диски, когда они не используются, поскольку большинство программ шифрования дисков разработаны для безопасного стирания ключей, кэшированных в памяти после использования. [20] Это снижает риск того, что злоумышленник сможет спасти ключи шифрования из памяти, выполнив атаку холодной загрузки. Чтобы свести к минимуму доступ к зашифрованной информации на жестком диске операционной системы, машина должна быть полностью выключена, когда она не используется, чтобы снизить вероятность успешной атаки холодной загрузки. [2] [21] Однако данные могут оставаться читаемыми от десятков секунд до нескольких минут в зависимости от физического устройства RAM на машине, что потенциально позволяет злоумышленнику извлечь некоторые данные из памяти. Настройка операционной системы на выключение или переход в спящий режим при неиспользовании вместо использования спящего режима может помочь снизить риск успешной атаки холодной загрузки.
Обычно холодную атаку можно предотвратить, ограничив физический доступ злоумышленника к компьютеру или значительно усложнив проведение атаки. Один из методов заключается в пайке или приклеивании модулей памяти к материнской плате , чтобы их нельзя было легко извлечь из гнезд и вставить в другую машину под контролем злоумышленника. [2] Однако это не мешает злоумышленнику загрузить машину жертвы и выполнить дамп памяти с помощью съемного USB-флеш-накопителя . Смягчение , такое как UEFI Secure Boot или аналогичные подходы проверки загрузки, может быть эффективным для предотвращения загрузки злоумышленником пользовательской программной среды для выгрузки содержимого припаянной основной памяти. [22]
Шифрование оперативной памяти (ОЗУ) снижает вероятность того, что злоумышленник сможет получить ключи шифрования или другие материалы из памяти с помощью атаки с холодной загрузкой. Этот подход может потребовать внесения изменений в операционную систему, приложения или оборудование. Один из примеров аппаратного шифрования памяти был реализован в Microsoft Xbox . [23] Реализации на более новом оборудовании x86-64 доступны от AMD и на Intel Willow Cove и более новых.
Программное полное шифрование памяти похоже на хранилище ключей на базе ЦП, поскольку ключевой материал никогда не выставляется в память, но является более полным, поскольку все содержимое памяти зашифровано. В общем, только непосредственные страницы расшифровываются и считываются на лету операционной системой. [24] Реализации программных решений шифрования памяти включают: коммерческий продукт от PrivateCore . [25] [26] [27] и RamCrypt, патч ядра для ядра Linux, который шифрует данные в памяти и сохраняет ключ шифрования в регистрах ЦП способом, похожим на TRESOR . [12] [24]
Начиная с версии 1.24, VeraCrypt поддерживает шифрование RAM для ключей и паролей. [28]
Совсем недавно было опубликовано несколько статей, в которых подчеркивается доступность процессоров x86 и ARM с улучшенной безопасностью. [29] [30] В этой работе процессор ARM Cortex A8 используется в качестве подложки, на которой построено решение для полного шифрования памяти. Сегменты процесса (например, стек, код или куча) могут быть зашифрованы по отдельности или в составе. Эта работа знаменует собой первую реализацию полного шифрования памяти на универсальном процессоре общего назначения. Система обеспечивает как конфиденциальность, так и защиту целостности кода и данных, которые зашифрованы везде за пределами границ ЦП.
Поскольку атаки с холодной загрузкой нацелены на незашифрованную память с произвольным доступом , одним из решений является стирание конфиденциальных данных из памяти, когда она больше не используется. «Спецификация предотвращения атак сброса платформы TCG» [31] , ответ отрасли на эту конкретную атаку, заставляет BIOS перезаписывать память во время POST , если операционная система не была выключена корректно. Однако эту меру все еще можно обойти, удалив модуль памяти из системы и прочитав его обратно на другой системе под контролем злоумышленника, которая не поддерживает эти меры. [2]
Эффективная функция безопасного стирания будет заключаться в том, что в случае прерывания питания ОЗУ стирается менее чем за 300 мс до отключения питания в сочетании с безопасным BIOS и контроллером жесткого диска/SSD, который шифрует данные на портах M-2 и SATAx. Если сама ОЗУ не содержит последовательного присутствия или других данных, а тайминги хранятся в BIOS с некоторой формой отказоустойчивости, требующей аппаратного ключа для их изменения, то восстановить какие-либо данные будет практически невозможно, а также это будет невосприимчиво к атакам TEMPEST , man-in-the-RAM и другим возможным методам проникновения. [ необходима цитата ] [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: отсутствует местоположение издателя ( ссылка )