LINUX.ORG.RU

Очистка оперативной памяти перед выключением

 ,


2

3

Добрый день. Попал на статейку, и появился вопрос. Как правильно и надежно очищать оперативную память перед выключением компьютера, чтобы нельзя было сделать дамп памяти? Желательно чтобы это было автоматически.

Не парься, cold boot к твоему ведру применять не будут, сам сдашь ключи, когда придут люди в погонах.

anonymous ()

Для cold boot attack выключенный ноутбук взятый со стола ценности не представляет, а включенный будет выключать специально обученный сотрудник. Так что ты пытаешься решить проблему которой нет.

Deleted ()

Как правильно и надежно очищать оперативную память перед выключением компьютера, чтобы нельзя было сделать дамп памяти?

Никакое программное средство не спасает от внезапного отключения питания.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Никакое программное средство не спасает от внезапного отключения питания.

Поэтому спрашивается о чистке при обычном выключении.

TheLinuxUser ★★ ()
Ответ на: комментарий от i-rinat

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

Deleted ()

при ребуте системы рам вообще не затирается, я правильно понял? соотстветственно, можно не торопиться с считыванием, раз старые данные там будут храниться до тех пор, пока будет подаваться питание и не понадобится записать в нее что-то новое

anonymous ()
Ответ на: комментарий от anonymous

при ребуте системы рам вообще не затирается, я правильно понял?

Да, об этом говорится в статье.

TheLinuxUser ★★ ()

твою проблему решит небольшой генератор ЭМИ в системнике с незаметной кнопкой включения на подлокотнике кресла

anonymous ()
Ответ на: комментарий от TheLinuxUser

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

Vsevolod-linuxoid ★★★★★ ()
Ответ на: комментарий от Vsevolod-linuxoid

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

Тебе самому не интересно как это делается? Помойму лишняя настройка в правильную сторону - никогда не повредит компьютеру. Тут присутствует немного перфекционизма )

TheLinuxUser ★★ ()

в менеджере памяти винды есть специальный поток (zeroed thread) с приоритетом idle который занимается обнулением памяти.

запили фичреквест в кернел-орг на эту тему =)

Minona ★★ ()
Ответ на: комментарий от TheLinuxUser

В том-то и дело, что может повредить. Интуитивный вариант

dd if=/dev/random of=/dev/mem
 — но я не уверен, как на это поведет себя железо и ОС.

Vsevolod-linuxoid ★★★★★ ()
Ответ на: комментарий от TheLinuxUser

Поэтому спрашивается о чистке при обычном выключении

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

Поэтому, как писали выше, смысла в такой программной защите — нет.

i-rinat ★★★★★ ()
Ответ на: комментарий от Deleted

В AMD EPYC декларируется поддержка полного шифрования всей памяти. В таком режиме пропадание внешнего питания инвалидирует ключ шифрования, что эквивалентно стиранию всей памяти. Только быстрее.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Это же серверные монстры. Если кто-то физически проник в ДЦ, то это уже совсем швах. И скорее всего тебе просто зальют нилецензионную винду с ЦП.

Deleted ()
Ответ на: комментарий от Vsevolod-linuxoid

Да, попробуй, потом расскажешь. Уже был классный баг в пересечении memtest\lenovo. lenovo замапил важные регистры в память и не промаркировал её для игнора memtest`ом, в итоге после прогона memtest`а ноут можно было выкинуть.

Deleted ()
Ответ на: комментарий от i-rinat

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

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

TheLinuxUser ★★ ()
Ответ на: комментарий от TheLinuxUser

1 - как очистка памяти при выключении поможет при включенном ноуте?
2 - информация в оперативки хранится десятки секунд при нормальных условиях и считанные минуты при заморозке.

Что помешает моему любопытству, действовать как указано в статье

Недостаток компетенции и отсутствие технических средств.

Deleted ()
Ответ на: комментарий от TheLinuxUser

Почитай статью

Я эту статью читал уже. И тебе рекомендую внимательнее её почитать. Особое внимание обрати на рисунок 4 и на длительность, указанную в подписи к этому рисунку.

i-rinat ★★★★★ ()
Ответ на: комментарий от xmikex

Физика - бессердечная тварь. Особенность DRAM и SRAM ячеек. Некоторое время информация сохраняется без циклов обновления.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от xmikex

Не мгновенно.

Contrary to popular assumption, DRAMs used in most modern computers retain their contents for several seconds after power is lost, even at room temperature and even if removed from a motherboard. Although DRAMs become less reliable when they are not refreshed, they are not immediately erased, and their contents persist sufficiently for malicious (or forensic) acquisition of usable full-system memory images.

Paper - https://www.usenix.org/legacy/event/sec08/tech/full_papers/halderman/halderman.pdf

Deleted ()
Ответ на: комментарий от Deleted

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

xmikex ★★★★ ()
Ответ на: комментарий от xmikex

Можно снимать дамп на томже компе который ты атакуешь. Главная проблема - использовать как можно меньше оперативки, соответственно приходится писать пейлоад для дампа который будет работать прямо на железе.
Проще и надежнее собрать стенд на FPGA с быстрой памятью.

Deleted ()
Ответ на: комментарий от xmikex

ее же нельзя просто вставить в комп и как-то считать с нее

Все говорят, что нельзя. А исследователи взяли и вставили. И получилось.

i-rinat ★★★★★ ()

Не решается программно - реши физически. Небольшое СВУ над/возле оперативной памяти со срабатыванием на попытку снятия крышки/самих модулей надежно решат проблему.

StReLoK ☆☆ ()

Создать tmpfs размером, равным объёму RAM. Допустим он примонтирован в /run/user/1000/mytmpfs
Завершить все лишние приложения, чтобы освободить память и

dd if=/dev/urandom of=/run/user/1000/mytmpfs/erase

Это правда не очистка, а наоборот засирание, но эффект тот же.

Deleted ()
Последнее исправление: pyroman (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

anonymous ()
Ответ на: комментарий от i-rinat

А вот и неправда, на материнских платах, сертифицированных Trusted Compiting Group (таких большинство), в UEFI есть специальная переменная, при установке которой память при запуске компьютера очищается. В ядре реализовано, параметр CONFIG_RESET_ATTACK_MITIGATION.

ValdikSS ★★★★★ ()
Последнее исправление: ValdikSS (всего исправлений: 1)
Ответ на: комментарий от TheLinuxUser

вопрос в утере или краже

Какая разница, как твои диски будут форматировать и накатывать на них венду?

mord0d ★★★★★ ()
Ответ на: комментарий от ValdikSS

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

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Я пробовал проделывать такое с современной DDR3-памятью — ничего не выходило. За 6-8 секунд, необходимых для перетыкания памяти, при комнатной температуре она была практически пустая.

ValdikSS ★★★★★ ()
Ответ на: комментарий от BLOBster

В опенсорсном БИОСе coreboot для многих плат, в том числе AMD-шных, в Security ---> Memory Initialization доступна опция «Always clear all DRAM on regular boot» :

CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT:
Always clear the DRAM after DRAM initialization regardless of additional security implementations in use. This increases boot time depending on the amount of DRAM installed.

Если твой коребут собран с этой опцией, когда нужно очистить оперативку - ты можешь ребутнуть комп и на экране SeaBIOS выключить его через кнопку питания до загрузки ОС - и в оперативке гарантированно не останется ничего интересного. Например, Belkasoft RAM Capturer https://belkasoft.com/ru/ram-capturer , загруженный с флешки с виндой на твоём компе, после этой процедуры уже не сдампит ничего интересного. Это если винда вообще сможет загрузится на твоём компе: она капризна в плане ACPI, и например на ASUS A88XM-E с коребутом Windows 7 не грузится.

Кстати, с этой опцией время включения компа увеличивается совсем ненамного - секунд 15 может быть, так что терпимо для повседневного применения. Разве что, по крайней мере на AMD, она ломает S3 Suspend («ждущий режим») и некоторые коребутовские payload'ы-дополнения вроде coreinfo перестают работать - но можно на время прошивать сборку коребута без этой опции, когда они реально нужны.

SakuraKun ★★★★★ ()
Ответ на: комментарий от ValdikSS

Доверять индусскому UEFI и его переменным в таких важных вещах - себе дороже: даже если она и работает, вдруг незаметно слетит. А вот опенсорсному коребуту поверить можно: похожая опция (см. пост выше) статично вкомпиливается в него и гарантированно будет работать при каждом включении компа с этой сборкой БИОСа.

SakuraKun ★★★★★ ()
Ответ на: комментарий от MRX256

Решение есть, см. пост выше. Правда тебе придётся сменить железо на поддерживаемое опенсорсным БИОСом coreboot, и не на любое - а на то, у которого есть PLATFORM_HAS_DRAM_CLEAR зависящее от RELOCATABLE_RAMSTAGE, благодаря чему доступна CONFIG_SECURITY_CLEAR_DRAM_ON_REGULAR_BOOT. Любое AMD с опенсорсной AGESA подойдёт (десктопные ASUS AM1I-A / F2A85-M / A88XM-E с FM2 Richland, ноут Lenovo G505S и т.д.), про интел не знаю.

SakuraKun ★★★★★ ()
Ответ на: комментарий от TheLinuxUser

Посмотри посты выше, написал тебе решение. Если что, могу ответить на твои вопросы про БИОС коребут или помочь с выбором железа для него.

SakuraKun ★★★★★ ()

Всё фигня, от термо-ректального криптоанализа никакое затирание или защита не спасет кроме физического уничтожения носителя. Например некое устройство, которое после нажатия кнопки, под давлением сжатого воздуха выпускает гвозди в ячейки памяти или жёсткие диски. Все остальные варианты - говно.

anonymous ()
Ответ на: удаленный комментарий

Выбрать оптимальные с твоей точки зрения настройки, в том числе и касающиеся разгона, можно при сборке этого БИОСа в меню menuconfig. Так даже лучше: ведь при таком подходе они никогда не слетают. И вообще, я за максимально возможное приближение к stateless компьютеру: https://blog.invisiblethings.org/2015/12/23/state_harmful.html

SakuraKun ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.