stringtranslate.com

Исполнительный Щит

Exec Shield — это проект, начатый в Red Hat , Inc в конце 2002 года с целью снижения риска червей или других автоматических удаленных атак на системы Linux. Первым результатом проекта стал патч безопасности для ядра Linux , который эмулирует бит NX на процессорах x86 , у которых отсутствует встроенная аппаратная реализация NX. Хотя в проекте Exec Shield было много других компонентов, некоторые люди называют этот первый патч Exec Shield.

Первый патч Exec Shield пытается пометить память данных как неисполняемую, а память программ как недоступную для записи. Это подавляет многие уязвимости безопасности , например те, которые связаны с переполнением буфера и другими методами, основанными на перезаписи данных и вставке кода в эти структуры. Exec Shield также обеспечивает некоторую рандомизацию макета адресного пространства для mmap () и базы кучи.

Патч дополнительно увеличивает сложность вставки и выполнения шеллкода , делая большинство эксплойтов неэффективными. Для полного использования exec-shield не требуется перекомпиляция приложения, хотя некоторые приложения ( Mono , Wine , XEmacs , Mplayer ) не полностью совместимы.

Другими функциями, появившимися в проекте Exec Shield, были исполняемые файлы, независимые от позиции (PIE), патч рандомизации адресного пространства для ядер Linux, широкий набор внутренних проверок безопасности glibc, которые делают практически невозможными эксплойты кучи и форматированных строк, GCC Fortify Source. функция, а также перенос и объединение функции защиты стека GCC .

Выполнение

Exec Shield работает на всех процессорах x86, использующих ограничение на сегмент кода. Благодаря принципу работы Exec Shield он очень легкий; однако он не будет полностью защищать произвольную структуру виртуальной памяти . Если предел CS увеличивается, например, путем вызова mprotect(), чтобы сделать исполняемый файл с большим объемом памяти, то защита теряется ниже этого предела. Инго Молнар указывает на это в переписке по электронной почте. Большинство приложений вполне справляются с этим; стек (важная часть), по крайней мере, оказывается над любыми сопоставленными библиотеками, поэтому он не становится исполняемым, кроме как при явных вызовах приложения.

По состоянию на август 2004 г. ничто из проектов Exec Shield не пытается обеспечить защиту памяти путем ограничения mprotect () на любой архитектуре; хотя изначально память может не быть исполняемой, она может стать исполняемой позже, поэтому ядро ​​позволит приложению помечать страницы памяти как доступные для записи и как исполняемые одновременно. Однако в сотрудничестве с проектом Security-Enhanced Linux (SELinux) стандартная политика дистрибутива Fedora Core запрещает такое поведение для большинства исполняемых файлов, за некоторыми исключениями по соображениям совместимости.

История

Exec Shield был разработан разными людьми в Red Hat; первый патч был выпущен Инго Молнаром из Red Hat и впервые выпущен в мае 2003 года. Он является частью Fedora Core 1–6 и Red Hat Enterprise Linux, начиная с версии 3. [1] [2] Среди других участников — Якуб Елинек, Ульрих. Дреппер, Ричард Хендерсон и Арьян ван де Вен.

В 2007 году Молнар прокомментировал на LWN.net , что «части [exec-shield] пошли вверх по течению, но значительная часть - нет». [3]

Смотрите также

Рекомендации

  1. ^ «Примечания к выпуску Fedora Core 1» . Красная шляпа, Inc. Ноябрь 2003 г. Архивировано из оригинала 2 декабря 2003 г. Проверено 18 октября 2007 г.
  2. ^ ван де Вен, Арьян (август 2004 г.). «Новые улучшения безопасности в Red Hat Enterprise Linux v.3, обновление 3» (PDF) . Красная шляпа, Inc. Архивировано из оригинала (PDF) 12 мая 2005 г. Проверено 18 октября 2007 г.
  3. ^ «время, необходимое для включения проекта в исходное ядро ​​[LWN.net]». lwn.net .

Внешние ссылки