Механизм защиты буфера SED от переполнения
В AIX предусмотрен механизм отключения обработки стека (SED), предназначенный для того, чтобы обработка шла не в стеке/, а в областях данных.
Благодаря отключению и прерыванию работы несанкционированной программы злоумышленник лишается возможности получить права пользователя root с помощью атаки переполнения буфера. Несмотря на то, что эта функция не прекращает переполнение буфера, она дает защиту благодаря отключению атак на переполненные буферы.
Начиная с процессоров семейства POWER4, появилась возможность выполнения активизации и/или деактивизации для памяти на уровне страницы. Механизм AIX SED использует эту встроенную аппаратную поддержку для реализации функции "невыполнения" в выборочных областях памяти. Если эта функция активна, операционная система проверяет и помечает различные файлы во время работы исполняемой программы. Затем диспетчеру памяти операционной системы и диспетчеру процессов отправляется предупреждение о том, что для создаваемого процесса активна функция SED. Выбранные области памяти помечаются для "невыполнения". Если в какой-либо из помеченных областей возникает исключительная ситуация, то на аппаратном уровне взводится флаг исключения, и ОС останавливает соответствующий процесс. Сведения об исключительной ситуации и приложении заносятся в протокол ошибок AIX.
Механизм SED реализован главным образом командой sedmgr. Команда sedmgr позволяет управлять системным режимом работы SED и настраивать исполняемые файлы с помощью флагов SED.