Кіріспе
Linux жүйелеріне шабуыл жасау қаупін азайтуға бағытталған жоба. Exec Shield – Red Hat, Inc компаниясында 2002 жылдың соңында Linux жүйелеріне құрттар немесе басқа да автоматтандырылған қашықтан шабуыл жасау қаупін азайту мақсатында басталган жоба. Жобаның алғашқы нәтижесі – Linux ядросының қауіпсіздік жаңартуы болды, ол аппараттық құралда NX мүмкіндігі жоқ x86 процессорларында NX битін эмуляциялайды. Exec Shield жобасының көптеген басқа да компоненттері болғанмен, кейбір адамдар осы алғашқы жаңартуды Exec Shield деп атайды. Бірінші Exec Shield жаңартуы деректер жадын орындалмайтын, ал бағдарламалық жадын жазылмайтын деп белгілеуге тырысады. Бұл буферлік ағын және деректерді жазу арқылы кодты енгізу сияқты көптеген қауіпсіздік бұзушылықтарын болдырмайды. Exec Shield сонымен қатар mmap және heap базасы үшін жад кеңістігінің орналасуын кездейсоқ түрде өзгертеді. Жаңарту кодты енгізу және орындау қиындығын арттырады, көптеген эксплойттарды тиімсіз етеді. Exec Shield-ті толыққанды пайдалану үшін қосымшаларды қайта құрастыру қажет емес, бірақ кейбір қосымшалар (Mono, Wine, XEmacs, Mplayer) толық үйлесімді емес. Exec Shield жобасының нәтижесінде пайда болған басқа мүмкіндіктер: позицияға тәуелсіз орындалатын файлдар (PIE), Linux ядролары үшін жад кеңістігін кездейсоқ өзгерту, glibc ішкі қауіпсіздік тексерулерінің кең жиынтығы (үйінді және пішімдік тізбектерді пайдалануды қиындатады), GCC Fortify Source мүмкіндігі және GCC стек қорғаушысының портталуы мен біріктірілуі.
Exec Shield is a project started at Red Hat, Inc in late 2002 with the aim of reducing the risk of worm or other automated remote attacks on Linux systems. The first result of the project was a security patch for the Linux kernel that emulates an NX bit on x86 CPUs that lack a native NX implementation in hardware. While the Exec Shield project has had many other components, some people refer to this first patch as Exec Shield. The first Exec Shield patch attempts to flag data memory as non executable and program memory as non writeable. This suppresses many security exploits, such as those stemming from buffer overflows and other techniques relying on overwriting data and inserting code into those structures. Exec Shield also supplies some address space layout randomization for the mmap and heap base. The patch additionally increases the difficulty of inserting and executing shellcode, rendering most exploits ineffective. No application recompilation is necessary to fully utilize exec shield, although some applications (Mono, Wine, XEmacs, Mplayer) are not fully compatible. Other features that came out of the Exec Shield project were the Position Independent Executables (PIE), the address space randomization patch for Linux kernels, a wide set of glibc internal security checks that make heap and format string exploits near impossible, the GCC Fortify Source feature, and the port and merge of the GCC stack protector feature.
Іске асыру
Exec Shield код сегменті шегін пайдаланатын барлық x86 процессорларында жұмыс істейді. Exec Shield жұмыс істеу механизміне байланысты өте жеңіл, бірақ кездейсоқ виртуалды жад орналасуын толық қорғамайды. Егер CS шегі көтерілсе, мысалы, жоғары жадты орындау үшін mprotect функциясын шақыру арқылы, онда осы шектен төменгі жадтың қорғанысы жоғалады. Инго Молнар бұл туралы электрондық хат арқылы сөйлескенде атап көрсетті. Көптеген қосымшалар осы жағынан дұрыс жұмыс істейді; стек (маңызды бөлігі) кем дегенде, карталанған кітапханалардың үстінде орналасады, сондықтан қосымшаның тікелей шақырулары болмаса, орындалмайды. 2004 жылдың тамызынан бастап Exec Shield жобаларының ешқайсысы mprotect функциясын кез келген архитектурада шектеу арқылы жадты қорғауға тырыспайды; жад бастапқыда орындалмайтын болса да, кейін орындалуы мүмкін, сондықтан ядро қосымшаға жад беттерін бір уақытта жазуға және орындауға болатындай етіп белгілеуге рұқсат береді. Дегенмен, Қауіпсіздікті күшейтілген Linux жобасымен (SELinux) бірлесіп, Fedora Core дистрибутивінің стандартты саясаты көптеген орындалатын файлдар үшін мұндай әрекеттерге тыйым салады, тек үйлесімділік үшін бірнеше ерекшеліктер қарастырылған.
Тарих
Exec Shield Red Hat-тың түрлі адамдарымен әзірленді; алғашқы түзетуді Red Hat-тың Инго Молнар жасады және ол 2003 жылдың мамырында алғаш рет жарияланды. Ол Fedora Core 1-ден 6-ға дейін және Red Hat Enterprise Linux 3-ші нұсқасынан бастап қолданылады. Бұл жобаға Якуб Елинек, Ульрих Дреппер, Ричард Хендерсон және Арян ван де Вен сияқты мамандар да қатысты. Молнар 2007 жылы LWN.net сайтында: "[Exec Shield] бөліктері негізгі кодқа қосылды, бірақ оның маңызды бөлігі қосылмады" деп мәлімдеді.