capitulo2

44
Capítulo 2. Estado del arte de la seguridad informática índice figuras introducción 1 2 3 4 5 A B C D referencias "It is easy to run a secure computer system. You merely have to disconnect all dial up connections and permit only directwired terminals, put the machine and its terminals in a shielded room, and post a guard at the door" F.T. Grampp. Sed quis custodiet ipsos custodes? (But who will guard the guards themselves?) Juvenal. En este Capítulo se hace un análisis del estado del arte en la seguridad informática. Se presentan los puntos más relevantes sobre la seguridad en el sistema operativo UNIX y en algunos de sus servicios. Se exponen los conceptos más relevantes sobre criptología, firewalls y herramientas existentes. 2.1 La seguridad en UNIX Prevención 2.2 Segurid ad en red 2.3 Sup er vi sn en Unix. Auditing 2.4 Detecc n de intrusos 2.5 Cr ipto lo  a 2.6 Gestión de claves (passwords) 2.7 Qué es un fi rewall par a Internet 2. 8 Herramient as exis tent es 2.1 La seguridad en UNIX Prevenci ón UNIX en sus inicios no fue diseñado para ser un sistema seguro [RIT79], dado que en principio fue concebido para uso académico y, por tanto, estaba abierto a todo el mundo. Una vez que se fue extendiendo su utilización, aparecieron distintas marcas que empezaron a ofrecer en sus distribuciones el nivel de seguridad necesario para los actuales requerimientos que se le suponen a este sistema. Las implicaciones de segurida d se pueden dividir en tres áreas o dominios dependiendo de la parte del sistema que se vea involucrado: la seguridad en las cuentas, Capítulo 2. Estado del arte de la seguridad informática  2.1 1

Transcript of capitulo2

  • 5/20/2018 capitulo2

    1/44

    Captulo 2.Estado del arte de la

    seguridad informtica

    ndice figuras introduccin 1 2 3 4 5 A B C D referencias

    "It is easy to run a secure computer system. You merely have to disconnect all dialupconnections and permit only directwired terminals, put the machine and its terminals in ashielded room, and post a guard at the door"

    F.T. Grampp.

    Sed quis custodiet ipsos custodes? (But who will guard the guards themselves?)

    Juvenal.

    En este Captulo se hace un anlisis del estado del arte en la seguridad informtica. Sepresentan los puntos ms relevantes sobre la seguridad en el sistema operativo UNIX y enalgunos de sus servicios. Se exponen los conceptos ms relevantes sobre criptologa, firewallsy herramientas existentes.

    2.1 La seguridad en UNIX Prevencin

    2.2 Seguridaden red

    2.3 Supervisin en Unix. Auditing

    2.4 Deteccin de intrusos

    2.5 Criptologa

    2.6 Gestin declaves (passwords)

    2.7 Qu es un firewall para Internet

    2.8 Herramientas existentes

    2.1 La seguridad en UNIX Prevencin

    UNIX en sus inicios no fue diseado para ser un sistema seguro [RIT79], dado que enprincipio fue concebido para uso acadmico y, por tanto, estaba abierto a todo el mundo. Unavez que se fue extendiendo su utilizacin, aparecieron distintas marcas que empezaron aofrecer en sus distribuciones el nivel de seguridad necesario para los actuales requerimientosque se le suponen a este sistema. Las implicaciones de seguridad se pueden dividir en tresreas o dominios dependiendo de la parte del sistema que se vea involucrado:

    la seguridad en las cuentas,

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 1

    http://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/capitulo3.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/bibliografia.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/apendiceD.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/apendiceC.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/apendiceB.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/apendiceA.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/capitulo5.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/capitulo4.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/capitulo3.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/capitulo1.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/capitulo0.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/indice_figuras.pdfhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/indice.htmlhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/capitulo1.pdfhttp://www.udlap.mx/index.html
  • 5/20/2018 capitulo2

    2/44

    la del sistema de archivos, yla de red.

    A continuacin se presentan las medidas de control que se introducen, los posibles fallos si nose hace un manejo adecuado de ellos y algunas lneas a seguir para conseguir una proteccinadecuada.

    2.1.1 Seguridad en el sistema de cuentas

    Seguridad en el sistema de cuentas

    La forma ms fcil para llevar a cabo un acceso no autorizado en un sistema es a travs de lacuenta de otra persona, para evitar esto la medida de seguridad que presenta el sistema es elnombre de usuario y la contrasea. Es importante, para que la seguridad no se veacomprometida, controlar viejas cuentas, evitar contraseas fcilmente "adivinables", ysupervisar todo lo que pueda facilitar un acceso a una cuenta por parte de una persona que nosea su propietario [CUR90][TOM94].

    Control de los passwords

    El password es la medida ms importante de seguridad en UNIX. Si se consigue romper estabarrera el posible intruso adquiere la identidad del propietario. Esto es crucial en el caso deque se vea involucrada la de root. Es fundamental un buen control de los passwords y de lasposibles cuentas que no estn siendo usadas. Es fundamental una buena poltica de eleccin.Algunas de las lneas que los administradores de seguridad deben dar a los usuarios son lassiguientes[CUR90]:

    No utilizar el nombre de la cuenta(login), tal cual, al revs, en maysculas.No utilizar nuestro nombre, ni apellidos.

    No utilizar nombres de familiares.No emplear informacin personal que pueda ser obtenida fcilmente.No emplear un password slo con nmeros o con la misma letra.No emplear palabras que se encuentren en los diccionarios.No utilizar palabras de menos de seis letras.Mezclar letras maysculas y minsculas.Utilizar palabras que sean fciles de recordar para que no haya que escribirlas.Emplear un password que pueda ser tecleado rpidamente sin necesidad de mirar alteclado.

    No escribirlos en ningn sitio, ni siquiera archivos.El problema de no seguir estas reglas es que existen programas que van probando passwords

    hasta que encuentran el correcto, basados en un diccionario y combinando algunas palabras.Una vez escogido un password es importante seguir una poltica adecuada, unas reglasgenerales pueden ser:

    Su nico lugar debe ser la memoria de su dueo.No decirlos nunca a otra persona.Establecer un tiempo mximo de uso para cada uno.

    Control de las cuentas

    Cuentas con vida limitada.Es posible que en algunos sitios, donde haya multitud deusuarios, existan viejas cuentas de personas que hayan abandonado la empresa. Estas

    a.

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 2

  • 5/20/2018 capitulo2

    3/44

    cuentas suelen suponer un agujero de seguridad importante, no slo porque alguienpueda entrar en ellas, sino porque si se produce un acceso no autorizado es muydifcil de detectar. Para evitar esto hay que poner fecha de expiracin en todas lascuentas. La fecha puede almacenarse fcilmente en el archivo /etc/shadow. Estearchivo est pensado para no dejar en el /etc/passwd los passwords encriptados de losusuarios. Puesto que UNIX requiere que sobre este archivo tengan derechos de

    lectura, los passwords se almacenan en el /etc/shadow. La lnea completa que puedeincluirse, para cada usuario, es la siguiente:

    username:passwd:lastchg:min:max:warn:inactive:expire

    lastchgindica el nmero de das desde el 1 de enero de 1970 hasta el ltimo cambiode password.mines el menor nmero de das entre cambios de password.maxmximo nmero de das entre cambios de password.warmse da un aviso antes de que el password haya expirado.inactivees elnmero de das que se permiten antes de que se bloquee la cuenta.expireindica el momento en el que la cuenta va a expirar.

    Mediante el comando passwd, se puede, cerrar una cuenta, bloquear un password,hacer que en el prximo acceso al sistema se cambie, o asignarles un tiempo de vida.Cuentas multiusuario:Hay que tener tambin un especial cuidado con las cuentaspblicas [TOM94]. A ellas acceden usuarios que permanecen poco tiempo en elsistema. Lo mejor es crearlas para un fin concreto y borrarlas despus. No debentener palabras de acceso tan simples como "guest" o "visitor" y nunca debenpermanecer en el archivo de passwords del sistema. Tambin suelen plantearproblemas de seguridad algunas cuentas que se instalan para ejecutar ciertoscomandos sin acceder a la mquina. No tienen password, por tanto pueden ser usadaspor cualquiera. Algunas de ellas tienen como identificador de usuario el cero. Estas

    cuentas prcticamente "invitan" a los crackers a entrar en ellas. La forma de accederes sencilla, si un usuario puede acceder al sistema, reemplazando los comandos porunos suyos, podr ejecutarlos con permisos de root.

    b.

    2.1.2 Seguridad en el sistema de archivos

    La seguridad en el sistema de archivos es fundamental para la proteccin de los datos deacceso no autorizados. Las barreras de entrada que nos encontramos en el sistema de archivosson los derechos sobre los mismos[RIT79].

    Cada archivo o directorio de nuestro sistema tiene asociado 3 conjuntos de bits asociados a

    los permisos: uno del usuario, dueo del archivo, otro para el grupo al que pertenece y otropara el resto de los usuarios. Cada grupo contiene los tres bits conocidos de permisos, uno delectura, otro de escritura y otro de ejecucin. El significado vara si hace referencia a undirectorio o a un archivo. La primera norma de seguridad en el sistema de archivos es dar lospermisos adecuados a cada archivo y usuario. Normalmente los archivos se crean sin tener encuenta los derechos que se les da [Tom94]. Una forma sencilla para controlar esto es utilizarel comando umask, as pues:

    Con umask 022 los archivos tendrn los permisos: r w r r

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 3

  • 5/20/2018 capitulo2

    4/44

    Con umask 077 crea los archivos con los permisos: r w

    Hay que asegurar que estas lneas estn incluidas en el .cshrc o en el .profile.

    2.1.2.1 GUID, SGID y sticky bit

    Existe adems para cada conjunto de permisos[CUR90], un cuarto bit, que tiene unsignificado distinto en cada uno de ellos:

    setuidSi el conjunto es el de derechos de propietario, este bit controla si el archivo es o no.Este estado permite que cuando ejecutemos el programa adquiramos los derechos delpropietario del mismo. Nuestro indicador de usuario efectivo(EUID), se cambia al delpropietario. Esta facilidad la usan las aplicaciones multiusuario para acceder archivos quepertenecen al resto. Por ejemplo el sendmail tiene el setuid asignado al root, permitiendo alprograma escribir en los archivos de correo a los que el usuario que lo ejecuta no tienepermiso.

    setgidEs anlogo al anterior pero para los grupos.

    stickySi est activo indica al sistema operativo trate de manera especial el texto imagen deun archivo ejecutable. Tiene poco significado hoy en da y es ms para compatibilidad conantiguas versiones de UNIX.

    En ocasiones se abusa de esta facilidad. Si un hacker llegar a ser un determinado usuario,puede ser posible que sea capaz de ejecutar programas como ese usuario. Si gana el EUID 0podr editar el archivo de passwords y crearse una cuenta de root.

    Habitualmente, los permisos de los archivos en Unix corresponden con un nmero octal quevara entre 000 y 777; sin embargo existen unos permisos especiales que hacen variar estadefinicin y van desde 0000 y 7777; se trata de los bits de permanencia (1000), SGID (2000)y SUID (4000) [VIL00]

    El bit de SUID o setuid se activa sobre un archivo aadindole a la representacin octal de lospermisos de un archivo y otorgndole adems permiso de ejecucin al propieratio del mismo,al hacer esto, en lugar de la x en la primera terna de los permisos, aparecera una s o una S sino se ha otorgado el permiso de ejecucin correspondiente (en ese caso el bit no tiene efecto)

    laboper# chmod 4777 /tmp/file1laboper# chmod 4444 /tmp/file2

    laboper# ls la /tmp/file1rwsrwxrwx 1 root other 0 Apr 2 14:15 /tmp/file1laboper# ls la /tmp/file2rSrr 1 root other 0 Apr 2 14:16 /tmp/file2

    El bit SUID activado sobre un archivo indica que todo aqul que ejecute el archivo va a tenerdurante la ejecucin los mismos provilegios que quin lo cre. (Si root crea un achivo y lepone este bit, todo aqul usuario que lo ejecute va a disponer, hasta que el programa finalice,de un nivel de privilegio total en el sistema)

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 4

  • 5/20/2018 capitulo2

    5/44

    Todo lo mencionado sobre el setuid es aplicable al bit setgid, pero a nivel del grupo delusuario en lugar de propietario: en lugar de trabajar con el EUID del propietario, todo usuarioque ejecute un programa con setgid tendr los priviletios del grupo al que pertenece elusuario. Para activarlo, se suma 2000 a la representacin octal del permiso del archivo yadems se necesita permiso de ejecucin en la terna del grupo (aparecer una s o S en laterman del grupo). Si fuera un directorio, el setgit afectar a los archivos y subdirectorio que

    se crean en l.

    Los bits de setuid y setgis dan a Unix una gran flexibilidad, pero constituyen al mismo tiempola mayor fuente de ataques internos al sistema (entendiendo por ataques internos aquellosrealizados por un usuario autorizado o no con el objeto de aumentar su nivel de privilegioen la mquina).

    Es necesario el riesgo que se corre al no eliminar todos los archivos con este tipo de permisos.Para unos archivos de Unix es estrictamente necesario hacerlo as.

    Ejemplo:

    Un archivo con setuid clsico en cualquier clon de Unix es /bin/passwd , la instruccin paraque cada usuario pueda cambiar su passwd de entrada al sistema. Sus principales funcionesconsisten en modificar el archivo /etc/passwd y/o /etc/shadow . Se resalta el punto que elusuario por si mismo no tiene el nivel de privilegio necesario para hacer esto, por lo tantoexisten varias soluciones: se puede asignar permiso de escritura para todo el mundo sobredicho(s) archivo(s), se puede denegar a los usuarios el cambiar su passwd o se puede obligaral usuario a pasar por el Departamento de Operacin cada vez que quieran cambiarlo. En estecaso, se asume que el bit de setuid en /bin/passwd es imprescindible. As como este caso, enuna instalacin pura de Unix existen mas de cincuenta archivos con estos permisos y esresponsabilidad del administrador el conocerlos y determinar si los elimina o no segn las

    necesidades.

    Tambien se debe estar atento a nuevos archivos con estas caractersticas; demasiadasaplicaciones de Unix se instalan con esos permisos an cuando no se necesitan. Y todosaquellos archivos que misteriosamente aparecen en la mquina, son seguramente causa de queun intruso est instalado en ella.

    Por otra parte, el stiky bit o bit de permanencia se activa agregndole 1000 a la representacinoctal de los permisos de un determinado archivo y otorgndole adems permiso de ejecucin,as en lugar de una x en la terna correspondiente al resto de usuarios, aparece una t ( si no seha dado permiso de ejecucin, ser T ) :

    laboper# chmod 1777 /tmp/file1laboper# ls la /tmp/file1rwxrwxrwt 1 root other 0 Apr 2 14:15 /tmp/file1laboper# chmod 1774 /tmp/file2laboper# ls la /tmp/file2rwxrwxrT 1 root other 0 Apr 2 14:16 /tmp/file2

    Si el bit de permanencia est activado, se est indicando al sistema operativo que se trata deun archivo muy utilizado, por lo que es conveniente que prermanezca en memoria principal elmayo tiempo posible, esta opcin se utilizaba en sistemas anteriores que disponan de muypoca RAM, pero hoy en da prcticamente no se utiliza. Lo que si sigue vigente es el efecto

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 5

  • 5/20/2018 capitulo2

    6/44

    del stiky bit activado sobre un directorio: en este caso se indica al sistema operativo que,aunque los permisos "normales" digan que cualquier usuario puede crear y eliminar archivos,slo el propietario de cierto archivo y el administrador pueden borrar un archivo guardado enun directorio con estas caractersticas. Esto se utiliza principalmente en archivos dondeinteresa que todos puedan escribir pero no borrar, como es el caso de /tmp : si el equivalenteoctal de los permisos de ste fueran solo 777 en lugar de 1777, cualquier usuario podria

    borrar los archivos del resto.

    Shells scripts con setuid

    Los programas [TOM94] que tienen los bits de setuid o setguid activos no son seguros. Hayque tener especial cuidado cuando se escriben dichos programas. Existen numerosos paquetesde software que intentan que estos shells sean seguras, pero no se ha conseguido resolver deltodo. El problema de un script con este bit activo es que puede ser interrumpido, dejando alusuario que lo utiliza con los privilegios del propietario. Esto se puede hacer, por ejemplo,para el .profile. Para evitar esto hay que usar la orden trap. Tambin hay que tener cuidadocuando se llama a un programa ejecutable desde un shell, puesto que se ejecutar sobre supropio shell, que puede interrumpirse tambin. Para prevenir esto, es preciso lanzar elprograma con el comando exec. Los distintos shells tratan de forma distinta el EUID[TOM94]:

    Bourne Shell. Esta shell por defecto protege contra esto e ignora el EUID y el EGID,activndolos a UID y GID respectivamente. Este comportamiento puede deshabilitarse con laopcin p.

    Korn Shell.Esta shell no tiene la posibilidad anterior. En cualquier, caso va a leer el/etc/suid_profile si el EUID no es igual al UID, y lo mismo para EGID y el GID.

    CShell. No permite que se ejecuten shell scripts con el bit setuid activo. Si se invoca con la

    opcin b deshabilita esta caracterstica.

    El Sticky bit en los directorios: Cuando el sticky bit est activo en los directorios, quieredecir que los usuarios no pueden borrar o cambiar el nombre de archivos de otros usuariosque estn en el mismo. Esto es til para el directorio /tmp.

    2.1.2.2 Seguridad en las bibliotecas compartidas

    Las bibliotecas compartidas son muy comunes en Solaris [SUN88]. Permiten ahorrarmemoria a la hora de ejecutar los procesos. Los programas que usan las mismas funciones, noprecisan, merced a ellas, tened su propia copia de las mismas en memoria. Se enlazan en

    tiempo de ejecucin. La mayor parte de los comandos de /etc/bin usan esta caracterstica. Elcomandolddpermite conocer qu bibliotecas usa cada programa. Por ejemplo:

    % ldd /usr/bin/catlibintl.so.1 => /usr/lib/libintl.so.1libw.so.1 = > /usr/lib/libw.so.1libc.so.1 => /usr/lib/libc.so.1libdl.so.1 => /usr/lib/libdl.so.1

    Un usuario puede crear su propia versin de una de ellas y alterar el camino de la misma. Porejemplo:

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 6

  • 5/20/2018 capitulo2

    7/44

    % cp /usr/lib/libc.so.1 /tmp% touch /tm/libc.so.1% setenv LD_LIBRARY_PATH /tmp% ldd /usr/bin/catlibintl.so.1 => /usr/lib/libintl.so.1libw.so.1 = > /usr/lib/libw.so.1libc.so.1 => /tmp/libc.so.1libdl.so.1 => /usr/lib/libdl.so.1

    Esto, para el comando cat, no es importante, pero si fuese un programa setuid, el creador de lanueva biblioteca podra ejecutar la parte de cdigo que quisiese, como un usuario msprivilegiado. Para evitar esto, es posible, hacer que un programa ignore la variableLD_LIBRARY_PATH usando una nueva variable denominada LD_RUN_PATH:

    % setenv LD_RUN_PATH /usr/lib% unsetenv LD_LIBRARY_PATH% cc o prog prog.c

    Si ahora "prog" tiene el bit setuid activo se ignorar el valor de LD_LIBRARY_PATH.Todos los programas de /usr/bin estn compilados de esta forma. No se debe perder de vistac a l e s d e l a s a p l i c a c i o n e s q u e c o r r e n c o n s e t u i d a c t i v o p u e d e n i g n o r a rLD_LIBRARY_PATH.

    2.1.2.3 Encriptacin de archivos

    La ltima barrera de proteccin de nuestros ficheros es la posibilidad de encriptarlos. EnSolaris existen dos programas para llevarlo a cabo: el crypt y el DES. Pero para distribucionesfuera de Estados Unidos slo se incluye el primero. El crypt slo puede prevenirnos de que un"espa" casual vea el contenido de nuestro archivo, pero no puede protegerlo de un cracker.

    Este programa implementa una mquina rotor que sigue las lneas del Enigma Alemn(deshabilitado en la Segunda Guerra Mundial). Se conocen varios mtodos para desencriptararchivos bastante largos en pocas horas sin saber qu es lo que contienen. El DES, sinembargo, es mucho ms seguro, de todas formas nunca se ha probado que lo sea totalmente.

    El comandocryptpermite cifrar y descifrar archivos en diferentes sistemas Unix, si no recibeparmetros lee los datos de la entrada estndar y los escribe en la salida estndar. [VIL00]

    Un ejemplo simple de su uso es el siguiente:

    laboper# cat /tmp/file1

    archivo de prueba. contenido peligrosolaboper# crypt /tmp/file1.crypt

    Enter key:

    En el anterior ejemplo se cifr el archivo /tmp/file1 y guard el resultado en el archivo/tmp/file1.crypt , el original en texto plano se mantiene en el directorio, y si se desea se puedeborrar.

    laboper# file /tmp/file1.crypt/tmp/file1.crypt: datalaboper# cat /tmp/file1.crypt

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 7

  • 5/20/2018 capitulo2

    8/44

    G%BQ

    Para descifrar el archivo, se utiliza el mismo comando:

    laboper# crypt /tmp/file1.buenoEnter key:

    laboper# cat /tmp/file1.bueno

    archivo de prueba. contenido peligroso

    Crypt no se debe utilizar para cifrar informacin confidencial, la seguridad del algoritmo decifrado utilizado por este comando es mnima para estos tiempos, ya que se basa en unamquina con un rotor de 256 elementos similar en muchos aspectos a la alemana Enigma, ycon unos mtodos de ataque rpidos y conocidos es posible violarla.

    Es posible incluir la clave de cifrado en la lnea de comandos:

    laboper# crypt key /tmp/file1.crypt

    y con ello, es posible espiarla con el comandopsdirectamente.

    Este comando no tiene relacin con la funcin crypt() utilizada para cifrar los passwords delos usuarios, sta est basada en una variante del algoritmo DES, la cul se puede considerarsegura en la mayora de los entornos.

    2.1.2.4 ACLs

    Las listas de control de acceso (ACLs Access Control List) proveen un nivel de seguridadadicional a los archivos extendiendo el esquema clsico de Unix. [VIL00] Mientras que los

    ltimos se puede especificar permisos para los tres grupos de usuarios habituales (dueo,grupo y mundo) las ACLs permiten asignar permisos a usuarios o grupos especficos. Porejemplo, se pueden otorgar ciertos permisos a dos usuarios sobre los mismos archivos sinnecesidad de incluirlos en el mismo grupo. Estas listas de acceso existen en los sistemas Unix(Solaris, AIX, HPUX, excepto LINUX )desde hace ms de diez aos.

    Bajo el esquema tradicional, si se quieren ver los permisos de un archivo basta hacer unlistado largo:

    sandra : > ls l /usr/local/sbin/sshdlrwx 1 root 5 Aug 26 2000 /usr/local/sbin/sshd > sshd2

    Getfacl.

    Viendo el resultado, se sabe directamente que el archivo sshd puede ser ledo por eladministrador, pero por nadie ms, sin embargo no se conoce el estado de la lista de controlde acceso asociada al archivo. Para ver esa lista, en Solaris se utiliza la instruccingetfacl:

    sandra : > getfacl /usr/local/sbin/sshd# file: /usr/local/sbin/sshd# owner: root# group: otheruser::rwx

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 8

  • 5/20/2018 capitulo2

    9/44

    group:: #effective:mask:other:

    Aqu se muestra en primer lugar el nombre del archivo, su dueo y su grupo, todos precedidospor # . Lo que se muestra a continuacin es la lista de control: los camposuser, group y otherson bsicamente la interpretacin que getfacl hace de los permisos del archivo. El campo

    mask es muy similar al umask clsico: define los permisos mximos que un usuario (aexcepcin del pripietario) o grupo pueden tener sobre el archivo. Finalmente el campoeffective indica para cada usuario (excepto el propietario) o grupo el efecto que la mscaratiene sobre los permisos: es justamente el campo que se tiene que analizar si se quiere verquin puede accesar al archivo y de qu forma.

    Se puede notar que la estructura de la lista de control de acceso otorga los mismos permisosque las ternas clsicas. Esto es algo normal en todos los Unix, si no se indica lo contrario alcrear un archivo se le asocia un ACL que coincide con los permisos que ese archivo tiene enel sistema ( cada archivo tendra una lista asociada, igual que tiene unos permisos); de estaforma, el resultado anterior no es mas que la visin que getfacl tiene de los bits rwxdel

    archivo.

    Setfacl.

    Lo interesante de cara a la proteccin de archivos es extender los permisos clsicos delarchivo, modificando su lista asociada. Esto se consigue con la instruccinsetfacl:

    sandra : > setfacl m user:enrique:rx /usr/local/sbin/sshdsandra : > getfacl /usr/local/sbin/sshd# file: /usr/local/sbin/sshd# owner: root# group: other

    user::rwxuser:enrique:rx #effective:group:: #effective:mask:other:

    Como puede verse, se acaba de modificar la lista de control de acceso al archivo paraasignarle a enrique permiso de lectura y ejecucin sobre el mismo. La instruccin setfacl seutiliza principalmente de tres formas:

    Aadir entradas a la ACL, mendiante la opcinmseguida de las entradas que se deseanaadir separadas por comas. Utilizando la opcions para reemplazar la ACL completa

    (indicando todas las entradas, separadas por comas) o bien borrar entradas de la lista con laopcind(de sintaxis igual a m)

    Cada entrada de la ACL tiene el siguiente formato:

    tipo:UID|GID:permisos

    El tipo indica a quin aplicar los permisos (por ejemplo: user para el propietario o mask parala mscara), el UID indica el usuario al que queremos asociar la entrada (como se ha visto, sepuede utilizar tambin el login), y el GID hace los mismo con el grupo. Por ltimo, el campode permisos hace referencia a los permisos a asignar, y puede ser especificado mediante

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 9

  • 5/20/2018 capitulo2

    10/44

    smbolos rwx o de forma octal.

    Se acaba de indicar que el usuario enrique tenga permiso de lectura y ejecucin sobre elarchivo /usr/local/sbin/sshd, no obstante, si ahora este usuario intenta acceder al archivo enestos modos obtendr un error.

    sandra : > /usr/local/sbin/$ ./sshdsandra : > ./sshd: Permission denied

    No est sucediendo nada anormal, simplemente est actuando la mscara sobre sus permisos(antes se dijo que se prestara atencin al campo effective, y aqu se puede ver que no se hamodificado). Para solucionar esto se debe modificar el campo mask:

    sandra : > setfacl m mask:rx /usr/local/sbin/sshd

    Ahora el usuario enrique podr accesar al archivo para leerlo o ejecutarlo.

    Si en esta ocasin se obtiene un error, este ya no depende de la proteccin de los archivos

    sino de la configuracin del programa. enrique no podr utilizar recursos a los que no le estpermitido el acceso (como puertos bien conocidos, otros archivos o procesos). Hay querecordar que si un usuario accesa un archivo que le pertenece a root, los privilegios delusuario no cambian.

    Para el ejemplo citado, no es posible que enrique de acceso a nuevos usuarios. Esto es, el nopude crear nuevos ACL sobre el archivo al que se le permiti el acceso.

    En Solaris, para indicar que una lista de control de acceso otorga permisos no reflejados enlos bits rwx se situa un smbolo + a la derecha de los permisos en un listado largo.

    sandra : > ls l /usr/local/sbin/sshdrwx+ 1 root bin 95745 Mar 24 2000 /usr/local/sbin/sshd

    Otra caracterstica que tiene Solaris es la de leer las entradas de una lista de acceso desde unarchivo en lugar de indicarlas en la lnea de comandos, mediante la opcin fde setfacl; elformato de este archivo es justamente el resultado general de getfacl, lo que permite copiarACLs entre archivos de una forma muy cmoda.

    sandra : > getfacl /usr/local/sbin/sshd > /tmp/acl_tmlsandra : > setfacl f /tmp/acl_tml /usr/locla/sbin/miprogramasandra : > getfacl /usr/locla/sbin/miprograma# file: /usr/local/sbin/sshd# owner: root

    # group: otheruser::rwxuser:enrique:rx #effective:group:: #effective:mask:rxother:

    Antes de finalizar este apartado dedicado a listas de control de acceso, es convenientecomentar el principal problema de estos mecanismos. Est claro que las ACLs son de granayuda para el administrador de sistemas Unix, tanto para incrementar la seguridad como parafaciliar ciertas tareas; sin embargo, es fcil darse cuenta de que se pueden convertir en granayuda para un atacante que desee situar puertas traseras en las mquinas.

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 10

  • 5/20/2018 capitulo2

    11/44

    2.1.3 Control de los dispositivos

    La seguridad de los dispositivos es una caracterstica importante en UNIX. Los programas losemplean para acceder a los datos en los discos o en memoria. Si no estn adecuadamenteprotegidos el sistema est abierto a un posible ataque. Es importante que se sigan las

    siguientes lneas:

    Los archivos /dev/kmem, /dev/mem y /dev/drum no deben poder leerse por todos losusuarios.

    Los dispositivos de disco como /dev/sd0a y /rxylib deben pertenecer a root y al grupooperator y debe tener modo 640.

    Con muy pocas salvedades, todos los otros dispositivos deben pertenecer al root. Unaexcepcin son los terminales cuya pertenencia cambia al usuario que ha accedido alsistema desde l. Cuando abandona el sistema vuelve automticamente a root.

    2.1.4 Seguridad en x11

    Una de las caractersticas de los sistemas basados en Xwindows es permitir a los usuarioscorrer sus aplicaciones en un sistema y poder visualizar la salida en otro. Esto conlleva variasconsideraciones de seguridad. Open Windows 3.3 tiene dos mecanismos de control de acceso:uno basado en usuario y otro basado en host. El segundo se utiliza slo por compatibilidadcon otros sistemas [SUN90a].

    El sistema basado en host tiene deficiencias de seguridad porque si se consigue acceder a otrosistema todos los usuarios de este ltimo podrn acceder a nuestro servidor X. El segundosistema da un acceso de acuerdo con un determinado identificador de red, NetID.

    Ex is ten dos t ipos de p ro toco los pa ra l a au ten t i f i cac in basada en usuar io :

    MITMAGICCOOKIE1 y SUNDES1 [SUN90a]. La primera se usa por defecto enOpenWindows. El segundo protocolo es mucho ms robusto y usa RPCs seguros. Paraseleccionar un tipo mecanismo determinado de autentificacin basta con invocar al ambientegrfico solicitando el tipo de autenticacin deseado, por ejemplo:

    Con MAGICCOOKIE la informacin de acceso se guarda en el archivo .Xauthority en eldirectorio local de cada usuario. Si alguien consigue acceder a ese archivo podr ver todoaquello que se escribamos en la pantalla. El archivo .Xauthority se puede modificar con loscomandos xauth o con xhost. Con la opcin:

    % xhost +

    se permite acceder a cualquiera al servidor de X. Con este comando se puede controlar elacceso basado en host apropiado para un entorno monousuario. Si se tienen hosts o terminalesmultiusuario con sistema X, entonces es conveniente usar una autentificacin basada en elusuario.

    2.1.5 Puertas traseras

    Las puertas trasceras son fragmentos de cdigo en un programa que permiten saltarse losmtodos usuales de autenticacin para realizar ciertas tareas. [VIL00]. Generalmente son

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 11

  • 5/20/2018 capitulo2

    12/44

    colocadas por los programadores en la fase de prueba de un desarrollo, del cul se eliminanen la fase final. Lamentablemente esto no sucede siempre. Supongamos un escenario dondese necesitan de cuatro claves para autentificacin y que en la fase de pruebas se dispone deuna clave que abarca el poder de las cuatro. Esto es aceptable para dicha fase, pero constituyeun grave peligro si el sistema ya est funcionando en la vida real: cualquiera que la conozcapuede saltarse el mecanismo de seguridad del programa.

    Adems de las puertas traseras en los programas es posible situarlas en ciertos archivosvitales para el sistema; generalmente, cuando un atacante consigue acceso a una mquinaUnix desea mantener ese acceso aunque su penetracin sea detectada. Por ejemplo: algo muyhabitual es aadir un usuario con UID 0 en el archivo de passwords de forma que el piratapueda seguir accediendo al sistema con ese nuevo login, aunque el administrador cierre lapuerta que utiliz para entrar. Tambin es comn aadir servicios en puertos no utilizados, deforma que haciendo un telnet a ese nmero de puerto se abra un shell con permisos de root,incluso muchos intrusos utilizan la facilidad del cron para checar peridicamente esosarchivos e instalar las puertas que hayan sido cerradas.

    La prevencin de estos ataques consiste en revisar peridicamente la integridad de losarchivos ms importantes (archivos de passwords, spoolers, configuracin de la red, archivosde arranque, etc), tambis es conveniente rastrear la existencia de nuevos archivos con setuidque puedan "aparecer" misteriosamente. Los ms paranoicos no deben olvidar efectuar unabsqueda bajo los dispositivos montados.

    2.1.5.1 Crontab

    Como administrador, este comando es de suma importancia, pues permite la repeticin decomandos a cualquier hora o da [FRI 91]. Cuando el programa cron se ejecuta al mismotiempo que el inicio del sistema, el programa lee instrucciones para comandos a ejecutar en elarchivo crontab. Los usuarios pueden tener su propio crontab archivo, pero deben guardar sus

    nombres en el directorio /usr/lib/crontab/allow/.

    Hay seis campos en cada entrada del crontab. Estas entradas pueden estar separadas por unespacio en blanco, un tabulador o un salto de lnea. Las entradas de izquierda a derecha son:

    Minutos. se especifican los minutos a los que ser ejecutado el comando.

    Hora.Aqu se especifica la hora exacta (24 horas) en que el comando debe ser ejecutado.

    Da.Especifica el da exacto en que se ejecutara el comando.

    Mes.Especifica el mes exacto en que se ejecutara el comando.

    Da de la semana.Especifica el da de la semana en que se ejecutar el comando, donde 0es Domingo y 6 es Sbado.

    Comando a Ejecutar.Este puede ser introducido desde el Bourne Shell

    Los asteriscos son usados cuando no se desea insertar algn dato en cierto campo porejemplo:

    45 8 * * 6 /etc/ADM/sandra/bin/cacha_rata

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 12

  • 5/20/2018 capitulo2

    13/44

    Esto significa que el comando /etc/ADM/sandra/bin/cacha_rata se ejecutar todos los Sbadosa las 8:45 de la maana.

    2.1.6 Cookies

    Las cookies constituyen una potente herramienta empleada por los servidores web paraalmacenar y recuperar informacin acerca de sus visitantes: conservan informacin entrepginas sucesivas que visita el usuario, extendiendo significativamente las capacidades de lasaplicaciones cliente/servidor basadas en Web [VIL00]. Mediante el uso de cookies se permiteal servidor recordar algunos datos concernientes al usuario, como sus preferencias para lavisualizacin de las pginas de ese servidor, nombre y contrasea, productos que ms leinteresan o, simplemente, un identificador nico.

    Una cookie no es ms que un archivo de texto simple que algunos servidores piden a unnavegador que escriba en el disco duro. El contenido de la cookie lo dicta el servidor ynormalmente consistir en un nmero para identificar unvocamente al visitante. Este nmerose utiliza como ndice en una gran base de datos, en la que se va almacenando la mayorcantidad posible de informacin acerca de lo que el visitante ha estado haciendo por suspginas: qu enlaces sigue, qu pginas lee, qu fotos mira, qu documentos o programasdescarga, etc. De esta forma, si el usuario apaga la computadora y se conecta de nuevo al dasiguiente, la cookie permitir identificarle, reconocindole como el mismo usuario del daanterior, con lo que se puede continuar recabando informacin acerca de l. En s, esta tcnicano parece muy preocupante. Desgraciadamente, a menudo se rellenan formularios con elnombre, apellidos, direccin, telfono y a veces incluso datos an ms privados y sensiblesAfortunadamente, existen numerosas herramientas para restringir el uso de las cookies y elrastreo de los navegantes y para ocultar la identidad.

    Lo que las cookies no pueden hacer A pesar de que circulan muchas versiones sobre falsosvirus por Internet, una creencia muy extendida entre los usuarios inexpertos es que lascookies pueden contagiar un virus. Para ello, es requisito indispensable que la cookiecontenga cdigo ejecutable, por un lado, y adems que luego se le mande ejecutar. Hasta lafecha no se conoce una cookie ejecutable; en segundo lugar, aunque la hubiera, ademsdebera existir una aplicacin que la invocase para que el cdigo destructivo se ejecutara, locual exigira una ardua labor de programacin. Una cookie de http tampoco puede ser usadapara extraer datos de un disco duro En definitiva, una cookie no almacena ms informacinconfidencial que la que le se quiera dar al servidor que nos la enva.

    Lo que las cookies s pueden hacer Las cookies son simplemente texto, que se puede editar

    perfectamente con cualquier editor ASCII, y como tales, son elementos pasivos que nopueden emprender ninguna accin. Slo pueden ser ledos o escritos, pero no puedenejecutarse ni mandar ejecutar ningn programa, por lo tanto no representan ninguna amenazapara la computadora ni pueden infectarlo con ningn virus. Es importante comprender quepor diseo las cookies poseen las siguientes limitaciones [VIL00]: Trescientas cookies entotal en el archivo de cookies. Si llega la nmero 301, se borra la ms antigua. 4 Kbytes porcookie, para la suma del nombre y valor de la cookie. Veinte cookies por servidor o dominio(los hosts y dominios completamente especificados se tratan como entidades separadas ytienen una limitacin de 20 cookies cada uno, no juntos). Ninguna mquina que no encaje enel dominio de la cookie puede leerla. Es decir, la informacin almacenada en una cookie nopuede ser leda por una mquina distinta de la que la envi. Ahora bien, en Internet Explorer,

    Captulo 2. Estado del arte de la seguridad informtica

    2.1 13

  • 5/20/2018 capitulo2

    14/44

    esto no es del todo cierto debido a un agujero de seguridad que permite a cualquier sitio webvisualizar la informacin almacenada en las cookies.

    2.2 Seguridad en red

    Cuando se conecta una mquina a una red, al mismo tiempo que se abre el sistema ainnumerables fuentes de informacin y servicios[TOM94], queda tambin expuesta a todoslos posibles ataques desde el exterior. El control de la red es uno de los aspectosfundamentales de seguridad, puesto que la mayora de los intentos de ataque se llevan a caboa partir de posibles agujeros existentes en los sistemas y servicios de red. A continuacin sepresentan los puntos ms crticos de seguridad de un sistema abierto.

    Clonacin de mquinas

    Un sistema puede pasar por otro asumiendo su direccin y el nombre del host. La direccin

    de red no es nica para cada mquina. Es cierto que est almacenada en un chip de la tarjetade red pero se puede cambiar usando el comando:

    % ifconfig le0 ether x:x:x:x:x:x

    es posible, por tanto, adquirir la identidad de de otro travs de otra mquina del mismo tipo.

    Escuchando la red

    En el caso de Ethernet cualquier sistema conectado a la red puede escuchar lasconversaciones entre los otros sistemas. Si es un acceso remoto, entonces la contrasea puedeser visible. A esto se le conoce como "snooping" (fisgonear). Los controladores ethernet,normalmente, leen todos los paquetes que le llegan pero los que tienen otro destino sondescartados. Se puede hacer, sin embargo, que la tarjeta actu en modo promiscuo. En estecaso interpretar todos los paquetes que le lleguen. En Solaris 2, existe el programa

    /usr/sbin/snoop [SUN88], que se desarroll para poder detectar y corregir problemas en la redy que lee los paquetes que llegan a nuestro sistema. Este programa es un riesgo de seguridad.

    2.2.1 Autentificacin de red

    Debido a la posibilidad de escuchar los paquetes que circulan por la red, es importante que nose transmitan passwords sin encriptar por ella. Pero el hecho de enviar los passwordsencriptados plantea el problema de la comunicacin de las claves. Uno de los servicios que

    usan autentificacin de red es el de RPC. Algunas aplicaciones que usan este servicio sonAdmintool y NIS+[SUN90b]. Las modalidades de autentificacin que se pueden usar enSolaris 2 son:

    AUTH_NONE Sin autentificacin

    AUTH_SYS Identificacin basada en el NetID

    AUTH_DES Usa autentificacin

    Captulo 2. Estado del arte de la seguridad informtica

    2.2 14

  • 5/20/2018 capitulo2

    15/44

    AUTH_KERB Autentificacin Kerberos

    Las caractersticas de seguridad que incluyen cada una de ellas son la siguientes:

    Autentificacin DES. Usa el estndar de encriptacin DES y criptografa de llavepblica para llevar a cabo la autentificacin de usuarios y sistemas. En el sistema de

    criptografa de llave pblica el cliente y el servidor obtienen una clave comndenominada de conversacin. El servidor deduce la clave conversacin combinandola clave pblica del cliente con su clave privada y viceversa. El cliente establece susclaves pblicas y privadas usando el comando keylogin, como root. Un usuario,normalmente, lo lleva a cabo de forma transparente cada vez que accede al sistema.

    Autentificacin Kerberos. Este sistema de autentificacin fue desarrollado por elMIT dentro del proyecto Athena [ROS92] . Usa autentificacin DES para encriptarunas etiquetas que se asignan cuando se accede al sistema. Duran un cierto periodo detiempo, por defecto 8 horas. La clave debe mostrarse cada vez que el usuario accede aarchivos.

    2.2.2 Hosts compartidos

    La existencia de lo que se denominan hosts compartidos permite la posibilidad de acceder,desde uno a otro, sin necesidad de introducir el password. Por esta razn son claramenteinseguros. El archivo/etc/host.equiv[SUN90b] se usa para indicar los hosts compartidos. Siun usuario quiere hacer un rlogin o un rsh y tiene una cuenta en el sistema local con el mismonombre, se le permite el acceso sin que se le requiera de nuevo el password. Hay que llegar aun compromiso entre funcionalidad y seguridad a la hora de la configuracin de estosarchivos. Nunca se deben compartir mquinas que son locales ni tampoco aquellas situadas enlugares pblicos.

    Un smbolo + en el mismo, indica que cualquier host conocido, ser considerado como un

    host compartido. El archivo.rhosts, en el directorio local de cada usuario, permite hostscompartidos para una determinada combinacin de mquina y usuario. Se usa normalmentepara acceder a las cuentas en diferentes mquinas pertenecientes a distintas organizaciones,que no se incluyen en el archivo /etc/hosts.equiv. Este archivo presenta ms problemas deseguridad que el otro ya que no lo controla el administrador.

    2.2.3 Terminales seguras

    En la versin de UNIX Solaris 2, aparece el concepto de terminal "segura". Slo se permitirel acceso de root desde un terminal, cuando junto a la entrada correspondiente del mismo enel archivo/etc/ttytab, aparezca la palabra secure. Por defecto en Sun todos los terminales seconsideran seguras. [SUN90b]

    La configuracin ms segura es eliminar la palabra secure de todas las entradas incluso de laconsola. Con esto se consigue que el root deba entrar primero con su nombre de usuario yusar despus el comando su. As se puede llevar un control de quines han sido los que hanentrado como root en el sistema.

    2.2.4 Seguridad del sistema NFS

    El NFS [SUN90b] se dise para permitir a los usuarios compartir (exportar en Solaris 1) losarchivos a travs de la red. Uno de los usos ms comunes de NFS es para las estaciones sin

    Captulo 2. Estado del arte de la seguridad informtica

    2.2 15

  • 5/20/2018 capitulo2

    16/44

    disco. Hay que tener en cuenta varios aspectos para lograr que este sistema sea seguro. Elarchivo /etc/exports (en Solaris 1) es el archivo ms importante en la configuracin de NFS,en l se indica qu archivos se exportan. Un ejemplo de una entrada de este archivo puede serla siguiente:

    /export/swap/cliente1 access = cliente1, root = cliente1

    La entrada root indica los hosts a cuyos archivos se permite acceso por parte delsuperusuario. Normalmente el NFS traslada eliddel superusuario a otro especialdenominadonobodypara prevenir que el root tenga derechos sobre los archivos de lamquina remota. Esto es bueno para la seguridad pero puede plantear un problema a la horade la administracin del sistema. No se debe dar nunca acceso de root a los archivos de NFSel host no compartido. La entrada access da una lista de hosts a los que se permite montar elsistema de archivos. Si no se indica, cualquier mquina de la red puede montar cualquierarchivo va NFS.

    Otro archivo importante dentro de NFS es el /etc/netgroup [SUN90b] se utiliza para ladefinicin de grupos de red. Este archivo se controla a partir de las "pginas amarillas" y sedebe volver a construir en las mismas siempre que sea modificado. Como ejemplos deentradas en este archivo podemos tener:

    Grupo.A (servidora,,)(clientea1,,)(clientea2,,)

    Grupo.B (servidorb,,)(clienteb1,,)(clienteb2,,)

    Todos Grupo.A Grupo.B

    Donde Todos es un supergrupo de los dos anteriores. Cada miembro de un grupo se define

    como una tripleta: (host, usuario, dominio). Si el campo de host o de usuario no aparece,entonces cualquier host o cualquier usuario pertenecen al grupo. Normalmente la mejor formade configurar el archivo netgroup es crear un grupo de red para cada servidor y su cliente, yconstruir super grupos a partir de ellos. Esto da la flexibilidad de especificar el ms pequeogrupo posible de hosts para cada sistema de archivos en/etc/exports. (/etc/dfs/dfstab enSolaris 2). La forma de indicar, desde la lnea de comandos, que un sistema de archivos secomparte es:

    share F nfs o ro /export/applications share F nfs o rw /var/mail

    donde los campos rw indican derecho de escritura y lectura y ro slo lectura. Si el sistema va

    a compartirse tanto de escritura como lectura es buena idea compartir en nivel ms bajo deldirectorio posible:

    share F nfs o rw = support /export/support share F nfs o rw = sales/export/salesmejor que:share F nfs o rw /expot

    Para el caso del cliente hay que evitar que la seguridad se vea comprometida, si se montansistemas de archivos desde servidores no cualificados, puesto que se tiene poco control de losarchivos que contiene. Un riesgo importante es cuando existen archivossetuid.

    Captulo 2. Estado del arte de la seguridad informtica

    2.2 16

  • 5/20/2018 capitulo2

    17/44

    El comando mount ofrece la posibilidad de controlarlos:

    mount o nosuid server: /export/export

    si se usa esta opcin todos los EID/GID de los archivos se cambian a UID/GID antes de queser ejecutados.

    Una aplicacin sobre los RPCs seguros, es el NFS seguro. Para el caso normal, el NFS validauna peticin de un archivo autentificando la mquina pero no el usuario. Cualquiera que tengaprivilegios de root en el cliente NFS puede tomar cualquier identidad a travs del comandosu, si esta coincide con la de algn usuario del sistema montado adquiere sus privilegios. Conlos NFS seguros los accesos se validad a partir de un identificador de red. Si un usuario no hasido autentificado, entonces se le da la identidad del usuario nobody, con los permisoscorrespondientes.

    2.2.5 Seguridad de NIS

    NIS (Network Information System) [SUN88] fue desarrollado por Sun Microsystems parareducir el esfuerzo necesario para la puesta a punto y mantenimiento de las estaciones enUNIX. Se basa en la centralizacin de los archivos necesarios para la configuracin denuestra red, en un nica mquina que sera el servidor NIS. Slo ser necesario actualizar losarchivos de configuracin en esta mquina para que los cambios tengan efecto en todas lasque forman parte de nuestro dominio.

    NIS [SUN90b] se basa en el protocolo RPC(Remote Procedure Calls) que usa el estndarXDR. Mediante RPC se consigue que un proceso pueda llevar a cabo llamadas a funciones enmquinas remotas. El propsito de NIS es el establecimiento de una base de datos distribuida.El servidor NIS se construye de tal forma que pueda leer la base de datos pero no pueda

    actualizarla. Al protocolo NIS se le considera, un servicio pblico, seguro y que usa RPCs sinautentificacin.

    NIS se considera seguro puesto que no modifica los mapas directamente y los archivospueden ser ledos por todo el mundo [HSP91]. Esto desde el punto de vista del servidor, perocambiando hacia el cliente, la seguridad es bastante pobre. Puesto que NIS no utilizaautentificacin a nivel de RPC, cualquier mquina de la red puede enviar una respuesta falsa,y pasar por el servidor de NIS. Para que el ataque tenga xito, el paquete con la respuestafalsa debe llegar al cliente antes de que responda el servidor. Tambin debe ser capaz deobservar la peticin y generar la respuesta. Para esto es preciso que la mquina que lleva acabo el ataque est situada en el mismo camino de comunicacin del servidor y el cliente. Los

    problemas de seguridad que resultan se puede crear fcilmente un mapa NIS para sustituir aldel servidor. Un intruso podr acceder al cliente NIS a travs de los comandos de accesoremoto, cambiando en el mapa hosts.byaddr la direccin de la mquina que lleva a cabo laintrusin a otra mquina que se encuentre el archivo /etc/hosts.equiv o en uno de los archivos.rhosts de los usuarios.

    La solucin de estos problemas de seguridad es emplear autentificacin para el protocoloRPC [TOM94]. La ms segura de las autentificaciones es la DES. Con Solaris 2 llega elservicio NIS+ que elimina la mayor parte de problemas de seguridad que NIS planteaba.NIS+ utiliza RPCs seguros si se configura de forma adecuada. En ocasiones por rapidez deinstalacin se configura en el nivel 0. La forma de indicar el nivel es:

    Captulo 2. Estado del arte de la seguridad informtica

    2.2 17

  • 5/20/2018 capitulo2

    18/44

    rpc.nisd S

    El daemon se lanza desde /etc/rc2.d/S71lrpc. La gestin de los mapas de NIS+, se lleva acabo mediante Admintool. Es conveniente inspeccionar el archivo nsswitch.conf, dnde seindica si programas del sistema, como login, usarn los archivos locales de /etc, o bien, losmapas de NIS+, o ambos y en qu orden.

    2.2.6 Seguridad del DNS

    El servicio DNS(Domain Name System), es una amplio conjunto de bases de datosdistribuida [SCH93] usado a lo largo de la internet, proporcionando correspondencia entre losnombres de host y las direcciones de IP de los mismos. Existe la posibilidad de abusar de esteservicio para poder entrar en un sistema.

    Suposiciones durante la fase de autentificacin, pueden conllevar serias grietas de seguridadimportantes. El problema de seguridad es similar al que existe en el NIS. La autentificacin selleva a cabo en muchos casos a partir del nombre o la direccin. Las aplicaciones de altonivel, usan en la mayora de los casos los nombres para la autentificacin, puesto que lastablas de direcciones son mucho ms difciles de crear, entender y mantener. Por ejemplo, sialguien quiere suplantar una mquina por otra no tiene ms que cambiar una de las entradasde la tabla que relaciona su nombre con su direccin. Este es el problema fundamental deDNS. Para conseguir esto una mquina debe obtener primero el nmero ID de la peticinDNS, para ello debe construir el paquete de respuesta y usar la opcin de enrutamiento defuente, para hacerlo llegar al que llev a cabo la peticin [SMA88] [SUN88].

    2.2.7 FTP

    El protocolo de transferencia de archivos (FTP), se implementa mediante los programas ftp yftpd[SUN88]. Las viejas versiones de los mismos presentaban ciertos fallos de seguridad.Para el ftpd, si se dispone de una versin de antes de diciembre de 1988, es preciso cambiarla.Una de las posibilidades que ofrece este servicio es el FTP annimo, para la distribucin desoftware pblico. Exista por ejemplo, un antiguo bug del ftp mediante el cual conseguamosaccesos de root [FV86]:

    % ftp nftp> open www.udlap.mxConnected to www.udlap.mx220 www.udlap.mx FTP server readyftp> quote user ftp

    331 guest login ok, send ident as password.ftp> quote cwd ~root530 Please login with USER and PASSftp> quote pass ftp230 Guest login ok, access restrictions apply.

    si esto funciona habremos entrado como root en el sistema.

    2.2.8 El servicio de correo electrnico

    Captulo 2. Estado del arte de la seguridad informtica

    2.2 18

  • 5/20/2018 capitulo2

    19/44

    El correo electrnico es uno de los servicio ms usados. El programa sendmail [SUN88] seusa para recibir y mandar los mensajes de correo electrnico. Este programa tiene grancantidad de bugs ya que no hay ningn programador que logre comprenderlo del todo.Antiguas versiones tienen agujeros bien conocidos. Son necesarias, tambin, ciertas medidasde seguridad a la hora de su instalacin [CUR90]:

    Eliminar el alias de "decode" para los archivos /etc/aliases y /usr/lib/aliases.a. Si se crea un alias para que los mensajes sean enviados a programas, hay que estarcompletamente seguro de que es imposible obtener un shell o enviar un mensaje a unshell de esos programas.

    b.

    Asegurarse que el password "withard" se elimina del archivo de configuracin,sendmail.cf.

    c.

    Asegurarse que el sendmail no tenga el comando "Debug".d.

    2.2.9 El servidor inetd y el daemon in.routed

    Es el servidor de red y tiene toda una lista de servicios a la espera de recibir respuesta de suspeticiones. Algunos servicios pueden deshabilitarse para mejorar la seguridad. Los serviciosque se quieren dar se incluyen en el archivo /etc/inetd.conf. La mayor parte de ellos correncomo root y por tanto si alguien consigue hacerse con su control el resultado puede ser serio.Algunos de los ms importantes son:

    in.fingerd: Permite a los usuarios remotos listar todos aquellos conectados al sistema. Loshackers lo utilizan para ver si el administrador del sistema est en l.

    rcp.rexd: Permite la los usuarios ejecutar comandos en mquinas remotas con muy pocaautentificacin. Es mejor usar en su lugar /usr/bin/rsh que es mucho ms seguro.

    in.tfpd: Una versin reducida de ftp, con poca autentificacin.

    admina: Usado por admintool. Corre con setuid = root. Lo mejor es deshabilitarlo si no seadministran mquinas de forma remota, o al menos hacerlo con la opcin S.

    El daemonin.routed[TOM94] gestiona automticamente las tablas de enrutamiento. Seintercambia con otra mquinas de la red intercambiando informacin de enrutamiento, usandoel protocolo RIP (Routing Information Protocol). Lo que hace es indicar a las mquinas quelo solicitan, la direccin de aquellas que conoce. Si la mquina tiene una nica red conectadano es necesario que est corriendo. Es mucho mejor decir, en cuanto a mejora delrendimiento, a la mquina explcitamente dnde enviar los paquetes no locales. Esto seconsigue estableciendo un router por defecto:

    /sbin/route f add default 1

    Desde el punto de vista de seguridad esta no es la forma idnea. Si se usa ms de un gatewayse puede mantener manualmente la tabla de enrutamiento con:

    /sbin/route add net 1

    Donde es uno de los nombres de /etc/networks , y es el nombre de lamquina local que conecta la red.

    Captulo 2. Estado del arte de la seguridad informtica

    2.2 19

  • 5/20/2018 capitulo2

    20/44

    2.3 Supervisin en Unix. Auditing

    Un requisito importante de seguridad es la posibilidad de visualizar qu es lo que estpasando y qu ha pasado en un sistema dado [TOM94]. Para ello hay que controlar losarchivos a los que se acceda de forma no autorizada, as como la supervisin del propio

    sistema para detectar cualquier agujero de seguridad.

    2.3.1 Supervisin del sistema de cuentas

    Se debe llevar un seguimiento del sistema de cuentas para comprobar dos sucesos: usuariosque han accedido al sistema cuando no deberan estar conectados (por la noche, durante lasvacaciones...) y programas que los usuarios normalmente no deberan estar usando. Acontinuacin se muestran los archivos que ofrece el sistema para llevar a cabo este control.[VIL00]

    El archivo lastlog

    El archivo /usr/adm/lastlog [SUN88] almacena la hora del ms reciente acceso del usuario alsistema y desde dnde se ha llevado a cabo el acceso. Este archivo es el que usa la ordenfinger. Un usuario podra conocer si alguien ha entrado en su cuenta, recordando cundo fuela ltima vez que accedi al sistema.

    # finger sandraLogin name: sandra In real life: MURILLO CANO SANDRA RDirectory: /archivos/vol07/sandra Shell: /bin/cshLast login Sun Mar 11 21:34 on pts/0 from acadaplic.pue.udlap.mxNo unread mailNo Plan.

    El archivo sulog

    Este es un archivo de texto (/var/adm/sulog) donde se registran las ejecuciones de la orden suindicando fecha, hora,usuario que lanza el proceso y la identidad que alcanza, terminalasociada y xito (+) o fracaso ()

    #more /var/adm/sulogSU 01/13 08:57 + pts/9 rootosvaldoSU 01/13 09:34 pts/9 rootsandraSU 01/13 09:53 + pts/13 enriqueoperadorSU 01/13 10:10 + pts/10 rootis107375

    SU 01/13 11:03 + pts/9 rootagonzaSU 01/13 11:41 pts/11 rcastrorootSU 01/13 11:45 + pts/11 rcastroroot

    Los archivos utmp y wtmp

    El archivo/etc/utmp[SUN88a] se utiliza para la visualizacin de aquellos conectados alsistema en cada instante. La orden who muestra por pantalla este archivo. Aunquehabitualmente este archivo est situado en/var/adm/, junto con otros archivos de log, esposible encontrarlo en /etc en algunas versiones. [VIL00]. Para cada usuario se da el nombre,la terminal usada, el momento de acceso al sistema, y el host remoto si se conecta va red. El

    Captulo 2. Estado del arte de la seguridad informtica

    2.3 20

  • 5/20/2018 capitulo2

    21/44

    archivo/usr/adm/wtmp[SUN88], almacena cada acceso al sistema y cada salida del mismo.Se puede mostrar con who:

    % who /usr/adm/wtmpis109655 pts/22 Apr 2 22:01 (sun19sala4.pue.udlap.mx)is109655 pts/28 Apr 2 22:04 (acadaplic.pue.udlap.mx)is113456 pts/20 Apr 2 22:09 (tiranoray)

    udlasc pts/22 Apr 2 22:10 (tiranoray)is113345 pts/21 Apr 2 22:11 (acadaplic.pue.udlap.mx)co100166 pts/22 Apr 2 22:11 (tiranoray)

    En el caso de que varios usuarios entren al sistema al mismo tiempo, es posible, que lostiempos de acceso y abandono se mezclen dando una salida confusa. Este archivo tambin sepuede visualizar utilizando la orden last. En las nuevas versiones del sistema operativo seincluyen tambin los "pseudoaccesos" como el ftp.

    acadaplic# last 10fa109374 pts/27 sun02sala4.pue.udlap.mx Tue Apr 3 17:21 still logged inem108536 pts/26 sun21sala4.pue.udlap.mx Tue Apr 3 17:18 17:23 (00:04)adminfo pts/15 ssray2 Tue Apr 3 17:15 still logged inroot pts/25 dnssec.pue.udlap.mx Tue Apr 3 17:13 still logged inua012839 pts/25 ssray2 Tue Apr 3 17:13 17:13 (00:00)adminfo pts/22 ssray2 Tue Apr 3 17:05 still logged inii107424 pts/4 mailweb Tue Apr 3 17:02 still logged in

    Estos archivos ya son obsoletos en Solaris 8 y en su lugar existen los archivos utmpx ywtmpx.

    El archivo acct

    El archivo/etc/adm/acctalmacena cada ejecucin de un proceso en el sistema, quin lo

    ejecut, cundo y cuanto tiempo tard en ejecutarse. La informacin se registra cuando secompleta el comando pero siempre que se haya compilado el kernel con la opcinSYSACCT, que por defecto no est activada. Este archivo puede visualizarse mediante elprogramalastcomm[SUN88]. Sin argumentos se muestra toda la informacin. Se puedelimitar a un determinado programa, a un usuario, o a una determinado terminal.

    2.3.2 Supervisin de la red

    La tarea es bastante difcil, porque existen muchas maneras de romper su seguridad. Existenvarios programas a disposicin del administrador para ayudarle en esta labor.

    syslog

    El syslog [SUN88], es un mecanismo mediante el cual se manda cualquier mensaje de error ala consola del sistema. Normalmente los mensajes se almacenan en /usr/adm/messages, con lafecha, el tiempo que aparecieron, nombre del programa que envi el mensaje, y elidentificador del proceso.

    Son de particular inters los mensajes del los programas login y su. Se debe suprimir laposibilidad de que alguien entre directamente como root, porque no se conoce quin es el queest usando la cuenta. Tambin se almacena cualquier caso en el que una persona intente

    Captulo 2. Estado del arte de la seguridad informtica

    2.3 21

  • 5/20/2018 capitulo2

    22/44

    repetidas veces entrar en una determinada cuenta sin xito. Si se encuentran mensajes deestos, es posible que haya un cracker intentando descubrir los passwords de los usuarios.Tambin se almacena los momentos en los que se usa el comando su, para root o para otronombre de usuario. Con ello se puede observar si hay usuarios que comparten los passwords,o para ver si existe un hacker que ha entrado en el sistema y pretende acceder a otras cuentas.

    El comando showmount

    Este comando se puede usar en un servidor de NFS, para ver todos los hosts que tienen algnsistema de archivos montado sobre el servidor. Con la opcin a se muestra tanto el host,como los directorios [SUN90a].

    webserver.pue.udlap.mx:/home/mx/vol25

    xnic.pue.udlap.mx:/home/mx/acadesw

    xnic.pue.udlap.mx:/home/mx/vol22

    zeus.pue.udlap.mx:/home/mx/acadesw

    La salida de showmount puede usarse para dos asuntos, la primera es que slo mquinaslocales al sistema deben estar presentes. Slo se deben encontrar los directorios habituales. Siexisten directorios que no lo son se debe encontrar quin los est montando y por qu, aunquees una manera inocente de entrar en el sistema, puede significar un intento de rotura de laseguridad.

    El comando npasswd

    El comando npasswd [CUR90], desarrollado por Clyde Hoover, pretende sustituir al comando

    passwd estndar en UNIX. Este programa hace que los passwords sean ms seguros evitandoque los usuarios elijan unos "malos". Alguna de las opciones que presenta este programa sonlas siguientes:

    Longitud mnima del password.Permite que se pueda obligar a los usuarios a mezclar maysculas y minsculas.No aceptar palabras simples, como una letra repetida.Rechazar passwords que contengan el nombre de la mquina u otra informacinrelacionada con ella.

    Comprueba si la palabra elegida contiene el nombre de cuenta, o el nombre de pila oapellidos.

    Comprueba si la palabra est incluida en algunos de los diccionarios, incluido el delsistema.

    Caractersticas de seguridad del sistema C2 de SUN: [DEP85] [SUN90a]:Almacenamiento de todos los instantes en los que un usuario entra y abandona elsistema, permite la ejecucin de algunos comandos de administracin y la ejecucinde ciertas operaciones privilegiadas.

    Un mecanismo con el que se consigue proteger los passwords encriptados,guardndolas en el archivo /etc/shadow, sin permisos de lectura.

    Posibilidad de usar un sistema de encriptacin DES.

    2.3.3 Supervisin del sistema de archivos

    Captulo 2. Estado del arte de la seguridad informtica

    2.3 22

  • 5/20/2018 capitulo2

    23/44

    Las tareas mas sobresalientes que se deben llevar a cabo en el control del sistema de archivosson:

    Buscar archivos que pueden modificarse por usuarios no autorizados.Detectar cambios no autorizados.Poder recuperar el sistema, dentro de lo posible, despus de que se hayan dado

    cambios no autorizados.

    A continuacin se presentan alguanas herramientas para llevar a cabo dicha tarea:

    El comando find

    El comando find es un comando de bsqueda de propsito general. Usando varios argumentosy la comparacin de patrones basndose en el nombre de archivo, tipo, modo, propietario,modificacin, fecha, y otras caractersticas, se puede conseguir obtener informacinimportante en cuanto a la seguridad del sistema de archivos. Algunas de las caractersticasque podemos buscar son:

    Encontrar archiovos Setuid y Setgid . Estos programas confieren derechosespeciales a los usuarios que los ejecutan, es necesario comprobar que no hayprogramas inseguros instalados. Se deben seguir especialmente los programas quetengan como dueo efectivo al root. Un truco que usan los crackers es una vez quehan entrado en el sistema, dejar uno de estos programas pudiendo as volver a entraren el sistema cuando lo deseen. La forma de llevar a cabo la bsqueda es la siguiente:

    # find / type f a (perm 4000 o perm 2000 ) print

    algunas de estas opciones son:/.Indica el directorio desde dnde va a dar comienzo la bsqueda.

    type f.Slo examina los archivos normales, para directorios es la opcin "d", para ligassimblicos ls "l", la "c" para dispositivos de caracteres especiales, y la "b" paradispositivos de bloques especiales.

    a.

    Quiere decir "y". Esto es que se busque los archivos del tipo indicado y con lacondicin de permisos que se incluye a continuacin.

    ( perm 4000 o perm 2000 ).

    Los parntesis se utilizan para agrupar. El perm 4000 indica que se busquenaquellos archivos con el bit "4000" activo (en hexadecimal). Es el bit des"seuserid". El bit "2000" es anlogo al anterior slo que para los grupos. La oindica "o".

    print.

    Indica que se impriman todos los archivos que coincidan con las caractersticasanteriores.

    a.

    Encontrar archivos modificables por cualquiera. Estos archivos pueden ser unagujero de seguridad si un "cracker" consigue entrar en el sistema y los modifica.Para llevar a cabo la bsqueda a partir del comando find:

    b.

    Captulo 2. Estado del arte de la seguridad informtica

    2.3 23

  • 5/20/2018 capitulo2

    24/44

    # find / perm 2 printDnde el 2 indica el bit de permisos de escritura de un archivos. Esta bsqueda eslarga e incluye ciertos archivos que deben poderse escribir por todo el mundo, porejemplo, los del directorio /dev, al igual que los permisos sobre las ligas simblicasque no tienen significado.

    Encontrar archivos sin dueo. El encontrar archivos con propietario desconocido,puede ser una indicacin que un cracker ha conseguido entrar en nuestro sistema. Laforma de llevar a cabo la bsqueda a partir del comando find es la siguiente:

    # find / nouser printLa opcinnousercomprueba que el propietario del archivo se encuentre en elarchivo de passwords del sistema. Tambin se puede hacer lo mismo para el caso delos grupos con la opcin nogroup.

    c.

    Bsqueda del archivo .rhosts.Como se ha visto, puede ser conveniente no permitirque los usuarios tengan un archivo .rhosts en sus directorios. Mediante el comandofind:

    # find /home name .rhosts print

    d.

    Checklist

    El empleo de estas listas puede ser una herramienta muy til a la hora de descubrir cambiosno autorizados del sistema de directorios. Un cheklist son cada uno de los nombres de losarchivos que forman parte de un grupo de directorios [CUR90], su tamao, propietarios,fechas de modificacin, y otros datos que pueden ser de inters a la hora de comprobar si seha modificado de forma no autorizada el sistema de archivos. Para llevar un control de estetipo basta con usar los comandos estndares de UNIX ls y diff. La forma de proceder es lasiguiente, primero se usa el comando ls para generar una lista "maestra". El mejor momentode hacerlo es justo despus de la instalacin del sistema operativo. Una forma sencilla de

    llevarlo a cabo es la siguiente [MAR93]:

    # ls aslgR /bin /etc /usr > ListaMaestra

    Es conveniente borrar algunas lneas correspondientes a algunos archivos que se usan amenudo, como el /etc/utmp y el /usr/adm/acct. Para crear una lista con la situacin actual delsistema de archivos basta ejecutar la lnea anterior con otro nombre. Una vez hecho estopodemos pasar a compararlos con el comando diff:

    # diff ListaMaestra ListaActual

    Las lneas que estn slo en el primer archivo se imprimirn con un "". Con una construccinadecuada de las listas peridicamente, es fcil detectar posibles cambios no autorizados.

    2.4 Deteccin de intrusos

    2.4.1 Tipos de intrusiones

    Captulo 2. Estado del arte de la seguridad informtica

    2.4 24

  • 5/20/2018 capitulo2

    25/44

    Es cuestin importante detectar la intrusin de personas indeseables o no autorizadas en elsistema lo antes posible para que cause el menor dao posible. Segn [HLMS90] unaintrusin se define como:

    Cualquier conjunto de acciones que intentan comprometer la integridad, confidencialidad odisponibilidad de una informacin o un recurso.

    Normalmente una intrusin intenta[KS94]:

    Acceder a una determinada informacin.1.Manipular cierta informacin.2.Hacer que el sistema se no funcione de forma segura o inutilizarlo.3.

    Una intrusin es la violacin de la poltica de seguridad del sistema. Los intrusos puedenutilizar fallos en la arquitectura de los sistemas y el conocimiento interno del sistemaoperativo para superar el proceso normal de autentificacin. Existen diferentes tipos deintrusiones que pueden afectar a un determinado sistema[SMA88]:

    Intentos de entrada: Una persona ajena a nuestro sistema intenta acceder de forma noautorizada al mismo. Se detectan normalmente por modelos de comportamiento atpicos, oviolaciones de las restricciones dadas por la poltica de seguridad.

    Ataque enmascarado: A partir de un usuario del sistema se intenta un ataque al mismo, esdetectado a partir de modelos de comportamiento atpico o violaciones de constraints deseguridad.

    Penetraciones en el sistema de control: Son normalmente detectadas a partir de la observacinde modelos especiales de actividad.

    Fuga: Se utilizan de manera excesiva los recursos de un sistema. Se detectan normalmente

    por usos anormales de los recurso de E/S.

    Rechazo de servicio: Detectados por uso atpico de los recursos del sistema.

    Uso malicioso: Detectado normalmente por modelos de comportamiento atpico, violacionesde las restricciones de seguridad, o uso de privilegios especiales.

    Esta clasificacin se basa en el efecto de las intrusiones y la forma de llevarlas a cabo.

    2.4.2 Deteccin de intrusos a partir de comportamiento anmalo

    Se detectan a partir de la caracterizacin anmala del comportamiento y del uso que hacen delos recursos del sistema. Este tipo de deteccin pretende cuantificar el comportamientonormal de un usuario. Hay que tener en cuenta las tres distintas posibilidades que existen enun ataque atendiendo a quin es el que lo lleva a cabo [FRA94]:

    Penetracin externa. Que se define como la intrusin que se lleva a cabo a partir unusuario o un sistema de computadores no autorizado.

    Penetraciones internas. Son aquellas que llevan a cabo por usuarios autorizados desistemas de computadoras que no estn autorizados al acceso a los datos que se estnsiendo comprometidos.

    Captulo 2. Estado del arte de la seguridad informtica

    2.4 25

  • 5/20/2018 capitulo2

    26/44

    Abuso de recursos. Se define como el abuso que un usuario lleva a cabo sobre unosdatos o recursos de un sistema al que est autorizado su acceso.

    La idea central de este tipo de deteccin es el hecho de que la actividad intrusiva es unsubconjunto de las actividades anmalas [KS94]. Esto puede parecer razonable por el hechode que si alguien consigue entrar de forma ilegal en el sistema, no actuar como un usuariocomprometido, seguramente el comportamiento se alejar del de un usuario normal [FV86].

    Sin embargo en la mayora de las ocasiones una actividad intrusiva resulta del agregado deotras actividades individuales que por s solas no constituyen un comportamiento intrusivo deningn tipo. Idealmente el conjunto de actividades anmalas es el mismo del conjunto deactividades intrusivas, de todas formas esto no siempre es as:

    Intrusivas pero no anmalas. Se les denomina falsos negativos o errores de tipo I.En este caso la actividad es intrusiva pero como no es anmala no conseguimosdetectarla. Se denominan falsos negativos porque el sistema errneamente indicaausencia de intrusin.

    a.

    No intrusivas pero anmalas.Se denominan falsos positivos o errores de tipo II. Eneste caso la actividad es no intrusiva, pero como es anmala el sistema decide que esintrusiva. Se denominan falsos positivos, porque el sistema errneamente indica laexistencia de intrusin.

    b.

    Ni intrusiva ni anmala. Son negativos verdaderos, la actividad es no intrusiva y seindica como tal.

    c.

    Intrusiva y anmala. Se denominan positivos verdaderos, la actividad es intrusiva yes detectada.

    d.

    Los primeros no son deseables, porque dan una falsa sensacin de seguridad del sistema, elintruso en este caso puede operar libremente en el sistema. Los falsos positivos se deben deminimizar, en caso contrario lo que puede pasar es que se ignoren los avisos del sistema deseguridad, incluso cuando sean acertados. Los detectores de intrusiones anmalas requierenmucho gasto computacional, porque se siguen normalmente varias mtricas para determinar

    cunto se aleja el usuario de lo que se considera comportamiento normal [HLMS90].

    2.5 Criptologa

    Criptografa. Definicin clsica.

    ( kriptos oculto, graphos escribir )

    Arte de escribir mensajes en clave secreta o enigmticamente. [CAB96]

    2.5.1 Breve historia

    El primer caso documentado de escritura secreta data del siglo V a.C., durante la guerra entreAtenas y Esparta. El cifrado se basaba slo en la alteracin del mensaje mediante la inclusinde smbolos innecesarios. Otro caso proviene de la poca de los romanos (siglo I a.C.). Elcifrado consista en una sustitucin de determinados smbolos por otros segn una regla fija(mtodo Csar)

    Captulo 2. Estado del arte de la seguridad informtica

    2.5 26

  • 5/20/2018 capitulo2

    27/44

    Para el siglo XIV, Cicco Simoneta en su libro "Liber Zifrorum" estudia diversos sistemasbasados en simples sustituciones de letras. Un siglo despus, Alberti se destaca en elcriptoanlisis y por ello se le nombra el padre de la criptologa. En 1586 Blaise de Vigenerepublica "Traict des Chiffres" donde recoge diferentes mtos utilizados en la poca. En elsiglo XIX se utiliza un mtodo basado en la reordenacin de los smbolos del mensaje,llamado trasposicin, que junto con la sustitucin constituye la base de los cifrados clsicos.

    En 1949 la criptografa empez a ser considerada como una ciencia aplicada debido a surelacin con otras ciencias, como la estadstica, la teora de nmeros, la teora de informaciny la teora de la complejidad computacional. [CAB96]

    2.5.2 Criptografa

    La criptografa corresponde solo a una parte de la comunicacin secreta. Si se requieresecreto en la comunicacin es porque existe desconfianza de intercepcin por un "enemigo".Este enemigo utilizar todos los medios para descifrar esos mensajes mediante un conjunto detcnicas y mtodos que constituyen una ciencia conocida como criptoanlisis.

    La criptologa se denomina al conjunto de criptografay criptoanlisis.En todacomunicacin se presenta una lucha entre criptgrados y criptoanalistas. Un xito de unosrepresenta siempre un fracaso de los otros. [CAB96]

    2.5.3 Criptografa Clsica

    2.5.3.1 Mtodo Csar

    ste fue un mtodo utilizado por los romanos en la edad antigua, y el cual se le atribuye

    supuestamente a Csar, de aqu su nombre. [VIL00]

    El sistema es el ms conocido y sobre el primero que se empez a pensar detenidamentecomo utilizar un sistema para esconder informacin adesconocidos.

    El sistema se basa en un simple desplazamiento de las letras en el abecedario:

    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9

    Pues sea el mensaje HOLA y la clave K=3

    El mensaje criptado sera EMIX, esto sera HOLA encriptado.

    Es un sistema bastante simple y sencillo, adems es fcilmente detectable para elcriptoanalista y fcil de descifrar.

    Solo debemos tener el abecedario , el mensaje y la clave, tanto para encriptarlo como paradesencriptarlo. Al igual que la clave pudiera ser , tambien puede ser +, por lo que eldesplazamiento de las letras sera hacia delante.

    Si la clave es , para encriptar sera retroceder en el abecedario, pero para desencriptar, seraavanzar en el abecedario, y si la clave fuera +, seria para encriptar desplazar hacia delante en

    Captulo 2. Estado del arte de la seguridad informtica

    2.5 27

  • 5/20/2018 capitulo2

    28/44

    el abecedario y para desencriptar.

    2.5.3.2 Cifrado de Gronsfeld

    El cifrado de Gronsfeld usa ms de un alfabeto cifrado para poner en clave el mensaje y quese cambia de uno a otro segn se pasa de una letra del texto en claro a otra. [MIT94]

    Es decir que deben tenerse un conjunto de alfabetos cifrados y una forma de hacercorresponder cada letra del texto original con uno de ellos. Para dejar esto ms claro veamosuna de las tablas que se usaban antes de la era de los ordenadores para hacer un cifrado deeste tipo. (Figura 2.1)

    Figura 2.1 Tabla ejemplo para Cifrado de Gronsfeld

    Ahora se toma una serie de dgitos como clave. Suponga 1203456987. Se utiliza la tabla parael cifrado del mensaje:

    EMBARCAMOS AL ANOCHECER

    Se escribir la clave debajo del texto original las veces que sea necesario

    EMBARCAMOS AL ANOCHECER

    1203456987 12 034569871

    Se sustituye cada letra por la correspondiente del alfabeto que indica el nmero debajo suyo.

    HRDHCPROLL DQ CUZPYGZXU

    El cifrado de Gronsfeld altera la frecuencia de las letras del texto, pues por ejemplo la letrams corriente en espaol, la E, se cifra de forma diferente segn su posicin en el textooriginal.

    2.5.3.3 Cifrado Bfido

    El mtodo Bfido es un cifrado fraccionario. Es decir que cada letra viene representada poruna o ms letras o smbolos, y donde se trabaja con estos smbolos ms que con las letrasmismas. [GAR91]

    El mtodo comienza con la utilizacin de un alfabeto desordenado en un cuadrado 5x5.Observa un ejemplo donde la clave para el alfabeto desordenado es DIPLOMA: (Figura 2.2)

    Captulo 2. Estado del arte de la seguridad informtica

    2.5 28

    http://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/figura_2_1.jpg
  • 5/20/2018 capitulo2

    29/44

    Figura 2.2 Tabla para ejemplo de Cifrado Bfido.

    Al ser un cuadro slo de 5x5 obliga a cifrar de la misma forma la I y la J. El contextopermitir distinguir cual de las dos letras se pretenda cifrar.

    Para cifrar el texto en claro se escriben los equivalentes numricos de cada letra, utilizandosus "coordenadas". Si por ejemplo el texto en claro es:

    VEN A LAS TRES

    El equivalente numrico es:

    51 25 35 22 14 22 43 44 42 25 43

    Que dividido en dos partes queda:

    5 1 2 5 3 5 2 2 1 4 2

    2 4 3 4 4 4 2 2 5 4 3

    Si ahora leemos los nmeros como columnas en lugar de por filas resulta:

    52 14 23 54 34 54 22 22 15 44 23

    Que volviendo a consultar la tabla resulta en el mensaje cifrado:

    WLBYKYAAOTB

    Este mtodo altera la frecuencia de los caracteres a diferencia de lo que ocurre por ejemplocon los cifrados monoalfabticos. Admite algunas variaciones como por ejemplo dividir lalista en 3,4,...n partes.

    2.5.4 Criptografa de Clave Secreta

    2.5.4.1 DES

    DES es el Estndar para el Cifrado de Datos, un algoritmo originalmente desarrollado porIBM y posteriormente modificado y respaldado por el gobierno de los Estados Unidos(estndar al menos hasta 1988). Es el ms estudiado y el mas utilizado de todos los algoritmosde llave nica. [CAB96] [DIF92]

    DES cifra bloques de 64 bits a la vez, utilizando una llave de 56 bits. (Originalmente era de128 bits, pero IBM nunca hizo pblico el por qu de la reduccin)

    Captulo 2. Estado del arte de la seguridad informtica

    2.5 29

    http://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/figura_2_2.gifhttp://www.pue.udlap.mx/~tesis/msp/murillo_c_sr/figura_2_2.gif
  • 5/20/2018 capitulo2

    30/44

    Seguridad DES

    DES puede ser atacado utilizando todas las llaves posibles (2^56). O(2^55) en promedio. Sinembargo, se dice que NSA modific el algoritmo para hacerlo ms dbil que el original. Apesar de eso, an no ha sido posible romperlo.

    Una computadora especializada para romper DES, con un costo estimado en U$$1 M.tomara 3.5 hrs. en romper un mensaje. [CAB96] Ha habido intentos que han disminuido lacomplejidad de romper DES hasta 2^43, pero han resultado poco prcticos.

    2.5.4.2 Triple DES

    Utilizando TripleDES, el texto es cifrado tres veces. Hay varias formas en que esto se hace[CAB96] [LOU91]:

    DESEEE3. Tres veces se cifra, con tres llaves diferentes.

    DESEDE3. Se cifra, descifra y cifra, con tres llaves diferentes.

    DESEEE2 y DESEDES2. Similar a los anteriores, pero se utilizan para el primero y ltimola misma llave.

    Se estima que la forma ms segura de DES es con tres llaves diferentes. En e l caso delalgoritmo de fuerza bruta, se requieren O(2^112) pasos por romperlo [HUN91].

    2.5.4.3 IDEA

    International Data Encryption Algorithm, desarrollado por Lai y Massey [CAB96] [AND93]

    [HSP91]. Es un algoritmo iterativo que trabaja sobre bloques de 64 bits con llaves de 128 bits.

    Es fcil implementar hardware y software, aunque es similar en velocidad a DES. Se cree queIDEA es inmune a anlisis diferencial, lo que lo hace ms seguro que DES.

    Daemon report que hay 2 ^ 51 llaves dbiles en IDEA.

    2.5.4.4 Rijndael (Un nuevo estndar de cifrado)

    En 1996, el Instituto Nacional de Estndares y Tecnologa (National Institute of Standards

    and Technology, NIST) di los primeros pasos para la consolidacin de un Estndar deCifrado Avanzado (Advanced Encryption Standard, AES). [VIL00] Su objetivo fuedesarrollar una especificacin para encontrar un algoritmo de cifrado que sustituya alagonizante DES (56 bits de clave, por lo que resulta inseguro actualmente, y diseo orientadoa hardware, por lo que resulta relativamente ineficiente en software), de manera que el nuevoalgoritmo sea capaz de proteger la informacin sensible de los ciudadanos y del gobiernohasta bien entrado el siglo XXI. Se espera que el algoritmo seleccionado sea utilizado por elGobierno de Estados Unidos y voluntariamente por el sector privado, en sustitucin de DES.Por extensin, presumiblemente sera adoptado por el resto de pases del mundo [AND93].

    Captulo 2. Estado del arte de la seguridad informtica

    2.5 30

  • 5/20/2018 capitulo2

    31/44

    En septiembre de 1997, se realiz una convocatoria para la presentacin de algoritmos, en laque se especificaron los siguientes criterios de evaluacin y requisitos mnimos de aceptacin:[VIL00]

    Ser pblico.1.Ser un algoritmo de cifrado en bloque simtrico.2.

    Estar diseado de manera que se pueda aumentar la longitud de clave segn lasnecesidades.3.

    Ser implementable tanto en hardware como en software.4.Estar disponible gratuitamente, o disponible bajo trminos consistentes con la polticade patentes del Instituto Nacional Americano de Estndares (American NationalStandards Institute, ANSI).

    5.

    Los algoritmos que cumplan con los requisitos arriba citados seran juzgados deacuerdo con los siguientes factores:

    seguridad (e.d., el esfuerzo necesario para criptoanalizarlos),eficiencia computacional,requisitos de memoria,adecuacin hardware y software,simplicidad de diseo,flexibilidad yrequisitos de licencia.

    6.

    Los algoritmos propuestos tenan adems que soportar obligatoriamente una longitud debloque de 128 bits y una longitud de clave de 128, 192 y 256, al margen de cualesquiera otraslongitudes posibles. La razn por la que se ha exigido la posibilidad de utilizar claves de 192y 256 es que a pesar de que una clave de 128 bits es totalmente "imposible" de reventarprobando todas las posibles combinaciones con los recursos computacionales actuales, nopuede asegurarse que en un futuro prximo el estado del arte de la computacin no vaya apermitir reventar claves de esa longitud. Dado que el estndar se desea que pueda utilizarse

    hasta bien entrado el siglo XXI, por lo menos hasta el ao 2060, se debe realizar una eleccinconservadora.

    Los ltimos avances tericos en computacin cuntica hacen temer que en un plazo breve, sise construyesen estos ingenios, los problemas numricos hoy considerados irresolubles en untiempo razonable, como la factorizacin o los logaritmos discretos, se podrn resolver muchoms rpido (en un tiempo igual a la raz cuadrada del empleado por una computadora digitaltradicional), tirando por tierra la seguridad de los algoritmos criptogrficos con longitudes declaves actuales. La raz cuadrada del nmero de todas las claves posibles de 256 bits (esto es,2 ^ 2 5 6 ) e s i g u a l a l n m e r o d e t o d a s c l a v e s p o s i b l e s d e 1 2 8 b i t s ( e s t o e s ,sqrt(2^256)=2^(256/2)=2^128). En otras palabras, asumiendo las velocidades previstas, una

    mquina cuntica tardara el mismo tiempo en realizar una bsqueda exhaustiva en un espaciode claves de 256 bits que una computadora digital actual en un espacio de claves de 128 bits,y por lo tanto se tratara de una tarea irrealizable.

    El 2 de octubre del 2000, el NIST anunci el algoritmo ganador: Rijndael, propuesto por losbelgas Vincent Rijmen y Joan Daemen (de ah su nombre). Rijndael es un cifrador de bloqueque opera con bloques y claves de longitudes variables, que pueden ser especificadasindependientemente a 128, 192 256 bits. El resultado intermedio del cifrado se denominaEstado, que puede representarse como un array rectangular de bytes de cuatro filas. Latransformacin que tiene lugar en cada vuelta de cifrado est compuesta a su vez de cuatrotransformaciones diferentes:

    Captulo 2. Estado del arte de la seguridad informtica

    2.5 31

  • 5/20/2018 capitulo2

    32/44

    Sustitucin de bytes no lineal, operando independientemente sobre cada uno de losbytes del Estado.

    a.

    Desplazamiento de las filas del Estado cclicamente con offsets diferentes.b.Mezcla de columnas, que se realiza multiplicando las columnas del Estado mdulox^4+1, consideradas como polinomios en GF(2^8), por un polinomio fijo c(x).

    c.

    Adicin de la clave de vuelta, en la que se aplica al Estado por medio de un simple

    XOR. La clave de cada vuelta se deriva de la clave de cifrado mediante el esquemade clave.

    d.

    El esquema de clave consiste en dos operaciones: expansin de clave y seleccin de clave devuelta de cifrado. El proceso de cifrado consta de tres pasos: una adicin inicial de la clave devuelta, n vueltas de cifrado y una vuelta final.

    2.5.5 Criptografa de Clave Pblica

    2.5.5.1 Sistema RSA

    RSA es un algoritmo que se fundamenta en el hecho de que la factorizacin de nmerosprimos es un problema difcil (en el sentido computacional) [CAB96]:

    El algoritmo es extremadamente simple:

    Primero es necesario calcular los valores de las llaves:

    Encontrar dos nmeros primosgrandes(100 dgitos o ms),pyq1.Definir n como n=pq2.Encontrar n nmero primo aleatorioetal que sea primo relativo del entero (p1)(q1)3.Calcular el entero nicoden rango 1

  • 5/20/2018 capitulo2

    33/44

    constituyen el documento firmado. [VIL00]

    2.5.5.2 Sistema de ElGamal

    El problema del logaritmo discreto consiste en calcular x a partir de la expresin :

    y=a ^ (mod p), siendo p un nmero primo. Los problemas de la factorizacin y el clculo delogaritmos discretos parecen tener idntica dificultad. [CAB96]:

    En 1985 ElGamal presente un sistema basado en la aparente intratabilidad del problema dellogaritmo discreto. Este sistema fue desarrollado a partir del conocido algoritmo dedistribucin de claves de Diffie y Hellman [CAB96]:

    Supngase que A y B quieren ponerse de acuerdo en la clave secreta comn que van a usarambos para comunicarse entre s. Para ello A escoge un entero aleatorio Ka entre 1 y p1(secreto) y calcula a^Ka Ap (pblico). B hace lo mismo con Kb y. La clave secreta comnque usarn ambos es a^(KaKb). Es secreta porque slo ellos pueden calcularla. En estecifrado se distinguen las claves secreta, pblica, de cifrado y de descifrado.

    Este sitema tiene un funcionamiento distinto al del resto de los sistemas de clave pblica, yaque el cifrado se realiza utilizando, adem de la clave pblica del receptor, la clave secreta deemisor.

    2.6 Gestin de claves (passwords)

    Abarca la generacin, distribucin, almacenamiento, tiempo de vida, destruccin y aplicacinde las claves de acuerdo con una poltica de seguridad [GAS89] [GAR91].

    Generacin de claves

    La seguridad de un algoritmo descansa en la clave. Un criptosistema que haga uso de clavescriptogrficamente dbiles ser l mismo dbil. Algunos aspectos a considerar que sepresentan a la hora de la eleccin de las claves son:

    Espacio de claves reducido

    Cuando existen restricciones en el nmero de bits de la clave, o bien en la clase de bytespermitidos (caracteres ASCII, caracteres alfanumricos, imprimibles, etc.), los ataques defuerza bruta con hardware especializado o proceso en paralelo pueden desbaratar en untiempo razonable estos sistemas.

    Eleccin pobre de la clave

    Cuando los usuarios eligen sus claves, la eleccin suele ser muy pobre en general (porejemplo, el propio nombre o el de la mujer), hacindolas muy dbiles para un ataque de

    Captulo 2. Estado del arte de la seguridad informtica

    2.6 33

  • 5/20/2018 capitulo2

    34/44

    fuerza bruta que primero pruebe las claves ms obvias (ataque de diccionario).

    Claves aleatorias

    Claves buenas son las cadenas de bits aleatorios generadas por medio de algn procesoautomtico (como una fuente aleatoria fiable o un generador pseudoaleatorio

    criptogrficamente seguro), de forma que si la clave consta de 64 bits, las 264 claves posiblessean igualmente probables. En el caso de los criptosistemas de clave pblica, el proceso secomplica, ya que a menudo las clave