>>> BufferShield или PaX на NT
Пакет BufferShield это достойный конкурент штатному DEP'у, не требующий установки SP2, работающий без аппаратной поддержки со стороны процессора, использующий рандомизацию раскладки адресного пространства и задействующий NX/XD биты, если они есть. Он значительно превосходит DEP по защищенности и атаковать его очень сложно (тем не менее, некоторые лазейки все-таки есть, в частности из-за отсутствия GOT, рандомизация выполняется не полностью, оставляя в памяти значительное количество предсказуемых адресов).
Защищать можно как отдельные приложения (например, пресловутый Internet Explorer), так и установленный определенный диапазон памяти внутри конкретного приложения. Так же поддерживаются и многопроцессорные системы (правда, только для "однополых" процессоров, то есть если один процессор имеет поддержку NX/XD битов, а другой нет, NX/XD биты остаются незадействованными для всех процессоров).
Короче говоря, BufferShield реализует те же самые возможности, что и пакет PaX, фактически являясь его портом на NT. Однако, в отличии от бесплатного PaX'а, BufferShield распространяется на коммерческой основе, а для ознакомления предлагается только 30-дневная пробная версия: 30 days trail http://www.sys-manage.com/sites/D_BuffShld.html;
Рисунок 12 окно настойки BufferShiled'а
основные свойства продукта:
q распознает выполнение кода на стеке, куче, виртуальной памяти и сегменте данных;
q запрашивает подтверждение на завершение, если обнаружено переполнение буфера;
q ведет отчет обнаруженных переполнение в протоколе событий (Windows event log);
q позволяет включать защиту даже для отдельных частей выбранных приложений (!!!);
q поддерживает NXбит и задействует его, если доступен (но может работает и без него);
q поддерживает симметричные многопроцессорные системы (SMP) с однополыми ЦП;
q рандомизует раскладку адресного пространства (технология ASLR);