ASLR: Защита рандомизацией адресного пространства
• ASLR (Address Space Layout Randomization) — это технология случайного размещения различных компонентов программы в памяти, для защиты от внедрения. Эта мера затрудняет проведение атак, таких как buffer overflow, потому что злоумышленнику становится сложно предсказать, где находятся нужные ему участки кода или данных.
• ASLR работает так, что когда программа запускается, то библиотеки (например, libc), стек, куча, сегмент кода размещаются в случайных адресах в виртуальном адресном пространстве. Что создает сложность эксплуатации уязвимостей и снижает риска ROP атак.
• Нужно понимать, что ASLR не является абсолютной защитой. Существуют эксплойты и техники для обхода ASLR. К тому же, на 32-битных системах энтропия ниже (меньше вариантов адресов), и ASLR менее эффективен.
• В Linux поддержка ASLR зависит от настроек в
/proc/sys/kernel/randomize_va_space:• 0: Отключено
• 1: Частичное ASLR (только стек, mmap)
• 2: Полное ASLR
• В Windows ASLR реализован через Image Randomization, но работает только, если бинарник скомпилирован с поддержкой ASLR.
• В будущем возможно рассмотрим, как можно бороться с ASLR. Удачи!
• Поддержать автора монеткой: @v_meshke
