3. i
Copyright c 2000,2002 Antonio Villal´n Huerta.
o
Permission is granted to copy, distribute and/or modify this do-
cument under the terms of the GNU Free Documentation License,
Version 1.1 or any later version published by the Free Software
Foundation; with the Invariant Sections being ‘Notas del Autor’
and ‘Conclusiones’, with no Front-Cover Texts, and with no Back-
Cover Texts. A copy of the license is included in the section entitled
‘GNU Free Documentation License’.
17. Notas del autor
El mundo de la seguridad inform´tica es demasiado amplio y complejo como para ser tratado ex-
a
haustivamente en ning´n trabajo, mucho menos en uno tan simple como este; aqu´ unicamente
u ı ´
he intentado resumir una visi´n global de diferentes aspectos relacionados con la seguridad, espe-
o
cialmente con Unix y redes de computadores (estas ultimas tan de moda hoy en d´ . . Unix por
´ ıa.
desgracia no tanto). Este trabajo est´ casi completamente extra´ de mi proyecto final de carrera,
a ıdo
que estudiaba la seguridad en los sistemas Unix y la red de la Universidad Polit´cnica de Valencia
e
(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
e
social es que uno tiene mucho tiempo para leer ;-), evidentemente existir´n errores y faltar´n datos
a a
que podr´ haber aparecido, por lo que agradecer´ cualquier sugerencia o cr´
ıan e ı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.
o o
Durante la realizaci´n de este proyecto ni se han maltratado animales ni se han utilizado pro-
o
ductos Microsoft; personalmente, siempre he considerado rid´ ıculo hablar de seguridad en Unix –
incluso de seguridad en general – y hacerlo utilizando productos de una compa˜´ que tantas veces
nıa
ha demostrado su desinter´s por la tecnolog´ frente a su inter´s por el marketing. El trabajo entero
e ıa e
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 L TEX, de Leslie Lamport; realmente,
A
algunos fragmentos han sido extra´ ıdos de documentos que hice hace tiempo con troff (s´ troff),
ı,
de Joe Ossanna y Brian Kernighan, transformados a L TEX mediante tr2tex, de Kamal Al–Yahya,
A
y retocados con algo de paciencia. Para las figuras simples he utilizado el lenguaje PIC, tambi´n de
e
Brian Kernighan, y para las que son m´s complejas xfig. La captura de alguna pantalla se ha he-
a
cho con xwd y gimp, y el retoque y transformaci´n de im´genes con este ultimo junto a xv y xpaint.
o a ´
Quiero agradecer desde aqu´ la colaboraci´n desinteresada de algunas personas que han hecho
ı o
posible este trabajo (m´s concretamente, que hicieron posible mi proyecto final de carrera): Pe-
a
dro L´pez (Departamento de Inform´tica de Sistemas y Computadores, UPV), Jon Ander G´mez
o a o
(Departamento de Sistemas Inform´ticos y Computaci´n, UPV), Vicent Benet (Centro de C´lculo,
a o a
UPV), Jos´ Manuel Pasamar (Centro de C´lculo, UPV) y Albert Ortiz (Universitat Polit`cnica de
e a e
Catalunya). Y por supuesto a mi director, Ismael Ripoll (Departamento de Inform´tica de Sistemas
a
y Computadores, UPV).
Tras publicar la versi´n 1.0 de este trabajo, algunos de los primeros comentarios que se me han
o
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
e
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 castel-
a
lano 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 util, que
´
me apoye moralmente con un e-mail :), y si alguien lo encuentra muy util (lo dudo) que destine el
´
dinero que crea que pagar´ por esto a cosas m´s utiles. ¿Sab´ que cada minuto mueren de hambre
ıa a ´ ıas
aproximadamente doce ni˜os en el tercer mundo? En el tiempo que te puede costar leer estas notas
n
con un m´ ınimo de inter´s habr´n muerto unos veinticinco; mientras que nosotros nos preocupamos
e a
18. 2 NOTAS DEL AUTOR
intentando proteger nuestros sistemas, hay millones de personas que no pueden perder el tiempo
en esas cosas: est´n demasiado ocupadas intentando sobrevivir.
a
Ah, por ultimo, ser´ imperdonable no dar las gracias a la gente que ha le´ este trabajo y me ha
´ ıa ıdo
informado de erratas que hab´ en ´l; he intentado corregir todos los fallos encontrados, pero a´n
ıa e u
habr´ errores, por lo que repito lo que dec´ al principio: todos los comentarios constructivos son
a ıa
siempre bienvenidos. Debo agradecer especialmente a David Cerezo el inter´s que demostr´ en las
e o
versiones iniciales de este documento, as´ como todas las observaciones que sobre las mismas me
ı
hizo llegar.
NOTAS A LA VERSION 2.0 ´
No hay mucho que a˜adir a lo dicho hace casi dos a˜os; y es que las cosas apenas han cambiado:
n n
el panorama en Espa˜a – en cuanto a seguridad se refiere – sigue siendo desolador, las empresas
n
tecnol´gicas caen d´ a d´ la investigaci´n en materias de seguridad (si exceptuamos la Crip-
o ıa ıa, o
tograf´ es nula, y poco m´s. S´lo dar las gracias una vez m´s a todos los que han publicado
ıa) a o a
o se han hecho eco de este documento (Kript´polis, HispaLinux, IrisCERT, Hispasec, Asociaci´n
o o
de Internautas. . . ) y tambi´n a toda la gente que lo ha leido (al menos en parte ;-) y ha perdido
e
unos minutos escribi´ndome un e–mail con alg´n comentario; realmente es algo que se agradece, y
e u
aunque tarde en responder al correo, siempre trato de contestar.
Como algunos de los comentarios acerca del documento que me han llegado hablaban del ‘ex-
cesivo’ tama˜o del mismo, en esta nueva versi´n he cambiado la forma de generar el fichero PDF;
n o
he convertido todas las im´genes a formato PNG y despu´s utilizado pdflatex para compilar los
a e
ficheros, habiendo modificado previamente el c´digo mediante un sencillo script. Aunque a´n ocupa
o u
bastante, hay que tener en cuenta que estamos hablando de unas 500 p´ginas de documento. . .
a
TODO
Igual que hace casi dos a˜os, sigue en pie la intenci´n de crear cap´
n o ı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
a e
escribir m´s acerca de la detecci´n de intrusos, no s´ si en este documento o en uno aparte, ya
a o e
que es quiz´s el tema que m´s me interesa y en lo que m´s trabajo actualmente. Y finalmente, en
a a a
mi lista de cosas para hacer, pone dormir (s´ lo pone en negrita) como algo que tambi´n queda
ı, e
pendiente :)
HISTORY
Versi´n 1.0 (Julio´00): Documento inicial.
o
Versi´n 1.1 (Agosto´00): Peque˜as correcciones e inclusi´n de la Open Publication License.
o n o
Versi´n 1.2 (Septiembre´00): M´s correcciones. Ampliaci´n del cap´
o a o ıtulo dedicado a servicios de
red.
Versi´n 2.0 (Mayo´02): Cap´
o ıtulos dedicados a los sistemas de detecci´n de intrusos y a los ataques
o
remotos contra un sistema. Sustituci´n del cap´
o ıtulo referente al n´cleo de algunos sistemas Unix
u
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
o
pr´cticos de estudio. Ampliaci´n de los cap´
a o ıtulos dedicados a autenticaci´n de usuarios (PAM) y
o
a criptograf´ (funciones resumen). Ampliaci´n del cap´
ıa o ıtulo dedicado a pol´ıticas y normativa, que
ahora pasa a denominarse ‘Gesti´n de la seguridad’.
o
Versi´n 2.1 (Julio´02): Alguna correcci´n m´s e inclusi´n de la GNU Free Documentation License
o o a o
(implica que el c´digo fuente en TEX pasa a ser libre).
o
19. Cap´
ıtulo 1
Introducci´n y conceptos previos
o
1.1 Introducci´n
o
Hasta finales de 1988 muy poca gente tomaba en serio el tema de la seguridad en redes de computa-
dores de prop´sito general. Mientras que por una parte Internet iba creciendo exponencialmente con
o
redes importantes que se adher´ a ella, como bitnet o hepnet, por otra el auge de la inform´tica
ıan a
de consumo (hasta la d´cada de los ochenta muy poca gente se pod´ permitir un ordenador y un
e ıa
m´dem en casa) unido a factores menos t´cnicos (como la pel´
o e ıcula Juegos de Guerra, de 1983) iba
produciendo un aumento espectacular en el n´mero de piratas inform´ticos.
u a
Sin embargo, el 22 de noviembre de 1988 Robert T. Morris protagoniz´ el primer gran incidente de
o
la seguridad inform´tica: uno de sus programas se convirti´ en el famoso worm o gusano de Inter-
a o
net. Miles de ordenadores conectados a la red se vieron inutilizados durante d´ y las p´rdidas se
ıas, e
estiman en millones de d´lares. Desde ese momento el tema de la seguridad en sistemas operativos
o
y redes ha sido un factor a tener muy en cuenta por cualquier responsable o administrador de
sistemas inform´ticos. Poco despu´s de este incidente, y a la vista de los potenciales peligros que
a e
pod´ entra˜ar un fallo o un ataque a los sistemas inform´ticos estadounidenses (en general, a los
ıa n a
sistemas de cualquier pa´ la agencia darpa (Defense Advanced Research Projects Agency) cre´ el
ıs) o
cert (Computer Emergency Response Team), un grupo formado en su mayor parte por voluntarios
cualificados de la comunidad inform´tica, cuyo objetivo principal es facilitar una respuesta r´pida
a a
a los problemas de seguridad que afecten a hosts de Internet ([Den90]).
Han pasado m´s de diez a˜os desde la creaci´n del primer cert, y cada d´ se hace patente la
a n o ıa
preocupaci´n por los temas relativos a la seguridad en la red y sus equipos, y tambi´n se hace
o e
patente la necesidad de esta seguridad. Los piratas de anta˜o casi han desaparecido, dando paso a
n
nuevas generaciones de intrusos que forman grupos como Chaos Computer Club o Legion of Doom,
organizan encuentros como el espa˜ol Iberhack, y editan revistas o zines electr´nicos (2600: The
n o
Hacker’s Quartely o Phrack son quiz´s las m´s conocidas, pero no las unicas). Todo esto con un
a a ´
objetivo principal: compartir conocimientos. Si hace unos a˜os cualquiera que quisiera adentrarse
n
en el mundo underground casi no ten´ m´s remedio que conectar a alguna BBS donde se tratara
ıa a
el tema, generalmente con una cantidad de informaci´n muy limitada, hoy en d´ tiene a su dis-
o ıa
posici´n gigabytes de informaci´n electr´nica publicada en Internet; cualquier aprendiz de pirata
o o o
puede conectarse a un servidor web, descargar un par de programas y ejecutarlos contra un servidor
desprotegido... con un poco de (mala) suerte, esa misma persona puede conseguir un control total
sobre un servidor Unix de varios millones de pesetas, probablemente desde su PC con Windows 98
y sin saber nada sobre Unix. De la misma forma que en su d´ Juegos de Guerra cre´ una nueva
ıa o
generaci´n de piratas, en la segunda mitad de los noventa pel´
o ıculas como The Net, Hackers o Los
Corsarios del Chip han creado otra generaci´n, en general mucho menos peligrosa que la anterior,
o
pero cuanto menos, preocupante: aunque sin grandes conocimientos t´cnicos, tienen a su disposi-
e
ci´n multitud de programas y documentos sobre seguridad (algo que los piratas de los ochenta
o
apenas pod´ imaginar), adem´s de ordenadores potentes y conexiones a Internet baratas. Por si
ıan a
esto fuera poco, se ven envalentonados a trav´s de sistemas de conversaci´n como el IRC (Internet
e o
Relay Chat), donde en canales como #hack o #hackers presumen de sus logros ante sus colegas.
20. 2 CAP´ ´
ITULO 1. INTRODUCCION Y CONCEPTOS PREVIOS
1.2 Justificaci´n y objetivos
o
A la vista de lo comentado en el primer punto, parece claro que la seguridad de los equipos Unix
ha de ser algo a considerar en cualquier red. Diariamente por cualquiera de ellas circulan todo tipo
de datos, entre ellos muchos que se podr´ catalogar como confidenciales (n´minas, expedientes,
ıan o
presupuestos. . . ) o al menos como privados (correo electr´nico, proyectos de investigaci´n, art´
o o ıculos
a punto de ser publicados. . . ). Independientemente de la etiqueta que cada usuario de la red quiera
colgarle a sus datos, parece claro que un fallo de seguridad de un equipo Unix o de la propia red
no beneficia a nadie, y mucho menos a la imagen de nuestra organizaci´n. Y ya no se trata simple-
o
mente de una cuesti´n de imagen: seg´n el Computer Security Institute, en su encuesta de 1998, las
o u
p´rdidas econ´micas ocasionadas por delitos relacionados con nuevas tecnolog´ (principalmente
e o ıas
accesos internos no autorizados) s´lo en Estados Unidos ascienden anualmente a m´s 20.000 millones
o a
de pesetas, cifra que cada a˜o se incrementa en m´s del 35%; los delitos inform´ticos en general
n a a
aumentan tambi´n de forma espectacular a˜o tras a˜o, alcanzando incluso cotas del 800% ([Caj82]).
e n n
A lo largo de este trabajo se va a intentar hacer un repaso de los puntos habituales referentes
a seguridad en Unix y redes de computadores (problemas, ataques, defensas. . . ), aplicando el estu-
dio a entornos con requisitos de seguridad medios (universidades, empresas, proveedores de acceso a
Internet. . . ); de esta forma se ofrecer´ una perspectiva general de la seguridad en entornos Unix, el
a
funcionamiento de sus mecanismos, y su correcta utilizaci´n. Tambi´n se hablar´, en menor medi-
o e a
da, sobre temas menos t´cnicos pero que tambi´n afectan directamente a la seguridad inform´tica,
e e a
como puedan ser el problema del personal o la legislaci´n vigente.
o
El objetivo final de este proyecto ser´ marcar unas pautas para conseguir un nivel de seguri-
ıa
dad aceptable en los sistemas Unix conectados en cualquier red, entendiendo por ‘aceptable’ un
nivel de protecci´n suficiente para que la mayor´ de potenciales intrusos interesados en los equipos
o ıa
de nuestra organizaci´n fracasara ante un ataque contra los mismos. Obviamente, es imposible
o
garantizar una plena seguridad ante cualquier atacante: seguramente un pirata experimentado, con
el tiempo suficiente, pagado, o simplemente muy interesado en uno de nuestros equipos, no tendr´ ıa
muchos problemas en acceder a ´l. Este hecho, aunque preocupante, es casi inevitable; lo evitable
e
es que cualquier persona sea capaz de atacar con ´xito un equipo simplemente por haber visto una
e
pel´ıcula, descargado un par de p´ginas web y ejecutado un programa que ni ha hecho ni entiende.
a
Por supuesto, este proyecto no pretende ser en ning´n momento una ayuda para la gente que est´
u e
interesada en atacar m´quinas Unix o subredes completas, ni tampoco una invitaci´n a hacerlo.
a o
Aunque por su naturaleza la informaci´n aqu´ presentada puede ser utilizada para da˜ar sistemas
o ı n
inform´ticos (como cualquier informaci´n sobre seguridad inform´tica), no es ese su prop´sito sino,
a o a o
como hemos dicho, incrementar la seguridad de los sistemas Unix y las redes en las que ´stos se
e
ubican. Por tanto va a intentar estar escrito de forma que no se pueda utilizar f´cilmente como
a
una ‘receta de cocina’ para crackers; si alguien quiere un documento sobre c´mo atacar sistemas,
o
puede dejar de leer este trabajo y buscar en Internet informaci´n sobre ese tema. Conseguir romper
o
la seguridad de un sistema de forma no autorizada es, en la mayor´ de los casos, un s´
ıa ımbolo de
inmadurez, y por supuesto ni denota inteligencia ni unos excesivos conocimientos: si alguien se
considera superior por acceder ilegalmente a una m´quina utilizando un programa que ni ha he-
a
cho ni es capaz de entender, que revise sus principios, y si tras hacerlo a´n piensa lo mismo, que
u
dedique su inteligencia y sus conocimientos a tareas que ayuden a incrementar la seguridad, como
la construcci´n de sistemas de autenticaci´n fiables y baratos o el dise˜o de nuevos criptosistemas
o o n
seguros. Eso es seguridad inform´tica, y no lo que habitualmente se nos quiere hacer creer: la
a
seguridad inform´tica no consiste en conocerse todos los bugs de un sistema operativo, con sus
a
correspondientes exploits ni en jugar a superjakers en canales de IRC. Lamentablemente, este es el
panorama de la seguridad m´s visible en Espa˜a en la actualidad; esperemos que alg´n d´ cambie.
a n u ıa
1.3 ¿Qu´ es seguridad?
e
Podemos entender como seguridad una caracter´ ıstica de cualquier sistema (inform´tico o no) que
a
nos indica que ese sistema est´ libre de todo peligro, da˜o o riesgo, y que es, en cierta manera,
a n