KASLR
Что такое KASLR?
KASLRKASLR (ASLR ядра) при каждой загрузке случайно сдвигает базу ядра и загружаемые модули, чтобы атакующий не мог использовать жёстко заданные адреса ядра для повышения привилегий.
KASLR распространяет ASLR на ядро: образ ядра, модули, область vmalloc, physmap и стеки загружаются со случайным смещением при каждой загрузке. Linux добавил базовый KASLR в 2014 году и усилил его KAISER/KPTI после Meltdown; Windows поддерживает его с Vista и развивал в Windows 10. Поскольку ядро обычно использует общее адресное пространство, утечка даже одного указателя ломает KASLR; исследователи показали побочные каналы через кэш, TLB, prefetch и спекулятивное исполнение, восстанавливающие смещение. KASLR эффективнее всего в связке с SMEP/SMAP, KPTI, kCFI и жёсткими ограничениями на /proc и dmesg против утечек адресов.
● Примеры
- 01
Linux смещает базу ядра на случайное выровненное смещение 1 ГиБ при каждой загрузке.
- 02
Windows 10 рандомизирует адрес загрузки ntoskrnl.exe при каждом старте.
● Частые вопросы
Что такое KASLR?
KASLR (ASLR ядра) при каждой загрузке случайно сдвигает базу ядра и загружаемые модули, чтобы атакующий не мог использовать жёстко заданные адреса ядра для повышения привилегий. Относится к категории Безопасность приложений в кибербезопасности.
Что означает KASLR?
KASLR (ASLR ядра) при каждой загрузке случайно сдвигает базу ядра и загружаемые модули, чтобы атакующий не мог использовать жёстко заданные адреса ядра для повышения привилегий.
Как работает KASLR?
KASLR распространяет ASLR на ядро: образ ядра, модули, область vmalloc, physmap и стеки загружаются со случайным смещением при каждой загрузке. Linux добавил базовый KASLR в 2014 году и усилил его KAISER/KPTI после Meltdown; Windows поддерживает его с Vista и развивал в Windows 10. Поскольку ядро обычно использует общее адресное пространство, утечка даже одного указателя ломает KASLR; исследователи показали побочные каналы через кэш, TLB, prefetch и спекулятивное исполнение, восстанавливающие смещение. KASLR эффективнее всего в связке с SMEP/SMAP, KPTI, kCFI и жёсткими ограничениями на /proc и dmesg против утечек адресов.
Как защититься от KASLR?
Защита от KASLR обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия KASLR?
Распространённые альтернативные названия: ASLR ядра.
● Связанные термины
- appsec№ 064
ASLR
ASLR случайным образом размещает код, стеки, кучи и библиотеки в памяти при каждом запуске, чтобы атакующий не мог предсказать целевые адреса для эксплойтов.
- appsec№ 1058
SMEP / SMAP
SMEP и SMAP — функции процессора, запрещающие ядру выполнять или обращаться к страницам пользовательского пространства и блокирующие распространённые приёмы локального повышения привилегий.
- appsec№ 217
Целостность потока управления
Целостность потока управления (CFI) ограничивает непрямые вызовы и возвраты программы заранее вычисленным множеством легитимных целей, блокируя ROP и JOP.
- appsec№ 670
Безопасность памяти
Безопасность памяти — свойство, при котором программа никогда не читает, не пишет и не исполняет память, которую она не выделяла легитимно, что устраняет целые классы уязвимостей.
- appsec№ 545
Intel CET
Intel CET (Control-flow Enforcement Technology) — функция процессора, объединяющая аппаратный теневой стек и Indirect Branch Tracking (IBT) для блокировки ROP, JOP и COP.
- appsec№ 671
Языки с безопасной памятью
Языки с безопасной памятью, такие как Rust, Go, Swift, Java и C#, исключают пространственные и временные ошибки памяти, на которых строится большинство эксплойтов C и C++.