Щит Exec

Проект, направленный на снижение риска атак на системы Linux

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

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

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

Другими функциями, появившимися в результате проекта Exec Shield, стали Position Independent Executables (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 Release Notes". Red Hat, Inc. Ноябрь 2003. Архивировано из оригинала 2003-12-02 . Получено 2007-10-18 .
  2. ^ ван де Вен, Арджан (август 2004 г.). "Новые улучшения безопасности в Red Hat Enterprise Linux v.3, обновление 3" (PDF) . Red Hat, Inc . Архивировано из оригинала (PDF) 2005-05-12 . Получено 2007-10-18 .
  3. ^ "время, необходимое для размещения проекта в ядре апстрима [LWN.net]". lwn.net .
  • Веб-страница патча Exec Shield Инго Молнара. Архивировано 04.03.2016 на Wayback Machine , включает документацию в файле ANNOUNCE-exec-shield. Архивировано 05.08.2004 на Wayback Machine.
  • Статья в Newsforge
  • Статья о проекте/репортаж журнала Red Hat
  • Негативные проблемы безопасности с ExecShield
Retrieved from "https://en.wikipedia.org/w/index.php?title=Exec_Shield&oldid=1268856958"