Это выглядит странно, потому что после включения mmu мы работаем с виртуальными адресами и не используем физические адреса.
Почему Linux kaslr также рандомизирует физические адреса?
comment
Я не знаю ответа точно, но если бы мне пришлось угадывать, это могло бы быть какое-то смягчение против атак на основе прямого доступа к памяти. Было бы трудно узнать, где находятся определенные структуры данных ядра.
- person tangrs   schedule 31.05.2017
Ответы (1)
Предполагаю, что это закалка ядра. Предположим, что злоумышленник может повредить PTE. Если физическое местоположение ядра всегда известно, злоумышленник может немедленно переназначить страницу на подходящее физическое местоположение и получить выполнение кода от имени привилегированного пользователя.
Я думаю, что «защита от устройств с поддержкой DMA» не является правильным ответом. Если вредоносное устройство с поддержкой DMA имеет доступ ко всей физической памяти, например. никакой защиты через IOTLB, то устройство может парсить память и сразу находить где находится ядро в физической памяти.
person
Martin Radev
schedule
24.04.2020