The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Содержимое ячеек DRAM может быть повреждено в результате цик..."
Отправлено opennews, 25-Дек-14 10:40 
Разработчики ядра Linux обсуждают (https://lkml.org/lkml/2014/12/24/258) реализацию возможного обходного пути защиты от эффекта (ttps://www.ece.cmu.edu/~safari/pubs/kim-isca14.pdf) искажения содержимого отдельных битов памяти DRAM (https://ru.wikipedia.org/wiki/DRAM), выявленного исследователями из Университета Карнеги — Меллон и Intel Labs. Исследование показало, что можно легко инициировать повреждение отдельных битов в DRAM-памяти путём цикличного чтения данных из соседних ячеек памяти.


Проблема обусловлена (http://blog.sudhanshumishra.in/2014/12/memory-error-due-to-c... особенностью работы памяти DRAM, которая формируется как двухмерный массив ячеек, каждая из которых состоит из конденсатора и транзистора. Состояние сохранённого в ячейке значения определяется тем, заряжен или нет конденсатор. Для поддержания заряди применяется цикл регенерации. При выполнении непрерывного чтения одной и той же области памяти из-за постоянного открытия и закрытия линии WL (Word Line), которая управляет транзисторами доступа, возникают флуктуации напряжения, которые могут привести к аномалии, вызывающей небольшую потерю заряда соседних ячеек. Если интенсивность чтения достаточно большая, то ячейка может потерять достаточно большой объём заряда и очередной цикл регенерации не успеет восстановить его первоначальное состояние, что приведёт к изменению значения сохранённых ячейке данных.


Пример (http://blog.sudhanshumishra.in/2014/12/memory-error-due-to-c... ассемблерного кода, который может привести к повреждению смежных битов памяти (простой цикл с чтением содержимого памяти и очисткой кэша, чтение двух значений по разным адресам обусловлено необходимостью инициирования закрытия линии WL, если постоянно читать только одну ячейку линия WL остаётся открытой и эффект не проявляется):


<font color="#461b7e">

   loop:
       mov X, %eax  ; Читаем значения адресов X и Y,
       mov Y, %ebx  ; сохраняем значения в регистрах и кэше
       clflush (X)  ; Чистим содержимое кэша
       clflush (Y)
       mfence       ; Убеждаемся, что данные точно вычищены из кэша
       jmp loop

</font>


Подобный эффект можно использовать для инициирования атак по искажению данных в буфере, к которому атакующий не имеет доступа, но при этом имеет доступ к смежным с данным буфером областям памяти.  Отмечается, что старые чипы DRAM, выпущенные до 2011 года, значительно более устойчивы к возникновению подобных ошибок. Все из более ста протестированных новых модулей памяти, выпущенных в 2012 и 2013 годах, оказались подвержены проблеме.  В качестве рекомендации пока предлагается использовать модули памяти с контролем целостности ECC, которые значительно понижают вероятность незамеченного изменения данных, но полностью не исключают, так как возможны ситуации, когда в результате эффекта одновременно два бита могут поменять свои значения.

URL: https://lkml.org/lkml/2014/12/24/258
Новость: http://www.opennet.ru/opennews/art.shtml?num=41340

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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