Что такое ошибка Rowhammer DRAM и как с ней бороться?

20

Чипы DRAM очень плотно упакованы. Исследования показали, что соседние биты могут быть выброшены случайным образом.

  • Какова вероятность случайного запуска ошибки в микросхеме DRAM серверного уровня с ECC (в статье CMU-Intel приводится, например, число 9,4x10 ^ -14 для неизвестного чипа за один сбой за год)?
  • Как узнать, исправлена ​​ли ошибка перед покупкой памяти?
  • Что я должен сделать, чтобы противостоять злонамеренным попыткам повышения привилегий, например, арендаторами или непривилегированными пользователями, например, в CentOS 7?

Ссылки:

Охотник на оленей
источник
2
Учитывая, что детали эксплойта до сих пор не введены в эмбарго, я не уверен, что будет много доступной информации помимо того, что Google уже дал вам.
fukawi2
Как я понял, частота обновления памяти резко снижает шансы на успешное переворачивание, а в более новых версиях BIOS снижена частота обновления, чтобы попытаться снизить риск. Таким образом, обновление вашего BIOS может быть хорошим первым шагом?
Reaces
1
@ fukawi2, какие детали эксплойта были / находятся под эмбарго? Полный код для проверки концепции был опубликован в блоге.
Марк Сиборн
@MarkSeaborn Я даже не помню сейчас, это было 3 месяца назад, и я едва помню завтрак.
fukawi2

Ответы:

19

Упомянутая вами бумага CMU-Intel показывает (на странице 5), что частота ошибок в значительной степени зависит от номера детали / даты изготовления модуля DRAM и варьируется в 10-1000 раз. Есть также некоторые признаки того, что проблема гораздо менее выражена в недавно выпущенных (2014 г.) чипах.

Указанное вами число «9,4x10 ^ -14» использовалось в контексте предложенного теоретического механизма смягчения, называемого «PARA» (который может быть аналогичен существующему механизму смягчения pTRR (pseudo Target Row Refresh)) и не имеет отношения к вашему вопрос, потому что PARA не имеет ничего общего с ECC.

Во второй статье CMU-Intel (стр. 10) упоминается влияние различных алгоритмов ECC на уменьшение ошибок (в 10–10 - 5 раз, возможно, в гораздо большей степени благодаря сложным тестам памяти и «защитным полосам»).

ECC эффективно превращает Row Hammer в DOS-атаку. 1-битные ошибки будут исправлены ECC, и как только будет обнаружена неисправимая 2-битная ошибка, система остановится (при условии SECDED ECC).

Решение состоит в том, чтобы купить оборудование, поддерживающее pTRR или TRR. Смотрите текущее сообщение в блоге Cisco о Row Hammer . По крайней мере, у некоторых производителей, кажется, есть один из этих механизмов смягчения, встроенный в их модули DRAM, но держите его глубоко скрытым в своих спецификациях. Чтобы ответить на ваш вопрос: спросите продавца.

Более быстрая частота обновления (32 мс вместо 64 мс) и агрессивные интервалы Patrol Scrub также помогают, но могут оказать влияние на производительность. Но я не знаю серверного оборудования, которое бы позволяло точно настраивать эти параметры.

Я полагаю, что на стороне операционной системы мало что можно сделать, кроме как завершать подозрительные процессы с постоянным высоким использованием ЦП и большим количеством кеш-памяти.

Даниил
источник
4

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

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

«Неназванные компании памяти», как сообщается, пытались заплатить взятку в обмен на Passmark Software, которая не выпускала тест на гребной молот в своем инструменте Memtest86.

Сообщается, что аппаратное обеспечение Intel Skylake более уязвимо, а не менее , к ударной установке из-за добавления новой clflushoptинструкции. Это уже использовалось в rowhammer.js

Даниэль Грусс отвечает на некоторые вопросы о смягчении последствий по состоянию на декабрь 2015 года (соавтор статьи rowhammer.js ) в этом выступлении :

  1. В то время как некоторые ОЗУ ECC менее уязвимы, чем ОЗУ не из ECC, для гребного молотка, другие ОЗУ из ECC более уязвимы, чем ОЗУ без ECC ( ссылка на вопрос в видео )
  2. Переключение на более быструю частоту обновления достаточно, чтобы предотвратить работу молотка с большинством, но не всем оборудованием, но не все BIOS позволяют изменять частоту обновления ( ссылка на вопрос в видео ).

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

Croad Langshan
источник