Как чтение памяти ядра переходит в кражу паролей с уязвимостью распада?

588
jackyjjc

У меня есть базовые знания об ОС, и я понимаю механизм уязвимости, вызванной распадом, но мне нужна помощь, чтобы заполнить пробел между чтением памяти ядра и кражей пользовательских паролей.

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

Однако я не понимаю, почему чтение памяти ядра означает кражу паролей пользователя и секретов других программ?

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

Например, если приложение имеет адресное пространство 4 ГБ, половина его - это собственная память приложения, а половина - память ядра. Вы не можете создать виртуальный адрес, который находится в памяти другого приложения, верно ли мое понимание?

-1
Неправильно. Эксплойт позволяет ВСЕМ памяти быть прочитанным. Keltari 6 лет назад 2

1 ответ на вопрос

0
Jonathan Laperle

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

Очевидно, что в какой-то момент секреты необходимо будет поместить в физическую память, чтобы использовать их, чтобы сделать их доступными для злоумышленника.

Похожие вопросы