20

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

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

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

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

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

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

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

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

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

6 ответов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, он получит доступ к вашей системе в лучшем случае. Они не будут хранить данные в отдельно зашифрованном файле.

5

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

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

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

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

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

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

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

2

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

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

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

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

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

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

kexec -e

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

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

В экстренных случаях sync; kexec -e будет работать.

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

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

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

2

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

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

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

0

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

-2

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

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

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

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .