jferrer@acm.org
jfs@computer.org
En este documento se estudiarán las distintas capacidades de GNU/Linux y las distintas herramientas de software libre de las que dispone en entornos de seguridad. Se hará un énfasis especial en el uso de en el ámbito elementos conectados a una red global, como Internet. Asimismo, se comparará el estado del arte de dicho software con algunos de sus competidores basados en software propietario.
En este documento se intentará presentar el estado en el que se encuentra el sistema operativo GNU/Linux y las herramientas libres por él proporcionadas en el mundo de la seguridad de sistemas informáticos. Se ofrecerá una panorámica general del mundo de la seguridad y de las ventajas y desventajas que, en este entorno, ofrece el software libre.
El objetivo es que la información presentada pueda ser leída y comprendida por personas sin formación previa en lo que a seguridad se refiere. Por ello se ha decidido estructurarla en una serie de secciones asociadas a casos de uso típicos, en especial cuando se tratan de redes de comunicaciones como, Internet.
La gran mayoría de los documentos relativos a seguridad siguen un enfoque, que se podría considerar tradicional, basado en los objetivos básicos de un entorno de seguridad. Es decir:
Confidencialidad de los datos: almacenados, procesados y transmitidos.
Integridad de los datos.
Asegurar identidad de origen y destino.
Disponibilidad de datos o servicios.
Aunque su validez metodológica sea mucho mayor, puede ser difícil entender el enfoque sin entender los principios en los que se basa, algo no exigible a personas no iniciadas en las materias de seguridad en las tecnologías de la información. El enfoque adoptado en este documento, sin embargo, parte de las distintas tareas que podrá ejercer el sistema operativo GNU/Linux, haciendo énfasis en los peligros asociados a un estado de máxima interconexión, es decir, las redes locales e Internet. Desde este punto de vista, se pueden distinguir los siguientes escenarios:
La seguridad de los clientes (sistemas finales) que hacen uso de servicios en redes hostiles, haciendo un énfasis especial en la red Internet.
La seguridad en la oferta de acceso a redes públicas, desde la perspectiva de un proveedor de servicios de comunicación que interconecta a usuarios finales con dichas redes.
La seguridad en la publicación de información y acceso a servicios. Es decir, la perspectiva de servidor, centrando la disquisición, de nuevo, en servicios habituales de Internet.
La seguridad (cifrado) en el envío, recepción y almacenamiento de información. Con un hincapié especial en los servicios de mensajería.
Las garantías de la autenticidad e integridad de información transmitida. Aplicado tanto a los servicios de mensajería analizados previamente entre otros.
De esta forma, se trata el uso del sistema operativo en todos los agentes de una comunicación en Internet, desde el cliente hasta el servidor pasando por los encaminadores y sistemas de almacenamiento intermedios. Cada una de estas necesidades será tratada en una sección del documento. De igual forma, para cada una de ellas se intentará realizar una breve introducción en la que se presentan las principales amenazas a los que se pueda enfrentar un sistema si se hace uso de éste en dichas circunstancias. Debido a las evidentes limitaciones en un trabajo de este tipo, no es posible realizar un tratamiento exhaustivo de cada uno de los temas.
Habitualmente los usuarios finales no tienen en consideración la seguridad cuando hacen uso de un sistema, ya que, frecuentemente, se ignoran los aspectos relacionados con la seguridad. De igual forma, estos aspectos a veces pueden considerarse una molestia, ya que la seguridad suele ir en el platillo opuesto de la comodidad y facilidad de uso en la balanza del diseño de un sistema. Es por esto que los usuarios a veces puedan tener una imagen negativa de la seguridad, por considerarlo algo molesto y que interrumpe su capacidad de realización de un trabajo determinado. En un entorno seguro, un usuario se encuentra con tareas que le pueden resultar incómodas (como por ejemplo, recordar contraseñas, cambiarlas periódicamente, ...) y que pueden limitar las operaciones que puede realizar así como los recursos a los que se le permite acceder.
Sin embargo, 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. Por ejemplo, cuando se guardan cosas en una caja fuerte en un banco real, no se piensa que cualquier persona del mundo puede llegar a ésta como si de una forma inmediata, en lugar de un banco, se tratara una estación de autobuses. En el mundo intangible de la informática, tan cerca de un servidor están sus usuarios legítimos como los usuarios que hacen uso de la misma red de comunicaciones. Es más, estos usuarios, en el caso de una red global, se cuentan por millones. Algunos serán "buenos vecinos" pero otros serán agentes hostiles.
Para poner de relevancia lo comentado en los párrafos anteriores se han elegido tres casos genéricos que se describen a continuación. Con ellos se pretende mostrar alguno de los peligros, relativos a seguridad, de estar 'interconectados'. Para cada uno de ellos existen mecanismos de seguridad que permiten llevar a cabo las operaciones de manera satisfactoria.
Cuando se intercambia información con un ordenador remoto, esa información circula por una serie de sistemas intermedios que son desconocidos a priori (excepto en ámbitos muy específicos). Además, no sólo no se sabe cuales serán estos sistemas intermedios, 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. Quizá el propietario original es de fiar pero su sistema ha sido comprometido por un atacante que toma posesión de los datos enviados.
Por otro lado tampoco se puede estar seguro de que el sistema al que uno se está conectando es quien dice ser. Existen diversos medios técnicos para suplantar la identidad de un sistema y engañar a un tercero cuando realiza la conexión.
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.
Cuando este tipo de garantías sean necesarias no quedará más remedio que aplicar las técnicas que se tratarán más adelante.
Otra posibilidad que no se debe descartar es que se instale software en un ordenador sin conocimiento del usuario o administrador. Esto puede ocurrir de muchas formas, algunas relacionadas con operaciones que se realizan todos los días. Algunos ejemplos son:
Virus por correo electrónico. Estos se activan ya sea porque el lector de correo lo ejecuta automáticamente sin preguntar al usuario o porque lo hace este involuntariamente creyendo que se trata de otra cosa.
Virus o troyanos asociados a ficheros descargados de servidores, en principio, confiables, que el usuario se descarga para su instalación y ejecución en su propio ordenador.
Explotación de una vulnerabilidad de un servicio que se está ofreciendo a través de Internet. Como por ejemplo un servidor web. Un caso similar sería una carpeta compartida donde otros miembros de la red local (y quizá un virus que haya en sus ordenadores) pueden copiar archivos.
Este software dañino no sólo puede obtener o borrar información del sistema en el que se instala, también puede servir como plataforma de ataque a otros ordenadores.
Es por esto que todo ordenador, máxime cuando se encuentra expuesto a recibir información del exterior, debe protegerse con las medidas de seguridad adecuadas aunque se considere que no tiene información ni servicios de gran importancia.
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.
Pero tampoco debería olvidarse la posibilidad de que existan intrusos que accedan físicamente al sistema. La evolución de las comunicaciones ha hecho que se preste una gran atención a la posibilidad de accesos remotos, pero de nada sirve evitar esta posibilidad si se permite el acceso físico al sistema a personas no autorizadas. Es por esto que, en algunos casos pueda ser necesario tomar las medidas de seguridad adecuadas sobre el propio hardware para evitar robos, o pérdidas de información por estos accesos inadecuados.
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 este 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.
Como se ha comentado este documento se organiza entorno a escenarios de uso de un entorno de red y que han sido ya presentados. Pero antes de empezar con ellos se ha considerado conveniente precederlos de dos apartados:
El software libre en el mundo de la seguridad: presenta el concepto software libre y trata de forma genérica sus ventajas e inconvenientes generales en el mundo de la seguridad.
El sistema operativo: examina los principales sistemas operativos que existen desde el punto de vista de seguridad y entre ellos GNU/Linux que será el centro de atención del resto del documento.
Estos apartados son seguidos de un estudio de cada uno de los escenarios y unas conclusiones finales. En ellas se valora el estado del arte de GNU/Linux y sus herramientas del software libre en base a la información presentada.
Siguiente | ||
El Software Libre en el mundo de la seguridad |