Протрите оперативную память при выключении, чтобы предотвратить холодную загрузку

20

Моя система зашифрована с использованием Full Disk Encryption, т.е. все, кроме / boot, зашифровано с помощью dmcrypt / luks. Меня беспокоят « холодные» атаки , где исследователи продемонстрировали , что контент может быть извлечен в течение 5 минут .

Можете ли вы предоставить инструкции по:

  • как запустить kexec в новом ядре на самых последних шагах процесса завершения работы / перезагрузки (чтобы обеспечить чистое отключение, предотвратить повреждение файловой системы, обеспечить перезапись старого ядра)
  • как создать то ядро, которое вытирает весь баран

т.е. можете ли вы объяснить, пожалуйста, как сделать то же самое на Ubuntu?

Как обнаружить выключение? Как запустить RAM Wipe? Оперативная память должна быть стерта при нажатии пользователем «выключение» или если он запускает «скрипт паники».

Спасибо за ваши старания!

Предыдущая работа:

Если вы хотите, чтобы эта функция стала реальностью, проголосуйте за Ubuntu Brainstorm!

http://brainstorm.ubuntu.com/idea/30076/

Джеймс Митч
источник
6
Как вы намерены обнаружить «выключение»? Власть просто ушла, мало что можно сделать в программном обеспечении. А поскольку у злоумышленника есть физический доступ, полагаться на USV проблематично. Цитируя статью из Википедии, на которую вы ссылаетесь: «Чтобы выполнить атаку, машина загружается в холодном режиме. Под холодной загрузкой понимается, когда питание выключается, а затем включается, не позволяя компьютеру полностью выключиться, или, если доступно, , нажав кнопку «Сброс». "
CodesInChaos
2
Случай использования: он стучит в дверь. Текущая ситуация: вы можете отключиться, но до того, как шифрование вступит в силу, потребуется 5 минут (риск атаки с «холодной» загрузкой). С помощью сценария очистки RAM: нажмите кнопку паники, и все почти мгновенно в безопасности. Когда скрипт будет готов, его можно будет легко развернуть, активировать при извлечении USB-накопителя. Это может даже сработать, если кто-то грабит ноутбук, если жертва достаточно быстро отсоединит USB-накопитель.
Джеймс Митч
4
Сообщите нам, если у вас есть оперативная память DDR2 или DDR3. DDR3 невосприимчивы к холодной загрузке. Они сохраняют напряжение только в течение нескольких секунд после принудительного отключения питания. Если вы здесь стучите, то потяните за вилку. Если у вас более старая RAM - я бы включил ДВА вещи в BIOS - 1. Автозапуск после потери питания до последнего известного состояния. 2. Проверка размера плунжера при каждой загрузке. Это позволит вам вытащить штекер, подключить его обратно и идти к двери, в то время как ваш BIOS очистит для вас ОЗУ и загрузит систему после этого. Это быстрее, чем вам когда-либо понадобится.
mnmnc
4
Наступил 2012 год. Холодной загрузки больше не будет, если вы не используете 10-летний ноутбук. Если бы я хотел получить ваши зашифрованные данные, я бы использовал дыру в безопасности системы или послал бы вам троянского коня, чтобы получить ваши данные для меня. То же самое будет сделано государственными органами. Взлом двери и попытка CBA слишком рискованны в свете доступных в настоящее время алгоритмов шифрования. Было бы достаточно иметь в коробке необычные винты, и любой, кто попытается выполнить CBA, оставит вас с пустыми руками после того, как вы потянете за вилку.
mnmnc
6
Вы знаете, эта степень паранойи только сделает черных вертолетных парней, которые больше заинтересованы в вас.
Даниэль Р Хикс

Ответы:

17

Если вы не используете старую оперативную память, такую ​​как DDR2, 512 МБ или 1024 МБ, вам не стоит беспокоиться о CBA.

Взгляните на оригинальное исследование здесь (PDF).

Если вы внимательно прочитаете его, вы обнаружите, что только DDR2 и старше подвержены этой атаке. DDR3 слишком быстро теряет напряжение, чтобы позволить корпусу компьютера демонтировать и заморозить процедуру. Так что просто потяните за вилку, прежде чем ответить на дверь.

Кроме того, этот документ подтверждает, что DDR3 не подвержен CBA. Если на самом деле вы хотите обезопасить себя, потому что у вас есть DDR2 RAM, то включите в BIOS:

  1. Автозапуск после потери питания
  2. Проверка ОЗУ во время загрузки

и сделайте то же самое, что и с DDR3, но после того, как вытащите вилку, подключите ее снова. Ваш компьютер запустится сам и протрите память, проверив ее. Если он не будет достаточно эффективно очищен, процесс загрузки снова загрузит систему в ОЗУ. Это будет слишком быстро, чтобы учесть CBA.

По ссылке, которую вы указали в комментариях:

Таким образом, в заключение, холодная загрузка не должна рассматриваться как основной метод получения памяти подозрительной компьютерной системы. Вместо этого следует использовать другие методы, включая программные и аппаратные средства сбора данных (например, FireWire), перед тем как приступить к холодной загрузке против указанной системы. Однако, если возникает ситуация, когда вышеупомянутые методы либо недоступны (т. Е. Отсутствие соединения FireWire или системная консоль входа в систему, либо удаленное получение памяти невозможно), либо они неэффективны, тогда можно предпринять атаку «холодной загрузки», предполагая, что исследователь понимает оба как и где проблема может возникнуть и пойти не так.
Как показало это исследование, атака с «холодной» загрузкой не может быть признана особенно надежной или надежной, поскольку в большинстве экспериментов, проводимых в данном документе, ключи шифрования, находящиеся в памяти, не могли быть найдены или извлечены последовательно, хотя они должны были быть. То же самое можно сказать и о различных поисках строк и ключевых слов, которые должны были найти гораздо больше строк и ключевых слов, чем было найдено в большинстве экспериментов. Кроме того, как было продемонстрировано, простое действие компьютерной памяти с флэш-памятью не гарантирует успешного получения указанной памяти. Другие факторы и переменные, уже рассмотренные, полностью изучили эти проблемы и их основные причины. Таким образом,
Наконец, даже успешное приобретение, которое практически не пострадало, скорее всего, не станет достойным доказательством в суде, по крайней мере, до тех пор, пока не возникнет юриспруденция и не будет продемонстрирована целостность приобретенной памяти с помощью звука и понятная методология. Поиски продолжают устанавливать более правильный и надежный способ получения памяти компьютера подозреваемого ...

Также, если вы проверите результаты эксперимента, вы поймете, что они успешно извлекли ключи AES только в системе 2 и 6, и это были «горячие» загрузки, когда вы посмотрите на спецификации системы 2 - 1024 МБ ОЗУ 533 МГц - это старое вещи. Другая система - система 6 с 256 ОЗУ / 128 ОЗУ - я полагаю, эта система говорит сама за себя.

Именно поэтому их вывод был:

Поиски продолжают устанавливать более правильный и надежный способ получения памяти компьютера подозреваемого ...

На самом деле я считаю, что если у вас есть очень очень очень важные данные, вы должны не только использовать Full Drive Encryption, но и хранить их в отдельном зашифрованном файле. Зашифрованы с помощью каскадных алгоритмов и пароля, отличного от пароля, используемого при шифровании диска. Вы хотите безопасный способ выключения ПК? Вот:

  1. Храните защищенные данные в зашифрованном файле алгоритма каскада True Crypt
  2. Используйте Змея
  3. Создайте скрипт для обработки выключения:

Для Windows:

truecrypt.exe /wipecache
shutdown -s -f -t 1

Для Linux:

truecrypt /wipecache
shutdown -h now

Очистка кеша гарантирует, что уязвимые данные не останутся в оперативной памяти после завершения работы. Если кто-либо выполнит Cold Boot Attack, он в лучшем случае получит доступ к вашей Системе. Они не будут хранить данные в отдельно зашифрованном файле.

mnmnc
источник
1
Я нашел другую статью 2010 года. Dtic.mil/cgi-bin/GetTRDoc?AD=ADA545078 [PDF] Некоторые биты также касаются DD3, но в нем определенно не сказано, что DD3 безопасен от этой атаки.
Джеймс Митч
2
Я не иду с этим выводом. Этот вопрос был не о том, чтобы избежать правоприменения. Фактически это убивает обсуждение, если вопрос об уклонении от правоохранительных органов. Давайте не будем говорить о правоохранительных органах. Давайте поговорим о промышленном шпионаже. Кто-то, кто имеет 4 или 16 ГБ ОЗУ или более и работал над некоторыми дорогостоящими, важными документами, набросками, исходным кодом и т. Д. Он будет рад, если ключи шифрования не могут быть извлечены, но все еще могут потерять много денег, если его документы украдены из оперативной памяти.
Джеймс Митч
2
Хотя я ненавижу разъяснять случай использования ... Информация не о том, чтобы быть принятым в суде в качестве доказательства или нет. Также у других людей есть законные причины стереть свою оперативную память. Правоохранительные органы хотят скрыть программу защиты свидетелей. Секретная служба хочет скрыть свой интеллект. Промышленность хочет скрыть свои бизнес-секреты. Если ключ шифрования безопасен, хорошо. Остальные данные все еще хотят быть в безопасности, даже биты. Мой оригинальный вопрос остается открытым.
Джеймс Митч
1
Я мог бы создать больше случаев использования, когда люди путешествуют и т. Д. Многие люди шифруют свои диски и, если они знали, что части их ОЗУ могут быть восстановлены, они предпочли бы предпринять действия, чтобы предотвратить это. Если вы ищете старые дискуссии о Google, вы обнаружите, что большинство людей не знают, что ОЗУ содержат (ed) данные после отключения питания. Если бы шифрование диска можно было заменить физической безопасностью, люди не стали бы беспокоиться о шифровании диска. Обе концепции шифрования и физического шифрования имеют право на существование. Безопасность всегда работает только на битах. Это недостающий бит.
Джеймс Митч
1
Ну да, я согласен. Уровень знаний среди людей оставляет желать лучшего. Но вы не сможете внедрить решение, которое сделает их более безопасными. безопасность требует дисциплина. Средний Джо не будет использовать Full Disk Encryption, потому что он боится, что кто-то украдет номер его кредитной карты. Если у вас есть хрупкие данные, которые вы хотите абсолютно безопасно - используйте Truecrypt для создания зашифрованного файла - не шифруйте диск целиком. У Truecrypt есть своя «очистка», которая удаляет навсегда ключи из памяти RAM, перезаписывая ее. Вы можете поместить это в короткий путь. Не охотиться на мух с пушкой.
mnmnc
5

Питер А.Х. Петерсон (Peter AH Peterson) из Калифорнийского университета в Лос-Анджелесе написал концептуальную технологию и разработал теорию безопасного запуска вашей системы с зашифрованной оперативной памятью, и это решение специально разработано для предотвращения атак с «холодной» загрузкой. Название его работы Cryptkeeper. Я не знаю, делает ли он программное обеспечение доступным для загрузки или есть ли возможность лицензировать его от UCLA. Однако, по-видимому, возможно, по крайней мере, в принципе, спроектировать криптосистему для ОЗУ, которая была бы защищенной, даже если раскрыто все содержимое ОЗУ.

Измеренное влияние на производительность этого решения составляет от 9% до замедления в 9 раз , в зависимости от того, насколько «патологичен» сценарий. Показатель в 9% упоминается как относящийся к просмотру веб-страниц с помощью Firefox, но они не указали, какой вариант использования может снизить производительность в 9 раз.

Решение Петерсона не «стирает» оперативную память, как вы предлагаете. Скорее, он использует «безопасный механизм сокрытия ключей», чтобы предотвратить раскрытие ключа дешифрования только благодаря получению содержимого оперативной памяти. Я не уверен в деталях реализации, но я предполагаю, что это объясняется в документе.

Статья была опубликована в 2010 году.

Его можно приобрести на веб-сайте IEEE ieeexplore. Он также доступен для прямой загрузки в виде PDF-файла бесплатно с чьего-либо веб-сайта; это находится там в результатах поиска Google для "ОЗУ cryptkeeper" ... но я не уверен, как долго этот результат будет оставаться там.

У меня возникло желание сделать это комментарием, а не ответом, потому что это решение не «стирает» ОЗУ, как вы просили. Тем не менее, я считаю, что если исследование Петерсона технически правильно, это будет иметь тот же практический эффект - или, возможно, даже «лучший» эффект - чем стирание ОЗУ. Причина в том, что опытный физический злоумышленник может прервать попытку вашей системной программы стереть ОЗУ, если он ожидает, что такая операция произойдет - например, вытащить аккумулятор из устройства или удерживать кнопку питания до того, как операция сможет полный. Решение Peterson является более безопасным, поскольку оно не основано на необходимом временном интервале, в течение которого компьютеру разрешено продолжать выполнение инструкций для завершения очистки. Вместо этого память постоянно защищен, даже если сам процессор мгновенно убит каким-то невероятным технологическим достижением, прежде чем у вас появится шанс среагировать на атакующего.

И под «невероятным технологическим подвигом» я имею в виду что-то вроде Stuxnet.

allquixotic
источник
Отличная находка. Определенно +1 от меня. Но недоступно для подтверждения - нужно заплатить, чтобы прочитать документ. Лично я бы не стал доверять - хотя он не используется широко, скорее всего, в нем будут ошибки реализации. Мне хотелось бы построить железобетонную стену перед моим домом, не имея даже забора с обратной стороны.
mnmnc
С другой стороны, тот факт, что он не используется широко, делает его менее известным для злоумышленников. Это постоянно игра в кошки-мышки между атакующими и защитниками. Наилучшее возможное решение - иметь действительно надежную систему безопасности, которая ТАКЖЕ извлекает выгоду из неясности / неизвестности. Если у вас этого нет, второе лучшее решение - это хорошо известное, публично протестированное и надежное решение, такое как TLS. Этот не так широко используется, как TLS, поэтому мы пока не знаем, является ли он надежным. Гектометр Проблема Шредингера с котом или Гейзенбергом.
allquixotic
1
Кроме того, для вашей информации, лучшим результатом Google для "Cryptkeeper RAM" является прямая загрузка PDF этой статьи научного сотрудника, доступной непосредственно с его собственного сайта . Его псевдоним, по-видимому, Педро, и он размещен на его домене tastytronic.net. Смотрите здесь и здесь . Так что это говорит мне, что он разместил газету на своем собственном сайте по собственной воле, и, таким образом, это общественное достояние? Или, по крайней мере, общедоступный с «тссс не говори IEEE» ;-)
allquixotic
Изумительный. Большое спасибо за ссылку. Это будет интересная лекция.
Mnmnc
Да, интересно и, возможно, более безопасно, чем стирать оперативную память. К сожалению, еще более нереально получить. Поэтому я был бы рад получить ответ на оригинальный вопрос. Не идеально, но хорошая пробка. Спасибо, что поделился.
Джеймс Митч
2

Я полагаю, что memtest86 будет очень хорошо стирать оперативную память. Я всегда хотел попробовать ниже, но не сделал. Если я попробую, я обновлю его.

Прочитайте kexecсправочную страницу . И не пытайтесь. kexecISO, но вам нужно распаковать ISO и поймать загрузочный двоичный файл. На сайте memtest86 вы можете просто скачать бинарный файл.

Вы должны использовать kexecкоманду, чтобы загрузить то, что вы загружаете в первую очередь.

Поэтому я думаю, что вы можете сделать это:

kexec -l {path-to-memtest86-bootable-binary} --append=console=ttyS0,115200n8

и когда вы будете готовы нажать на курок:

kexec -e

Я думаю (но могу ошибаться), что --append=console=ttyS0,115200n8memtest86 работает через последовательный порт. Поэтому, если у вас есть такой, вы можете проверить, работает ли он, даже если он не отображается на видеовыходе, что возможно, поскольку memtest86 не выполняет инициализацию видео. Убийство всех запущенных экземпляров X, вероятно, хорошая идея.

Пакет Debian kexec-tools(также доступный в Ubuntu) перехватывает это в сценарии завершения работы, поэтому, если вы редактируете, /etc/default/kexecвы можете указать, что процесс завершения работы будет вызываться kexecкак конечная вещь вместо перезагрузки. То есть, если вы заинтересованы в чистом отключении.

В случае крайней необходимости, sync; kexec -eбудет работать.

Однако возможно, что некоторые чипсеты, после их инициализации, вызывают блокировку, если обращаются к определенным областям памяти. Я не знаю, как это будет работать на практике.

Хороший компромисс, если kexecне работает, - это установить memtest86 в ваш загрузчик, установить его в качестве загрузочного элемента по умолчанию и иметь задержку в 1 секунду до автоматического выбора (или без задержки и использовать нажатие клавиши для вызова memu). Это может привести вас в memtest86 из состояния «свежей загрузки» довольно быстро, но не сразу.

Обратите внимание, что это не учитывает видео RAM. Решением для этого является настройка видеопамяти как блочного устройства и вывод /dev/randomна блочное устройство в течение нескольких итераций.

LawrenceC
источник
2
Посмотрел в это и гугл и тд. Согласно tails.boum.org/bugs/sdmem_does_not_clear_all_memory/… с memtest осталась одна проблема: «все еще остается небольшой объем памяти, который не был стерт». Спасибо, в любом случае, вещи kexec выглядят полезными и простыми.
Джеймс Митч
2

Это старый вопрос, но я думаю, что могу внести свой вклад. Как уже было сказано, программная очистка памяти - не лучшее решение, просто потому, что питание может быть внезапно отключено, поэтому программное обеспечение очистки не будет выполнено.

Я могу представить лучший сценарий, чтобы проиллюстрировать проблему: вы ведете незаконный бизнес на своем компьютере у себя дома. Однажды электричество внезапно исчезает, и затем отряд ФБР штурмует дверь вашего дома, арестовывает вас, а затем техник-ботаник быстро открывает корпус вашего компьютера и использует внутри него холодный газ, чтобы заморозить состояние памяти, чтобы купить какое-то время для холодной атаки.

Таким образом, лучший способ решить эту проблему - сделать корпус компьютера более безопасным, затрудняя его открытие (что-то вроде хранилища) или даже разрушая память, нагревая плату с помощью сопротивления от батареи, воспламеняемого тампером. переключатель в корпусе. Несколько секунд при высоких температурах могут уничтожить данные или даже уничтожить микросхемы, что не является большой проблемой в этой ситуации.

Даниэль Рибейро
источник
Я всегда думал о термите здесь :-)
Конрад Гаевский
1
Thermite - действительно хорошее решение ... Легко воспламениться и невозможно остановить реакцию. Вам просто нужно сделать безопасную цепь активатора ... Потому что, если она запустит реакцию случайно, вам будет очень тяжело.
Даниэль Рибейро,
0

Проблема в том, что ваш компьютер работает, а экран заблокирован. На этом этапе ключ AES хранится в оперативной памяти, а пользователь находится вне компьютера. Злоумышленник может открыть корпус компьютера и извлечь модули оперативной памяти, одновременно поддерживая их питание и помещая их в отдельное устройство, которое считывает их содержимое. Нет необходимости выключать систему или замораживать модули перед извлечением. ОЗУ не является надежным для хранения ключа AES, но кэш процессора, как и решение с именем TRESOR. К сожалению, для этого требуется старое ядро ​​Linux, а также глубокие знания по установке и исправлению ядра.

Дерек
источник
какие-либо претензии на поддержку барана держит ключ aes?
BlueBerry - Vignesh4303
Это показывает, что вы не понимаете, как работает оперативная память, вам также необходимо иметь контроллер оперативной памяти, чтобы обновлять его каждые N мс для сохранения данных.
Джеффри
-2

Извините, но вы параноик. Во-первых, как указывали другие пользователи, очевидно, что Cold Boot Attack работает только на старом оборудовании.

Если вы все еще думаете, что это угроза, вытирание не является решением.

Атака холодной загрузки включает в себя:

  • холодная загрузка машины
  • загрузка облегченной ОС для удаления ключей шифрования из памяти

Если кому-то удастся выполнить холодную перезагрузку, то, очевидно, ваш стеклоочиститель не сможет запустить. Так что нет смысла его устанавливать.

Это основной случай атаки. Давайте теперь предположим, что злоумышленник не хочет самостоятельно загружать работающий сервер (например, потому что это вызовет предупреждение мониторинга), вместо этого он ожидает выполнить атаку в течение 5 минут после полного выключения. В этом случае:

  • Обычный очиститель оперативной памяти также не принесет вам пользы. Поскольку предполагается, что злоумышленник физически присутствует для включения питания машины и очистки ключей, он также может выполнить холодную перезагрузку машины непосредственно перед тем, как начнет работать очиститель. (Мониторинг предупреждений на этом этапе ожидается.)
  • Специализированная программа, которая сначала стирает точное местоположение ключей шифрования FS, а затем стирает оставшуюся часть ОЗУ (например, truecrypt /wipecacheупомянутую mnmnc), может усложнить работу злоумышленника. Все еще:
    • Злоумышленник все еще сможет очистить часть содержимого ОЗУ, не позволяя очистителю пройти через все ОЗУ. Но, по крайней мере, большая часть данных о ФС будет в безопасности.
    • Решение не будет на 100% надежным - оно только усложнит злоумышленнику время «холодного старта».

Итак, если вы действительно беспокоитесь об этой атаке, я бы посоветовал вам изучать кунг-фу и стоять на 5 минут рядом с машиной каждый раз, когда вы ее выключаете. Или, может быть, использовать пароль загрузки в вашем BIOS? Обе предложенные меры не обязательно должны быть эффективными на 100%: злоумышленники все равно могут избить вас и прочитать пароль BIOS с вашего МБ с помощью технических средств. Вам просто нужно задержать их на 5 минут, чтобы истекло время атаки.

Наконец, если вы беспокоитесь о том, что кто-то может совершить весь этот подвиг удаленно, вы уже тяжело разбиты.

M000
источник
2
То, что это работает только на старом оборудовании, не доказано. Я разместил это на форуме по безопасности! Параноик или нет. Если вам нечего добавить, не отвечайте. Пусть параноидальные люди обсуждают свои параноидальные вещи. Есть много людей, обсуждающих это, я собираюсь добавить еще несколько ссылок на оригинальный вопрос.
Джеймс Митч
Что вы имеете в виду ничего конструктивного? Я рассказал вам, как стирание памяти является неэффективной контрмерой для этой атаки. Люди, обсуждающие ваше предложение стереть память, не делают ее действительной контрмерой для атаки. Чтобы быть откровенным, технически интригующе добавить этот дворник, но только ради этого. Не потому что это предотвратит холодную атаку.
m000
«Атака холодной загрузки включает в себя: холодную загрузку машины»> Неправильно. Таран удаляют и охлаждают сухим льдом .; "загрузка облегченной ОС для удаления ключей шифрования из памяти"> Неправильно. После охлаждения оперативной памяти ее можно проверить на другой машине. Просто посмотрите на оригинальный вопрос, там есть ссылка на демонстрацию с сухим льдом.
Джеймс Митч
1
О DDR2 против DDR3: вы не найдете исследовательскую работу, утверждающую, что ситуация улучшилась благодаря DDR3. Это просто недоказанное утверждение. Напишите авторам исследовательской работы, они не скажут, что DD3 более безопасен.
Джеймс Митч
1
@JamesMitch «вы не найдете исследовательскую работу, утверждающую, что ситуация улучшилась из-за DDR 3», возможно, вы не найдете какой-либо статьи, но я думаю, что если авторы TrueCrypt утверждают, что это так - мы можем доверять. Загляните сюда: truecrypt.org/docs/?s=unencrypted-data-in-ram и прочитайте первую звездочку * внизу. Цитата: «Новые типы модулей памяти, как утверждается, имеют гораздо более короткое время затухания (например, 1,5-2,5 секунды), чем более старые типы (по состоянию на 2008 год)». Это означает, что с 2008 года в оперативной памяти кое-что изменилось ...
mnmnc