Я часто читал, что такие функции, как DEP (предотвращение выполнения данных) и ASLR (рандомизация расположения адресного пространства), предоставляются в Windows. В Windows вы получаете некоторый контроль над включением DEP для 32-битных программ.
В общем и целом, для этого вам понадобится PAE-версия ядра. Для получения подробной информации по этой теме см. это резюме .
Да для обоих. Они включены по умолчанию; вам не нужно ничего делать, чтобы включить его. Более длинный ответ следует ...
DEP используется по умолчанию в Ubuntu. Это делается через бит NX, если процессор поддерживает его, или эмулируется посредством сегментации памяти, если процессор не поддерживает его. Подробнее см. Элемент функции неисполняемой памяти .
ASLR по умолчанию используется в Ubuntu для любых сегментов памяти, которые могут быть перемещены (стек, библиотеки, куча, mmap). Единственная часть программы, которая не может быть перемещена по умолчанию, - это основная область кода («текстовый» сегмент). Программы должны быть специально скомпилированы как PIE (позиционно-независимый исполняемый файл), чтобы включить это. Многие чувствительные программы уже построены таким образом. Для получения более подробной информации см. список
Многие дополнительные функции безопасности также доступны по умолчанию в Ubuntu. Полный список приведен в документации по функциям безопасности Ubuntu .
Ядро Linux по умолчанию использует похожие технологии, однако они отличаются от версий Windows. Если ваш процессор имеет возможность устанавливать бит NX (большинство современных процессоров), то ядро будет использовать его. В ядре также есть слабая реализация ASLR, и более сильные могут быть установлены, но не установлены по умолчанию в Ubuntu.