Download SEGURIDAD EN EL SISTEMA OPERATIVO GNU/LINEX (kernel 2.4
Document related concepts
Transcript
SEGURIDAD EN EL SISTEMA OPERATIVO GNU/LINEX (kernel 2.4.20) 28-7-2004 Javier Carmona Murillo PROYECTO AGILA http://patanegra.unex.es/agila Seguridad en el Sistema Operativo GNU/LinEx Índice 1 .- Introducción .................................................3 1.1 .- Objetivos de este documento..............................3 1.2 .- Estado general de la seguridad...........................3 2 .- Software Libre y la seguridad informática.....................5 2.1 .- Definición de Software Libre.............................5 2.2 .- Ventajas del uso de Software Libre en términos de seguridad ............................................5 2.3 .- Desventajas del uso de Software Libre en términos de seguridad ............................................6 3 .- Seguridad en GNU/LinEx........................................7 3.1 .- ¿Es GNU/LinEx un sistema seguro?.........................7 3.2 .- Ofrecer seguridad a un sistema GNU/LinEx. Herramientas.......7 3.2.1 .- Bastionado..........................................7 3.2.2 .- Antivirus...........................................7 3.2.3 .- Cortafuegos.........................................8 3.2.4 .- Vulnerabilidad remota..............................10 3.2.5 .- Sistemas de detección de intrusos..................10 3.2.6 .- Parches de seguridad para el núcleo de GNU/LinEx...11 4 .- Conclusión ..................................................14 5 .- Bibliografía.................................................15 5.1 .- Sitios web relacionados.................................15 2 Seguridad en el Sistema Operativo GNU/LinEx 1 .- Introducción 1.1 .- Objetivos de este documento En este documento se presenta el estado en el que se encuentra el sistema operativo GNU/LinEx desde el punto de vista de la seguridad de sistemas informáticos, prestando especial atención a las herramientas libres que pueden llegar a hacer de este sistema uno de los más seguros. Este estudio se centra en la seguridad del sistema cuando se encuentra interconectado a una red global como Internet. De este modo, otros aspectos importantes para la gestión de seguridad en sistemas Linux como son la gestión de permisos, las claves, o copias de seguridad, quedan fuera del propósito de este texto. 1.2 .- Estado general de la seguridad La seguridad es fundamental a la hora de afrontar tareas que se realizan en sistemas informáticos ya que son las únicas medidas que pueden garantizar que éstas se realicen con una serie de garantías que se dan por sentado en el mundo físico. En el mundo intangible de la informática, una misma red de comunicaciones es usada por una gran cantidad de usuarios. Muchos de ellos aprovecharán esta interconectividad para realizar un uso hostil de sus servicios. Los mecanismos de seguridad son necesarios, ya que son muchas las situaciones en las que el estar 'interconectado', supone un peligro en términos de seguridad. Para cada situación, existen mecanismos de seguridad que permiten llevar a cabo las operaciones de manera satisfactoria. Como ejemplos de posibles peligros, podemos indicar los siguientes: Intercambio de información: Cuando se intercambia información con un ordenador remoto, esa información circula por una serie de sistemas intermedios que son desconocidos a priori. Además, no sólo no se sabe cuáles serán estos sistemas, sino que además no se dispone de ningún control sobre ellos o sobre lo que puedan hacer con nuestros datos al pasar por ellos. Por otro lado, tampoco se puede estar seguro de que el sistema al que uno se está conectando es quien dice ser, en definitiva, no existe una certeza absoluta de que aquellos sistemas a los que uno envíe información sean realmente los auténticos; además, en el caso de que lo sean no se sabe si les llegará la información que se les envía, o si llegará sin cambios o si, aún si llega sin modificaciones, será leída por terceras partes. Instalación de Software dañino involuntariamente: Otra posibilidad que no se debe descartar es que se instale software en un ordenador 3 Seguridad en el Sistema Operativo GNU/LinEx sin conocimiento del usuario. Esto puede ocurrir de muchas formas, algunas relacionadas con operaciones que se realizan todos los días, como por ejemplo: Introducción de virus o troyanos por la descarga y ejecución de ficheros en servidores, en principio, confiables, por parte del usuario. Difusión de virus por correo electrónico. Explotación de una vulnerabilidad de un servicio que se está ofreciendo a través de Internet. Como por ejemplo un servidor web. Protección ante accesos no autorizados: Cuando se ofrecen servicios o información en una red para sus usuarios legítimos, al mismo tiempo se abre la puerta a posibles intrusos en estos sistemas. Protegerse de esta posibilidad implica tener un especial cuidado con todo el software empleado, desde el sistema operativo hasta la última de las aplicaciones instalada, y cuidar en gran medida su configuración. En definitiva, un buen sistema de seguridad debe proteger los sistemas vulnerables ante el posible acceso físico o remoto de intrusos no autorizados. Evidentemente, el nivel de seguridad establecido tendrá que ser consecuente con un análisis previo de los riesgos, considerando el impacto de dicho acceso no deseado contra las posibilidades de que éste se produzca. Algunas medidas de seguridad que se pueden implantar en estos casos van desde el cifrado de información sensible para impedir su acceso sin la clave adecuada, métodos físicos de destrucción de la información en caso de manipulación mecánica de la misma, etc. 4 Seguridad en el Sistema Operativo GNU/LinEx 2 .- Software Libre y la seguridad informática 2.1 .- Definición de Software Libre Para entender la situación de este tipo de software con respecto a su uso en seguridad informática es imprescindible conocer, a qué nos referimos cuando hacemos referencia a 'Software Libre'. Una descripción completa de lo que podría considerarse software libre, es la dada por las Directrices de Software Libre de Debian (http://www.debian.org/social_contract#guidelines), que constituyen la base de la definición de Open Source (Open Source Definition, www.opensource.org), aunque existen entre ellas ciertas diferencias. Entre las licencias más utilizadas para este tipo de software cabe destacar la licencia GNU GPL (http://www.gnu.org/copyleft/gpl.html) y la licencia BSD (http://www.debian.org/misc/bsd.license). 2.2 .- Ventajas del uso de Software Libre en términos de seguridad Del análisis del significado de Software Libre, se derivan una serie de ventajas que este tipo de software sobre el propietario, algunas de las cuales son muy adecuadas para el mundo de la seguridad: Al disponer del código fuente de los programas en su totalidad, éste puede ser analizado por terceras personas ajenas a sus autores en busca de fallos de diseño o de implementación. Es decir, cualquiera con los conocimientos necesarios puede realizar una auditoría del código del programa. La posibilidad de realizar modificaciones libremente al código fuente y distribuirlas permite que cualquiera pueda ofrecer mejoras sobre éste. Estas mejoras podrán ser nuevas funcionalidades que se incorporen al mismo o parches que corrijan problemas detectados anteriormente. El Software Libre pone en manos de cualquiera el tipo de tecnología que, hoy por hoy, sólo podían tener grandes corporaciones Si comparamos los precios de lo que cuesta el software de seguridad propietario hoy en día (licencias de cortafuegos, vpns, sistemas de detección de intrusos, etc.), con los precios del software de libre distribución, permite que este tipo de software pueda ser utilizado por organizaciones y personas con menos recursos económicos. De igual forma, la posibilidad de modificar libremente el software permite a las organizaciones que lo adapten a sus propias necesidades, pudiendo eliminar funcionalidades que no le sean de interés. En el mundo de la seguridad, existe la máxima de 'lo más sencillo es lo más seguro', por ello, poder eliminar funciones innecesarias de las herramientas las puede convertir de forma inmediata en más seguras (porque no podrán ser utilizadas estas funcionalidades para subvertirlas). 5 Seguridad en el Sistema Operativo GNU/LinEx 2.3 .- Desventajas del uso de Software Libre en términos de seguridad Sin embargo, el uso de software libre no está exento de desventajas, como las siguientes: La posibilidad de una generación más fácil de troyanos, dado que el código fuente también puede ser modificado con intenciones maliciosas. Si el troyano logra confundirse con la versión original puede haber problemas graves. La fuente del programa, en realidad, será el método de distribución de software, que, de no ser seguro, permitirá que un tercer agente lo manipule. La distribución de software se asegura añadiendo posibilidad de firmado de hashes de la información distribuida. El método de generación de software libre suele seguir, en la mayoría de los casos, un modelo en el que muchas personas trabajan sobre partes concretas e integrando sus cambios. Esto puede dar lugar a que se realice una mala gestión del código fuente del software por no seguir métodos formales de seguimiento, la consecuencia final es que falten piezas clave (que nadie ha contribuido) como es el caso de la documentación. Al no tener un respaldo directo, la evolución futura de los componentes software no está asegurada o se hace demasiado despacio. En mayor o menor medida, algunas de estas desventajas están comenzado a solucionarse. El caso de la difusión de troyanos o cualquier otro tipo de software malicioso, se limita mediante el uso de técnicas que garantizan la integridad del código obtenido. Esta garantía de inviolabilidad del paquete obtenido, está siendo aplicada por la mayoría de las distribuciones del mercado, que aseguran su software con mecanismos que nos permiten comprobar que el software que adquirimos es el que dice ser. En la distribución Debian (y por tanto GNU/LinEx), por ejemplo, existen sumas MD5 en cada paquete que nos permiten compararlas con la lista de sumas en los servidores oficiales de la distribución asegurándonos que el paquete no ha sido corrompido. Otra distribución, como es Red Hat, también incorpora estas soluciones. Los paquetes rpm, por ejemplo, van firmados con firmas tipo pgp que se pueden comparar con las listas en los servidores oficiales comentados anteriormente. Un nuevo modelo de negocio por parte de las compañías de software, está haciendo que los problemas de evolución futura comiencen a quedar resueltos. Este paradigma está orientado al cobro de realización de servicios en lugar del cobro a la utilización de productos. Gracias al apoyo de la Junta de Extremadura y al auge que ha proporcionado la aparición de GNU/LinEx, múltiples de empresas extremeñas, están siguiendo este modelo de negocio, que a diferencia de la orientación propietaria, hacen públicas las modificaciones al código fuente, provocando una mejora constante en los productos. 6 Seguridad en el Sistema Operativo GNU/LinEx 3 .- Seguridad en GNU/LinEx 3.1 .- ¿Es GNU/LinEx un sistema seguro? Muchas veces se ha dicho que GNU/Linux es un sistema muy seguro (especialmente en comparación con algunos sistemas operativos propietario), pero sería mejor decir que GNU/Linux tiene el potencial para convertirse en enormemente seguro. Pero de entrada no tiene porqué serlo. En particular debemos ser conscientes de que se trata de un sistema operativo pensado para entornos de red y por ello tiene grandes capacidades de conexión con otros ordenadores y de ofrecerles servicios. Por esto, se necesitan herramientas que hagan uso de esta potencialidad, y la conviertan en un sistema totalmente seguro. 3.2 .- Ofrecer seguridad a un sistema GNU/LinEx. Herramientas. El primer paso para proteger el sistema es deshabilitar todas las posibles puertas de entrada para un intruso y limitando el impacto de una intrusión, el siguiente paso consiste en usar una serie de herramientas que en conjunto introducen barreras de protección ante las posibles amenazas en el acceso a la red. 3.2.1 .- Bastionado En el caso de GNU/LinEx el bastionado del sistema implica, por un lado: deshabilitar todos los servicios de red que no se van a usar y que por defecto están habilitados y, por otro, asegurar la configuración interna del propio sistema para reducir el impacto de un troyano o un usuario malicioso que ha entrado en éste. Existen herramientas para realizar estas tareas de bastionado de forma automática. En particular cabe destacar Bastille (http://www.bastille-linux.org). A diferencia de otras que realizan, silenciosamente, las tareas de limitación de accesos a un servidor o arreglos sobre los sistemas de ficheros, Bastille guía al administrador durante el proceso de bastionado con una serie de preguntas sobre el uso que se le va a dar al sistema. Aunque también dispone de una serie de perfiles que se pueden implementar de forma inmediata sobre el sistema. La versión estable de Bastille para GNU/Linex (Debian) puede encontrarse en la dirección: http://packages.debian.org/stable/admin/bastille 3.2.2 .- Antivirus GNU/LinEx es un sistema operativo que por su diseño y por la forma de desarrollo y seguridad que plantean sus aplicaciones es difícilmente dañado por un virus. Esto se debe básicamente a la gestión del sistema de ficheros. Un sistema 7 Seguridad en el Sistema Operativo GNU/LinEx Linux goza de un sistema de seguridad que permite a cada uno de los usuarios limitar el acceso de sus ficheros por parte de otros usuarios no autorizados. Según lo dicho, la existencia de antivirus en Linux, y por tanto en GNU/LinEx, parece no tener sentido, sin embargo, hay que tener en cuenta el hecho de que la mayoría de los servidores están trabajando con sistemas Linux, y que a estos están conectados tanto sistemas con Linux como sistemas propietarios. Por lo que es buena idea filtrar virus en el flujo de información de cualquier tipo mediante un antivirus en el servidor. También es necesario para el usuario que utiliza Samba para tener acceso desde Windows. Al compartir disco se debe tener cuidado con virus que se hayan descargado en Linux, puedan infectar el otro sistema. Existen muchos antivirus en el mercado, propietarios, freeware, con licencia GPL y onLine. Antivirus como Clam (http://www.clamav.net), con licencia GPL, están disponibles para sistemas como GNU/LinEx. Éste emplea la base de datos de OpenAntivirus (http://www.openantivirus.org), otro proyecto libre. Clam está desarrollado en C y entre sus características se encuentran que es multihebra, soporta Amavis, escanea en archivos comprimidos, se actualiza automáticamente y mucho más. Actualmente Clam funciona, además de en Linux, en Solaris, FreeBSD y Windows (con cygwin). ClamAV no requiere mantenimiento, debido a que el daemon freshclam se encarga de mantener actualizada la base de datos de firmas de virus verificando la existencia de posibles actualizaciones varias veces al día. Las opciones más importantes son las que conciernen a la revisión de ficheros comprimidos. Por motivos de copyright y patentes el programa no lleva ningún tipo de código que se encargue de esto, sin embargo, si permite añadir parámetros para el uso de programas externos que hagan ese trabajo. Este antivirus, sin embargo, no permite desinfectar ficheros, y aunque dispone de actualización automática, la base de datos no está tan al día como la de los antivirus comerciales. 3.2.3 .- Cortafuegos Otro elemento importante dentro de la seguridad para redes son los cortafuegos. Para proteger el sistema local u otros detrás de este, el kernel necesita estar compilado con las capacidades del cortafuego. El núcleo 2.2 (LinEx potato) suministra el paquete de filtro del cortafuego ipchains, el kernel de LinEx 3.0 woody (kernel 2.4) suministra el poderoso paquete de filtros de cortafuegos iptables (filtro de la red). La distribución GNU/LinEx analizada en este documento, con un Kernel 2.4.18 basada en Debian 3.0 (y revisiónes de ésta), contiene el programa de configuración de Firewall Lokkit (http://roadrunner.swansea.linux.org.uk/lokkit.html). 8 Seguridad en el Sistema Operativo GNU/LinEx Lokkit permite a un usuario medio configurar los parámetros del firewall mediante la creación de reglas de red iptables básicas. En lugar de tener que escribir las reglas, este programa formula una serie de preguntas y, a continuación, escribe por las reglas en el archivo /etc/sysconfig/firewall. Lokkit no está pensado para generar reglas de firewall complejas, sino para usuarios medios que deseen una protección en sus conexiones. Lokkit permite establecer los siguientes niveles de seguridad para el sistema: Seguridad Alta (High): Esta opción desactiva la mayoría de las conexiones de red, excepto las respuestas de DNS y DHCP para que se puedan activar las interfaces de la red. IRC, ICQ y otros servicios de mensajería instantáneo no funcionan sin un proxy. Seguridad Media (Medium): Esta opción no permite conexiones remotas en el sistema, incluidas las conexiones NFS y las sesiones remotas de un sistema X Window. Los servicios que se ejecutan en el puerto 1023 no aceptan las conexiones, incluidas las realizadas con FTP, SSH, Telnet y HTTP. Deshabilitar Cortafuegos (No firewall): Esta opción no crea ninguna regla de seguridad. Sólo se recomienda seleccionar esta opción si el sistema se encuentra en una red de confianza (no en Internet), si el sistema tiene instalado un firewall grande o si escribe sus propias reglas personalizadas del firewall. Lokkit también le permite activar y desactivar servicios comunes como: Servidor web, Correo entrante, Shell segura, o Telnet. Otros cortafuegos disponibles para GNU/LinEx son: FireStarter: Es una herramienta de configuración de cortafuegos pensada para usuarios finales que no tienen por qué tener grandes conocimientos de seguridad. Dispone de un asistente que permite crear configuraciones básicas. Posteriormente puede mejorarse añadiendo y creando reglas, a las que se denominan reglas dinámicas. Esta herramienta funciona bajo entornos Linux 2.2 y 2.4 y se distribuye como parte del entorno GNOME. http://firestarter.sourceforge.net GuardDog: Es una herramienta de protección pensada para plataformas Linux y orientada a usuarios no expertos. Mediante una interfaz gráfica el usuario debe indicar que desea que el cortafuegos actúe a nivel de cada aplicación, no de IP como ocurre en otras herramientas. Gracias a este mayor nivel de abstracción se reduce la posibilidad de cometer errores. Esta garantía se ve incrementada por el hecho de que sigue una filosofía de que todo lo que no se permite explícitamente está prohibido. Guarddog, igual que FireStarter, permite gestionar y modificar el cortafuegos una vez creado. 9 Seguridad en el Sistema Operativo GNU/LinEx La calidad de su interfaz y un diseño bastante bien pensado hacen que ésta sea una de las herramientas de cortafuegos más apropiadas para usuarios finales de todas las existentes entre el software libre y propietario. Esto lo ha conseguido gracias a su orientación completa a satisfacer a este tipo de usuarios a cambio de renunciar a ser útil en entornos más complejos. Linux Firewall de linux-firewall-tools.com: Esta herramienta destaca por que accede a ella a través de una interfaz web. Está disponible a través de la página: http://www.linux-firewall-tools.com/linux/firewall/ Tras comenzar la configuración del cortafuegos un asistente va realizando preguntas para conocer las necesidades del usuario. Estas preguntas son más o menos sencillas, aunque es necesario tener ciertos conocimientos de redes y seguridad para poder contestarlas. Con Linux Firewall se permite configurar un cortafuegos a través de un formulario on-line. Incluye soporte para Linux 2.2 y Linux 2.4. 3.2.4 .- Vulnerabilidad remota La evaluación de vulnerabilidad remota también está contemplada en Debian ('padre' de GNU/LinEx). Las herramientas más importantes relacionadas con este aspecto de la seguridad son: Nessus: Nessus es una de las herramientas actualmente más utilizadas para realizar auditorías sobre redes de forma automática para prevenir posibles intrusiones. Se distribuye bajo licencia GPL y está compuesta de un cliente (nessus) usado como un GUI y un servidor (nessusd) los cuales lanzan los ataques programados. Nessus incluye vulnerabilidades remotas para varios sistemas, incluyendo dispositivos de red, servidores ftp, servidores www, etc. http://www.nesssus.org Whisker: Whisker es un scaner de evaluación de vulnerabilidad orientada a la web incluyendo tácticas anti-IDS (la mayoría de ellas no son mas anti-IDS).Este es uno de los mejores cgi-scanners disponibles,son capaces de detectar servidores de www y lanzar únicamente un conjunto de ataques dados en contra de este. La base de datos usada para revisar, puede ser modificada fácilmente para suministrar nueva información. 3.2.5 .- Sistemas de detección de intrusos Una tarea también necesaria es la posibilidad de poder reconocer cuando un sistema ha sido accedido por un intruso o se está intentando esta tarea. Estos intentos pueden ser escaneos de puertos sobre un sistema o un rango de ellos, intentos de ataques de fuerza bruta de contraseñas, subversión de aplicaciones interactivas, etc. Para llevar a cabo esta tarea se puede hacer uso de sistemas de detección de intrusión o "Intrusion Detection Systems" (IDS). Estos sistemas se pueden dividir básicamente en dos categorías: basados en host o basados en red. Los basados en host realizan un análisis del sistema "por dentro" para determinar si un intruso ha accedido o a intentado acceder, tareas habituales de estas herramientas son el análisis de los registros 10 Seguridad en el Sistema Operativo GNU/LinEx del sistema, análisis de los ficheros para detectar modificaciones de los mismos (comprobando la integridad del sistema) o análisis de los procesos ejecutándose en el sistema. Los detectores de intrusos basados en red analizan el envío y recepción de paquetes a sistemas finales en busca de patrones que puedan considerarse ataques remotos contra sistemas internos. Estos últimos no necesitan saber qué servicios se están ofreciendo en los sistemas finales, siendo capaz de detectar ataques contra servicios que no se están ofreciendo. En el campo de la detección de intrusión a nivel de red, Snort es uno de los más potentes en el mundo de software libre. Su potencia consiste en analizar el tráfico de una determinada red buscando patrones que se correspondan con un ataque y por lo tanto que merezca la pena ser notificados. Snort activa, en una máquina de la red, interfaces promiscuos para controlar el flujo de tráfico de red de toda la red, y en cada uno de esos paquetes, snort busca ciertos patrones indicativos de ataques y los notifica según se indique en el fichero de configuración. Snort incorpora paquetes con reglas ya definidas pero fácilmente ampliables para nuestras necesidades particulares, que filtran el tráfico que el interfaz en modo promiscuo captura. El fichero de configuración global de Snort es /etc/snort/snort.conf, en el que se pueden indicar quien va a recibir las alertas o, qué paquetes de reglas se van a incluir. Sin embargo la característica que se ofrece en otros IDS y no está tan avanzada en Snort es la capacidad de integrar diversas sondas en una única consola y la existencia de consolas gráficas intuitivas que puedan ofrecer, en tiempo real, los avisos a operadores. Estas carencias parecen empezar a mitigarse con la aparición de RazorBack y demarc. El primero es un interfaz desarrollado para GNOME y el siguiente un interfaz que hace uso de una base de datos MySQL y Apache para presentar una consola del sistema de detección de intrusos vía WWW. 3.2.6 .- Parches de seguridad para el núcleo de GNU/LinEx GNU/LinEx (Debian) suministra algunos de los parches para el kernel de Linux que aumentan su seguridad. Estos incluyen: Detección de Intrusos en Linux (dentro del paquete lids-2.2.19): http://packages.debian.org/testing/admin/kernel-patch-2.4-lids Este parche hace que el proceso duro de creación de Linux sea mas fácil. Un usuario puede restringir todos los procesos, dar lo adecuado para escrbir, leer o eliminar archivos. Actualmente, este parquete está en la fase beta. Capacidades de Linux (dentro del paquete lcap): Este paquete elimina algunas capacidades del kernel, volviéndolo más seguro. Capacidades son una forma de controlar el acceso, basada en el núcleo. Este programa proporciona una manera más amigable con el usuario que configurar a mano /proc/sys/kernel/cap-bound 11 Seguridad en el Sistema Operativo GNU/LinEx para eliminar capacidades de su núcleo Linux. La versión estable actual es la 0.0.61. Confianza en Linux (dentro del paquete trustees) Trustees: Sistema de gestión avanzada del permiso para Linux. La meta principal del proyecto de los administradores de Linux es crear un sistema de gestión de permisos avanzado para linux. De hecho, el sistema del permiso de UNIX no es conveniente para la solución algunas tareas muy comunes. Este paquete proporciona la utilidad del settrustee, que permite nuevos privilegios de trustee.conf. La versión estable actual del paquete es la 2.8-2. Linux Aumentando con NSA (dentro del paquete selinux) Política y gestión de archivos config para NSE Security Enhanced Linux. Los ficheros que contienen esta política se encuentran en etc/selinux. kernel-patch-2.2.18-openwall: Parche para agregar características de adicionales de seguridads al núcleo de Linux. Es una colección de características de seguridad para el núcleo de Linux, configurables mediante la nueva seccion de seguridad 'Security Options'. kernel-patch-2.2.19-harden Soporte IPSEC en el kernel: El paquete kernel-patch-freeswan contiene los parches para el kernel de Linux que proporciona el soporte para el uso de FreeSWan kernel-patch-int: Parche internacional para el kernel de Linux que contiene capacidades de criptografía para dicho núcleo, que no pueden ser incluidas en el código fuente del kernel oficial debido a ciertas leyes de Estados Unidos. Puede usarse con el núcleo version 2.2.15. Este parche contiene las partes libres DFSG del parche del kernel internacional 'oficial' disponible en www.kerneli.org excepto el parche CIPE que está empaquetado de forma independiente a este paquete. Sin embargo, uno de los parches de seguridad para los núcleos 2.4 mejor preparados y con más opciones es Grsecurity, el cual va a ser descrito con mayor detalle. Este parche para el kernel está basado en otros diseñados para funcionar con los de la serie 2.2, como Openwall y PaX. Implementa estas mejoras y muchas otras para la serie 2.4, y no se trata de un servicio que deba correr periódicamente ni un módulo que podamos cargar, sino que parchea algunos procesos internos para restringirlos frenta a posibles ataques. Grsecurity, así como el resto de parches de seguridad disponibles, son recomendados para un servidor o un firewall que se encuentre expuesto a Internet o a algún tipo de red insegura. En el caso de un servidor web público, el sistema de ACL, las jaulas chroot y el resto de prevenciones, son una muy buena opción. El parche implementa diferentes mejoras que suelen ser independientes, de forma que pueden verse como distintos mini-parches. En la configuración del núcleo tras parchearlo con Grsecurity, aparecen nuevas opciones: Buffer Overflow Protection: Activa o desactiva diversos mecanismos para evitar desbordamientos en la pila. 12 Seguridad en el Sistema Operativo GNU/LinEx Access Control Lists: Activa o desactiva el sistema de ACL integrado en el parche, que nos va a servir para controlar tanto ficheros como procesos en el sistema. Filesystem protections: Protección para el sistema de ficheros, opción de chroot, protección en /tmp contra race conditions... Kernel auditing: Activa o desactiva las opciones de auditado del kernel, como logeado adicional para funciones conflictivas Executable protections: Protege a los procesos, proporcionándoles Ids aleatorias, protección contra llamadas de proceso recursivas y mucho más. Network protections: Similar a la anterior pero orientado a conexiones de red, como puertos TCP de envío aleatorios, valores de TTL aleatorios, permitir el uso de sockets a un grupo concreto. Sysctl support: Si activamos, podremos modificar los valores de las diferentes modificaciones sin tener que recompilar nuestro kernel de nuevo. Este parche se puede descargar desde su web, http://www.grsecurity.net, donde se podrá encontrar la última versión estable (en el momento de escribir este documento es la 2.0), aunque también está disponible desde el repositorio de Debian. 13 Seguridad en el Sistema Operativo GNU/LinEx 4 .- Conclusión A pesar de todo lo expuesto anteriormente, en determinadas áreas de la seguridad, algunas soluciones propietarias están más maduras, ya que muchas empresas se dedican al desarrollo, exclusivamente, de estas herramientas. Sin embargo, sí que es posible pensar que el software libre está, en determinadas áreas, compitiendo con las soluciones propietarias existentes. La situación ha ido cambiando a medida que las distintas soluciones desarrolladas se han demostrado competitivas y han ido siendo aceptadas por los usuarios. Esta aceptación ha dado lugar a un desarrollo exponencial en el que se pueda esperar que, en aquellas áreas en las que el software libre aún no alcanza al software propietario, la situación llegue a igualarse (e incluso invertirse) pasado un cierto tiempo. Por otro lado, independientemente del ritmo de crecimiento del software, del lado de la seguridad, las ventajas ofrecidas por el software libre son evidentes frente a las alternativas propietarias. Máxime en determinados entornos en los que una persona no se puede 'fiar' de aquella compañía que le vende la solución o no puede depender de la seguridad 'garantizada' por un determinado producto que no tiene forma de demostrar. Por tanto, si bien el software libre en la actualidad tiene una cobertura desigual de las distintas necesidades de seguridad de una empresa o corporación, éste es, definitivamente, una apuesta de futuro provechosa en aquellas áreas aún no desarrolladas y una oportunidad real e inmediata en las demás áreas para utilizar soluciones equivalentes a las propietarias con: Un menor coste Unas mayores garantías de seguridad, debido a la posibilidad de auditar el código en uso Una mayor flexibilidad en la adaptación e integración, gracias a la posibilidad de modificar dicho código. La posibilidad del mantenimiento asegurado de una solución de seguridad con independencia del origen del producto en sí. 14 Seguridad en el Sistema Operativo GNU/LinEx 5 .- Bibliografía Portal de GNU/LinEx (http://www.linex.org): Información y soporte para usuarios de GNU/LinEx. Información sobre seguridad del sistema Debian (http://security.debian.org) Manual de seguridad de Debian (http://www.nl.debian.org/doc/manuals/securing-debianhowto/index.es.html) 5.1 .- Sitios web relacionados Free Software Fundation (http://www.fsf.org): Página web de la Fundación de Software Libre. Hispasec (http://www.hispasec.com): Laboratorio especializado en seguridad y tecnologías de la información, que investiga problemas de seguridad informática y proporciona soluciones correctivas y preventivas. 15