El mundo de la seguridad informática es demasiado amplio y complejo como para
ser tratado exhaustivamente en ningún trabajo, mucho menos en uno tan simple
como este; aquí únicamente he intentado resumir
una visión global de diferentes aspectos relacionados con la seguridad,
especialmente con Unix y redes de computadores (estas últimas tan de moda hoy
en día...Unix por desgracia no tanto). Este trabajo está casi
completamente extraído de mi proyecto final de carrera, que estudiaba la
seguridad en los sistemas Unix y la red de la Universidad Politécnica
de Valencia (UPV), de forma que si aparece alguna referencia a `nuestra red' o
`nuestros equipos' - aunque he intentado eliminar todos los ejemplos y
comentarios relativos a UPV, por motivos obvios - ya sabemos de qué se
trata. A pesar de haberlo revisado bastantes veces (lo bueno de no tener vida
social es que uno tiene mucho tiempo para leer ;-), evidentemente
existirán errores y faltarán datos que podrían haber aparecido, por lo
que agradeceré cualquier
sugerencia o crítica (constructiva, las destructivas directamente a
/dev/null) que se me quiera hacer. Para ponerse en contacto conmigo
se puede utilizar la dirección de correo electrónico que utilizo
habitualmente: toni@aiind.upv.es.
Durante la realización de este proyecto ni se han maltratado animales ni
se han utilizado productos Microsoft; personalmente, siempre he considerado
ridículo
hablar de seguridad en Unix - incluso de seguridad en general - y hacerlo
utilizando productos de una compañía que tantas veces ha demostrado su
desinterés por la tecnología frente a su interés por el marketing.
El trabajo entero ha sido creado sobre diversos clones de Unix (principalmente
Solaris y Linux, y en menor medida HP-UX, BSD/OS, IRIX, AIX e incluso Minix).
El texto ha sido escrito íntegramente con vi (vi es EL
editor, el resto de editores no son vi ;-) y compuesto
con LATEX, de Leslie Lamport; realmente, algunos fragmentos han sido
extraídos de documentos que hice hace tiempo con troff (sí,
troff), de Joe Ossanna y Brian Kernighan, transformados a LATEX mediante
tr2tex, de Kamal Al-Yahya, y retocados con algo de paciencia. Para las
figuras simples he utilizado el
lenguaje PIC, también de Brian Kernighan, y para las que son más complejas
xfig. La captura de alguna pantalla se ha hecho con xwd y GIMP, y el retoque y transformación de imágenes con este último junto a
xv y xpaint.
Quiero agradecer desde aquí la colaboración desinteresada de algunas
personas que han hecho posible este trabajo (más concretamente, que hicieron
posible mi proyecto final de carrera): Pedro López (Departamento
de Informática de Sistemas y Computadores, UPV),
Jon Ander Gómez (Departamento de Sistemas Informáticos y Computación,
UPV), Vicent Benet (Centro de Cálculo, UPV), José Manuel Pasamar
(Centro de Cálculo, UPV) y Albert Ortiz (Universitat Politècnica de
Catalunya). Y por supuesto a mi director, Ismael Ripoll (Departamento de
Informática de Sistemas y Computadores, UPV).
Tras publicar la versión 1.0 de este trabajo, algunos de los primeros
comentarios que se me han hecho trataban sobre los posibles problemas legales
derivados de la falta de una licencia para el documento; desconozco hasta qué
punto esos problemas son reales, pero de cualquier forma para tratar de
evitarlos he decidido adoptar la Open Publication License como formato de
licencia bajo la que distribuir mi trabajo, al menos de forma temporal. Eso
básicamente implica (en castellano plano) que puedes imprimir el documento,
leerlo, fotocopiarlo, regalarlo o similares, pero no venderlo; este
trabajo es gratuito y pretendo que lo siga siendo. Si alguien lo encuentra
útil, que me apoye moralmente con un e-mail :), y si alguien lo
encuentra muy útil (lo dudo) que destine el dinero que crea que
pagaría por esto a cosas más útiles. >Sabías que cada minuto
mueren de hambre aproximadamente doce niños en el tercer mundo? En el tiempo
que te puede costar leer estas notas con un mínimo de interés habrán
muerto unos veinticinco; mientras que nosotros nos preocupamos intentando
proteger nuestros sistemas, hay millones de personas que no pueden perder el
tiempo en esas cosas: están demasiado ocupadas intentando sobrevivir.
Ah, por último, sería imperdonable no dar las gracias a la gente que ha
leído este trabajo y me ha informado de erratas que había en él;
he intentado corregir todos los fallos encontrados, pero aún habrá errores,
por lo que repito lo que decía al principio: todos los comentarios
constructivos son siempre bienvenidos. Debo agradecer especialmente a David
Cerezo el interés que demostró en las versiones iniciales de este
documento, así como todas las observaciones que sobre las mismas me hizo
llegar.
NOTAS A LA VERSIÓN 2.0
No hay mucho que añadir a lo dicho hace casi dos años; y es que las cosas
apenas han cambiado: el panorama en España - en cuanto a seguridad se
refiere - sigue siendo desolador, las empresas tecnológicas caen día a
día, la investigación en materias de seguridad (si exceptuamos la
Criptografía) es nula, y poco más. Sólo dar las gracias una vez más
a todos los que
han publicado o se han hecho eco de este documento (Kriptópolis, HispaLinux,
IrisCERT, Hispasec, Asociación de Internautas...) y también a toda la
gente que lo ha leido (al menos en parte ;-) y ha perdido unos minutos
escribiéndome un e-mail con algún comentario; realmente es algo que
se agradece, y aunque tarde en responder al correo, siempre trato de
contestar.
Como algunos de los comentarios acerca del documento que me han llegado
hablaban del `excesivo' tamaño del mismo, en esta nueva versión he cambiado
la forma de generar el fichero PDF; he convertido todas las imágenes a
formato PNG y después utilizado pdflatex para compilar los ficheros,
habiendo modificado previamente el código mediante un sencillo script.
Aunque aún ocupa bastante, hay que tener en cuenta que estamos hablando de
unas 500 páginas de documento...
TODO
Igual que hace casi dos años, sigue en pie la intención de crear
capítulos nuevos (las redes privadas virtuales es mi principal tema
pendiente) y de comentar la seguridad de mecanismos como DNS, RPC, NIS o
NFS...espero disponer de algo más de tiempo para poder hacerlo. Quiero
también escribir más acerca de la detección de intrusos, no sé si en
este documento o en uno aparte, ya que es quizás el tema que más me
interesa y en lo que más trabajo actualmente. Y finalmente, en mi lista de
cosas para hacer, pone dormir (sí, lo pone en negrita) como algo que
también queda pendiente :)
HISTORY
Versión 1.0 (Julio´00): Documento inicial.
Versión 1.1 (Agosto´00): Pequeñas correcciones e inclusión de la
Open Publication License.
Versión 1.2 (Septiembre´00): Más correcciones. Ampliación del
capítulo dedicado a servicios de red.
Versión 2.0 (Mayo´02): Capítulos dedicados a los sistemas de
detección de intrusos y a los ataques remotos contra un sistema. Sustitución
del capítulo referente al núcleo de algunos sistemas Unix por varios
capítulos que tratan particularidades de diferentes clones con mayor
detalle. Desglose del capítulo dedicado a los sistemas cortafuegos en dos,
uno teórico y otro con diferentes casos prácticos de estudio. Ampliación
de los capítulos dedicados a autenticación de usuarios (PAM) y a
criptografía (funciones resumen). Ampliación del capítulo dedicado
a políticas y normativa, que ahora pasa a denominarse `Gestión de
la seguridad'.
Versión 2.1 (Julio´02): Alguna corrección más e inclusión de
la GNU Free Documentation License (implica que el código fuente en
TEX pasa a ser libre).
© 2002 Antonio Villalón Huerta