На прошлой неделе группа исследователей опубликовала статью в которой
описывается взлом систем шифрования при помощи "холодной" перезагрузки (Cold
Boot Attack
).

Метод основан на способности оперативной памяти (DRAM) какое-то время
сохранять информацию после отключения питания и отсутствия импульсов регенерации
ее содержимого. Практически все знают, что память теряет всю информацию
при выключении питания. Однако это не совсем так. Исследования показали, что
DRAM без питания может хранить информацию от
нескольких секунд до нескольких минут. Это дает возможность взломщику прочитать
ее содержимое просто выключив и включив компьютер и затем запустив собственную
операционную систему.

Интересно, что чем ниже температура, тем дольше сохраняются данные, например,
выдернув чип и поместив его в жидкий азот(-196 градусов C), данные удалось
считать через несколько часов. При температуре -50 градусов, данные сохраняются
более 10 минут. В обычных условиях, после прекращения регенерации, DRAM память
сохраняет свое содержимое от нескольких секунд до нескольких минут.

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

Результаты исследования показали, что перезагрузив компьютер и загрузившись с
флэшки или просто получив чип памяти из работавшей машины, среди содержимого
памяти нетрудно выявить ключи шифрования таких систем как BitLocker, FileVault,
dm-crypt и TrueCrypt, прочую конфиденциальную информацию.

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

1. Создаем программу на Python которая забивает
память словом "ARGON".

#!/usr/bin/env python
# a pirate's favorite chemical element
a = ""
while 1: a += "ARGON"

2. Запускаем sync для сброса любых кэшированных
данных на диск.

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

4. Беззаботно роняем систему просто выключая питание и затем включаем снова.

5. После перезагрузки ищем слово "ARGON" в памяти. Например так:

sudo strings /dev/mem | less

Если вы увидите копию строки, значит какая-либо часть памяти выжила при
перезагрузке. Если же данных в памяти не обнаружено, то возможно несколько
вариантов варианта: в компьютере стоит ECC (error-correcting) RAM и она
очищается при загрузке; BIOS по каким-либо дргим
причинам очищает память при загрузке (можно выключит тест памяти или включить
режим Quick Boot); время простоя без энергии было слишком велико для данной
температуры, попробуйте охладить память или уменьшить время перезагрузки.

Сайт исследователей:
http://citp.princeton.edu/memory/

Оставить мнение

Check Also

Как работает Linux: от нажатия кнопки включения до рабочего стола

Лучший способ понять, как работает операционная система, — это проследить поэтапно ее загр…