13.07.2015 Views

SEGURIDAD EN UNIX Y REDES

SEGURIDAD EN UNIX Y REDES

SEGURIDAD EN UNIX Y REDES

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

142CAPÍTULO 9. <strong>SEGURIDAD</strong> DEL NÚCLEOa la seguridad informática: mientras unos argumentan que esta disponibilidad supone un problemade seguridad – un atacante puede dedicarse a revisar el código hasta encontrar un error de programación,y aprovecharlo –, otros les acusan de defender las teorías de Security through Obscurity ysostienen que cuanta más gente tenga acceso al código más errores se localizarán y solucionarán, ypor tanto a la larga se va a conseguir un sistema mucho más robusto. Esta segunda postura es laque más fuerza está tomando desde hace unos años, y parece también la más razonable: es ciertoque un atacante puede dedicarse a leer código hasta encontrar un error, pero se ha comprobado quela mayoría de los fallos no se suelen detectar de esta forma, sino por cualquier circunstancia quegenera un evento extraño sobre el que posteriormente se investiga. Por tanto, la disponibilidad delcódigo del núcleo no debe suponer una amenaza a la seguridad a priori 1 . Además, un administradorde sistemas con un mínimo nivel de conocimientos de programación puede aprovechar la disponibilidaddel código para detectar rápidamente problemas de seguridad: por ejemplo, si sospecha quealguien utiliza sus recursos para ejecutar programas adivinadores de contraseñas, puede modificarlibrerías para detectar llamadas ‘sospechosas’ a la función crypt(), o si piensa que determinadousuario ejecuta un programa setuidado para conseguir privilegios que no le corresponden, puedemodificar la llamada al sistema setuid() para comprobar si sus sospechas son ciertas.Visto esto, parece claro que el núcleo va a representar un pilar básico para conseguir un sistemaseguro; es más, al ser el kernel la base del sistema operativo, no sirve de nada esforzarse enconseguir seguridad a nivel de aplicación si nuestro núcleo es inseguro. En este capítulo vamos atratar aspectos relativos a la seguridad de los núcleos de sistemas Unix, y también hablaremos deaspectos que, sin pertenecer estrictamente al kernel, son de un nivel tan bajo que su funcionamientoes muy dependiente de cada versión de Unix. Como cada clon del sistema operativo tiene susmétodos para configurar o recompilar el kernel, y en además en este trabajo no podemos tratarextensamente cada uno de ellos, es indispensable en cada caso consultar los manuales antes demodificar cualquier parámetro de los vistos aquí.9.2 Linux9.2.1 Opciones de compilaciónA la hora de recompilar un nuevo núcleo de Linux hemos de tener en cuenta algunas opciones dentrodel grupo ‘Networking Options’ que pueden afectar a la seguridad de nuestra máquina (algunosde estos aspectos, para núcleos 2.0, pueden encontrarse en [Wre98]). Sin embargo, antes de entraren detalles con opciones concretas, es muy conveniente que introduzcamos soporte para sistemasde ficheros proc en ‘Filesystems’ (config proc fs) y activemos el interfaz sysctl en ‘GeneralSetup’ (config sysctl); con estos pasos habilitamos la capacidad de Linux para modificar ciertosparámetros del núcleo (en /proc/sys/) sin necesidad de reiniciar el sistema o recompilar el kernel.Pasando ya a comentar algunas opciones que nos ofrece Linux, es bastante interesante para laseguridad configurar nuestro sistema como un cortafuegos a la hora de compilar el núcleo (configip firewall). Linux ofrece en su kernel facilidades para definir un firewall de paquetes en elsistema, que además permitirá el IP-Masquerading. Para que el subsistema de filtrado funcione esnecesario que el IP-Forwarding esté activado de la forma que más tarde veremos.Otra opción que nos puede ayudar a incrementar la seguridad de nuestro equipo es la defragmentaciónde paquetes (config ip always defrag) que llegan a través de la red. Cuando un equiposituado entre el origen y el destino de los datos decide que los paquetes a enviar son demasiadograndes, los divide en fragmentos de longitud menor; sin embargo, los números de puerto sólamenteviajan en el primer fragmento, lo que implica que un atacante puede insertar información en elresto de tramas que en teoría no debe viajar en ellas. Activando esta opción, en nuestra máquinaestos fragmentos se reagruparán de nuevo incluso si van a ser reenviados a otro host.1 Sin embargo, ningún Trusted Unix tiene su código disponible. . .

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!