2011-01-20 6 views
1

Я думал, что это ожидалось?Обнаружение информации Nvidia/уязвимость памяти в Linux и общая защита памяти ОС

От: http://classic.chem.msu.su/cgi-bin/ceilidh.exe/gran/gamess/forum/?C35e9ea936bHW-7675-1380-00.htm

резюме перефразировать:. «Работа над портом Linux мы обнаружили, что cudaHostAlloc/cuMemHostAlloc CUDA API вызовы возвращают ип-инициализированному возлагали памяти Это отверстие может потенциально позволяют исследовать области памяти, ранее используемых другие программы и ядро ​​Linux. Мы рекомендуем всем прекратить работу драйверов CUDA в любой многопользовательской системе ».

Мое понимание было то, что «нормальный» таНос возвращает ип инициализирована память, так что я не вижу, что разница здесь ...

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

-userA запускает программу в системе, которая сжимает кучу конфиденциальной информации. Когда вычисления выполняются, результаты записываются на диск, процессы завершаются, а пользовательский журнал отключается.

-userB журналы в следующем. userB запускает программу, которая запрашивает всю доступную память в системе, и записывает содержимое своей неинициализированной памяти, которая содержит некоторую конфиденциальную информацию userA, оставленную в ОЗУ, на диск.

У меня должно быть что-то отсутствует. Что это? Где-то где-то пропадает память? Является ли ядро ​​/ закрепленная память специальным образом?

ответ

1

Память, возвращаемая malloc(), может быть отличной от нуля, но только после того, как ее использовали и освободили другим кодом в том же процесс. Никогда другой процесс. Предполагается, что ОС строго соблюдает защиту памяти между процессами, даже после выхода из нее.

Ядро/закрепленная память предназначена только для того, что она, по-видимому, дала драйвер режима ядра возможность нарушить гарантии защиты ОС.

Нет, это не ожидается; да, это была ошибка. Престижность NVIDIA за то, что он так быстро действует!

1

Единственная часть, которая требует привилегий root для установки CUDA, является драйвером NVIDIA. В результате все операции, выполняемые с использованием компилятора и ссылки NVIDIA, могут выполняться с использованием регулярных системных вызовов и стандартного компиляции (при условии, что у вас есть соответствующая информация -lol-). Если там есть какие-либо дыры в безопасности, он остается, мокрый или не изменен cudaHostAlloc/cuMemHostAlloc.

Я сомневаюсь в первом ответе на этом посту. Страница man для malloc указывает, что память не очищается. На странице руководства бесплатно не упоминается освобождение памяти. Очистка памяти, по-видимому, связана с ответственностью кодера чувствительной секции -lol-, которая оставляет проблему с неожиданным (редким) выходом. Помимо VMS (хорошая, но не широко используемая ОС), я не думаю, что любая ОС согласуется с эксплуатационными расходами на систематическую очистку. Я не совсем понимаю, как система может отслеживать в куче недавно выделенной памяти то, что было ранее в области процесса, а что нет.

Мое заключение: если вам необходим строгий уровень конфиденциальности, не используйте многопользовательскую систему (или используйте VMS).

 Смежные вопросы

  • Нет связанных вопросов^_^