2016-08-17 4 views
2

При использовании KSM (Kernel Same-Mapping), если две полностью идентичные страницы памяти принадлежат двум полностью изолированным процессам, например двум виртуальным машинам, будут ли эти страницы слиты? Или они останутся отдельными из-за того, что каждый процесс изолирован друг от друга? Я смущен, потому что виртуальные машины сводятся к одному процессу на хосте, но похоже, что это была бы довольно значительная проблема, если бы эти страницы были объединены, поэтому я предполагаю, что они сохранены отдельно?Вопросы безопасности вокруг KSM

Мне также интересно, если бы это отличалось от виртуальных машин и контейнеров?

В дополнение к вопросу , что произойдет, в случае, если они изолированы, может быть, возможно, это было разработано? Я предполагаю, что это достигается за счет использования групп, чтобы эти два процесса полностью изолировали свою память, я просто хотел бы разъяснить это.

ответ

3

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

И этот эффект уже использовался для атаки таймера тайника против криптографической библиотеки GnuPG 1.4.13. Слитая страница, содержащая код библиотеки GnuPG, была разделена между двумя разными виртуальными машинами, и одна виртуальная машина смогла восстановить ключ, используемый криптографической операцией в другом. Атака была названа «FLUSH + RELOAD» из-за инструкции процессора, которая использовалась для отслеживания информации.

Вот ссылка на PDF с описанием атаки: https://eprint.iacr.org/2013/448.pdf

+0

Очень интересно, не совсем то, что я ожидал, спасибо! –

+0

Может ли переполнение буфера осуществляться с помощью этих средств? –

+0

@JeffQuick Нет, это чистая боковая атака, которая показывает данные, которые не должны быть обнаружены. Невозможно воздействовать на атакующую виртуальную машину каким-либо образом, кроме времени. – cmaster