stringtranslate.com

Escudo ejecutivo

Exec Shield es un proyecto iniciado en Red Hat , Inc a finales de 2002 con el objetivo de reducir el riesgo de gusanos u otros ataques remotos automatizados en sistemas Linux. El primer resultado del proyecto fue un parche de seguridad para el kernel de Linux que emula un bit NX en CPU x86 que carecen de una implementación nativa de NX en el hardware. Si bien el proyecto Exec Shield ha tenido muchos otros componentes, algunas personas se refieren a este primer parche como Exec Shield.

El primer parche Exec Shield intenta marcar la memoria de datos como no ejecutable y la memoria de programa como no grabable. Esto suprime muchas vulnerabilidades de seguridad , como las que surgen de desbordamientos de búfer y otras técnicas que se basan en la sobrescritura de datos y la inserción de código en esas estructuras. Exec Shield también proporciona cierta aleatorización del diseño del espacio de direcciones para mmap () y la base del montón.

El parche además aumenta la dificultad de insertar y ejecutar shellcode , haciendo que la mayoría de los exploits sean ineficaces. No es necesaria ninguna recompilación de aplicaciones para utilizar exec-shield por completo, aunque algunas aplicaciones ( Mono , Wine , XEmacs , Mplayer ) no son totalmente compatibles.

Otras características que surgieron del proyecto Exec Shield fueron Position Independent Executables (PIE), el parche de aleatorización del espacio de direcciones para los kernels de Linux, un amplio conjunto de comprobaciones de seguridad internas de glibc que hacen que los exploits de cadena de formato y montón sean casi imposibles, GCC Fortify Source característica, y el puerto y la combinación de la característica de protector de pila GCC .

Implementación

Exec Shield funciona en todas las CPU x86 utilizando el límite de segmento de código. Debido a la forma en que funciona Exec Shield, es muy liviano; sin embargo, no protegerá completamente los diseños de memoria virtual arbitrarios . Si se aumenta el límite de CS, por ejemplo llamando a mprotect() para hacer ejecutable una mayor memoria, entonces las protecciones se pierden por debajo de ese límite. Ingo Molnar lo señala en una conversación por correo electrónico. La mayoría de las aplicaciones son bastante sensatas en esto; la pila (la parte importante) al menos termina por encima de cualquier biblioteca asignada, por lo que no se vuelve ejecutable excepto mediante llamadas explícitas de la aplicación.

En agosto de 2004, nada de los proyectos Exec Shield intenta imponer protecciones de memoria restringiendo mprotect () en cualquier arquitectura; Aunque es posible que la memoria no sea ejecutable inicialmente, puede volverse ejecutable más adelante, por lo que el núcleo permitirá que una aplicación marque páginas de memoria como escribibles y ejecutables al mismo tiempo. Sin embargo, en cooperación con el proyecto Linux con seguridad mejorada (SELinux), la política estándar para la distribución Fedora Core prohíbe este comportamiento para la mayoría de los ejecutables, con sólo unas pocas excepciones por razones de compatibilidad.

Historia

Exec Shield fue desarrollado por varias personas de Red Hat; el primer parche fue lanzado por Ingo Molnar de Red Hat y lanzado por primera vez en mayo de 2003. Es parte de Fedora Core 1 a 6 y Red Hat Enterprise Linux desde la versión 3. [1] [2] Otras personas involucradas incluyen a Jakub Jelínek, Ulrich Drepper, Richard Henderson y Arjan van de Ven.

Molnar comentó en 2007 en LWN.net que "partes de [exec-shield] subieron, pero una buena parte no". [3]

Ver también

Referencias

  1. ^ "Notas de la versión de Fedora Core 1". Red Hat, Inc. Noviembre de 2003. Archivado desde el original el 2 de diciembre de 2003 . Consultado el 18 de octubre de 2007 .
  2. ^ van de Ven, Arjan (agosto de 2004). "Nuevas mejoras de seguridad en Red Hat Enterprise Linux v.3, actualización 3" (PDF) . Red Hat, Inc. Archivado desde el original (PDF) el 12 de mayo de 2005 . Consultado el 18 de octubre de 2007 .
  3. ^ "tiempo que lleva incorporar un proyecto al kernel ascendente [LWN.net]". lwn.net .

enlaces externos