The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Защита от атаки на секретные данные методом холодной перезагрузки

22.01.2009 20:10

Группа ACME Security представила прототип возможного решения для защиты ключей шифрования дисков от атаки методом холодной перезагрузки. Напомню суть атаки: имея физический доступ к работающей машине, злоумышленник может получить доступ к ключам, используемым при шифровании дисковых разделов такими системами, как BitLocker, FileVault, dm-crypt и TrueCrypt. Метод основан на способности оперативной памяти (DRAM) какое-то время сохранять информацию после отключения питания и отсутствия импульсов регенерации ее содержимого. Причем, чем ниже температура, тем дольше сохраняются данные, например, выдернув чип и поместив его в жидкий азот(-196 градусов C), данные удалось считать через несколько часов. При температуре -50 градусов, данные сохраняются более 10 минут. Получив таким образом чип памяти из работающей машины, среди содержимого памяти нетрудно выявить ключи шифрования и прочую конфиденциальную информацию.

Действие предложенной защиты сводится к использованию возможности сквозного маппинга областей памяти в кеш центрального процессора, когда данные сохраняются только в кеше CPU, не оставаясь в памяти. Такую технологию например использует проект LinuxBIOS/CoreBoot на стадиях работы до момента инициализации контроллера памяти. Разместив ключи шифрования только в кеше CPU, злоумышленник не сможет восстановить их содержимое при анализе остатков информации в ОЗУ, сохранившихся после перезагрузки.

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

  1. Главная ссылка к новости (http://frozencache.blogspot.co...)
  2. OpenNews: Представлены исходные тексты для совершения атаки методом холодной перезагрузки
  3. OpenNews: Атака на секретные данные методом холодной перезагрузки
Лицензия: CC BY 3.0
Источник: heise-online.co.uk
Короткая ссылка: https://opennet.ru/19910-cache
Ключевые слова: cache, memory, linux, kernel, crypt
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (30) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, spamtrap (??), 20:56, 22/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а если вытащить ЦПУ и снять данные с его кеша аналогичным образом?
     
     
  • 2.3, Assaron (ok), 21:04, 22/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    проц горячий, данные долго храниться не будут)
     
  • 2.5, User294 (??), 21:06, 22/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >а если вытащить ЦПУ и снять данные с его кеша аналогичным образом?

    Данные в кэше обычно непостоянны и врядли там успеет что-то отложиться.И кстати AFAIK кэш обычно SRAM а не DRAM.Вы уверены что для SRAM это вообще работает?

     

  • 1.2, User294 (??), 21:03, 22/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм.А в чем проблема просто при шатдауне протереть память 00 и FF например?И пусть себе атакер выгребает нолики наздоровье :)
     
     
  • 2.6, Аноним (-), 21:47, 22/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Выдернут из работающей системы.
     
  • 2.7, Livid (?), 21:57, 22/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    То, что планку можно выдрать из работающей машины, в этом, собственно, вся фишка метода.
     
  • 2.9, anonymous (??), 23:08, 22/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    так речь-то идет о холодной перезагрузке aka хардрезете, выливаешь бутылку азота на память и жмешь резет
     
     
  • 3.12, nrz (?), 02:48, 23/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    От перепада температуры микросхемы или сама плата не лопнут?
     
     
  • 4.16, Andrey Mitrofanov (?), 09:18, 23/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Для особо любознательных: _медленно_ выливаешь и далее по тексту.
     

  • 1.4, Аноним (-), 21:05, 22/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сферические кони в вакууме
     
  • 1.8, дядя (?), 23:04, 22/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как-то до меня не доходит область применения...
     
     
  • 2.13, pavlinux (ok), 04:26, 23/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    перемотай опеннет на год назад или хотя бы глянь "Ссылки к новости"
     
     
  • 3.29, дядя (?), 20:35, 25/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Гляжу, но не понимаю где бедное животное зарыли.
    Разве что группа спецназа, врывающаяся в квартиру к хакеру, моментально разбирающая корпус, выдергивающая память и в азот ее... Звучит почище матрицы. Думаю у них есть методы и понадежнее. Больше вариантов применения придумать не могу...
    Наверно при такой степени параноидальности пользователя можно придумать и более надежные методы хранения информации чем TrueCrypt.
     

  • 1.10, Аноним (10), 23:40, 22/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А я хочу попробовать. Агент 007.
     
  • 1.11, Аноним (11), 01:15, 23/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    графику потихонку переносят в проц, надо и память потихоньку переносить в проц.
    когда уже будет один чип с USB4.0 разъемами?
     
     
  • 2.20, hhg (ok), 10:01, 23/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >графику потихонку переносят в проц, надо и память потихоньку переносить в проц.
    >когда уже будет один чип с USB4.0 разъемами?

    так уже есть. только не x86
    +ethernet(и не один) +videoout +много прочего

     
  • 2.25, yura_mir (?), 13:57, 23/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >графику потихонку переносят в проц, надо и память потихоньку переносить в проц.
    >
    >когда уже будет один чип с USB4.0 разъемами?

    тогда уже и инфу с винта тоже надо в проце хранить! ))))) Все в проц))

     

  • 1.14, Sergey_vl (?), 06:57, 23/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А что мешает шифровать часть памяти, например по таймеру? Ну получит злоумышлиник память, но ему ещё нужно будет знать точное системное время остановки + содержимое ячеек CMOS'a и т.д. Или же в стек/регист процессора запихать номер алгоритма шифрования части памяти... Вобщем как мне кажется - проще сделать информацию в памяти непригодной к использованию, чем найти хорошую "одну корзинку, куда сложить все яица" (с) Народная пословица
     
  • 1.15, stasav (??), 08:56, 23/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Шифровать те же самые циклы cpu, в данном случае в cpu кеш которого исчисляется 2-4! мегабайта ключик в 512 кбит очень не велик, да и к тому же  занимается место которое юзается стеками при применении многозадачности, ну ничего подожёт процесс когда появится свободное место для размещения своих стеков ...

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

     
  • 1.17, Аноним (11), 09:21, 23/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, а кто-нибудь может описать процесс взлома методом холодной перезагрузкой. Ведь надо точно знать что в данный момент ключ находиться в ОП и надо ее дергать. А где гарантии что плашка памяти не "крякнет" в этом самом жидком азоте? Представляю себе заходит злоумышленник в серверную с ведром жидкого азота и прочими примочками. По моему терморектальный криптоанализ будет на много эффективней. Я считаю что метод холодной перезагрузки - это какой-то лабораторный метод не применимый в реальной жизни.
     
     
  • 2.18, Аноним (-), 09:38, 23/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >Интересно, а кто-нибудь может описать процесс взлома методом холодной перезагрузкой. Ведь надо
    >точно знать что в данный момент ключ находиться в ОП и
    >надо ее дергать. А где гарантии что плашка памяти не "крякнет"
    >в этом самом жидком азоте? Представляю себе заходит злоумышленник в серверную
    >с ведром жидкого азота и прочими примочками. По моему терморектальный криптоанализ
    >будет на много эффективней. Я считаю что метод холодной перезагрузки -
    >это какой-то лабораторный метод не применимый в реальной жизни.

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

    А по поводу шифрования отдельных областей памяти - не вижу смысла , ключики для дешифровки шде хранить то будете ? в кеше процессора ? ну так а смысл тогда если сами защищаемые ключи можно там хранить ? получается ключь запру в сундук а ключь от сундука положу в карман - ну так не проще ли сам ключь положить в карман ? ;)

     
     
  • 3.19, Аноним (-), 09:52, 23/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >помещают его в контейнер - привозят куда
    >надо ставят память и делают дамп содержимого , потом анализируют и
    >получают желанные ключики.

    Потом едут обратно ставят память на место и забирают винты?

    А если ключей в памяти нет или плашку нету вытащили? Все равно очень сомнительный метод, не вижу смысла от него защищаться.

     
     
  • 4.21, Аноним (-), 10:20, 23/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >>помещают его в контейнер - привозят куда
    >>надо ставят память и делают дамп содержимого , потом анализируют и
    >>получают желанные ключики.
    >
    >Потом едут обратно ставят память на место и забирают винты?
    >
    >А если ключей в памяти нет или плашку нету вытащили? Все равно
    >очень сомнительный метод, не вижу смысла от него защищаться.

    Неее - тащут всё - винты, RAM , попутно снимают все CPU - если ключи не выудят так хоть приборохлятса немного :)

     
     
  • 5.22, stasav (??), 10:42, 23/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Есть фикс: Заливаеш банки памяти жидким пластиком по самые "яйки" и радуешся жизни =)

    Проще весь компь спи***ть чем ковырять такую конструкцию =)

     

  • 1.23, Денис (??), 12:45, 23/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ставишь на развязке питания транзистор?, как только питание пропадает(выдернули память) - замыкается цепь на разрядку.
     
  • 1.24, upyx (ok), 13:14, 23/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А сколько секунд хранится информация в памяти DRAM при ее обычной рабочей температуре? И каким образом ее оттуда извлечь за этот промежуток времени? Или как остудить память в рабочем состоянии до более низкой температуры? Чтобы все это провернуть нужно иметь машины в полном распоряжении. Короче, нужно физический доступ блокировать, а не методами хранения ключей баловаться. Паранойа это ИМХО.

    Немного подумал...

    В теории можно стянуть работающий ноут с зашифрованным винтом и залоченой ОС... Без ребута до инфы не добраться, а после ребута инфа станет "совсем зашифрованой" и малопригодной... Тогда может и пригодится такой метод. Но всеравно это бред =)

     
  • 1.26, Аноним (11), 16:25, 23/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    От чего же бред ?

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

     
     
  • 2.27, stasav (??), 17:02, 23/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >"А") , перегрузите машину , и прочитайте память снова - вы
    >удевитесь сколько раз встретиться последовательность которую вы записали

    2Аноним после перезагрузки ваша память будет девственно чистой, да и смысл, адрес или диапазон адресов куда входят ваши ячейки куда вы запишите (ААА), будет выдан другому процессу и там будут левые данные. Фишка метода - именно "горячее" выдерание модуля памяти.

     
     
  • 3.28, Аноним (10), 13:15, 24/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    # Create a Python program with the following code:

        #!/usr/bin/env python

        # a pirate's favorite chemical element
        a = ""
        while 1: a += "ARGON"

    This program will fill memory with copies of the word “ARGON”.
    # Run the sync command to flush any cached data to the hard disk.

    # Start the Python program, and allow it to run for several minutes. It won’t display anything on the screen, but after a while you should see hard drive activity as the memory fills and data gets swapped to disk.

    # Deliberately crash the system by turning the power off and on again or briefly removing the battery and power cord.

    # After the system reboots, look for the “ARGON” pattern in memory. You can use the following command to print strings of text contained in RAM:

        sudo strings /dev/mem | less

    If you see copies of the string “ARGON”, some of the contents of memory survived the reboot.

    http://citp.princeton.edu/memory/exp/

     
  • 3.30, Divell (?), 13:44, 26/01/2009 [^] [^^] [^^^] [ответить]  
  • +/
    2Аноним после перезагрузки ваша память будет девственно чистой, да и смысл, адрес или диапазон адресов куда входят ваши ячейки куда вы запишите (ААА), будет выдан другому процессу и там будут левые данные. Фишка метода - именно "горячее" выдерание модуля памяти.


    нет , не будет если будет стоять быстрая а не полная проверка POST - в следствии чего бы это она стала пустой ? Вполне реальна эксплуатация этого метода

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру