Seguridad en linux Páginas desarrolladas en colaboración con Pedro Pablo Fábrega Martínez En estas páginas nos centraremos en cómo aumentar la seguridad en sistemas basados en el sistema operativo Linux. Su gratuidad, flexibilidad, potencia, apertura, facilidad para obtención de herramientas y otras muchas virtudes hacen de Linux la elección cada vez más frecuente entre los administradores de sistemas a la hora de decidirse por una u otra plataforma. Aunque Linux es un sistema muy robusto e incorpora las características de seguridad comunes a todos los sistemas tipo Unix, a pesar de todo resulta fundamental dedicar cierto tiempo y recursos para conocer cuáles son sus debilidades y vías frecuentes de ataque y adoptar posteriorermente las medidas más eficaces para contrarrestarlas. A menudo un sistema operativo es tan seguro como la astucia y habilidad de su administrador. En estas páginas aprenderá todo lo necesario para configurar su red de manera segura, así como indicaciones y referencias donde profundizar en algunos aspectos de la administración, auditorías de seguridad, planes de contingencia, etc. Lo primero que tenemos que tener en mente es que no existe nada como un sistema completamente seguro. Todo lo que puede hacer es aumentar la dificultad para que alguien pueda comprometer su sistema. En el caso medio del usuario de Linux en casa, no se requiere demasiado para mantener alejado al cracker. Para usuarios con grandes requisitos (bancos, compañías de telecomunicaciones, etc.) se requiere mucho más trabajo. Otro factor a tener en cuenta es que cuanto más incremente la seguridad de su sistema, más intrusiva se vuelve la seguridad, en otras palabras, su sistema puede perder funcionalidad y resentirse la comodidad. Necesita decidir en qué medida su sistema es utilizable y en qué medida es seguro para sus propósitos. Por ejemplo, puede necesitar que cualquiera marque a su modem para que éste devuelva la llamada a su casa. Esto es más seguro, pero si alguien no está en casa hace más difícil que se pueda conectar. También puede configurar su sistema Linux sin conexión a Internet, pero esto dificulta que pueda navegar por las webs. Si tiene un sitio medio-grande, debería establecer una "Política de Seguridad" que indique qué niveles requiere su sitio y qué medidas de evaluación se realizan. Los dos puntos principales de los que se tiene que dar cuenta cuando lea estas páginas son: Tenga cuidado con su sistema. Verifique los registros (logs) del sistema, tales como /var/log/messages y no pierda de vista su sistema. Tenga su sistema actualizado, estando seguro de que ha instalado las versiones actuales de los programas y esté al tanto de las nuevas alertas de seguridad. Hacer esto le ayudará a conseguir que su sistema sea mucho más seguro. Nota: este documento está basado en parte, pero no es una traducción literal, del Linux Security HOWTO, de Kevin Fenzi y Dave Wreski. Seguridad física Las primeras medidas de seguridad que necesita tener en cuenta son las de seguridad física de sus sistemas. Hay que tomar en consideración quiénes tienen acceso físico a las máquinas y si realmente deberían acceder. El nivel de seguridad física que necesita en su sistema depende de su situación concreta. Un usuario doméstico no necesita preocuparse demasiado por la protección física, salvo proteger su máquina de un niño o algo así. En una oficina puede ser diferente. Linux proporciona los niveles exigibles de seguridad física para un sistema operativo: Un arranque seguro Posibilidad de bloquear las terminales Por supuesto, las capacidades de un sistema multiusuario real. Seguridad en el arranque Cuando alguien inicia el sistema operativo Linux se encuentra con una pantalla de login: el sistema está pidiendo que se identifique. Si es un usuario conocido, podrá iniciar una sesión y trabajar con el sistema. Si no lo es, no tendrá opción de hacer absolutamente nada. Además, el sistema registra todos los intentos de acceso (fallidos o no), por lo que no pasarán desapercibidos intentos repetidos de acceso no autorizado. LILO (Linux Loader) es el encargado de cargar el sistema operativo en memoria y pasarle información para su inicio. A su vez, Vd. puede pasarle parámetros a LILO para modificar su comportamiento. Por ejemplo, si alguien en el indicador de LILO añade init single, el sistema se inicia en modo monousuario y proporciona una shell de root sin contraseña. Si en su entorno de trabajo cree necesario evitar que alguien pueda iniciar el sistema de esta forma, debería utilizar el parámetro restricted en el fichero de configuración de LILO (habitualmente /etc/lilo.conf). Este parámetro le permite iniciar normalmente el sistema, salvo en el caso de que se hayan incluido argumentos en la llamada a LILO, que solicita una clave. Esto proporciona un nivel de seguridad razonable: permite iniciar el sistema, pero no manipular el arranque. Si tiene mayores necesidades de seguridad puede incluir la opción password. De esta forma necesitará una clave para iniciar el sistema. En estas condiciones, sólo podrá iniciar el sistema quien conozca la clave. Puede encontrar más detalles en las páginas del manual lilo y lilo.conf. Para ello, introduzca en la línea de comandos las siguientes órdenes: # man lilo # man lilo.conf Otros detalles que le podrían resultar útiles. Prepare un disco de arranque del sistema. Es muy fácil, simplemente tiene que copiar el núcleo del sistema operativo en el disco, sin sistema de ficheros, e indicarle cual es la partición raíz del sistema. # dd if=/boot/vmlinuz of=/dev/fd0 # rdev /dev/fd0 /dev/hdXY Suponiendo que estemos usando un disco duro IDE, X indica el disco (a,b,c, o d), Y indica la partición (1,2,...). Si tiene más de un sistema operativo en su máquina, le puede interesar hacer una copia de salvaguardia del MBR: # dd if=/dev/hda of=/boot/arranque.mbr count=1 Y ahora algunas consideraciones generales: Tenga en cuenta que ningún sistema es realmente seguro si alguien, con los conocimientos necesarios, puede usar su propio disco para arrancar. Si tiene una máquina servidora, y tiene una clave para el arranque, la máquina no se reiniciará sin suministrar la clave y tendrá que acudir a introducirla en el caso de una parada no prevista. Bloqueo de la consola En los entornos Unix es conocido el truco de ejecutar en una teminal, que alguien ha dejado inocentemente abierto, un guion que simule la pantalla de presentación al sistema. Entonces un usuario incauto introudcirá su nombre y clave, que quedarán a merced del autor del engaño. Si se aleja de su máquina de vez en cuando, estaría bien poder bloquear su consola para que nadie pueda manipularla o mirar su trabajo. Dos programas que hacen esto son xlock y vlock. xlock bloquea la pantalla cuando nos encontramos en modo gráfico. Está incluido en la mayoría de las distribuciones Linux que soportan X. En general puede ejecutar xlock desde cualquier xterm de su consola y bloqueará la pantalla de forma que necesitará su clave para desbloquearla. Mire la página de manual para ver más detalles, algunos curiosos. vlock es un simple programa que le permite cerrar alguna o todas las consolas virtuales de su máquina Linux. Puede bloquear sólo aquélla en la que está trabajando o todas. Si sólo cierra una, las otras se pueden abrir y utilizar la consola, pero no se podrá usar su vty hasta que no la desbloquee. Desde luego, bloquear una consola prevendrá que alguien manipule su trabajo, pero no previene de reinicios de la máquina u otras formas de deteriorar su trabajo. Introducción Linux es un sistema operativo multiusuario real: puede haber varios usuarios trabajando simultáneamente con él, cada uno en su terminal. Esto obliga a tener en cuenta medidas de seguridad adicionales. Además, según hablan las estadísticas, el mayor porcentaje de violaciones de un sistema son realizadas por usuarios locales. Pero no sólo hay que protegerse de las violaciones intencionadas, sino que el sistema debe protegernos de operaciones accidentales debidas a decuidos o ignorancia de los usuarios. En este aspecto de la seguridad, Linux dispone de todas las características de los sistemas Unix: un control de acceso a los usuarios verificando una pareja de usuario y clave; cada fichero y directorio tienen sus propietario y permisos. Por otro lado, la meta de la mayoría de los ataques es conseguir acceso como root, lo que garantiza un control total sobre el sistema. Primero se intentará conseguir acceso como usuario "normal" para posteriormente ir incrementando sus niveles de privilegio utilizando las posibles debilidades del sistema: programas con errores, configuraciones deficientes de los servicios o el descifrado de claves cifradas. Incluso se utilizan técnicas denominadas "ingeniería social", consistentes en convencer a ciertos usuarios para que suministren una información que debiera ser mantenida en secreto, como sus nombres de usuario y contraseñas. En este apartado de seguridad local pretendemos dar unas ideas generales de los riesgos existentes, mecanismos para su solución y unas directrices de actuación que deberían convertirse en hábitos cotidianos. Cuentas de usuario, grupos Cada usuario del sistema está definido por una línea en el fichero /etc/passwd y cada grupo por otra línea en el fichero /etc/group. Cada usuario pertenece a uno o varios grupos y cada recurso pertenece a un usuario y un grupo. Los permisos para un recurso se pueden asignar al propietario, al grupo y a otros (resto de los usuarios). Ahora bien, para mantener un sistema seguro, pero funcional, tendremos que realizar las combinaciones necesarias entre el propietario y grupo de un recurso con los permisos de los propietarios, grupos y otros. Por ejemplo, la unidad de disco flexible tiene las siguientes características: brw-rw-r-- 1 root floppy 2,0 may 5 1998 /dev/fd0 Propietario: root con permiso de lectura y escritura. Grupo: floppy con permiso de lectura y escritura. Otros: resto de los usuario con permiso de lectura. Cuando queramos que un usuario pueda escribir en la unidad de disco, sólo tendremos que incluirlo en el grupo floppy. Cualquier otro usuario que no pertenezca al grupo floppy (salvo root) sólo podrá leer el disquete. El administrador tiene que conocer las necesidades de cada uno de sus usuarios y asignarle los mínimos privilegios para que pueda realizar su trabajo sin resultar un peligro para otros usuarios o el sistema. Más abajo veremos otro mecanismo para poder utilizar un recurso sobre el cual no tenemos privilegios. No se asuste. Los valores que traen por defecto las distribuciones de Linux son suficiente para mantener el sistema seguro. Otro peligro potencial para el sistema es mantener cuentas abiertas que se han dejado de utilizar. Estas cuentas pueden constituir un buen refugio para un potencial atacante y pasar desapercibidas sus acciones. Seguridad de las claves La seguridad de una sola cuenta puede comprometer la seguridad de todo el sistema. Esto es una realidad ante la que debemos protegernos. Por un lado tenemos que asegurarnos de que nuestros usuarios utilizan claves sólidas: No deben ser una palabra conocida. Deberían contener letras, números y caracteres especiales. Deben ser fáciles de recordar y difíciles de adivinar. Para comprobar que este requisito se verifica en nuestro sistema, podemos usar los mismos mecanismos que utilizan los atacantes. Existen varios programas que van probando varias palabras de diccionario, claves habituales y combinaciones de caracteres, que son cifrados con el mismo algoritmo que usa el sistema para mantener sus claves; después son comparadas con el valor de la clave cifrada que quermos averiguar hasta que el valor obtenido de un cifrado coincide con una clave cifrada. Posteriormente notificaremos al usuario que su clave es débil y le solicitaremos que la modifique. Usando este mecanismo, al menos podemos garantizar que no estaremos en inferioridad de condiciones con respecto a los atacantes locales. Un conocido programa para realizar el descifrado de claves es John the Ripper. Por otro lado, las claves cifradas se almacenan en el fichero /etc/passwd. Cualquier usuario del sistema tiene permiso de lectura sobre este fichero. Lo que es peor, agujeros en los navegadores permiten que se puedan leer ficheros arbitrarios de una máquina (evidentemente, que el usuario de navegador tenga permiso para leer), de manera que lleguen hasta un hacker que cree páginas web que exploten estos agujeros. No te pierdas una demostración para Netscape 4.5. Entonces puede parecer a primera vista que nos encontramos con un grave agujero de seguridad. El atacante, una vez obtenido el fichero /etc/passwd no tiene más que ejecutar su programa revientaclaves favorito y sentarse a esperar hasta que empiecen a aparecer nombres de usuario con sus respectivas contraseñas, algo que suele pasar muy rápidamente. Con suerte, si el administrador es ingenuo o dejado, incluso dará con la clave del root, abriéndosele así las puertas a la máquina objetivo. Para solucionar esta vulnerabilidad, podemos recurrir a contraseñas en la sombra (shadow passwords), un mecanismo consistente en extraer las claves cifradas del fichero /etc/passwd y situarlas en otro fichero llamado /etc/shadow, que sólo puede leer el root y dejar el resto de la información en el original /etc/passwd. El fichero /etc/shadow sólo contiene el nombre de usuario y su clave, e información administrativa, como cuándo expira la cuenta, etc. El formato del fichero /etc/shadow es similar al siguiente: usuario : clave : ultimo : puede : debe : aviso : expira : desactiva : reservado usuario: El nombre del usario. clave: La clave cifrada ultimo: Días transcurridos del último cambio de clave desde el día 1/1/70 puede: Días transcurridos antes de que la clave se pueda modificar. tiene: Días transcurridos antes de que la clave tenga que ser modificada. aviso: Dias de aviso al usuario antes de que expire la clave. expira: Días que se desactiva la cuenta tras expirar la clave. desactiva: Días de duración de la cuenta desde el 1/1/70. reservado: sin comentarios. Un ejemplo podría ser: julia : gEvm4sbKnGRlg : 10627 : 0 : 99999 : 7 : -1 : -1 : 134529868 El paquete de Shadow Passwords se puede descargar desde cualquiera de los siguientes sitios, con instrucciones para su instalación: ftp://i17linuxb.ists.pwr.wroc.pl/pub/linux/shadow/shadow-current.tar.gz ftp://ftp.icm.edu.pl/pub/Linux/shadow/shadow-current.tar.gz ftp://iguana.hut.fi/pub/linux/shadow/shadow-current.tar.gz ftp://ftp.cin.net/usr/ggallag/shadow/shadow-current.tar.gz ftp://ftp.netural.com/pub/linux/shadow/shadow-current.tar.gz Para activar contraseñas en la sombra, tiene que ejecutar pwconv como root; acción que creará su fichero /etc/shadow. Si su distribución de Linux no incluye contraseñas en la sombra o encuentra alguna dificultad para incorporar esta característica, existe un documento HOWTO (CÓMO) titulado Shadow-Password-HOWTO que le puede resultar de gran utilidad. Aquí podrá encontrar también información adcional que le puede ayudar a mantener su seguridad local. Hasta ahora hemos visto diversas situaciones en las que podemos aumentar la seguridad usando una clave. Piense que tiene que recordar cada una de las claves que utiliza, piense que NO debe anotar NUNCA su clave en un papel (y menos pegarla a la pantalla). En alguna situación olvidar una clave puede ser un serio problema. El bit SUID/SGID En muchas ocasiones un proceso necesita ejecutarse con unos privilegios mayores (o menores) que el usuario que lo lanzó. Por ejemplo, un usuario puede modificar su propia clave con el mandato passwd, pero esto implica modificar el fichero /etc/passwd, y para esto un usuario "de a pie" no tiene permiso. ¿Cómo se soluciona? Pues activando el bit SUID del comando passwd (nótese que cuando esto sucede, la x de ejecutable pasa a ser una s): ls -la /usr/bin/passw* -r-sr-xr-x 1 root bin 15613 abr 27 1998 /usr/bin/passwd Esto quiere decir que cuando se ejecute, el proceso correspondiente va a tener los privilegios del propietario del comando (es decir, el root), no del usuario que lo lanzó. En otras palabras, el proceso generado por passwd pertenece a root. A primera vista, esto puede parecer una seria brecha de seguridad. Y lo es. Si el programa funciona correctamente, no tiene por qué dar problemas; pero pequeños defectos en el programa pueden ser utilizados por alguien para tratar de ejecutar otro código distinto con los privilegios de este proceso. El método suele ser el desbordamiento de la pila (buffer overflow). Cualquier atacante que haya entrado en un sistema de forma ilegítima intentará dejar una shell con el bit SUID para mantener ese nivel de privilegio cuando vuelva a entrar en el sistema. SGID es lo mismo que SUID, pero aplicado al grupo. Así pues, tenga cuidado con los programas con el bit SUID/SGIG. Puede encontrarlos con root# find / -type f \( -perm -04000 -o -perm -02000 \) -print Tenga en cuenta que algunos programas (como passwd) tienen que tener el bit SUID. Compruebe en los lugares habituales, (que indicamos en la sección correspondiente) que ninguno de los programas propiedad del root o SUID que utiliza en su sistema, tiene un fallo de seguridad conocido que pueda ser explotado. Nunca debe permitir que quede una shell SUID corriendo en el sistema. Si el root deja desatendida la consola durante unos instantes (recuerde, debe utilizar siempre xlock), un intruso podría escribir lo siguiente: # cp /bin/sh /tmp/cuenta-root # chmod 4755 /tmp/cuenta-root creándose una versión SUID de la shell sh. En el futuro, cuando el atacante ejecute ese programa, cuenta-root, ¡se convertirá en root! Si lo escondiera en un directorio oculto, la única forma de encontrarlo sería escaneando el sistema completo como se ha explicado antes. Y recuerde, nuca escriba guiones de shell SUID. Seguridad del root Los peores destrozos de un sistema es probable que no vengan de ningún cracker, o de un malévolo intruso. En muchísimas más ocasiones ha sido el propio administrador el que ha destrozado el sistema. Sí, el root. ¿Por qué? Por descuido, por exceso de confianza, por ignorancia. Evitar este problema no es difícil. Siguiendo unas fáciles normas, podrá protegerse de Vd. mismo: No use la cuenta de root por norma. Evítela. Intente primero cualquier acción como un usuario normal, y si ve que no tiene permiso, piense porqué y use el comando su si es necesario. Ejecute los comandos de forma segura verificando previamente la acción que va a realizar. Por ejemplo si quiere ejecutar rm borrar.*, ejecute primero ls borrar.* y si es lo que pretende modifique el mandato y ejecútelo. Ciertos mandatos admiten una opción (-i) para actuar de forma interactiva. Actívela, si no lo está ya añadiendo estas líneas a su fichero de recursos par la shell: alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' Siempre puede evitar estas preguntas, a veces incordiosas, con el mandato yes, cuando esté seguro de la operación que está realizando: $ yes s|rm borrar.* Como ya deben saber, el directorio actual no está, por defecto, en la ruta de búsqueda de ejecutables (PATH). Esto garantiza que no lanzaremos, sin darnos cuenta, un ejecutable que esté en el directorio actual llamado, por ejemplo ls. Evite que la clave del root viaje por una red sin cifrar. Utilice ssh u otro canal seguro. Limite los terminales desde los que se puede conectar root. Es preferible limitarlo a la consola del sistema. Esto se puede decidir en /etc/securetty. Si necesita una sesión remota como root, entre como usuario normal y luego use su. Actúe de forma lenta y meditada cuando sea root. Sus acciones podrían afectar a un montón de cosas. ¡Piénselo antes de teclear! Hay herramientas como sudo que permiten a ciertos usuarios utilizar comandos privilegiados sin necesidad de ser root, como montar o desmontar dispositivos. Además registra las actividades que se realizan, lo que ayuda a determinar qué hace realmente este usuario. Introducción Una norma básica de seguridad radica en la asignación a cada usuario sólo de los permisos necesarios para poder cubrir las necesidades de su trabajo sin poner en riesgo el trabajo de los demás. ¿Como se puede poner en riesgo el correcto funcionamiento del sistema? Podemos apuntar algunas ideas: violando la privacidad de la información, obteniendo unos privilegios que no le correspoden a un usuario, haciendo un uso desmedido de los recursos o modificando información legítima contenida en una máquina, como pueden ser el contenido de una página web o una base de datos. ¿Cómo podemos mantener un almacenamiento seguro? La respuesta no puede ser concreta, pero sí que se pueden tomar ciertas medidas que garanticen un mínimo de seguridad y funcionalidad. Si Vd. va a administrar un sistema Linux para dar servicio a diversos usuarios, debería tener algunas nociones sobre sistemas de ficheros, que pasamos a explicar a continuación. El árbol de directorios Para quienes no estén familiarizados con las características del sistema de almacenamiento de información en sistemas Unix, hay que indicar que se organizan en un único árbol de directorios. Cada soporte, disco, partición, disquete o CD tiene su propia organización lógica, un sistema de ficheros. Para poder usar uno de estos soportes tenemos que "montarlo" en un directorio existente. El contenido de la partición nos aparecerá como el contenido del directorio. Un primer criterio para mantener un sistema seguro sería hacer una correcta distribución del espacio de almacenamiento. Esto limita el riesgo de que el deterioro de una partición afecte a todo el sistema. La pérdida se limitaría al contenido de esa partición. No hay unas normas generales aplicables; el uso al que vaya destinado el sistema y la experiencia son las bases de la decisión adecuada, aunque sí podemos dar algún consejo: Si el sistema va a dar servicio a múltiples usuarios que requieren almacenamiento para sus datos privados, sería conveniente que el directorio /home tuviera su propia partición. Si el equipo va a ser un servidor de correo, impresión, etc., el directorio /var o incluso /var/spool podrían tener su propia partición. Algunos directorios son necesarios en la partición raíz. Contienen datos que son necesarios durante el proceso de arranque del sistema. Son /dev/, /etc, /bin, /sbin, /lib, /boot. El directorio /usr/local contiene los programas compilados e instalados por el administrador. Resulta conveniente usar una partición propia para proteger estos programas personalizados de futuras actualizaciones del sistema. Este criterio también se puede aplicar al directorio /opt. Permisos Linux, como sistema multiusuario, asigna un propietario y un grupo a cada fichero (y directorio) y unos permisos al propietario, al grupo y al resto de los usuarios. La forma más rápida de comprobar esta característica es usar el comando ls -la. Así nos aparece el tipo de fichero, el propietario, el grupo, los permisos e información adicional. Por supuesto, el sistema de ficheros tiene que admitir esta característica, como es el caso del sistema de ficheros ext2 (Linux nativo). En los sistemas de ficheros pensados para entornos monousario, como msdos o vfat, no tenemos esta característica, por lo que son inseguros y su uso no es aconsejable bajo Linux. Es conveniente tener claros los permisos que se pueden asignar a un fichero o directorio. Puede que algunas aplicaciones no funcionen bien si algún fichero no tiene el permiso o el propietario correctos, bien por falta de permisos o bien por exceso. Algunas aplicaciones son un poco quisquillosas en este aspecto. Por ejemplo, fetchmail es un programa que podemos usar para recoger el correo de un servidor pop (por ejemplo). Este programa se configura en el fichero .fetchmailrc, donde tendremos que indicar la clave que usamos en el servidor; pues bien, si este fichero tiene permiso de lectura para otro usuario que no sea el propietario, fetchmail no funcionará. Otras aplicaciones, como por ejemplo inn (un servidor de noticias de Internet) tampoco funcionará si el propietario de sus ficheros es otro usuario distinto a news. Todo esto está perfectamente documentado en cada uno de los programas, por lo que es conveniente leer la documentación que aporta y las páginas del manual. Permisos de ficheros y directorios Como decíamos anteriormente, tenemos que asegurarnos de que los ficheros del sistema y los de cada usuario sólo son accesibles por quienes tienen que hacerlo y de la forma que deben. No sólo hay que protegerse de ataques o miradas indiscretas, también hay que protegerse de acciones accidentales. En general, cualquier sistema UNIX divide el control de acceso a ficheros y directorios en tres elementos: propietario, grupo y otros. Tanto el propietario como el grupo són únicos para cada fichero o directorio. Eso sí, a un grupo pueden pertenecer múltiples usuarios. Otros hace referencia a los usuarios que ni son el propietario ni pertenecen al grupo. Todas estas características se almacenan en el sistema de ficheros, en particular en un i-nodo, que es un elemento que describe las características de un fichero en disco (salvo su nombre). Una rápida explicación de los permisos Unix: Propiedad: Qué usuario y grupo posee el control de los permisos del i-nodo. Se almacenan como dos valores numéricos, el uid (user id) y gid (group id). Permisos: Bits individuales que definen el acceso a un fichero o directorio. Los permisos para directorio tienen un sentido diferente a los permisos para ficheros. Más abajo se explican algunas diferencias. Lectura (r): Fichero: Poder acceder a los contenidos de un fichero Directorio: Poder leer un directorio, ver qué ficheros contiene Escritura (w): Fichero: Poder modificar o añadir contenido a un fichero Directorio: Poder borrar o mover ficheros en un directorio Ejecución(x): Fichero: Poder ejecutar un programa binario o guion de shell Directorio: Poder entrar en un directorio Estos permisos se pueden aplicar a: usuario (u): El propietario del fichero grupo (g): El grupo al que pertenece el fichero otros (o): El resto de los usuarios del sistema Nota: Tenga mucho cuidado con aquellos directorios que tengan permiso de escritura. Cualquiera podría borrar un fichero, aunque no sea de su propiedad y esto puede ser un riesgo, tanto para el sistema como para los datos de los usuarios. Además tenemos otros bits de permisos que no podemos pasar por alto cuando estamos tratando de temas de seguridad. Sticky bit: El sticky bit tiene su significado propio cuando se aplica a directorios. Si el sticky bit está activo en un directorio, entonces un usuario sólo puede borrar ficheros que son de su propiedad o para los que tiene permiso explícito de escritura, incluso cuando tiene acceso de escritura al directorio. Esto está pensado para directorios como /tmp, que tienen permiso de escritura global, pero no es deseable permitir a cualquier usuario borrar los ficheros que quiera. El sticky bit aparece como 't' en los listados largos de directorios. drwxrwxrwt 19 root root 8192 Jun 24 14:40 tmp Attributo SUID: (Para Ficheros) Este bit describe permisos al identificador de usuario del fichero. Cuando el modo de acceso de ID de usuario está activo en los permisos del propietario, y ese fichero es ejecutable, los procesos que lo ejecutan obtienen acceso a los recursos del sistema basados en el usuario que crea el proceso (no el usuario que lo lanza). Por ejemplo /usr/bin/passwd es un ejecutable propiedad de root y con el bit SUID activo. ¿Por qué? Este programa lo puede usar cualquier usuario para modificar su clave de acceso, que se almacena en -rw-r--r-- 1 root root 1265 Jun 22 17:35 /etc/passwd pero según los permisos que observamos en este fichero, sólo root puede escribir y modificar en él. Entonces sería imposible que un usuario pudiera cambiar su clave si no puede modificar este fichero. La solución para este problema consiste en activar el bit SUID para este fichero: -r-s--x--x 1 root root 10704 Apr 14 23:21 /usr/bin/passwd de forma que cuando se ejecute, el proceso generado por él es un proceso propiedad de root con todos los privilegios que ello acarrea. ¿Piensa que esto puede ser un riesgo para la seguridad? Efectivamente lo podría ser si no mantenemos un mínimo de atención, ya que en este tipo de programas se pueden producir desbordamientos de búfer que comprometan su sistema. Recuerde siempre lo siguiente: No asignar el bit SUID salvo cuando sea estrictamente necesario. Comprobar que cualquier programa con est bit activo no tiene ningún desbordamiento de buffer (conocido). No asignarlo jamás si el programa permite salir a la shell. Atributo SGID: (Para ficheros) Si está activo en los permisos de grupo, este bit controla el estado de "poner id de grupo" de un fichero. Actúa de la misma forma que SUID, salvo que afecta al grupo. El fichero tiene que ser ejecutable para que esto tenga algún efecto. Atributo SGID: (Para directorios) Si activa el bit SGID en un directorio ( con "chmod g+s directorio"), los ficheros creados en ese directorio tendrán puesto su grupo como el grupo del directorio. A continuación se describen los significados de los permisos de acceso individuales para un fichero. Normalmente un fichero tendrá una combinación de los siguientes permisos: -r-------- Permite acceso de lectura al propietario --w------- Permite modificar o borrar el fichero al propietario ---x------ Permite ejecutar este programa al propietario, (los guiones de shell también requieren permisos de lectura al propietario) ---s------ Se ejecutará con usuario efectivo ID = propietario -------s-- Se ejecutará con usuario efectivo ID = grupo -rw------T No actualiza "instante de última modificación". Normalmente usado para ficheros de intercambio (swap) ---t------ No tiene efecto. (antes sticky bit) A continuación se describen los significados de los permisos de acceso individuales para un directorio. Normalmente un directorio tendrá una combinación de los siguientes permisos: dr-------- Permite listar el contenido pero no se pueden leer los atributos. d--x------ Permite entrar en el directorio y usar en las rutas de ejecución completas. dr-x------ Permite leer los atributos del fichero por el propietario. d-wx------ Permite crear/borra ficheros. d------x-t Previene el borrado de ficheros por otros con acceso de escritura. Usado en /tmp d---s--s-- No tiene efecto Los ficheros de configuración del sistema (normalmente en /etc) es habitual que tengan el modo 640 (-rw-r-----), y que sean propiedad del root. Dependiendo de los requisitos de seguridad del sistema, esto se puede modificar. Nunca deje un fichero del sistema con permiso de escritura para un grupo o para otros. Algunos ficheros de configuración, incluyendo /etc/shadow, sólo deberían tener permiso de lectura por root, y los directorios de /etc no deberían ser accesibles, al menos por otros. SUID Shell Scripts Los scripts de shell SUID son un serio riesgo de seguridad, y por esta razón el núcleo no los acepta. Sin importar lo seguro que piense que es su script de shell, puede ser utilizado para que un cracker pueda obtener acceso a una shell de root. Enlaces Los sistemas de ficheros de tipo Unix permiten crear enlaces entre ficheros. Los enlaces pueden ser duros o simbólicos. El primer caso consiste en asignar más de un nombre a los mismos datos en disco. Un enlace duro no consume más espacio adicional que el que pueda representar el nuevo nombre que le damos a unos datos y sólo es válido para ficheros que estén en el mismo sistema de ficheros, es decir, la misma partición. Los enlaces simbólicos son ficheros que apuntan a otro fichero o directorio. Crean un nuevo fichero pequeño que contiene la ruta del fichero destino. Verificar la integridad con Tripwire Una forma cómoda de detectar ataques locales (y también de red) en su sistema es ejecutar un programa que verifique la integridad de la información almacenada en los ficheros, tal como Tripwire. El programa Tripwire ejecuta varios cheksums de todos los binarios importantes y ficheros de configuración y los compara con una base de datos con valores de referencia aceptados como buenos. Así se detecta cualquier cambio en los ficheros. Es buena idea instalar tripwire en un disquete y protegerlo físicamente. De esta forma no se puede alterar tripwire o modificar su base de datos. Una vez que tripwire se ha configurado, es buena idea ejecutarlo como parte de de los deberes habituales de administración para ver si algo ha cambiado. Incluso puede añadir una entrada a crontab para ejecutar tripwire desde su disquete todas las noches y enviar por correo los resultados y verlos por la mañana, algo como esto: MAILTO=gonzalo 15 05 * * * root /usr/local/bin/tripwire que le enviará por correo un informe cada mañana a las 5:15 am. Tripwire puede ser una de la mejores herramientas para detectar intrusos antes de que tenga otro tipo de noticias de ellos. Como son muchos los ficheros que se modifican en su sistema, debería tener cuidado para discernir lo que es la actividad de un cracker y lo que es la activiadad normal del sistema. Limitar el espacio asignado a los usuarios Una ataque posible a cualquier sistema es intentar consumir todo el espacio del disco duro. Una primera protección contra este ataque es separar el árbol de directorios en diversos discos y particiones. Pero esto puede no ser suficiente y por eso el núcleo del sistema proporciona la posibilidad de controlar el espacio de almacenamiento por usuario o grupo. Lo primero que tendríamos que hacer es asegurarnos de que nuestro núcleo tiene soporte para las cuotas de usuarios. # dmesg | grep quotas VFS: Diskquotas version dquot_6.4.0 initialized En caso contrario, el núcleo no ha sido compilado con soporte para el sistema de cuotas para usuarios. En este caso será necesario compilar un nuevo núcleo Linux. El resto del procedimiento de instalación se puede realizar utilizando la documentación existente. Ahora es necesario editar el fichero /etc/fstab y añadir usrquota o grpquota en la partición o particiones en las que nos interese limitar el espacio de almacenamiento. El siguiente ejemplo establece el sistema de cuotas para el uso del directorio /home montado en la partición /dev/hda3: /dev/hda3 /home ext2 defaults,usrquota 1 2 Ahora podemos recopilar la información de las particiones donde se haya definido el sistema de cuotas. Podemos usar el comando: /sbin/quotachek -av Scanning /dev/hda3 [/home] done Checked 215 directories and 2056 files Using quotafile /home/quota.user Updating in-core user quotas Al ejecutar este comando también se crea un fichero llamado quota.user o quota.grp en la partición o particiones afectada(s). # ls -la /home/quota.user -rw------- 1 root root 16224 Feb 04 14:47 quota.user Ya está activo el sistema de cuotas y la próxima vez que se inicie el sistema, se activarán automáticamente en todas las particiones que se hayan definido. Ya no será necesario volver a ejecutar manualmente este comando, ya que el sistema lo hara de forma automática al comprobar y montar cada uno de los sistemas de ficheros desde el fichero /etc/rc.d/rc.sysinit. El siguiente paso es definir la cuotas para cada usuario. Para ello existen dos métodos. El primero consiste en editar la quota de cada usuario. Por ejemplo, para editar la cuota del usuario antonio, se ejecuta desde el usuario root el comando: # edquota -u antonio Quotas for user antonio: /dev/hda3: blocks in use:15542,limits (soft=0,hard=0) inodes in use: 2139, limits (soft = 0, hard = 0) El sistema de cuotas de Linux permite limitar el número de bloques y el número de i-nodos que un usuario puede tener. Los valores a modificar son los límites que están puestos entre paréntesis (que ahora valen 0). Ahí se puede especificar cualquier cantidad (en Kbytes). Por ejemplo, para limitar la cuota de disco del usuario antonio a 1 Mb, se pondría lo siguiente: Quotas for user antonio: /dev/hda7:blocks in use:18542,limits (soft=1024,hard=1024) inodes in use: 1139, limits (soft = 0, hard = 0) El límite soft es un límite de aviso y el límite hard es un límite insalvable, es decir, el sistema ya no le asigna más espacio. De una forma análoga, podríamos modificar la cuota de espacio asignada al grupo users con: # edquota -g users Normas prácticas para aumentar la seguridad Aunque sea necesario tener claros los conceptos y dedicarle algo de tiempo a una correcta planificación, tampoco los pelligros expuestos tienen por qué asustar a nadie. Todas las distribuciones de Linux traen unos valores por defecto que son más que razonables para cubrir unas necesidades normales. nosuid, nodev, noexec. Salvo casos excepcionales, no debería haber ninguna razón para que se permita la ejecución de programas SUID/SGID en los directorios home de los usuarios. Esto lo podemos evitar usando la opción `nosuid' en el fichero /etc/fstab para las particiones que tengan permiso de escritura por alguien que no sea el root. También puede ser útil usar `nodev' y `noexec' en las particiones de los directorios personales de los usuarios y en /var, lo que prohíbe la creación dispositivos de bloque o carácter y la ejecución de programas. Sistemas de ficheros en red Si exporta sistemas de archivos vía NFS, esté seguro de configurar /etc/exports con los accesos lo más restrictivos posibles. Esto significa no usar plantillas, no permitir acceso de escritura a root y montar como sólo lectura siempre que sea posible. umask Configure la máscara de creación de ficheros para que sea lo más restrictiva posible. Son habituales 022, 033, y la más restictiva 077, y añadirla a /etc/profile. El comando umask se puede usar para determinar el modo de creación de ficheros por defecto en su sistema. Es el complemento octal a los modos de fichero deseado. Si los ficheros se crean sin ningún miramiento de estado de permisos, el usuario, de forma inadvertida, podrá asignar permisos de lectura o escritura a alguien que no debería tenerlos. De forma típica, el estado de umask incluye 022, 027 y 077, que es lo más restrictivo. Normalmente umask se pone en /etc/profile y por tanto se aplica a todos los usuarios del sistema. Por ejemplo, puede tener una línea parecida a la siguiente: # Pone el valor por defecto de umask del usuario umask 033 Esté seguro de que el valor umask de root es 077, lo cual desactiva los permisos de lectura, escritura y ejecución para otros usuarios, salvo que explícitamente use chmod(1). Si está usando , y utiliza su esquema de creación de idetificador de grupos y usuarios (User Private Groups), sólo es necesario usar 002 para umask. Esto se debe a que al crear un usuario se crea un grupo exclusivo para ese usuario. Limitar recursos Ponga el límites al sistema de ficheros en lugar de 'ilimitado' como está por defecto. Puede controlar el límite por usuario utilizando el módulo PAM de límite de recursos y /etc/pam.d/limits.conf. Por ejemplo, los límites para un grupo `users' podría parecer a esto: @users hard core 0 @users hard nproc 50 @users hard rss 5000 Esto dice que se prohiba la creación de ficheros core, restringe el número de procesos a 50, y restringe el uso de memoria por usuario a 5M. wtmp, utmp Los ficheros /var/log/wtmp y /var/run/utmp contienen los registros de conexión de todos los usuarios de su sistema. Se debe mantener su integridad, ya que determinan cuándo y desde dónde entró en su sistema un usuario o un potencial intruso. Los ficheros deberían tener los permisos 644, sin afectar a la normal operación del sistema. Sticky bit El sticky bit se puede usar para prevenir borrados accidentales o proteger un fichero para sobreescritura. También previene que alguien cree enlaces simbólicos a un fichero, que ha sido el origen de ataques basados en el borrado de los ficheros /etc/passwd o /etc/shadow. Vea la página del manual de chattr(1) para tener más información. SUID y SGID Los ficheros SUID y SGID de su sistema son potenciales riesgos de seguridad y deberían ser controlados. Como estos programas garantizan privilegios especiales al usuario que los ejecuta, es necesario estar seguro que no hay instalados programas inseguros. Un truco favorito de los crackers es explotar programas con el bit SUID, y entonces dejar un programa SUID como puerta trasera para entrar la próxima vez, incluso aunque el agujero original ya esté tapado. Encuentre todos los programas SUID/SGID de su sistema y mantener la pista de lo que son, para que esté prevenido de cualquier cambio que podría indicar un potencial intruso. Use el siguiente comando para localizar todos los progrmas SUID/SGID en su sistema: root# find / -type f \( -perm -04000 -o -perm -02000 \) Incluso podría crear una base de datos de progrmas SUID con root# find / -type f \( -perm -04000 -o -perm -02000 \)>/var/suid y posteriormente verificar si ha aparecido alguno nuevo con el siguiente guión: for fich in `find / -type f \( -perm -04000 -o -perm -02000 \)` do if ! grep $fich /var/suid then echo "$fich es un nuevo fichero con SUID" fi done echo "Actualiza la base de datos si es necesario" Puede eliminar los permisos SUID o SGIG de un programa con chmod(1), y siempre puede devolverlo a su estado original si piensa que es absolutamente necesario. Permisos de escritura Los ficheros con permiso de escritura global, particularmente los del sistema, pueden ser un agujero de seguridad si un cracker obtiene acceso a su sistema y los modifica. Además, los directorios con permiso de escritura global son peligrosos, ya que permiten a un cracker añadir y borrar los ficheros que quiera. Para localizar los ficheros con permiso de escritura global, use el siguiente comando: root# find / -perm -2 -print y esté seguro de saber por qué tienen esos permisos de escritura. En el curso normal de una operación los ficheros tendrán permisos de escritura, incluidos algunos de /dev y enlaces simbólicos. Ficheros extraños Los ficheros sin propietario también pueden ser un indicio de que un intruso ha accedido a su sistema. Puede localizar los ficheros de su sistema que no tienen propietario o que no pertenecen a un grupo con el comando: root# find / -nouser -o -nogroup -print Ficheros peligrosos La localización de ficheros .rhosts debería ser uno de los deberes regulares de la administración de su sistema, ya que estos ficheros no se deberían permitir en sus sistema. Recuerde que un cracker sólo necesita una cuenta insegura para potencialmente obtener acceso a toda su red. Puede localizar todos los ficheros .rhosts de su sistema con el siguiente comando: root# find /home -name .rhosts -print Permisos Finalmente, antes de cambiar permisos en cualquier sistema de ficheros, esté seguro de que entiende lo que hace. Nunca cambie permisos de un fichero simplemente porque parezca la forma fácil de hacer que algo funcione. Siempre debe determinar porqué el fichero tiene esos permisos y propietario antes de modificarlos. ntroducción Linux tiene la gran ventaja de tener disponible el código fuente del núcleo; en realidad Linux propiamente dicho es sólo el núcleo. Esto nos permite la posibilidad de crear núcleos a medida de nuestras necesidades. Y parte de nuestras necesidades será la mejora de la seguridad. Para compilar el núcleo primero tendremos que configurar las opciones que nos interesen. Los fuentes del núcleo se guardan habitualmente en el directorio /usr/src/linux, y una vez situados en él, tendremos que ejecutar «make menuconfig» (o «make xconfig» si estamos en modo gráfico). Así nos aparecen todas las opciones de configuración. Dentro de ellas nos vamos a fijar en las que están relacionadas con la seguridad, viendo una breve explicación de lo que hacen y cómo se usan. Como el núcleo controla las características de red de su sistema, es importante que el núcleo tenga las opciones que garanticen la seguridad y que el propio núcleo no pueda ser comprometido. Para prevenir algunos de los últimos ataques de red, debe intentar mantener una versión del núcleo actualizada. Puede encontrar las nuevas versiones del núcleo en The Linux Kernel Archives. Una de las características más interesantes del núcleo Linux es la posibilidad de realizar enmascaramiento de direcciones. Con esta técnica podremos dar acceso a Internet a una red local con direcciones privadas de forma transparente, es decir, sin ningún tipo de modificación en la configuración de las aplicaciones clientes, a diferencia de los proxies clásicos. Consiste en que el sistema Linux que posee la conexión hacia el exterior recibe las peticiones de conexión desde los equipos de la red local que tienen direcciones no válidas para Internet. El equipo Linux rehace la petición poniendo su propia dirección IP y modificando el puerto al que tiene que responder el equipo remoto. Cuando Linux recibe la respuesta del equipo remoto, mira el puerto al que va destinado y vuelve a rehacer el paquete para enviarlo al equipo concreto de la red local que solicitó la conexión. De esta forma podemos mantener un nivel aceptable de protección para los equipos de la red local, ya que sólo podrán recibir respuestas a peticiones que ellos mismos originaron. Opciones de compilación del núcleo IP: Drop source routed frames (CONFIG_IP_NOSR) Esta opción debería estar activada. Source routed frames contienen la ruta completa de sus destinos dentro del paquete. Esto significa que los enrutadores a través de los que circula el paquete no necesitan inspeccionarlo, y sólo lo reenvían. Esto podría ocasionar que los datos que entran a su sistema puedan ser un exploit potencial. IP: Firewalling (CONFIG_IP_FIREWALL) Esta opción es necesaria si va a configurar su máquina como un cortafuegos, hacer enmascaramiento o desea proteger su estación de trabajo con línea telefónica de que alguien entre a través de su interfaz PPP. Con esta opción activa podremos usar el filtrado de paquetes en el propio núcleo del sistema, decidiendo el tráfico que llega o sale de nuestro equipo. IP: forwarding/gatewaying (CONFIG_IP_FORWARD) Si activa reenvío IP (IP forwarding), su Linux esencialmente se convierte en un encaminador (router). Si su máquina está en una red, podría estar enviando datos de una red a otra, y quizás saltándose un cortafuegos que esté puesto allí para evitar que esto suceda. A los usuarios con un puesto aislado y conexión telefónica les interesará desactivar esta característica. Otros usuarios deberían pensar en las implicaciones de seguridad de hacer esto en su caso concreto. Las máquinas que actúen como cortafuegos tendrán que activar esta característica y usarla junto al software cortafuegos. Puede activar y desactivar el reenvío IP (IP forwarding) dinámicamente usando el siguiente comando: root# echo 1 > /proc/sys/net/ipv4/ip_forward y desactivarlo con el comando: root# echo 0 > /proc/sys/net/ipv4/ip_forward Ese fichero (y muchos otros ficheros de /proc) aparecerá con longitud cero, pero en realidad no es un fichero en el sentido clásico, sino que son datos guardados en memoria. IP: firewall packet logging (CONFIG_IP_FIREWALL_VERBOSE) Esta opción le suministra información sobre los paquetes que su cortafuegos recibe, como remitente, destinatario, puerto, etc. Así podremos rastrear los orígenes de los posibles intentos de ataque. IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG) Generalmente esta opción está desactivada, pero si está construyendo un host cortafuegos o para enmascaramiento, deberá activarla. Cuando se envían paquetes de un host a otro, no siempre se envían como simples paquetes de datos, sino que se fragmentan en varios trozos. El problema es que los números de puerto sólo se almacenan en el primer fragmento. Esto significa que alguien puede insertar información en el resto de los paquetes para su conexión que se supone que no deberían estar allí. IP: syn cookies (CONFIG_SYN_COOKIES) El ataque SYN es un ataque de denegación de servicio (denial of service, DoS) que consume todos los recursos de su máquina forzando un reinicio. No podemos encontrar ninguna razón por la que no debiera activar esto. Dispositivos del núcleo Hay algunos dispositivos de bloque y carácter disponibles en Linux que también le resultarán utiles para mantener la seguridad de sus sistema. Los dos dispositivos /dev/random y /dev/urandom los proporciona el núcleo para generar datos aleatorios en cualquier instante. Por ejemplo, se utilizan para iniciar un número de secuencia para conexiones TCP/IP. Ambos, /dev/random y /dev/urandom, deberían ser suficientemente seguros como para generar claves PGP, SSH y otras aplicaciones donde son un requisito números aleatorios seguros para generar claves válidas para una sesión. Los atacantes no deberían ser capaces de determinar el siguiente número dada cualquier secuencia de números con este origen. Se han dedicado muchos esfuerzos para garantizar que los números que se obtienen de esta fuente son pseudoaleatorios en todos los sentidos de la palabra pseudoaleatorio. La única diferencia es que /dev/random suministra bytes aleatorios y le hace esperar para que se acumulen más. Observe que en algunos sistemas puede bloquear durante un rato a la espera de que se genere una nueva entrada de usuario al sistema. Por tanto debe tener cuidado al usar /dev/random. (Quizás lo mejor que puede hacer es usarlo cuando esté generando información sensible de claves e indicarle al usuario que pulse una tecla repetidas veces hasta que indique por la pantalla "Ya es suficiente"). /dev/random tiene gran calidad de entropía, midiendo tiempos entre interrupciones, etc. Bloquea hasta que hay disponibles suficientes bits de datos aleatorios. /dev/urandom es parecido, no es tan seguro, pero suficiente para la mayoría de las aplicaciones. Puede leer los dispositivos usando algo parecido a lo siguiente: root# head -c 6 /dev/urandom | uuencode - Esto imprimirá seis caracteres aleatorios en la consola, válidos para la generación de una clave. SEGURIDAD EN RED Introducción La seguridad de las conexiones en red merecen en la actualidad una atención especial, incluso por medios de comunicación no especializados, por el impacto que representan los fallos ante la opinión pública. El propio desarrollo tanto de Linux, como de la mayoría del software que lo acompaña, es de fuentes abiertas. Podemos ver y estudiar el código. Esto tiene la ventaja de que la seguridad en Linux no sea una mera apariencia, sino que el código está siendo escrutado por muchas personas distintas que rápidamente detectan los fallos y los corrigen con una velocidad asombrosa. Si además comprendemos los mecanismos que se siguen en las conexiones en red, y mantenemos actualizados nuestros programas, podemos tener un nivel de seguridad y una funcionalidad aceptables. Tampoco tienen las mismas necesidades de seguridad un equipo doméstico, con conexiones esporádicas a Internet, que un servidor conectado permanentemente y que actúe como pasarela entre una intranet e Internet. Para describir las pautas de actuación seguras iremos examinando cómo actúan las conexiones y cómo podemos protegerlas. inetd Para atender las solicitudes de conexión que llegan a nuestro equipo existe un demonio llamado inetd que está a la escucha de todos los intentos de conexión que se realicen a su máquina. Cuando le llega una solicitud de conexión irá dirigida a un puerto (número de servicio, quizás sea más claro que puerto), por ejemplo, el 80 sería una solicitud al servidor de páginas web, 23 para telnet, 25 para smtp, etc. Los servicios de red que presta su máquina están descritos en /etc/inetd.conf (y en /etc/services los números de puertos). Por ejemplo, en /etc/inetd.conf podemos encontrar las siguientes líneas: (...) pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d # imap stream tcp nowait root /usr/sbin/tcpd imapd (...) Esto quiere decir que, cuando llegue una solicitud de conexión al puerto 110 (pop3) se ejecutará el programa /usr/sbin/tcpd ipop3d. Sin embargo, el servicio imap está deshabilitado (está comentado con un # delante), por lo que el sistema no le responde. TCP Wrapper El siguiente paso es /usr/sbin/tcpd, que es el tcp_wrapper: un servicio que verifica el origen de las conexiones con su base de datos /etc/hosts.allow (equipos autorizados) y /etc/hosts.deny (equipos a los que se les deniega la conexión). tcpd anota todos los intentos de conexión que le llegan en /var/log/secure para que tenga la posibilidad de saber quién intenta conectarse a su máquina y si lo consigue. Si tcpd autoriza la conexión, ejecuta ipop3d que es el programa que realmente atiende la conexión, ante el cual se tiene que validar el usuario mediante una clave. Observe que ya llevamos tres niveles de seguridad: prestar un servicio, autorizar un conexión y validar un usuario. Un consejo que es conveniente seguir: No tenga abiertos los servicios que no necesita; esto supone asumir un riesgo a cambio de nada. Tampoco limite la funcionalidad del sistema, si tiene que usar un servicio, hágalo sabiendo lo que hace. También hay que asegurarse de que el programa ipop3d no tenga ninguna vulnerablidad, es decir, que esté actualizado. Existen numerosos medios para estar al día de las vulnerabilidades que aparecen. Una buena lista de correo o una revista electrónica tal vez sean la forma más rápida de conocer los incidentes, las causas y las soluciones. Posiblemente la mejor lista de correo para el mundo Unix sea Bugtraq (busque en forums). Pero esto no es todo, además puede filtrar las conexiones que le lleguen desde el exterior para que ni siquiera alcancen a los tcp_wrappers. Por ejemplo, en el caso de conexiones a Internet por módem: ipchains -A input -j DENY -s 0/0 -d $4/32 23 -p tcp -i ppp0 -l poniendo la anterior línea en el fichero /etc/ppp/ip-up (y ipchains -F input en ip-down) estaríamos añadiendo (-A) un filtro de entrada (input), que deniega (-j DENY) desde cualquier sitio de internet (-s 0/0) dirigidas a nuestro equipo (-d $4/32) al puerto telnet (23) por tcp (-p tcp) que lleguen desde internet (en este caso -i ppp0) y que además las anote en el registro de incidencias (-l) ($4 es la dirección IP que obtenemos dinámicamente). El mecanismo de filtrado de conexiones se realiza en el núcleo del sistema operativo y si ha sido compilado con estas opciones. Normalmente lo está. Este filtrado se realiza a nivel de red y transporte: cuando llega un paquete por un interfaz de red se analiza siguiendo los filtros de entrada. Este paquete puede ser aceptado, denegado o rechazado, en este último caso se avisa al remitente. Si los filtros de entrada aceptan el paquete, pasa al sistema si era su destino final o pasa por los filtros de reenvío o enmascaramiento, donde se vuelve a repetir una de las acciones. Por último, los paquetes que proceden del propio sistema o los que han sido aceptados por los filtros de reenvío o enmascaramiento pasan al filtro de salida. En cualesquiera de estos filtros se puede indicar que lo anote en el registro de incidencias. Registro y conocimiento de incidencias A parte de todo esto, puede conocer las incidencias que ocurren durante el funcionamiento del sistema. Por un lado conviene familiarizarse con los procesos que se ejecutan habitualmente en una máquina. Es una buena costumbre ejecutar periódicamente ps axu. Cualquier cosa extraña debiéramos aclararla. Puede matar cualquier proceso con la orden kill -9 pid (o killall -9 nombre_proceso). Pero en caso de ataque activo, lo mejor es desconectar de la red inmediatamente, si es posible, claro está. Después tenemos los registros de incidencias (las ubicaciones pueden ser diferentes dependiendo del sistema, pero no radicalmente distintas) de /var/log. Trabajando en modo texto se puede hacer en una consola virtual (como root) tail -f /var/log/messages y tail -f /var/log/secure y de esta forma podemos ir viendo las incidencias del sistema. Conviene también familiarizarse con las anotaciones que aparecen habitualmente para diferenciarlas de las que puedan presentar un problema. En modo gráfico hay un programa llamado ktail que le muestra las incidencias de una forma similar a la anterior. Comunicaciones seguras Por último, nos interesará mantener unas comunicaciones seguras para garantizar la privacidad e integridad de la información. Actualmente existen las herramientas necesarias para cada necesidad. Podemos usar cifrados simétricos como pgp y gpg para documentos, correo electrónico y comunicaciones sobre canales inseguros Podemos crear canales de comunicación seguros de distinto tipo: SSH (Secure Shell), stelnet: SSH y stelnet son programas que le permiten efectuar conexiones con sistemas remotos y mantener una conexión cifrada. Con esto evitamos, entre otras cosas, que las claves circulen por la red sin cifrar. Cryptographic IP Encapsulation (CIPE): CIPE cifra los datos a nivel de red. El viaje de los paquetes entre hosts se hace cifrado. A diferencia de SSH que cifra los datos por conexión, lo hace a nivel de socket. Así un conexión lógica entre programas que se ejecutan en hosts diferentes está cifrada. CIPE se puede usar en tunnelling para crear una Red Virtual Privada. El cifrado a bajo nivel tiene la ventaja de poder hacer trabajar la red de forma transparente entre las dos redes conectadas en la RVP sin ningún cambio en el software de aplicación. SSL: o Secure Sockets Layer, fue diseñado y propuesto en 1994 por Netscape Communications Corporation junto con su primera versión del Navigator como un protocolo para dotar de seguridad a las sesiones de navegación a través de Internet. Sin embargo, no fue hasta su tercera versión, conocida como SSL v3.0 que alcanzó su madurez, superando los problemas de seguridad y las limitaciones de sus predecesores. En su estado actual proporciona los siguientes servicios: Cifrado de datos: la información transferida, aunque caiga en manos de un atacante, será indescifrable, garantizando así la confidencialidad. Autenticación de servidores: el usuario puede asegurarse de la identidad del servidor al que se conecta y al que posiblemente envíe información personal confidencial. Integridad de mensajes: se impide que modificaciones intencionadas o accidentales en la información mientras viaja por Internet pasen inadvertidas. Opcionalmente, autenticación de cliente: permite al servidor conocer la identidad del usuario, con el fin de decidir si puede acceder a ciertas áreas protegidas. Consejos finales Limite las acciones que realice como root al mínimo imprescindible, y sobre todo no ejecute programas desconocidos. Por ejemplo, en un juego (el quake) que distribuía una revista había un programa llamado runme que enviaba por mail las características de la máquina a una dirección de correo. En este caso se trataba de un troyano inofensivo, pero ofrece una idea de lo que puede hacer un programa ejecutado sin saberse lo que hace. Linux también tiene la posibilidad de proporcionar acceso transparente a Internet a una red local mediante IP masquerade. En este caso, si usamos direcciones de red privadas, nos aseguramos que los equipos de la red interna no son accesibles desde Internet si no es a través del equipo Linux. También podemos instalar un servidor proxy con caché, que a la vez que actúa de filtro de conexiones a nivel de aplicación, puede acelerar el acceso a servicios desde la red local. SEGURIDAD DEL ROOT Introducción A menudo, el mayor enemigo del sistema es el propio administrador del sistema, sí, tiene todos los privilegios y cualquier acción puede ser irreversible y hacerle perder posteriormente mucho más tiempo que el que hubiera perdido por realizar las tareas de forma segura. Puede borrar cualquier fichero e incluso destruir el propio sistema, mientras que un usuario «normal» sólo puede perjudicarse a sí mismo. Por estos motivos, conseguir privilegios de root es la meta de cualquier ataque. Tampoco hay que alarmarse. Piense que en un sistema operativo monousuario cualquiera podría darle formato al disco duro y perder toda la información almacenada o borrar cuaquier fichero necesario para el funcionamiento del sistema. En un sistema estilo Unix, como Linux, esto sólo lo podría hacer el usuario root. Hábitos seguros La seguridad del administrador es simple, en mayor medida consiste en tener unos hábitos seguros y también en utilizar herramientas seguras. Una primera norma que siempre debería tener presente es usar la cuenta de root sólo para realizar tareas concretas y breves y el resto hacerlo como usuario normal. Es una costumbre muy peligrosa usar todo el tiempo la cuenta de root. Al principio, a los usuarios de Linux les gusta sentir todo el poder de la cuenta de root, les molesta que su propio sistema les deniegue el permiso para hacer algo, pero van cambiando de opinión poco a poco, conforme se van familiarizando con el sistema o cuando han realizado un destrozo de esos que nos hacen proferir insultos contra nosotros mismos acompañados de un desesperado puñetazo en la mesa (o en el teclado). Piense que cuando el sistema le deniega alguna operación es porque puede conllevar algún riesgo. El sistema le avisa para que piense dos veces lo que está haciendo. En los casos de tareas que necesiten privilegios de administrador para realizar una operación concreta, podemos usar la orden «su» (Super Usuario) o también «sudo». De esta forma podremos acceder a los privilegios de root sólo cuando nos interese. Consejos Asegúrese de que en los borrados de ficheros por parte del root se pide confirmación. Esto lo puede hacer poniendo «alias rm="rm -i"». Esto es lo habitual para el root. Si en alguna ocasión tiene que borrar muchos ficheros y no quiere confirmar cada uno de ellos, puede usar la opción «-f» para no pedir confirmación, deshacer el alias con «alias rm=rm» o bien usando la orden «yes», poniendo «yes|rm ficheros» para ir confirmando automáticamente cada una de las preguntas de la orden. Procure prever los resultados de una orden, sobre todo si usa comodines, intentándolo antes una forma no irreversible. Por ejemplo, si quiere borrar todos los ficheros terminados en «~» ejecute primero «ls -la *~» y una vez que haya verificado a qué va a afectar la orden, ejecute «rm *~». Vigile la variable de entorno «PATH». Limite la búsqueda automática de ejecutables a las ubicaciones estándar del sistema. De forma particular evite incluir el directorio actual, es decir «.», en esta búsqueda. Bastaría incluir un ejecutable llamado «ls» en un directorio para que usted mismo ejecute un código desconocido con privilegios de root, y cuando se dé cuenta de lo que ha hecho sea demasiado tarde. Además, no tenga directorios con permiso de escritura en su ruta de búsquedas, ya que esto puede permitir a un posible atacante modificar o poner nuevos binarios que se puedan ejecutar como root la próxima vez que ejecute una determinada orden. No utilice las herramientas rlogin/rsh/rexec como root. Pueden ser objeto de diversos tipos de ataques y es peligroso ejecutarlas como root. Nunca cree un fichero .rhosts para root. Evite que la clave del root circule por la red sin cifrar. Si tiene la necesidad de ofrecer servicios de shell o ejecución remotas sobre un canal inseguro utilice «ssh» en lugar de «telnet» u otra herramienta que no cifre los datos de las conexiones. Los servicios remotos como «rlogin», «rsh» y «rexec», como dijimos antes, no suelen ser seguros si se utilizan canales no seguros. Es mejor deshabilitarlos. Limite las ubicaciones desde donde alguien se puede conectar como root al sistema. En el fichero /etc/securetty puede especificar la lista de terminales desde las cuales se puede conectar el root. Las teminales predeterminadas para conectarse como root sólo incluyen las consolas virtuales (vtys). Si tuviera que conectarse como root desde una ubicación distinta a la consola, hágalo como usuario normal primero y luego utilice «su» para acceder a los privilegios de root. De esta forma un posible atacante tendría que conocer el nombre de un usuario del sistema, conocer su clave y también conocer la clave del root. Esto pone más dificultades para obtener privilegios remotos en su sistema. Evite siempre dar la clave de root, no lo haga bajo ningún concepto por mucha confianza que tenga con esa persona. Si tiene que otorgar privilegios a algún usuario para realizar alguna tarea de administración, como montar un CD u otro dispositivo similar, utilice «sudo» para permitirlo con la propia clave del usuario. Así puede decidir qué usuario tiene acceso a una determinada orden. No modifique los permisos de un fichero o directorio si no sabe realmente qué está haciendo. Los valores que trae la instalación de las distintas distribuciones suelen ser adecuados. Jamás, insistimos, jamás se conecte a un servicio IRC como usuario root. PREPARACION PARA LA SEGURIDAD La seguridad es un proceso continuo, que requiere tener previsto hasta lo imprevisible. Tener unos buenos hábitos y tomar unas pequeñas precauciones nos ayudarán mucho. Determinar los servicios activos Desactive todos los servicios que no vaya a prestar, en particular revise los ficheros /etc/inittab, /etc/inetd.conf y los demonios que se lanzan durante el arranque. Si no está realmente seguro de lo que hace, mejor no haga nada; las distribuciones más modernas incorporan unos mínimos de seguridad aceptables para un usuario medio. No tiene sentido tener abierto un servicio del que no va a hacer uso ningún usuario legal. Puede que esté consumiendo recursos de su sistema para ofrecer a algún atacante la posibilidad de violarlo. Puede usar un analizador de puertos para ver qué parte de su sistema es visible desde el exterior. Existen utilidades como SATAN, Nessus o nmap que realizan esta labor. Trinux es una minidistribución de Linux totalmente portable que se puede llevar en 2 ó 3 disquetes y se ejecuta por completo en RAM, puediéndose usar desde cualquier equipo para la red. Se arranca desde el disquete y no utiliza el disco duro para nada. Contiene las últimas versiones de algunas herramientas muy prácticas enfocadas a la seguridad en redes. Nos permitirá analizar el tráfico de la red, analizar puertos e incluso ver el contenido de los paquetes que circulan por la red. Proteger los ficheros importantes Existe un parche para el núcleo Linux que impide que ciertos ficheros puedan ser modificados, incluso por el propio root. El núcleo parcheado de esta forma puede garantizarnos la integridad de la información almacenada incluso en el caso de que alguien consiguiera privilegios de root en nuestro sistema. Este parche se puede obtener, junto con la información necesaria para su instalación, en LIDS. Si no queremos aplicar el parche, sí que deberíamos vigilar los permisos de ficheros y directorios. Software actualizado La gran mayoría del sofware que acompaña a Linux es de código fuente público, como el propio núcleo. Esto es una garantía de seguridad en sí. Cientos de expertos analizan minuciosamente el código para detectar alguna pega que poder publicar en las listas de correo sobre seguridad más prestigiosas, y se corrigen con gran rapidez. De esta forma nos garantizamos un software de calidad y no una mera seguridad aparente. Esto por otro lado nos obliga a ir sustituyendo las versiones defectuosas por otras corregidas y que mejoran las prestaciones. En cualquier sistema operativo, mantener un software que ha demostrado tener fallos supone asumir un riesgo innecesario. Para estar actualizado consulte los recursos de información sobre seguridad en Linux. Prevenir pérdidas de información Existen acontecimientos de los que nos puede resultar muy difícil protegernos como son los desastres naturales, únicamente podremos seguir una serie de pasos para evitar que su incidencia sea lo menor posible. La mejor solución es mantener un buen conjunto de copias de seguridad sobre toda la información necesaria del sistema. Hay que pensar que las copias de seguridad no sólo nos protegen de desastres naturales, también de los desastres que pueda ocasionar algún intruso en nuestro sistema, de cualquier ataque a la disponibilidad o integridad de la información del sistema. Si los datos tienen un tamaño inferior a 650Mb, puede ser una buena opción grabarlos en un CD, bien permanente (ya que es más difícil de falsificar con posterioridad, y si están almacenados de forma adecuada pueden durar mucho tiempo) o regrabable. Las cintas y otros medios sobre los que se puede escribir deberían protegerse tan pronto como se completa la copia y se verifica para evitar la falsificación. Tenga cuidado y almacene su copia de seguridad en un sitio seguro. Una buena copia de seguridad le asegura que tiene un buen punto desde el que restaurar su sistema. Hay que insistir en la seguridad de las copias de seguridad. Si las copias de seguridad no están almacenadas en un sitio seguro, puede que el posible intruso no tenga necesidad de idear métodos sofisticados para obtenerla, si le basta con copiar o sustraer un CD. Características de las copias de seguridad Cuando se realice una copia de seguridad es conveniente seleccionar un método que garantice la conservación de las características de la información como son derechos y permisos. Si realizamos una copia de seguridad de una forma o sobre un soporte que no contemple esta posibilidad, si tenemos que restaurar los datos sobre el sistema el resultado sobre la seguridad y funcionalidad globales puede ser impredecible. Secuencia de Copias Es necesario tener un política de copias de seguridad adecuada a las características de la entidad que estamos gestionando. Quizás el mejor método es el de rotación de cintas. Pasamos a verlo con un ejemplo. Un ciclo de seis cintas es fácil de mantener. Esto incluye cuatro cintas para la semana, una cinta para cada Viernes y una cinta para para los Viernes impares. Se realiza una copia incremental cada día, y una copia completa en la cinta adecuada de cada Viernes. Si hace algún cambio importante o añade datos importantes a su sistema también sería adecuado efectuar una copia. Copiar las Bases de Datos del Sistema Existe cierta información del sistema que es imprescindible para su correcto funcionamiento. Es conveniente tener una copia de estos ficheros en una ubicación segura. En particular resulta conveniente tener una copia del contenido del directorio /etc. También hay que mantenerla en lugar seguro, ya que tiene copias de los ficheros /etc/passwd y /etc/shadows, entre otros que puedan contener claves de usuarios que no están cifradas. También en cada sistema se puede tener una base de datos de las aplicaciones que hay instaladas en el servidor. Cada distribución dispone de alguna herramienta que nos realiza el mantenimiento de la base de datos a la mism vez que instala o desinstala aplicaciones. La pérdida de esta base de datos nos haría perder el control sobre qué aplicaciones tenemos instaladas. En muchas situaciones también será necesario tener copia de seguridad de los ficheros de registro de incidencias, para tener constancia de las distintas actividades del sistema. Consejos Suscribirse a las listas de correo de alertas de seguridad para estar actualizado. Prestar atención a los ficheros de registro. Actualizar el software inseguro. Verificar regularmente la integridad de los ficheros con algún software como tripwire. Tener unas copias de seguridad adecuadas. Utilizar PGP o GnuPG para garantizar la autenticidad y la privacidad. Verificar con periodicidad los puertos de los equipos. Revisar periódicamente las cuentas de usuario. Asignar cuotas de uso de recursos del sistema. Mantener los terminales seguros. Asegurarse de tener claves sólidas. Mantener el sistema de ficheros con propietarios y permisos adecuados. Instalar cortafuegos. En resumen Ahora, una vez vistas las características generales de seguridad, lo que queda es aplicar el sentido común. Tenemos que ver nuestra situación y respondernos a una serie de preguntas: ¿Qué queremos proteger? ¿Qué valor tiene lo que queremos proteger? ¿Qué coste tiene la seguridad? ¿De quién nos queremos proteger? ¿Cuáles son los puntos débiles de nuestro sistema? Las posibles respuestas a estas preguntas nos propocionan un abanico de posibilidades demasiado amplio como para poderlo tratar todo. Lo primero que tenemos que determinar es lo que queremos proteger. No será lo mismo una estación de trabajo personal aislada con conexiones a Internet esporádicas que un servidor web con conexión permanente o un cortafuegos. También tendremos que considerar el coste de lo que queremos proteger: posible coste económico, tiempo de restauración o instalación, prestigio, perdida de clientes, etc. También el coste de la seguridad en unos términos parecidos a los anteriores. Sería absurdo que invirtiéramos más en protección que el coste de lo protegido. También hay que considerar que existe una relación inversa entre seguridad y funcionalidad. Cuanto más seguro hacemos un sistema, menos funcional resulta, ofreciendo menos servicios y más limitaciones de acceso. Esto también constituye otro coste adicional: facilidad de uso. Después de saber qué y de qué tenemos que protegernos, de quiénes y cuáles son sus posibles objetivos, y viendo los servicios que necesariamente hay que prestar o usar, obtendremos un esquema elemental de nuestra situación y de las medidas que tenemos que tomar. QUE HACER EN CASO DE RUPTURA Ahora vamos a ver qué se puede hacer en caso de haber sufrido o estar sufriendo un ataque. No es una situación agradable, y aunque siempre sería preferible que no hubiera sucedido, conviene tener en mente una serie de normas que nos permitan una actuación rápida y certera que disminuya las consecuencias del incidente. Como norma general hay que conservar la calma. No conviene tomar medidas apresuradas que puedan aumentar el impacto del ataque. Vamos a distinguir una serie de situaciones posibles y cómo se debe actuar. Una vez visto esto nos queda aplicar el sentido común. Detección de un ataque activo Nos ponemos en situación: acabamos de detectar un ataque que está actualmente en curso. El ataque puede ser de diversa naturaleza. Dejaremos aparte los casos genéricos como detectar alguien manipulando físicamente el ordenador. Ataque local Cuando detectamos un ataque local tendremos que verificar la identidad del atacante. No conviene sacar conclusiones precipitadas y culpar a alguien de atacar el sistema cuando sólo puede que sea una negligencia a la hora de seleccionar una clave o abandonar abierta una consola. Hay que verificar el origen de la conexión, los registros del sistema y los procesos que tiene activos. Tendremos que comprobar si son los habituales y qué es lo que se sale de lo normal. Después nos dirigiremos a esa persona, por teléfono o personalmente, para preguntar qué está haciendo y pedir que cese en la actividad. Si no tiene una conexión activa y no tiene idea de lo que le estamos diciendo, habrá que profundizar en la investigación porque cabe la posibilidad de que alguien haya utilizado esa cuenta de forma ilegítima. Si reconoce el incidente, que le informe de los mecanismos que ha utilizado, las acciones que ha realizado y actúe en consecuencia. Nunca se precipite para hacer acusaciones. Recopile todas las pruebas que haya detectado en los registros, procesos, modificaciones de información, etc. Sea rápido, pero seguro. Está en juego su sistema y su prestigio. Ataque en red Si el ataque se produce a través de la red podemos tener distintas situaciones. En general puede ser conveniente espiar un poco al intruso para obtener más pruebas y después desconectar el interfaz de red si es posible. Si no fuera posible desconectar el interfaz, deberíamos usar algún filtro para las conexiones procedentes de la dirección del atacante. Programas como ipchains (o ipfwadm en su caso) pueden realizar esta labor. Si desconectamos el interfaz o denegamos (no rechazar) los paquetes procedentes de esa dirección el intruso lo podría interpretar como un error de red, más que una detección del ataque. Si no se pudiera limitar el acceso a las direcciones que usa el intruso, intente cerrar la cuenta del usuario. Observe que cerrar una cuenta no es una cosa simple. Tiene que tener en cuenta los ficheros .rhosts, el acceso FTP y otras posibles puertas traseras. En general no es aconsejable apagar el sistema. Por supuesto, nunca apagarlo en caliente; esto podría hacernos perder la información que tenemos en memoria. En Linux podemos ver la lista de procesos que hay en ejecución y matar aquellos que puedan estar dañando al sistema. ¿Somos el destino del ataque o somos un punto intermedio? Se puede dar la situación que nuestra máquina no sea el destino final del ataque. Puede que el intruso la haya utilizado como punto intermedio para atacar a otros sistemas e intentar dificultar el seguimiento de las pistas. En este caso, además de limitar las acciones del atacante deberíamos notificarlo al administrador del destino del ataque y conservar todas las pruebas existentes por si se pudieran reclamar judicialmente. En cualquier caso, si queremos dar validez legal a las pruebas obtenidas, sería conveniente la intervención judicial. Es habitual que durante los próximos minutos el atacante vuelva a intentar continuar con sus acciones, tal vez usando una cuenta diferente y/o una dirección de red distinta. El ataque ha concluido Ha detectado un compromiso que ya ha ocurrido o bien lo ha detectado mientras ocurría y ha echado al atacante fuera de su sistema. Ahora viene la parte más dura del incidente: tratar de dejar el sistema mejor que estaba antes de que ocurriera. Tapar el agujero Determine los medios que usó el atacante para acceder a su sistema. Deberá analizar cuidadosamente los ficheros de registro del sistema. En ellos debería haber una información valiosa para seguir la pista de las actividades del intruso en nuestra máquina. Las causas más habituales son una mala configuración de algún servicio, un programa defectuoso o la negligencia de algún usuario con respecto a su clave de acceso. Compruebe por los cauces más conocidos, que se pueden consultar en la página sobre recursos de seguridad bajo Linux, la existencia de algún nuevo «exploit» que pueda ser la causa u otros fallos que tenga que corregir. Si no elimina al atacante, probablemente volverá. No sólo a su máquina, sino a cualquiera otra de la red. Durante sus incursiones ha podido utilizar algún «sniffer», y disponer de información suficiente para tener acceso a otras máquinas locales. Si sospecha que el atacante ha obtenido copias de los ficheros /etc/passwd, /etc/shadow, /etc/ppp/pap-secrets, /etc/ppp/chap-secrets o cualquier otro fichero que contenga datos de usuarios y claves, sería conveniente modificarlas todas. Si tiene distintos usuarios en su máquína, oblígueles a cambir su clave. En general es preferible cambiar siempre las claves despues de un incidente, una vez que sepamos que lo hacemos de una forma segura. Verifique si se han modificado las limitaciones al acceso a distintas herramientas de administración remota como linuxconf. Puede que el atacante trate de abrir alguna puerta trasera para continuar aprovechándose de nuestras máquinas. En algunos casos puede interesar antes de nada, hacer alguna copia de todo el disco duro para seguir investigando el incidente en otra máquina distinta que no esté conectada a la red y no perder una información que puede ser valiosa. Evaluación de los efectos del ataque El siguiente paso que hay que realizar es la evaluación de los efectos que ha tenido el ataque. Tiene que tener en mente la naturaleza del ataque para evaluar los efectos. Si ha sido una denegación de servicio es probable que el atacante no haya tenido acceso a la información local. Si tenía instalado algún programa, estilo Tripwire, que verifica la integridad, su trabajo ahora sería más cómodo. En caso contrario tendrá que verificar todos sus datos importantes. Verifique las fechas de creación de los ficheros binarios y si detecta alguna incongruencia con la fecha de instalación puede empezar a sospechar. Si tiene la posibilidad, compare los tamaños de los ficheros con otro sistema «limpio» y por supuesto, no trate de verificar los programas ejecutándolos como root. Unas buena alternativa es volver a instalar el sistema. Guarde los ficheros de configuración para tener una funcionalidad idéntica a la previa al ataque. En Linux, los ficheros de configuración se almacenan en modo texto por lo que no son susceptibles de contener caballos de Troya. Eso sí, debería verificar que las configuraciones son las originales y no han sido manipuladas por el atacante. Reinstale el sistema y utilice las copias de seguridad para reponer los datos de los usuarios. Hay que tener especial cuidado con las copias de seguridad. Tiene que estar seguro de que las copias de seguridad que está utilizando son previas a cualquier ataque. No se arriesgue a restaurar unas copias de seguridad que pudieran tener algún caballo de Troya; tenga un cuidado especial con los ficheros binarios que restaura. Avisar Si cree que ha sido objeto de un ataque que no está documentado, debería notificarlo a alguna organización de seguridad como CERT o similar para que se pueda solucionar lo antes posible y evitar que otros sistemas lo puedan padecer. Y aunque sea un hecho documentado con anterioridad, no dude en pedir consulta a alguna de la múltiples lista de correo que tratan temas de seguridad en general y de Linux en particular. En España resulta especialmente recomendada la lista CERT-ES de RedIris. Si ha conseguido información sobre el atacante, se lo debería notificar al administrador del dominio del intruso. Puede buscar este contacto con whois, con la base de datos del Internic o en RedIris. Podría enviarles un mensaje de correo con todos los registros relacionados con el incidente, fechas y horas. Si conoce alguna otra información sobre su intruso, podría mencionarla también. En ciertas situaciones, tras enviar el correo podría llamar por teléfono al administrador del sistema que originó el incidente. Si el admininistrador localiza a su atacante, podría hacerle las cosas mucho más fáciles. Los buenos hackers con frecuencia usan sistemas intermedios. Algunos (o muchos) puede que ni sepan que han sido comprometidos. Intentar seguir la pista de un cracker hasta su origen puede ser difícil. Siendo educado con los administradores, le puede facilitar la obtención de la ayuda necesaria. De todas formas, esperamos que la lectura de este capítulo sea totalmente innecesaria, si ha seguido unas normas adecuadas de seguridad. RECURSOS Con esta lista de recursos perseguimos dos objetivos fundamentales, tener una buena guía para saber dónde consultar y obtener información, y por otro lado, obtener la información sobre las novedades que van ocurriendo, nuevos fallos descubiertos, los exploits que aparecen y los mecanismos para poderlos solucionar. En SeguriNet se puede encontrar una traducción en castellano de la Guía de Seguridad del Administrador de Linux. En ella tenemos una documentación valiosa donde completar aspectos más concretos, así como una buena lista de recursos. Por otro lado en CICA tenemos la mejor lista de correo sobre seguridad en castellano que hay sobre linux. No es un foro de discusión, no está pensada para realizar consultas, sino para recibir de forma rápida y clara todos los avisos sobre nuevas vulnerabilidades que se detectan en Linux, los efectos que pueden tener y cómo se pueden solucionar. No queremos desaprovechar la oportunidad de agradecerles el trabajo que realizan. Podéis suscribiros en su página de suscripción a sec-linux@ls.cica.es. CICA cuenta además con otra información interesante que merece la pena consultar. En las páginas del GLUB hay una buena recopilación de software y documentación de seguridad en Linux en castellano. RedIris es otro lugar que también dispone de información valiosa y listas sobre seguridad y Linux. Recursos Web y ftp Distribuciones Caldera OpenLinux RedHat Guía de errores de RedHat Lista de archivos de seguridad de RedHat SuSE Listas de correo de SuSE Debian Slackware Fórum Slackware TurboLinux Stampede GNU/Linux Mandrake LinuxPPC Linux Pro LinuxWare MKLinux Yggdrasil Connectiva DLD Pacific HiTech TurboLinux Errata Guide Eagle Linux M68K Eurielec Kheops Linux MNIS Linux Trinux (una minidistribución enfocada hacia la seguridad) Red / Análisis de Host / Intrusion nmap ftpcheck, relaycheck cheops nessus saint SBScan Samba scanner (funciona con windows) HUNT SATAN y otras herramientas Administración rpm Guiones de actualización RedHat RPM Logcheck bgcheck COAS Webmin Linuxconf super YaST Cortafuegos ipchains configuración más fácil Configuración de un cortafuegos mediante un CGI ipchains y otros Servicios de Red sendmail apache BIND/DHCPD/DHCPCD secure syslog openssl ncftp, ncdftp qmail postfix ProFTPD rsync PPP Servicios de internet versión libre de LDAP Lenguaje de programación para generar HTML dinámico Soluciones para Redes Virtuales Privadas CIPE ECLiPt Productos hardware RedCreek VPN (IPSec) Controladores de tarjetas RedCreek VPN para Linux Desarrollo PPTP para Linux FreeS/WAN, un desarrollo IPSec para Linux SSL SSLeay Desarrollo open SSL Aplicaciones para SSL Ftp oficial Desarrollo Apache SSL libre Servicios/Cifrado de datos Desarrollo libre de SSH Sustituto libre de PGP CFS Herramientas de Seguridad audit Varios paquetes de software de seguridad Kernel stackguard rule based access control Detección de intrusos port sentry host sentry Network Flight Recorder Grupos de respuestas sobre seguridad USA - CERT Información sobre seguridad en castellano INTERNATIONAL - HERT AUSTRALIA - AUSCERT SINGAPORE - SINGCERT Winn Schwartau's site L0pht Root Shell Infowar UK buenos documentos Programas comerciales para copias de seguridad BRU Quickstart Arkeia CTAR CTAR:NET Backup Professional Aplicaciones Página de actualización diaria y búsqueda Prácticamente todos los paquete RPM Un gran listado de aplicaciones Varios Security and Encryption: Probablemente la mejor lista de recursos sobre seguridad en internet. Aquí podrá encontrar casi todo y algo más. Replay tiene archivos de muchos programas de seguridad. Wietse's Ftp de ES-CERT The Hacker FA Bugtraq First Hacking CPSR Underground Defcon El archivo COAST tiene un gran número de programas de seguridad Unix e información. Reptile tiene montones de buena información sobre seguridad en sus páginas. Infilsec tiene un motor de vulnerabilidad que puede decirle cuales afectan a una plataforma específica. CIAC enviós periódicos de seguridad sobre exploits comunes. Un buen buen punto de inicio para Linux Pluggable Authentication Modules (PAM). Listas de correo Bugtraq: Para suscribirse a bugtraq, envíe un mail a listserv@netspace.org que contenga en el cuerpo del mensaje subscribe bugtraq. (ver el enlace anterior para los archivos). CIAC: Envíe un e-mail a: majordomo@tholia.llnl.gov En el cuerpo (no en el subject) del mensaje ponga: subscribe ciac-bulletin. NAVEGADORES Creías que tu navegador es seguro? Cada día se descubren más agujeros de seguridad en Internet Explorer. Anda que el Netscape no está mucho mejor. Supuestamente Java no puede abrir ventanas sin un aviso, ni puede escanear tu estructura de directorios, ni manipular threads, pero... ¿Sabías que se puede utilizar tu ordenador para realizar cálculos sin que tú lo sepas y enviar los resultados a través de la Internet? Aprende sobre el "Marcado de Datos" o Data Tainting, incorporado por Netscape a JavaScript para evitar el robo y posterior difusión de información. ¿Quieres ver cómo se puede colar uno a través de agujeros en CGI? De la forma más tonta se podría producir un desastre, a veces simplemente leyendo una base de datos. De todos los servicios que ofrece Internet, como correo electrónico, grupos de noticias, canales de charla, transferencia de ficheros, conexión remota a ordenadores, etc., sin duda alguna el que mayor crecimiento ha experimentado y mayor popularidad ha cobrado entre los usuarios ha sido la World Wide Web. Paralelamente y siguiendo el tirón del mercado, el software de navegación ha ido evolucionando a un ritmo espectacular, incorporando con cada nueva versión nuevas utilidades y posibilidades en una loca carrera en la que cada navegador intenta dejar atrás a sus competidores. El resultado es que los navegadores consumen cada vez más recursos y han terminado por transformarse en herramientas muy voluminosas, inflados con tantas sutilezas y detalles de funcionamiento que resulta difícil seguir la pista de los nuevos servicios añadidos. En su interior se ocultan opciones de configuración de nombres a menudo crípticos y no pocas veces de oscura finalidad. Por consiguiente, teniendo presente que la mayor parte del tiempo que un usuario va a emplear conectado a Internet será haciendo uso del navegador, nada mejor que conocer todos los detalles de cómo configurar de manera segura la gran cantidad de características que incorporan las últimas versiones. Obtener un navegador seguro Puede parecer trivial a primera vista, pero si se reflexiona un poco se comprenderá la necesidad de obtener una copia válida y segura del navegador preferido. No hay que olvidar que el navegador goza de acceso ilimitado a los recursos del sistema informático: memoria, disco, conexiones de red, tarjeta de sonido, impresora, vídeo, etc. En otras palabras, si el navegador decidiera comportarse maliciosamente, podría llegar a perpetrar cualquier fechoría en el ordenador, desde abrir conexiones con máquinas remotas y filtrar información del disco duro hasta infectarlo con otros virus o destruir ficheros valiosos. Por lo tanto, cualquier programa con un potencial dañino semejante no debería nunca considerarse a la ligera. Obtención de una copia segura de Netscape Communicator El 23 de enero de 1998 la compañía Netscape Communications realizó dos importantes anuncios públicos: primero, que su producto más conocido y extendido entre los usuarios de Internet, Netscape Communicator, sería gratuito y se podría descargar desde su web; y segundo, que el código fuente del Communicator sería también de dominio público y gratis, pudiéndose descargar desde la web de la Organización Mozilla. Desde que el código fuente se encuentra disponible libremente, de manera que cualquiera puede examinarlo y modificarlo, la posibilidad de alteraciones maliciosas se transforma en una amenaza muy real. Un individuo malintencionado podría cambiar secciones del código de manera que Communicator pirateado llevara a la práctica todos o alguno de los ataques citados antes u otros que se le podrían ocurrir. Ahora bien, una vez modificado, el pirata debería ingeniárselas para distribuir su copia entre los usuarios. Se pueden imaginar con facilidad una serie de alternativas que se le ofrecen, desde incluirlo en un CD de programas piratas de los que se venden en Internet, ponerlo en su página web para que lo descarguen navegantes ingenuos o incluso falsificar la web de Netscape o una porción de ella para hacer creer a los usuarios que se están conectando a la página oficial de descarga de Netscape Communicator en vez de a su falsificación. En definitiva, existe todo un abanico de posibilidades desplegado, cuya eficacia y potencialidad de llegar a más o menos usuarios dependerá en gran medida de la ingenuidad de éstos y del ingenio de aquél. Obtención de una copia segura de Internet Explorer En el caso de Internet Explorer, esta cuestión no reviste un grave problema, en la medida en que se instale una versión oficial de Windows, ya que el explorador viene incorporado en la distribución original junto con el sistema operativo. Sin embargo, con la proliferación de CD piratas que incluyen también versiones de Windows 95/98 o simplemente el navegador Internet Explorer, de nuevo se presenta el riesgo de obtener versiones modificadas. No obstante, en este caso, al no encontrarse libremente disponibles el código fuente del programa explorador, el peligro de modificación se minimiza prácticamente a cero. ¿Existe solución? La solución a este problema (que no se limita a los navegadores sino a cualquier software que se descarga comúnmente desde la Red, como por ejemplo los clientes de IRC, utilizados para charlar en Internet chatting) se encuentra en la firma digital del código. El código firmado digitalmente le proporciona al usuario la certeza de que procede de una compañía de confianza y de que no ha sido modificado maliciosamente en ningún momento desde que fue firmado por la casa que lo distribuye hasta que llegó a sus manos, dotando así a los productos de garantías similares a las que poseen los adquiridos dentro de su caja sellada en tiendas de informática. Mientras estas técnicas se extienden y su uso se vuelve más frecuente, conviene extremar las precauciones a la hora de instalar el navegador, desconfiando de sitios web sospechosos y de CD-ROM con software pirata. Se recomienda descargar estos programas desde los sitios oficiales, tanto el de Netscape para el Communicator como el de Microsoft para Internet Explorer. Configuración segura de Netscape Communicator Una vez que se ha instalado una versión fiable del navegador, conviene dedicar algunos minutos a su configuración en vez de lanzarse a navegar directamente con las opciones por defecto con las que arranca el programa recién instalado. El hecho de que exista en Netscape Communicator un menú con el nombre Información sobre seguridad puede confundir a los usuarios al inducirles a creer que basta con entender y configurar correctamente lo que aparece en dichos menús para garantizar la navegación segura. Como se verá a continuación, existen otras muchas opciones repartidas por diferentes menús que no deben dejarse al azar. Configuración segura de las Preferencias El recorrido por las opciones de seguridad de Netscape Communicator comenzará por la configuración de las preferencias. Para ello, se acude al menú de Edición y cuando se despliegue, se pulsa el comando Preferencias.... Las opciones seleccionadas se salvan en un archivo localizado en su directorio personal dentro de Netscape. Por ejemplo, una localización típica sería C:\Archivos de programa\Netscape\Users\gonzalo\prefs.js. Carpeta Navigator En la carpeta Navigator se ofrece la posibilidad de configurar el número de días que las páginas web visitadas aparecerán listadas en la ventana de historial. Esta ventana contiene el URL o dirección de todas las páginas que se han visitado durante el número de días especificado. En el caso de formularios, aparecerá incluso el contenido que se escribió en ellos. En otras palabras, cualquier persona que accediera a esta información sabría qué páginas han sido visitadas, cuándo y, en el caso de los formularios, qué datos se le proporcionaron. Desgraciadamente, errores de seguridad en este navegador, permiten a cualquier sitio de Internet obtener esta información de los usuarios que lo visiten. Si no quiere que caigan en otras manos, debe establecer a cero los días. Puede asimismo hacer la siguiente prueba: escriba about:global en la ventana de dirección y compruebe cómo aparece en la ventana del navegador la lista completa de los últimos sitios que ha visitado. Observe cómo si rellenó algún formulario, también aparecerán los datos suministrados (siempre y cuando el método de envío de datos del formulario fuera GET). En la versión 4.5 aparece además la opción de limpiar el contenido de la barra de dirección (los sitios que aparecen en una lista desplegable al pulsar la flecha de la derecha). Al igual que en el caso anterior, se muestran las direcciones de las páginas más recientemente visitadas, con la posibilidad de que cualquiera que se siente a continuación las vea, sabiendo qué sitios visitó recientemente. Bajo la opción de Aplicaciones se puede especificar qué aplicaciones de ayuda y plug-ins se lanzarán en respuesta a la carga de ficheros con una extensión determinada y un tipo MIME asociado que el navegador no puede visualizar directamente. Así, por ejemplo, si al navegar por una página web encuentra un enlace a un documento Word, cuya extensión es .doc, al seguir el enlace se arrancará Microsoft Word, si así aparece configurado en la ventana de aplicaciones. Esta característica permite que el navegador sea capaz de visualizar directamente documentos en PDF, archivos de sonido o de vídeo, etc. Tanto las aplicaciones de ayuda como los plug-ins son programas en código nativo con acceso total a los recursos del sistema, por lo que conviene instalarlos con precaución, ya que si alguno estuviera escrito con malas intenciones podría causar daños irreparables. De hecho, se han producido ataques gracias a plug-ins maliciosos (lea la escalofriante historia de las Estafas telefónicas a través de la pornografía en Internet). Otros plug-ins, sin estar específicamente diseñados para perjudicar al navegante, contenían agujeros de seguridad que permitían obtener información de su sistema, como ocurrió en 1997 con el plug-in de ShockWave de Macromedia, que permitía a un servidor web obtener ficheros del disco duro del visitante. Por otro lado, una página maliciosa podría también utilizar documentos que contuvieran virus de macro, como ha ocurrido en Word y Excel, para hacer que el usuario incauto los ejecutara en su ordenador. Como medida cautelar, se debe instalar el menor número posible de plug-ins y aplicaciones de ayuda y siempre de casas conocidas en las que se puede confiar. Para los tipos de archivo que se consideren potencialmente portadores de virus o con capacidad de interpretar comandos, se debe especificar que el navegador pida confirmación antes de abrirlos. Para ello, se selecciona el tipo de documento, por ejemplo "Microsoft Excel Worksheet" y se aprieta el botón de Editar... en la ventana que aparece. En la nueva ventana se selecciona la opción de avisar antes de abrir documentos de este tipo. Puede comprobar qué plug-ins tiene instalados escribiendo en la ventana de dirección: about:plugins Es muy probable que se sorprenda de la cantidad de plug-ins que posee, sin ser consciente de ello. ¿Quién los puso ahí? Usted, cuando instaló otros programas, que a lo mejor en algún momento de la instalación le interrogaron acerca de su deseo de añadir un programa para su integración con el navegador. Carpeta Correo y Grupos Existen ciertos aspectos con relación al correo que conviene tener en cuenta a la hora de proteger la intimidad. El primero de ellos y uno de los más importantes concierne a la identidad del usuario. En la opción Identidad se puede especificar el nombre y dirección de correo del usuario, entre otros datos. Si se utiliza Netscape como cliente de correo, evidentemente estos datos deben ser ciertos para poder enviar y recibir mensajes. Sin embargo, existen técnicas que permiten obligar al visitante de una página a enviar un correo sin que se dé cuenta, por el mero hecho de pasar el ratón sobre una imagen o cargar una página (es interesante la visita a la página de envío de correo para un ilustrativo ejemplo de esta posibilidad). En este caso, se enviará el correo con la dirección y nombre introducido en esta ventana. En las versiones de Communicator 4.x, antes de enviar el correo se le pide confirmación al usuario, pero son muchos los usuarios que bien porque han adquirido el hábito de decir que sí a todo, bien porque no entienden o no leen el contenido de la ventana de confirmación, lo cierto es que envían su dirección indiscriminadamente. Siempre se debe leer atentamente cada ventana que aparece antes de emprender acciones que puedan comprometer la seguridad. Algunos usuarios introducen datos falsos, lo cual puede ser una buena idea para contrarrestar el problema anterior, si bien no lo es tanto para falsificar correos, ya que quedará un rastro debido a la dirección IP de la máquina desde la que se enviaron. No obstante, puede servir para engañar en un primer momento a un usuario poco observador. La opción Servidor de correo permite determinar el lugar del disco duro donde se almacenará todo el correo recibido, enviado, borrado, etc. Normalmente, existe un lugar por defecto que conviene cambiar, ya que existen muchos agujeros en los navegadores que facilitan a sitios web remotos el examen del contenido de archivos en el disco duro cuyo nombre y localización se conocen. Si uno no se molesta en cambiar el lugar donde se guarda todo el correo, cualquier servidor web que se interese en ello puede leerlo, tanto el enviado como el recibido. No cuesta nada cambiar la localización por defecto a otro lugar en el disco duro y añadirá seguridad. También se ofrece la posibilidad de guardar la contraseña de acceso al servidor de correo. Piense que si activa esta casilla, cualquier persona con acceso a su navegador podrá leer los futuros correos que reciba mientras usted no esté presente, mientras que en caso contrario, se le pedirá la contraseña cada vez que inicia una nueva sesión con el servidor. En la opción Mensajes en las versiones 4.0x y Copias y carpetas en 4.5, se ofrece la posibilidad de enviar a terceras personas copias de los correos mandados al exterior. Conviene tener presente que si se utiliza Netscape desde el trabajo, el jefe puede haber introducido ahí su dirección de correo para recibir una copia de cada mensaje enviado y asegurarse así del buen uso de Internet que hacen sus empleados en horas laborales. También existe la posibilidad de especificar dónde se almacenarán los correos enviados, si es que se quieren guardar en disco. Nunca hay que perder de vista el hecho de que en sistemas Windows, siempre que no se utilice alguna herramienta de cifrado, cualquiera puede acceder al contenido del disco duro, por lo que se podría leer el contenido de los correos. Si no se cambia el directorio por defecto donde se almacenan, como se ha explicado anteriormente, entonces no sólo las personas con acceso físico al ordenador, sino cualquier máquina conectada a Internet podría leerlos explotando algunos de los agujeros del navegador. Carpeta Avanzadas Por defecto, Java y JavaScript aparecen activados tras la instalación del programa. Si no ha modificado la configuración de su navegador, puede comprobar cómo las casillas se encuentran activadas. Java y JavaScript son lenguajes de programación que añaden inteligencia y realzan el contenido de las páginas web. Hoy en día, son pocas las páginas que no hacen uso de una u otra forma de programación. Por desgracia, la gran mayoría de agujeros de seguridad que se han descubierto en Netscape están directamente relacionados con la forma de implantarse estos lenguajes en el navegador. En espera de parches o nuevas versiones mejoradas, el consejo habitual para los navegantes es que se desactive Java y JavaScript como medida preventiva. Si alguien se siente amenazado, lo puede hacer desactivando las casillas anteriores. En la ventana aparece también la opción de enviar la dirección de correo como contraseña de FTP. El protocolo de transferencia de ficheros (FTP) se utiliza para transferir ficheros voluminosos a través de Internet. Normalmente se accede a servidores anónimos que piden como contraseña la dirección de correo del cliente. Los navegadores incorporan entre los protocolos que soportan el citado FTP, de manera que se encargan automáticamente de recuperar ficheros a través de este protocolo sin que el usuario tenga que hacer nada especial además de pulsar sobre un simple enlace. Aprovechándose de esta técnica, algunos sitios web insertan en sus páginas imágenes u otros elementos que se recuperan a través de FTP, en vez de utilizar el protocolo convencional HTTP, de manera que si la opción de suministrar la dirección de correo como contraseña estaba activada en el navegador, se harán con la dirección electrónica del usuario. Para prevenir este tipo de ataque encubierto, conviene desactivar la casilla. Las cookies son esos pequeños ficheros de texto que se almacenan en su disco duro con información que algunos servidores Web escriben ahí (vea el curso sobre cookies). Por defecto, está activada la opción de aceptar todas las cookies. Ahora bien, ¿resulta peligroso aceptar cookies? En principio, las cookies no revisten ninguna amenaza para la seguridad; sin embargo, utilizadas por ciertas compañías sin escrúpulos, pueden ayudar a la confección de perfiles de usuario y hábitos de navegación, básicamente con el fin de dirigirles propaganda personalizada. No obstante, seleccionar la opción de deshabilitar las cookies puede conducir a que muchos sitios web no se visualicen correctamente o con sus plenas capacidades, como ocurre por ejemplo con el uso de carritos de la compra o la configuración personalizada de servicios (por ejemplo, la web de venta de libros amazon.com). Por otro lado, debido al uso masivo de cookies que hacen algunos servidores web, seleccionar la casilla de avisar antes de aceptar cookies puede acabar inundando al navegante con ventanas de aviso de cookies. Por lo tanto, como solución intermedia, se recomienda aceptar todas las cookies en aquellos sitios de confianza, con una política de privacidad claramente establecida y deshabilitarlas en el resto. Los navegantes más intrépidos pueden instalar alguno de los programas recomendados en el boletín, que permiten un filtrado selectivo de cookies en función del servidor que las envía. Bajo la opción Cache se pueden configurar los aspectos relacionados con la cache donde se almacenan temporalmente las páginas e imágenes visitadas más recientemente. Si bien su función primaria es aumentar la velocidad de navegación, leyendo las páginas ya visitadas desde la cache en lugar de descargarlas de nuevo a través de la Red, en la práctica se puede explotar para conocer las idas y venidas de un navegante, ya que contiene cada página e imagen que vio, los archivos de audio que escuchó, etc. Por esta razón, conviene en primer lugar cambiar el directorio por defecto donde se almacena. En segundo lugar, para los usuarios más preocupados por su intimidad, se puede poner a cero de manera que nada se almacene en el disco. Puede hacer la siguiente prueba: escriba about:cache en la ventana de dirección y compruebe cómo aparece en la ventana del navegador la lista completa de los últimos sitios que ha visitado, imágenes cargadas, documentos Word o PDF leídos, presentaciones en PowerPoint visualizadas, etc. Para comprobar el cache de memoria, puede escribir en la ventana de dirección: about:memory-cache Bajo la opción Proxies encontrará todas las opciones para configurar el funcionamiento del proxy. La idea básica de un servidor proxy es actuar de pasarela (gateway) entre su máquina o su red e Internet. Normalmente se usan para llevar las peticiones del cliente a través de un cortafuegos (firewall): el proxy espera a una petición desde dentro del cortafuegos y la reexpide al servidor remoto en el exterior del mismo, lee la respuesta y la envía de vuelta al cliente. Dado que todas las peticiones pasan a través del proxy, si un atacante introdujera en su configuración sin que se diera usted cuenta la dirección de un servidor proxy correspondiente a una de sus máquinas, este servidor registraría todos los sitios que visita y los datos que introduce en los formularios. Por otro lado, siempre que navegue a través de un proxy, los servidores web verán la dirección del proxy y no la de su máquina, por lo que los proxies pueden ser utilizados para la navegación anónima. Para más información sobre los proxies consulte la sección sobre anonimato. Autoinstall/SmartUpdate. A partir de las versiones 4.x es posible instalar automáticamente los plug-in necesarios para visualizar ficheros especiales. Aunque representa una opción muy cómoda para el navegante, se recomienda desactivar la casilla de permitir la autoinstalación en las versiones 4.0x (en la carpeta de Avanzadas), mientras que se debe activar la casilla de solicitar confirmación manual para cada instalación en la versión 4.5. No le conviene que ningún tipo de software se instale en su ordenador sin su conocimiento. Información sobre seguridad Además de todas las opciones anteriores, que aunque no están directamente relacionadas con la seguridad sí que la afectan, Netscape incorpora toda una serie de opciones para ofrecer una seguridad robusta en la navegación y en el correo electrónico. La ventana Información sobre Seguridad se abre pulsando sobre el candado de la barra de herramientas o en el menú Communicator/Herramientas. Esta ventana proporciona información acerca del estado de seguridad actual de un elemento particular cuando se selecciona en una ventana. Cuando se navega o se leen mensajes de correo, si se pincha en el icono del candado que aparece a la parte inferior izquierda de la barra de estado, se invocará esta ventana con la información de seguridad de la página Web o del mensaje que se estaba viendo. En Contraseñas, puede establecer la contraseña para acceder a la base de datos personal con sus certificados y su clave privada. Se recomienda que la establezca para evitar que personas con acceso a su ordenador utilicen sus certificados sin su conocimiento. Si lo hace, tenga en cuenta que si olvida la contraseña ya no podrá acceder a sus certificados ni descifrar mensajes nuevos o antiguos. En Navigator se pueden configurar las opciones de advertencia que le alertan de posibles situaciones de riesgo, como se ve en la Figura. Resulta una buena idea activar todos los avisos, por las siguientes razones: Entrar en un sitio cifrado: dado que las páginas se descifran automáticamente sin su intervención, a lo mejor le interesa borrar o guardar en un lugar seguro algún fichero descargado al finalizar la sesión. Salir de un sitio cifrado: podría interesarle borrar los ficheros descifrados que hayan quedado en su disco, ya que las páginas web solamente están cifradas durante la transmisión, no al almacenarse en disco. Ver una página con una combinación de información cifrada/descifrada: esta advertencia aparecerá cuando una página contenga elementos cifrados y elementos sin cifrar, como por ejemplo imágenes o applets de Java. Si considera que su sistema no está protegido, podría desear no abrir esta página. Enviar información no cifrada al sitio: le recuerda que no debe transmitir formularios o información sin cifrar a través del correo. Esta es la advertencia más importante y que siempre debería estar activada, aunque aparezca cada vez que hacemos una búsqueda o firmamos en un libro de visitas. Una lista desplegable le permite elegir cómo quiere que se comporte Navigator cuando un sitio web le pide su certificado. Si visita múltiples sitios web que requieren distintos tipos de certificado, elija Preguntar cada vez. En caso contrario, elija Seleccionar automáticamente. La configuración de seguridad avanzada sólo debería ser modificada por expertos. En cualquier caso, si se le echa un vistazo, se comprobará que las versiones de exportación (como la que se distribuye en España) incorporan claves débiles. En consecuencia, en cuestión de horas se pueden descifrar mensajes cifrados con SSL utilizando varios ordenadores trabajando en paralelo. A título de ejemplo, en un concurso convocado por la Facultad de Informática de la Universidad Politécnica de Madrid, en diciembre de 1998 un grupo de estudiantes logró romper y descifrar en pocos días un mensaje RC2 de 40 bits, que es el que usa NetScape. En Messenger se puede configurar el envío cifrado y firmado de mensajes. Los usuarios españoles comprobarán que el método de cifrado S/MIME utilizado es RC2 con clave corta de 40 bits y por lo tanto fácil de romper. En Java/JavaScript se administran los permisos con los que las applets de Java y los programas en JavaScript que estén firmados correctamente accederán a su sistema. Resulta extremadamente peligroso que estos programas gocen de privilegios excesivos, como lectura/escritura en disco o posibilidad de conexiones a través de Internet. Por este motivo, resulta más seguro, aunque también más engorroso, eliminar de la lista los sitios web, los vendedores y los distribuidores que estén presentes, o cuando menos editar y verificar sus permisos, eliminando los que requieran privilegios de más alto riesgo, de manera que en el futuro se le pida autorización cada vez que se pretenda realizar una operación comprometida, en vez de concederla automáticamente. En Certificados se gestionan los certificados con los que opera Navigator, tanto los propios, para que usted se identifique ante otras personas o páginas web, como los ajenos, para que otros se identifiquen ante usted. Además aparecen los certificados que ha aceptado de sitios web, así como los de las entidades firmantes, que dan validez a todos los certificados anteriores. Conviene que los proteja con contraseña, como se describió más arriba. Además es muy recomendable que realice copias de sus certificados y los conserve en un sitio seguro, ya que si los pierde o borra accidentalmente, será incapaz de leer el correo cifrado recibido ni se podrá identificar ante los sitios web. Para más información, consulte la página Obtener un certificado. En Módulos Criptográficos se pueden añadir módulos criptográficos para realizar tareas especializadas como soporte de tarjetas inteligentes, esquemas de distribución de claves o compatibilidad FIPS. Netwatch NetWatch es la protección basada en restricciones por contenidos incorporada por Netscape Navigator 4.5, que le permitirá controlar qué clase de páginas web se pueden visualizar en su ordenador. NetWatch de Netscape utiliza el estándar de clasificación conocido como PICS. NetWatch reconoce dos sistemas de clasificación independientes compatibles con PICS: RSACi, y SafeSurf. Cada sistema emplea un método diferente para describir con el mayor detalle posible los niveles de contenido potencialmente ofensivo en las páginas web. Estos contenidos se agrupan en las siguientes categorías: violencia, desnudez, sexo y lenguaje. SafeSurf añade, además, otros contenidos, como profanidad, heterosexualidad, homosexualidad, intolerancia racial, sexual o religiosa, drogas, juego, etc. Una vez que la protección de NetWatch ha sido activada, cuando se accede a una página con Netscape Navigator, NetWatch compara la clasificación de la página con los niveles que han sido configurados como aceptables y si todos los niveles de la página son inferiores se permite su visualización. También se puede bloquear todas las páginas que carezcan de clasificación, si bien esta opción limitaría drásticamente la navegación por Internet, ya que son muy pocas las páginas que actualmente incorporan clasificación. Con el fin de evitar que otros usuarios vean o cambien su configuración, ésta se protege mediante una contraseña. A partir del momento en que se activa la protección de NetWatch, nadie que use su navegador podrá saltársela. Puede configurar NetWatch si lo desea, seleccionando el comando NetWatch del menú Ayuda. Configuración segura de Internet Explorer A continuación, se examinarán las opciones que deben configurarse para aumentar la seguridad en la navegación con Internet Explorer. Se dejarán de lado otras características que no afecten directa o indirectamente a la seguridad e intimidad en la navegación. En este navegador, estas opciones se encuentran agrupadas en el menú Ver, bajo el comando Opciones de Internet.... Nos iremos refiriendo a cada una de las seis pestañas que contiene la ventana desplegada, describiendo aquellas opciones relevantes para la navegación segura. Pestaña General En Archivos temporales de Internet se puede configurar el tamaño de cache de disco y su localización, pulsando el botón de Configuración. Se aplican los mismos comentarios y consejos que se vieron para Netscape. En Historial se puede configurar el número de días que Internet Explorer mantiene las páginas visitadas. Se aplican los mismos comentarios y consejos que se vieron para Netscape. Pestaña Seguridad Desde la versión 4.x de Internet Explorer, la seguridad al navegar se fundamenta en las zonas de seguridad, que constituyen un medio de reducir la complejidad de la seguridad del sistema al asignar políticas de seguridad a grupos enteros de sitios. Microsoft Internet Explorer 4.x divide el mundo de Internet en cuatro categorías o zonas, a cada una de las cuales se le puede asignar individualmente su propia configuración. De ahí en adelante, cada sitio web sería asignado a su zona correspondiente con el nivel de seguridad adecuado. El nombre de la zona de Internet en la que se está navegando aparece en la barra de estado en la parte inferior derecha. De esta forma, cada vez que intente abrir un sitio o descargar contenido de la web, Internet Explorer comprobará la configuración de seguridad. A la sazón, Internet Explorer suministra cuatro zonas de seguridad, como se muestra en la tabla Zonas de seguridad de Internet Explorer. Además, se supone que los archivos de su equipo local son completamente seguros, por lo que no se les aplica la configuración de seguridad. Esta característica le permite abrir y ejecutar archivos y programas de su equipo sin preguntas ni interrupciones. Para agregar sitios web a una zona de seguridad, en la lista Zona, seleccione Zona de sitios de confianza o Zona de sitios restringidos. Pulse en Agregar sitios y escriba la dirección URL del web y pulse en Agregar. Por su parte, a cada zona se le puede asignar su propio nivel de seguridad. Estos niveles de seguridad se aplicarán a todo código descargado desde sitios de la zona en particular. En la tabla Niveles de seguridad para las zonas se listan los distintos niveles de seguridad. En la Figura se muestra cómo se puede acceder al cuadro de configuración de las zonas de seguridad en Internet Explorer. En el menú desplegable Zona se puede elegir la zona que se desea configurar, con el nivel de seguridad Alto (el más seguro), Medio (seguro), Bajo (No recomendado normalmente) o Personalizar (sólo para usuarios expertos). Si se elige Personalizar, se activará el botón Configuración..., que una vez pulsado abre la ventana más críptica de todas cuantas presenta Internet Explorer. Desgraciadamente, la recomendación entre paréntesis (sólo para usuarios expertos) puede disuadir a muchos navegantes que no se consideran tales de configurar personalizadamente la seguridad. Si, a pesar de todo, decide entrar en la ventana de configuración, se encontrará con una jerga difícil, que puede terminar por confundirle. Se intentará arrojar luz sobre estas opciones, con el fin de que ningún usuario de Internet Explorer renuncie a la configuración personalizada de su seguridad por no entender las opciones que se le presentan. Controles y complementos para ActiveX: especifica cómo reaccionará el navegador ante controles ActiveX. En el contexto de Internet, un control ActiveX es un objeto ejecutable que se inserta dentro de una página web. Este control se comporta como cualquier otro programa convencional que tenga instalado en su ordenador, sin ningún tipo de restricciones a lo que puede hacer. Por su elevadísimo riesgo, se recomienda que en todos los casos se seleccione la opción de Pedir datos para que se solicite su aprobación antes de emprender acciones relacionadas con los controles ActiveX. Si no desea arriesgarse, desactive todos y si al navegar por Internet se encuentra con uno, le aparecerá una ventana informándole de que no lo puede ejecutar porque su configuración de seguridad lo impide. Sopese cuidadosamente si el sitio que lo envía es de fiar y si de verdad le merece la pena ejecutarlo, y en caso afirmativo, cambie la configuración activando los permisos. Recuerde que si lo ejecuta, le abre de par en par las puertas de su ordenador, permitiéndole hacer lo que quiera. Autenticación del usuario: especifica cómo desea administrar las solicitudes de servidores que necesitan información de inicio de sesión. Los servidores de redes internas (intranets), y en algunos casos sitios web de Internet, requieren frecuentemente un nombre de usuario y una contraseña para limitar el acceso únicamente a los usuarios autorizados. Se recomienda que seleccione Preguntar por el nombre de usuario y la contraseña para conectar a un servidor y proporcionar un nombre y una contraseña cuando lo solicite. Descargas: dado que al descargar archivos siempre se le pedirá confirmación, puede activar la descarga de archivos sin problemas. Eso sí, cuando le aparezca el cuadro preguntándole qué desea hacer con el archivo descargado, nunca responda que desea abrirlo directamente. En su lugar, guarde el archivo o programa en disco y ábralo o ejecútelo después de tomar precauciones como las siguientes: 1.Comprobar el archivo con un detector de virus. 2.Guardar su trabajo y cerrar los demás programas. 3.Desconectarse de Internet u otra conexión de red. Para mayor seguridad, asegúrese de que la casilla de verificación Preguntar siempre antes de abrir este tipo de archivo esté activada. Java: especifica el nivel de seguridad con que permitirá que se ejecuten las applets de Java sin pedirle antes confirmación de los permisos necesarios. Normalmente, las applets de Java carecen de acceso a archivos, carpetas y conexiones de red del equipo, puesto que se ejecutan en un recinto de seguridad sin ningún privilegio. Ahora bien, si una applet de Java requiere un acceso mayor del que se ha especificado, se le pedirá que otorgue más permisos a la applet. Se pueden especificar configuraciones individuales para cada tipo de acceso que puede requerir una applet, seleccionando la opción Personalizada y pulsando a continuación en el botón Configuración de Java personal... que aparecerá. Sin embargo, esta configuración requiere conocimientos sofisticados de Java, por lo que se recomienda la opción más conservadora de seleccionar Seguridad alta. También se le ofrece la oportunidad de desactivar Java si así lo desea, lo cual sólo se recomienda en el caso de utilizar para navegar un ordenador con datos altamente sensibles. Misceláneo: aquí se configuran una serie de rasgos diversos, como el nivel de seguridad que desea asignar a los canales de distribución de software de esa zona, que se recomienda sea Seguridad alta para permitir únicamente la notificación, pero no permitir la descarga e instalación automáticas. En todos los demás casos se recomienda la opción de Pedir datos para que se le pida aprobación antes de continuar. Automatización: muchos usuarios se han vuelto locos intentando desactivar JavaScript en Internet Explorer, sin llegar a encontrar por ningún sitio cómo hacerlo. Aquí se oculta la opción, en Automatización activa. Al igual que ha ocurrido con Netscape Communicator, la gran mayoría de agujeros de seguridad que se han descubierto en Internet Explorer están directamente relacionados con la forma de implantarse estos lenguajes en el navegador. Si, por precaución, selecciona la opción Pedir datos, cada vez que acceda a una página que albergue código de JavaScript se le presentará una ventana con la pregunta ¿Desea permitir la ejecución de los archivos de comandos?, que puede terminar resultando molesta si todas las páginas web de un sitio utilizan JavaScript. Dependiendo del riesgo que desee correr, puede activarlo o desactivarlo a su gusto. Pestaña Contenido En Restricciones, al igual que NetWatch en Netscape, Internet Explorer incorpora un Asesor de contenidos para ayudarle a controlar el tipo de contenidos de Internet a los que tiene acceso su equipo. Una vez activado el Asesor de contenido, sólo podrán mostrarse los contenidos restringidos que satisfagan o excedan los criterios que determine. Con el fin de evitar que otros usuarios vean o cambien su configuración, ésta se protege mediante una contraseña. A partir del momento en que se activa el Asesor de contenido, nadie que use su navegador podrá saltarse las restricciones. El inconveniente de utilizar el Asesor es que si no se activa la casilla Los usuarios pueden ver sitios no restringidos (en la pestaña General dentro de Asesor de contenido), al ser tan pocas las páginas actualmente clasificadas, la navegación se volvería prácticamente imposible. Esto empuja normalmente a activar dicha casilla, con lo cual se podrá navegar por la casi totalidad de sitios Internet, especialmente con contenidos violentos o sexuales, los cuales con toda seguridad no incluirán una clasificación. Este obstáculo vuelve este sistema inservible en la práctica. En Certificados se pueden examinar los certificados actuales. Vea la página sobre qué son los certificados y cómo obtenerlos. En Información personal puede editar su perfil con toda la información acerca de su persona: nombre, domicilio, negocios, dirección de correo electrónico, certificados, etc. Esta información se compartirá con páginas web que lo requieran, manteniendo su intimidad y seguridad. Mediante este método se le evita tener que escribir repetidamente la misma información, como su nombre o dirección de correo electrónico, cada vez que visite un nuevo sitio web. Al mismo tiempo, no se podrá ver esta información en su equipo ni se podrá compartir con otros sin su permiso. En la práctica, son tan pocos los sitios web que la solicitan que no merece la pena que rellene los datos. También dispone de la opción de pagos a través de Internet, que le permitirá trabajar con Microsoft Wallet. Pestaña Conexión Desde esta pestaña se puede configurar el servidor proxy de acceso a Internet. Se aplican los mismos comentarios y consejos que se vieron para Netscape. Pestaña Programas Ofrece la posibilidad de configurar qué programa de correo y lector de noticias desea utilizar integrado con Internet Explorer. Generalmente, al instalar la versión 4.x del navegador se instala asimismo el cliente de correo Outlook Express, que aparecerá como predeterminado, de manera que en el futuro, cada vez que envíe correo desde Internet Explorer se hará a través del programa que se haya especificado aquí. Si no desea que sitios web obtengan inadvertidamente su dirección de correo, como se discutió al hablar de la Identidad en Netscape, debería configurar Outlook Express (o su cliente preferido) con una cuenta falsa (en Outlook Express se hace en Herramientas/Cuentas.../Pestaña Correo/Botón Agregar/Correo...). Por supuesto, resulta menos complicado leer las ventanas de aviso que se le presentan mientras navega, ya que Internet Explorer (a diferencia de Netscape Navigator, que lo hace desde las versiones 4.x en adelante) siempre le avisará antes de enviar correo automáticamente, en vez de enviar correos sin ton ni son. Pestaña Opciones avanzadas Conviene activar todas las casillas que aparecen bajo Seguridad: Avisar si el envío de formularios cambia de dirección, es decir, si la información rellenada en el formulario se envía a un sitio web distinto del sitio que le presentó el formulario. SSL 2.0 y SSL 3.0, para especificar que desea enviar y recibir información segura a través de Secure Socket Layer, versiones 2.0 y 3.0 respectivamente. Conviene activar ambos. Advertir sobre los certificados de sitio no válidos, cuando la dirección URL de un certificado de seguridad de un sitio de Internet no sea válida. Advertir del cambio entre modalidad segura y no segura, cuando se está moviendo entre sitios de Internet que no son seguros. PCT 1.0, que especifica que desea enviar y recibir información segura a través de PCT (Private Communications Technology, Tecnología privada de comunicaciones), protocolo desarrollado por Microsoft y mucho más seguro que SSL 2.0. Puede activarse sin problemas. Al igual que en Netscape, por defecto las cookies se aceptan sin avisar. En esta opción se le ofrece la posibilidad de bloquearlas todas o avisar antes de aceptarlas. Se aplican los mismos comentarios y consejos que se vieron para Netscape al hablar de cookies. Buscar revocación de certificado, con el fin de que Internet Explorer compruebe el certificado de un sitio para ver si se ha revocado antes de aceptarlo como válido. No guardar las páginas a disco, que hace que la información segura no se guarde en el disco duro. Sólo se recomienda si está utilizando Internet Explorer desde un servidor compartido y no desea que otras personas vean su información segura. Eliminar las páginas guardadas cuando se cierre el explorador, que permite borrar el contenido de la carpeta Archivos temporales de Internet cuando cierra el explorador. Sólo se recomienda si le preocupa el problema del cache, como se discutió más arriba. Si desea que Internet Explorer cree un registro de toda la actividad de Java, active la casilla de verificación Consola Java activada. Esta opción le resultará muy útil en el caso de que una applet maliciosa ocasione algún desperfecto en su sistema, ya que le permitirá rastrear sus acciones. Las mismas reflexiones que se hicieron con respecto a los plug-in en Netscape, se pueden aplicar al caso de Internet Explorer. Trucos y consejos prácticos para aumentar la seguridad A menudo me escribís con consultas variopintas o pidiéndome consejo sobre tal o cual aspecto. Ha llegado un momento en que no puedo responder a todas vuestras peticiones, aunque sí que las leo todas, por lo que he decidido incluir en las ediciones del boletín del Criptonomicón una sección sobre consejos y trucos, donde cada semana proporcionaré alguna indicación que resulte de utilidad práctica a la hora de proteger nuestra intimidad o la seguridad de nuestros datos. En esta sección os ofrezco la recopilación de esos trucos y consejos prácticos clasificados por temas, para que tanto los usuarios de ordenadores conectados a Internet, como los administradores de sistemas, puedan proteger su intimidad y aumentar su seguridad. Consejos y trucos para los administradores Passwords Actualizar y configurar Escaneo de puertos Conservar las huellas de los intrusos Cómo controlar por dónde navegan los usuarios Dedos acusadores Cómo instalar SSL en un servidor Cómo vender en Internet de forma inteligente Cómo firmar applets de Java LINUX como cortafuegos gratuito Cómo evitar los volcados de memoria Limpie su servidor web de ejemplos inútiles Cómo no recordar contraseñas en Internet Explorer Cómo activar SSL en tu servidor web ¿HTTP_REFERER? No, gracias Proteja su servidor de correo Cómo configurar las contraseñas Passwords fuertes en NT Passwords de la BIOS Passwords en la sombra Passwords fuertes en NT Pregunta: ¿Cuál es el eslabón más débil de la cadena de seguridad en sistemas informáticos? Respuesta: El usuario final. Dale a un usuario la oportunidad de elegir libremente su password e inventará palabras de paso como juan98 (se llama Juan, claro) o leire93 (su mujer y el año de su boda). Con esa clase de passwords, las medidas de seguridad más extremas a menudo no sirven de nada. Windows NT 4.0 Service Pack 2 incluye una nueva DLL (Passfilt.dll) que permite obligar que los usuarios introduzcan passwords fuertes, al incorporar la siguiente política: 1. Los passwords deben tener una longitud mínima de 6 caracteres. 2. Los passwords deben contener caracteres de al menos tres de las siguientes cuatro clases: a) Letras mayúsculas b) Letras minúsculas c) Números d) Caracteres especiales no alfanuméricos, como signos de puntuación 3. Los passwords no podrán contener el nombre de usuario ni otra parte del nombre completo del usuario. Para más información e instrucciones de instalación se puede consultar la página de Microsoft. (Nota: para consultar esa página antes hay que registrarse en el servicio de soporte de Microsoft, gratuitamente) Passwords en la BIOS Normalmente, los ordenadores incorporan la capacidad de proteger mediante password el acceso a los datos de configuración de la BIOS. Esta utilidad resulta de extremado interés en entornos multiusuario como un laboratorio o el centro de cálculo de una universidad, donde pululan cientos de estudiantes, muchos de ellos malévolos, que por motivos difíciles de explicar sienten la necesidad de cambiar la configuración de la BIOS, a menudo con consecuencias desastrosas para el ordenador... y para el encargado de la sala. Sin embargo, no todo el monte es orégano. Los fabricantes de BIOS suelen utilizar puertas traseras, que aunque teóricamente sólo deberían conocer ellos, terminan saliendo a la luz, como AWARD BIOS, que se puede romper con AWARD_SW, AWARD_PW o j262. AMIBIOS y Phoenix también poseen los suyos. Más fácil puede ser resetear la memoria de la BIOS quitando la pila de la placa base y volviéndola a conectar. A veces basta con cambiar un simple jumper. Además, existen multitud de programas para saltarse estas barreras, que se pueden encontrar en las siguientes localizaciones: http://www.hedgie.com/passwords/bios.html http://hem.passagen.se/unaxor/cracking.html http://www.voicenet.com/~raze/files/textfaq/pchack.txt http://www.geocities.com/Area51/Zone/6430/cracking.html Por lo tanto, no hay que confiar en los passwords de la BIOS para proteger el sistema y se debe preparar un sistema de protección más seguro. Eso, claro está, queda a la discreción del administrador. (Elaborado a partir del mensaje de Paul L Schmehl(pauls@UTDALLAS.EDU) a la lista de NTBuqTraq) Passwords en la sombra ¿Qué puede ocurrir si el archivo más famoso de Unix, el celebérrimo /etc/passwd, cae en manos de un atacante? No tiene más que ejecutar su programa revientaclaves favorito y sentarse a esperar hasta que empiecen a aparecer nombres de usuario con sus respectivas contraseñas. Con suerte, si el administrador es ingenuo o dejado, incluso dará con la clave del root, abriéndosele así las puertas a la máquina objetivo. "Sí, pero es muy difícil que se hagan con el fichero /etc/passwd, lo tengo bien protegido", se dirán algunos administradores. ¿Eso crees? No tienes más que visitar mi página sobre agujeros en Netscape, donde encontrarás una demostración de un agujero en Netscape Communicator 4.5 que permite leer el fichero en cuestión. ¡Haz la prueba! Afortunadamente, este problema tiene fácil solución. Utiliza las contraseñas en la sombra, en otras palabras, un segundo fichero que contiene las contraseñas cifradas y sólo accesible por root, mientras que el /etc/passwd ya no contiene más que un * en el lugar donde deberían aparecer las contraseñas cifradas. Puedes descargar el paquete de Shadow Passwords desde cualquiera de los siguientes sitios, con instrucciones para su instalación: ftp://i17linuxb.ists.pwr.wroc.pl/pub/linux/shadow/shadow-current.tar.gz ftp://ftp.icm.edu.pl/pub/Linux/shadow/shadow-current.tar.gz ftp://iguana.hut.fi/pub/linux/shadow/shadow-current.tar.gz ftp://ftp.cin.net/usr/ggallag/shadow/shadow-current.tar.gz ftp://ftp.netural.com/pub/linux/shadow/shadow-current.tar.gz Actualizar y configurar ¿Sabías cuál es la causa principal de los ataques con éxito a los sistemas infomáticos? Versiones sin actualizar. Sí, la utilización de una versión del programa que sea que no ha sido actualizada en meses, a veces incluso en años. Me refiero a software tanto en pequeñas máquinas personales (¿cuántos de los que estáis leyendo esta página usáis una versión de Netscape o Explorer anterior a la 4.x?) hasta el software de red de grandes máquinas Unix o servidores NT, software al que no se la han aplicado los parches pertinentes, o bien que no se ha actualizado convenientemente con la última versión disponible por el fabricante. Por lo tanto, si deseas disminuir los riesgos a los que se expone tu sistema, ya sea un modesto PC en casa o un gran ordenador de la Administración, es muy importante que revises el software que utiliza, especialmente aquel que tenga que ver con la conectividad a Internet, administración de servicios de Red, etc., y lo actualices o parchees con las últimas actualizaciones disponibles. A menudo no resulta una buena idea utilizar la última versión, sino la anteúltima, ya que al ritmo trepidante al que se lanzan nuevas versiones de productos, la última y flamante versión, con posibles despliegues de nuevas funcionalidades e interfaces psicodélicos, con toda seguridad no habrá sido puesta a prueba en su fase de diseño ni ha sido suficientemente validada por la comunidad de usuarios. A veces más vale esperar, aunque eso sí, no con la primera versión del producto. Por último, no basta con instalar la versión más reciente. Es igualmente configurarla correctamente, de manera que se cierren los resquicios que puedan dejar las instalaciones por defecto. Esta correcta configuración es importante no sólo en los sistemas operativos, sino también en el software en general (por ejemplo, ya sabemos que los navegadores incorporan por defecto una política de seguridad muy débil). En definitiva, se trata de mucho trabajo añadido, en la medida en que exige mantenerse al día de la evolución de los productos, así como conocerlos a fondo para poder configurarlos correctamente. Nadie dijo que la seguridad fuera cosa de niños. Escaneo de puertos Los servicios TCP/IP, como la Web o Ftp, permanecen a la escucha de un puerto determinado. La función de un escaneador de puertos consiste en escanear un rango de direcciones IP en busca de servicios a la escucha en algún puerto. En una gran red puede ser posible que existan servicios ilegales escuchando en algún puerto poco frecuente, de manera que algún trabajador utilice la red corporativa para montar su propio servidor Web o servidor de ficheros, sin pagar a un proveedor de servicios. Para detectar este tipo de abusos, que pueden llegar a comprometer seriamente la seguridad o ser el resultado de un ataque previo, conviene correr de vez en cuando un escaneador de puertos como UltraScan o Saint. Conservar las huellas de los intrusos La mayoría de los sistemas mantienen una serie de registros de log, donde queda almacenada la actividad de los usuarios, procesos, conexiones, etc. Si un intruso penetrara en nuestro sistema, siempre dejará alguna huella en el mismo, que nos permitirá rastrear sus pasos. Por este motivo, los intrusos más sofisticados contarán con herramientas para borrar silenciosamente toda traza de su incursión. Si quieres que se vuelva imposible para un atacante borrar sus huellas, puedes redirigir la salida de los ficheros de log a otra máquina de tu sistema, de manera que se dificulte la labor de borrado de rastro de los atacantes. Para ello debes modificar adecuadamente el fichero syslog.conf o similar, indicando que debe reenviar a otra/s máquina/s los mensajes deseados. Para una mayor seguridad, se pueden redirigir a una impresora, de manera que queden registrados en papel. Si te asusta el volumen de papel que se podría generar, puedes adoptar otra solución igual de eficaz, como redirigir el fichero a un puerto serie y conectar ahí mediante un cable modem nulo alguna vieja máquina que ya nadie utilice, guardando en su disco los ficheros. Para cazar a un intruso, nada como conservar bien seguros todos sus pasos por nuestro sistema. Cómo controlar por dónde navegan los usuarios Si eres padre de algún niño, jefe de un grupo de empleados o educador con jóvenes bajo tu tutela, puede que te preocupe saber por dónde navegan las personas a tu cargo, qué contenidos ven y si son convenientes. Si quieres controlar el uso que esas personas hacen del navegador instalado en los ordenadores de tu sistema, puedes activar el asistente de contenidos. En Internet Explorer, debes acudir a: Ver --> Opciones de Internet... --> Contenido --> Restricciones --> Activar En Netscape Communicator 4.5, se hace pulsando el comando NetWatch del menú Ayuda. Una vez dentro, no tienes más que seguir las instrucciones para activar las restricciones que se impondrán sobre los contenidos que a partir de este momento se podrá visualizar en tu ordenador. Dedos acusadores Cuando se utiliza el servicio de finger para interrogar a un servidor, a menudo éste revela más información sobre sí mismo y sus usuarios de la que sería deseable: el shell que está utilizando cada usuario, su directorio base y grupo a que pertenece, su nombre de usuario, a menudo acompañado del nombre real y de su número de teléfono y dirección. Debido a que además suele proporcionar información sobre la hora del último login, un atacante podría confeccionar patrones de trabajo de los distintos usuarios. En definitiva, se trata de mucha información valiosa como para distribuirla alegremente. Piensa si realmente resulta útil que esa información esté disponible para cualquier usuario de Internet o si convendría mejor eliminar ese servicio de finger. Cómo instalar SSL en un servidor Lo primero que debes hacer si quieres instalar SSL en tu servidor es disponer de software de servidor web que lo soporte. Este aspecto no supone ningún problema, ya que en la actualidad la práctica totalidad de servidores lo hacen. Consulta el manual de tu servidor para saber si lo soporta. Si estás pensando en adquirir un servidor nuevo, puedes consultar la página de WebServer Compare para conocer las características de los servidores más importantes en el mercado. Si ya tienes tu servidor compatible SSL, el siguiente paso es hacerse con un certificado digital. Lo primero que necesita es decidir a qué autoridad de certificación (AC) deseas comprárselo. Si no sabes qué autoridades de certificación existen actualmente operativas, puedes echar un vistazo a las que vienen preinstaladas en los navegadores más comunes, Netscape Communicator (Botón de Seguridad --> Certificados --> Firmantes) e Internet Explorer (Ver --> Opciones de Internet --> Contenido --> Certificados --> Sitios), que de hecho son las que tus potenciales visitantes dispondrán a su alcance. Entre ellas se cuentan AT&T, GTE, MCI, Thawte (información sobre precios de certificados en www.thawte.com/pricing.html), VeriSign (información sobre precios de certificados en www.verisign.com/enroll.s/payment.html), etc. Por comodidad, puedes pedir un certificado de prueba gratuito, de 14 días de validez, a VeriSign. El proceso general a seguir es el siguiente, que en esta entrega de Consejos y trucos se particularizará para VeriSign: 1. Conéctate con la página web de VeriSign para solicitud de certificados, donde recibirás instrucciones paso a paso de lo que debes hacer, previo registro. 2. Genera una Solicitud de Firma de Certificado Una Solicitud de Firma de Certificado (CSR) es un fichero que debes enviar a la autoridad de certificación para que lo firme y te lo devuelva en la forma de un certificado. Básicamente, contiene tu clave pública que debe ser firmada por la AC una vez haya verificado la veracidad de tus datos. Si no sabes cómo se genera, no te preocupes, porque el proceso de registro de VeriSign te habrá pedido previamente para qué servidor deseas el certificado y te presentará consecuentemente las instrucciones detalladas para cada tipo de servidor. Si tu servidor no se encuentra entre los listados, entonces consulta el manual de software del servidor. Una vez que el software del servidor haya creado los dos ficheros (tus claves, pública y privada y el CSR, con la pública), se te recomienda que realices un copia de respaldo de ambos en un disquete, que deberás almacenar en un lugar físicamente seguro. Recuerda: si pierdes tu clave privada, VeriSign no podrá recuperarla. 3. Envía la Solicitud de Firma de Certificado a VeriSign Abre el fichero Solicitud de Firma de Certificado en un editor de texto sencillo como el bloc de notas (que no añada formato ni caracteres de control, como Word) y selecciona el texto de la Solicitud, incluyendo las líneas --BEGIN NEW CERTIFICATE REQUEST-- y --END NEW CERTIFICATE REQUEST--. Copia el texto seleccionado y pégalo en el formulario de solicitud de VeriSign. Pulsa el botón de Enviar. 4. Completa la solicitud Rellena el formulario de solicitud con la información requerida acerca de tu compañía y persona/s de contacto. El contacto técnico debe estar autorizado para administrar su servidor web y debe estar empleado por tu compañía u organización. Si accedes a través de un Proveedor de Servicio Internet (ISP), el ISP necesita completar el formulario de solicitud en línea por ti. Lee el Acuerdo de Servicio de Servidor Seguro y si estás de acuerdo con las condiciones, pulsa en el botón de Aceptar. 5. La autenticación tarda algunos días Mientras VeriSign comprueba los datos, se te enviará un correo incluyendo una dirección web donde podrás comprobar el estado de tu solicitud, así como un número de identificación personal (PIN) para ver el estado. Si toda la información que enviaste es correcta, recibirás tu Certificado de Servidor Seguro en unos pocos días. Para el caso de certificado de prueba, se obvian estos pasos. 6. Instala tu Certificado de Servidor Seguro Cuando recibas tu Certificado de Servidor Seguro por correo, salva el certificado a un fichero de texto (incluyendo -----BEGIN CERTIFICATE----- y -----END CERTIFICATE-----, haz una copia de seguridad y almacénalo en un disquete, anotando la fecha en que lo recibiste. Guarda el disquete en un lugar físicamente seguro. Para instalar el certificado en tu servidor, sigue las instrucciones que recibiste de VeriSign cuando te registraste, que te guiarán paso a paso a lo largo del proceso, para cada tipo de servidor. En caso de duda, consulta el manual de software del servidor. La próxima vez que arranques el servidor (dependiendo del software), ya podrás ofrecer comunicaciones seguras a tus visitantes en línea. Nota: Procesar páginas con SSL supone una sobrecarga para el servidor que puede reducir su rendimiento. Por este motivo, te recomiendo que apliques SSL de forma selectiva sólo a aquellas páginas que necesiten cifrado, como las páginas de pago. No lo apliques a páginas de información de productos. Cómo vender de forma inteligente en Internet Hoy en día los potenciales compradores están cada vez más concienciados con la seguridad. Si se duda en ofrecer SET a los clientes, entonces debe considerarse seriamente la posibilidad de instalar SSL en el servidor para proteger al menos el envío del número de tarjeta de crédito. Piensa que robusteciendo la seguridad de los pagos se minimizarán los riesgos y llegarás a un mercado mucho mayor: el 85% de los usuarios de Internet, que todavía dudan en hacer sus compras en línea por motivos de seguridad. Con SSL, podrás gestionar las compras en línea de forma segura, con autenticación, confidencialidad de los datos intercambiados e integridad en los mismos. Como consecuencia, reducirás el riesgo, aumentarás la confianza de los clientes y, en última instancia, ganarás competitividad. Si aún no sabes qué debes hacer para empezar, lee el consejo anterior Cómo instalar SSL en el servidor. Después, pon en práctica los siguientes consejos: Cuida la seguridad de tu servidor, tanto física como lógica, ya que es tu escaparate en el mundo: utiliza servidores redundantes para ofrecer servicio 24 horas al día durante 365 días al año y crea una política de seguridad como primer paso hacia la seguridad de tu sistema. Contrata los servicios de una consultora si es necesario. Instala SET, o como mínimo SSL, en tu servidor. Los usuarios desconfían de los sitios inseguros. No debes perder clientes potenciales por este motivo. Pon a disposición de tus clientes una página sobre tu política de privacidad, explicando qué haces con los datos privados que recabas. Sé claro en la especificación de tus productos, añade imágenes y proporciona siempre información detallada acerca de precios, condiciones de garantía, forma de envío y otras cuestiones técnicas que tus potenciales compradores valorarán. Ofrece distintas formas para pagar, como tarjeta de crédito, contra reembolso, etc. Deja que tus clientes decidan. No elijas por ellos, a todos no les gustan los mismos métodos. Cómo firmar applets de Java En vista de las restricciones impuestas por el modelo de seguridad de Java, muchos desarrolladores de software se encuentran ante la impotencia de escribir aplicaciones realmente útiles, puesto que se les niega la capacidad de leer/escribir en disco o de abrir conexiones a otras máquinas. Si se quiere que las applets sean algo más que dibujos animados para realzar el impacto visual de una página y lleguen a convertirse en verdaderas aplicaciones productivas y realmente útiles, los usuarios de la aplicación Java necesitan garantizarle el acceso a los recursos, y antes de concederle estos privilegios, necesitan de un mecanismo que les permita saber de dónde (de quién) proviene la applet a la que le van a permitir acceso a su sistema. En esta sección se explicará la forma práctica de firmar applets, para que se puedan ejecutar sin restricciones en el sistema del usuario, siempre y cuando éste confíe en el autor que firma la applet. LINUX como cortafuegos gratuito Alfonso Lázaro Téllez, consultor de IP6Seguridad, nos ofrece sus consejos para configurar Linux como cortafuegos gratuito y eficaz. El boom de Internet ha llegado y muchas PYMES se quieren apuntar a lo que parece (y todos pensamos es) una gran oportunidad de negocio. El inconveniente principal que se encuentran estas empresas reside en las inversiones iniciales que deben afrontar: nuevos equipos informáticos, nuevo software, una conexión frame relay, ... y en cuanto están enganchados a Internet se plantean añadir seguridad a toda esa inversión que han tenido que hacer. En algunos casos estas empresas se encuentran con que las inversiones en seguridad son a veces tan importantes como las de las máquinas que quieren proteger, sintiéndose como expresa el refrán español que "están pagando más por el collar que por el perro". La solución que aquí planteo es gratuita. Consiste en configurar un Linux como cortafuegos. Las ventajas que nos ofrece esta solución son obvias: Linux es un sistema operativo gratuito. La máquina donde correrá el cortafuegos no es necesario que sea una gran máquina: con un Pentium 133 con 32 megas de RAM sería posible. Incluso con menos. Fiabilidad bastante alta: muchas empresas están eligiendo una opción de este tipo. El único inconveniente de esta opción es que la administración y configuración de un cortafuegos con Linux precisa a alguien con conocimientos del sistema operativo. Para ilustrar la configuración del cortafuegos voy a poner un ejemplo que coincide con una gran cantidad de redes que poseen las PYMES. En este esquema necesitaremos una máquina no de última generación, por ejemplo un Pentium 133 o parecido, con 32 megas de RAM y 3 tarjetas de red. Instalamos el sistema operativo en la maquina y lo fortificamos. Para ello básicamente quitamos todos los servicios que ofrece Linux. Nuestro cortafuegos no debe ofrecer ningún servicio hacia el exterior. Eliminaremos la mayoría de los programas setuids que no sean fundamentales en el sistema. Recompilaremos el núcleo para que pueda aceptar nuestras tarjetas de red. Y lo más importante: pensaremos una política de seguridad para nuestra empresa. Aquí incluyo un programa que configurará básicamente nuestro cortafuegos. #!/bin/sh # Definimos las variables export ROUTER=194.100.xxx.1 export WEBSERVER=194.100.xxx.66 export DNS=194.100.xxx.67 export CORREO=194.100.xxx.68 export FTP=194.100.xxx.69 export PROXY=192.168.xxx.2 export MIRED=192.168.xxx.0/255.255.255.0 export ALL=0/0 # levantamos las interfaces ifconfig eth0 194.100.xxx.2 netmask 255.255.255.192 ifconfig eth1 194.100.xxx.65 netmask 255.255.255.192 ifconfig eth2 192.168.xxx.1 netmask 255.255.255.0 # añadimos las rutas route add -net 194.100.xxx.64 netmask 255.255.255.192 dev eth1 route add -net 192.168.xxx.0 netmask 255.255.255.0 dev eth2 route add -host $ROUTER dev eth0 route add default gw $ROUTER # Empezamos con la política # Denegamos el forwarding por defecto # ipfwadm --> comando de firewall, -F forwarding , -p politica ipfwadm -F -p rej # aceptamos entrada y salida de correo ipfwadm -F -a acc -S $ALL -D $CORREO 25 -P tcp ipfwadm -F -a acc -D $ALL -S $CORREO 25 -P tcp -k ipfwadm -F -a acc -S $CORREO -D $ALL 25 -P tcp ipfwadm -F -a acc -D $CORREO -S $ALL 25 -P tcp -k # aceptamos la recogida de correo desde la red interna ipfwadm -F -a acc -S $MIRED -D $CORREO 110 -P tcp ipfwadm -F -a acc -D $MIRED -S $CORREO 110 -P tcp -k # aceptamos petición y consultas de DNS ipfwadm -F -a acc -S $ALL -D $DNS 53 -P tcp -b ipfwadm -F -a acc -S $ALL -D $DNS 53 -P udp -b # aceptamos peticiones de FTP ipfwadm -F -a acc -S $ALL -D $FTP 21 -P tcp ipfwadm -F -a acc -D $ALL -S $FTP 21 -P tcp -k ipfwadm -F -a acc -S $FTP -D $ALL 20 -P tcp ipfwadm -F -a acc -D $FTP -S $ALL 20 -P tcp -k # aceptamos hacer masquerade desde el proxy ipfwadm -F -a acc -S $PROXY -D $ALL -m # Para loguear el resto de peticiones. Los logs se guardan en /var/log/messages # Si no se desea loguear comentar la siguiente línea. ipfwadm -F -a rej $ALL -D $ALL -o # Fin del fichero de configuración. Este cortafuegos es muy básico, no es perfecto ni mucho menos, no tiene reglas antispoof y alguna que otra pequeña limitación, pero a grandes rasgos es un cortafuegos utilizable por una empresa. De todas maneras siempre se aconseja que la configuración y administración del cortafuegos la lleve un especialista. Pero tampoco deje que le digan que todos los cortafuegos son caros y hay que pagar grandes cantidades de dinero por sus licencias y el software. Cómo evitar los volcados de memoria Todos los programadores en sistemas tipo Unix están acostumbrados a los volcados de memoria, los "core dumps", cuando falla la ejecución del programa en C sobre el que están trabajando, generalmente por problemas de punteros y errores de acceso a memoria. Esta característica resulta muy útil, ya que el fichero "core" generado contiene información valiosa sobre el estado de la memoria cuando se produjo el error fatal. Ahora bien, dado que la memoria puede contener en un momento dado información valiosa sobre ficheros o procesos en los que se esté trabajando en ese momento, esta información volcada en el fichero core también puede contener datos confidenciales, especialmente si el programa que se "colgó" y generó el fichero core corrían con privilegios de root, como por ejemplo datos del fichero de contraseñas en la sombra (v. boletín #46, art. 6). Para evitar estos volcados, se puede editar el fichero /etc/security/limits.conf, añadiendo la línea: * hard core 0 donde el primer argumento indica el dominio de aplicación, que puede ser un usuario, un grupo, o general (*); el segundo argumento indica el tipo de restricción, dura (hard) o blanda (soft); el tercero, lo que se quiere restrinir, en este caso, los volcados (core); el último argumento especifica el valor del argumento anterior, en este caso, 0 Kbytes. El propio fichero /etc/security/limits.conf contiene instrucciones y ejemplos sobre su manejo. Limpie su servidor web de ejemplos inútiles Cuando se instala el software de servidor web, por defecto se crean una serie de directorios en los que éste a menudo almacena ejemplos de programas en cgi, server side includes o php (por ejemplo, para máquinas Linux con servidores tipo NCSA), o ejemplos en ISAPI o ASP (en servidores Windows NT con IIS), módulos en perl, etc. Estos ejemplos sirven básicamente a dos propósitos: Comprobar que la instalación del servidor se ha completado con éxito y que se pueden ejecutar programas para creación dinámica de páginas web. Servir de guía de referencia al programador, que puede usar los ejemplos suministrados por defecto con el servidor para desarrollar a partir de ellos sus propias aplicaciones o simplemente aprender cómo se realiza alguna acción concreta. Ahora bien, en contra de lo que pudiera pensarse a primera vista, resulta muy peligroso conservar esos ejemplos en el servidor en el directorio asignado por defecto, ya que pueden ser explotados por un atacante para entrar en el servidor. No olvide que: Cualquier otra persona conoce la localización exacta en su servidor de los programas de demostración. Los códigos fuente suelen acompañar a los programas de ejemplo, por lo que pueden ser examinados a fondo por cualquiera en busca de agujeros. Si se descubriera una vulnerabilidad en alguno de ellos, podría ser víctima fácil de un ataque. Por lo tanto, si no pretende desarrollar aplicaciones o no piensa aprender con esos ejemplos, lo mejor que puede hacer es borrarlos de su servidor en cuanto haya comprobado que todos los servicios funcionan correctamente. En el caso de que le sirvan como referencia de trabajo, muévalos de sitio, de manera que no estén disponibles a través de Internet. Si no desea borrarlos ni trasladarlos de ubicación, cámbieles al menos los permisos, de manera que no pueda ejecutarlos ningún usuario que no sea Ud. o algún otro perteneciente a un grupo reducido de confianza. Recuerde, cuantos más programas inútiles cuelguen de su servidor, mayores oportunidades ofrecerá a atacantes potenciales. Cómo no recordar contraseñas en Internet Explorer Internet Explorer 5.0 incorpora la posibilidad de recordar los campos que se rellenan en un formulario, incluidas las contraseñas. Esta característica, que puede resultar muy cómoda para una persona que es la única usuaria de un ordenador, abre un importante problema de seguridad cuando son varios los usuarios que navegan desde la misma cuenta en el ordenador. Cuando un usuario visita una página en la que se le pide login y password, tras haberlos introducido, le aparecerá una ventana en la que se le pregunta si desea que Windows recuerde la contraseña para no tener que escribirla la próxima vez que visite esa página. En caso afirmativo, quedará almacenada de forma codificada en el registro de configuraciones de Windows, de manera, que en el futuro, cada vez que se acceda a la misma página, se rellenerá la contraseña automáticamente. Para usuarios que se conectan a multitud de servicios de Internet, esta funcionalidad adicional puede simplificarles terriblemente la vida, en la medida en que no necesitan recordar docenas de contraseñas distintas. Sin embargo, si otro usuario navegando desde su misma cuenta accediera a esa página, automáticamente recibiría permiso para acceder a ella. Qué puede hacer el usuario En primer lugar, en la ventana que se le presenta debe contestar que no lo desea y activar la casilla "No volver a ofrecer recordar contraseñas". Si esta funcionalidad ya está activada, puede borrar todas las contraseñas y desactivar la característica en Herramientas --> Opciones de Internet... --> Contenido --> Autocompletar... . Qué puede hacer el administrador Como un creador de páginas web no puede prever lo que harán los potenciales visitantes, más vale asegurarse de que no ocurrirán sorpresas. Puede desactivar la posibilidad de Autocompletar añadiendo el atributo AUTOCOMPLETE="OFF" a la etiqueta
: En el caso de que sólo se quiera desactivar el autocompletado en algunos campos más comprometidos del formulario y no en todos, puede utilizarse ese mismo atributo en las etiquetas de los campos, por ejemplo: que desactivará autocompletar solamente en ese campo en concreto. Cómo activar SSL en tu servidor web Si deseas ofrecer comunicaciones seguras a los visitantes de tus páginas web con un canal SSL deberás antes solicitar e instalar un certificado de servidor, como se explicó en Cómo instalar SSL en un servidor. Pero no basta con tenerlo instalado, deberás hacer algunas modificaciones en la configuración del servidor para que SSL quede efectivamente activado. Cómo se hace en Linux (servidores tipo Apache) En primer lugar, se debe especificar el puerto para conexiones SSL. En el fichero de configuración httpd.conf se deben añadir, entre otras, las siguiente directivas: Listen 443 SSLFlag on A continuación, para aquellos directorios o ficheros en los que se desee un canal seguro cuando sean accedidos, se puede incluir la línea RequireSSL on en la directiva Directory o Files correspondiente. RequireSSL on De esta forma no se mostrará la página o fichero si su dirección no va precedida de https://, en cuyo caso la transmisión será a través de un canal protegido con SSL. Normalmente se utilizará esta posibilidad para proteger formularios que transmitan información confidencial del cliente. Cómo se hace en NT (Internet Information Server 5.0) En primer lugar, se debe especificar el puerto para conexiones SSL. Abre Internet Information Services y en las propiedades del web, en la pestaña Web Site, introduce el 443 como SSL Port. A continuación, para aquellos directorios o ficheros en los que desees que sea obligatorio utilizar una conexión SSL, examina sus propiedades y en la pestaña Directory Security (para directorios) o File Security (para archivos o programas) pulsa el botón Edit... bajo Secure communitations. En la nueva ventana que aparece, activa Require Secure Channel (SSL), lo que obligará en el futuro a que esa conexión sólo pueda establecerse a través de un canal seguro (la dirección de ese recurso deberá ir precedida, por tanto, de https://, para que sea accesible). ¿HTTP_REFERER? No, gracias Algunos de los bugs más viejos siguen apareciendo recurrentemente en servidores web y, lo que es más grave, en servidores de comercio electrónico, con lo que se ve amenazada tanto la seguridad del comerciante como la de sus clientes. Es un error común utilizar la cabecera REFERER para obtener la dirección de la página desde la que se hace una petición al servidor web y en función de esta información garantizar o no el acceso. Por ejemplo, ante la posibilidad de que alguien modifique un formulario maliciosamente para ejecutarlo luego desde su propio disco duro, se piensa a menudo en esta cabecera para comprobar que la petición provenga de la página donde está el formulario auténtico, y no desde otra localización. Sin embargo, la facilidad de modificar el contenido de esta cabecera, hace que este recurso sea totalmente inútil. Por eso, NUNCA se debería basar una operación crítica (aceptación de los datos de un formulario, acceso a un servicio, etc.) en el contenido de esta cabecera. Se puede encontrar una descripción práctica con ejemplos de cómo manipular los contenidos de la cabecera en Ataque a través de HTTP_REFERER. Debe quedarle bien claro: jamás confíe en HTTP_REFERER para denegar o garantizar una operación. No le conceda nunca más valor que el meramente orientativo. Proteja su servidor de correo En las empresas es común (o debería serlo) que en las estaciones de trabajo se instalen paquetes antivirus, con lo que se descarga en cada usuario la responsabilidad de escanear los archivos sospechosos y hasta cierto punto de protegerse frente al ataque de virus. Sin embargo, los virus tipo gusano, que se propagan a través del correo electrónico, como Melissa, BubbleBoy o el reciente LoveLetter, aprovechan la gran difusión de los servidores de correo Exchange para propagarse a continuación a todos o parte de los usuarios internos de la empresa. De ahí la importancia de frenar la expansión del virus precisamente en su punto de entrada, es decir, en el propio servidor de correo. Por lo tanto, si administra una red en la que se distribuye correo electrónico, no dude en instalar una herramienta antivirus en el cortafuegos o en su servidor, de manera que escanee todo el correo entrante antes de distribuirlo entre los usuarios de la red. Mejor atajar el mal de raíz, que ponerse a reparar después los daños causados. Eso sí, el mero hecho de instalar un antivirus a la entrada no exime de la necesidad de continuar utilizando (y actualizando) los antivirus en las estaciones de trabajo. El correo, aun constituyendo una puerta de contagio muy importante, no es ni con mucho la única forma. Los usuarios continúan descargando programas desde sitios dudosos en Internet, los traen en disquetes y hasta en CD-ROM. Como nunca se sabe desde dónde puede atacar el próximo virus, nada como cerrar ventanas y puertas. Consejos y trucos para los usuarios Cómo proteger la intimidad Cómo protegerse frente a virus Cómo proteger el correo en Windows Cómo desactivar JavaScript en Internet Explorer ¿Cómo sé si tengo Java activado? Cuidado con los plug-ins Consejos para navegar seguro en Internet Cómo comprar de forma inteligente en Internet La crisis de los escritorios seguros ¿Estamos seguros con SSL? Configuración segura del Registro en Windows NT Configuración segura del Registro en Windows NT (II) Configuración segura del Registro en Windows NT (III) Publicar en las news sin dar tus verdaderos datos Di NO al spam Copia Carbón Oculta Correo Web seguro Lobos con piel de cordero: extensiones ocultas Cómo proteger la intimidad Utiliza siempre la última versión del software Continuamente aparecen nuevos agujeros en los navegadores, en Java, JavaScript, ActiveX, CGI, en programas de correo, etc. Utiliza la última versión disponible, que se supone será más segura que las anteriores. Borra la información comprometida ¿Eres consciente de todo lo que queda flotando por tu disco duro (en la papelera de reciclaje)? Viejos correos, cookies, noticias de Usenet, los sitios Web que has visitado en el último mes, los últimos documentos que has abierto. Un libro abierto para cualquiera que quiera leerlo. ¡Impídelo! Borra a conciencia. Sírvete de utilidades como Without a Trace (freeware). Usa distintas cuentas de correo Si quieres enviar correos confidenciales desde el trabajo, contrata una cuenta con un proveedor de Internet o mejor aún, hazlo desde casa, pero sin usar tu nombre real, para qué arriesgarse. Puedes utilizar servicios gratuitos como HotMail. Usa repetidores de correo anónimos No expongas tu identidad inútilmente en grupos de noticias, listas de distribución, o cuando escribes a cualquier destinatario que no conviene conozca tu verdadera identidad. Para eso están los repetidores de correo anónimos. ¡Y son gratuitos! Participa en las news de forma anónima DejaNews ha lanzado un servicio de participación anónima en las news, que tras registrarnos, nos permitirá enviar de manera completamente anónima noticias en cualquiera de los innumerables grupos de noticias. Las instrucciones paso a paso para registrarse y enviar noticias anónimamente los podéis encontrar en la páginas de DejaNews. Navega anónimamente ¿Qué necesidad hay de dejar nuestra dirección IP allí por donde pasemos? ¿Demasiadas cookies en nuestro disco duro? Ayúdate de la navegación anónima y nadie sabrá por dónde andas. Cifra y firma los correos confidenciales Si no quieres que cualquiera lea tus correos, pero te interesa conservar tu identidad, cifra los correos y fírmalos. Así el destinatario estará seguro de que nadie más lee los mensajes que tú y sólo tú le envías. Si sólo aceptas como válidos los correos firmados no te expones a que nadie suplante la personalidad (spoofing) de otro y te engañe, por ejemplo, anunciándote que tu novia te ha abandonado por tu mejor amigo. Puedes infomarte sobre estos temas en la sección sobre correo seguro. No reveles datos personales innecesariamente A menudo al navegar por la Red nos encontramos con formularios que nos piden ciertos datos personales. Rellena sólo aquellos que consideres sean relevantes para el servicio que se ofrece. Si rellenas los datos para una suscripción a una revista en línea sobre jardinería no es lo mismo contar que tu modem es de 33,6 K y que adoras las orquídeas que decir a cuánto ascienden tus ingresos o cuántos hijos tienes. Usa servidores seguros Cada vez más sitios Web ofrecen la posibilidad de navegación segura. Úsala cuando sea posible. Escribe a los webmaster animándoles a que lo adopten en su sitio. Para saber si un servidor Web es seguro, basta con comprobar el URL. Si empieza con https:// en vez de http://, el sitio posee un servidor seguro. Para news es igual: si empieza con snews: en lugar de news:, entonces el servidor de news es seguro. Entérate de las políticas respecto a la privacidad Ante la falta de legislación al respecto, el usuario está desprotegido, ya que la ley no le ampara (sin ir más lejos, es legal que el jefe lea los correos de sus empleados). Entérate de si en tu puesto de trabajo se monitoriza tu actividad. Cuando te pidan información personal en un sitio Web, busca si tienen definida una política. Ídem antes de suscribirte a listas de distribución. Si quieres, puedes leer la política sobre privacidad del Criptonomicón. No pidas que te envíen correos indeseados A veces al registrarte en un sitio, te preguntan si quieres recibir correos. La casilla suele estar marcada por defecto. Tenlo en cuenta por si no quieres recibirlos. Por ejemplo, esta práctica la utilizo en mi libro de visitas. Bórrate de los directorios de búsqueda Existen muchos directorios en los que puede aparecer tu nombre, correo electrónico, dirección, teléfono e incluso más. Si no te gusta la idea, escribe a cada servicio: Four11, Bigfoot, Internet Address Finder, WhoWhere, etc. En sus FAQ te explican cómo hacerlo. Bórrate de archivos de búsqueda de noticias Escribir x-no-archive: yes al principio de tu noticia hace que luego no aparezca en motores de búsqueda como AltaVista o Deja News. Mucho mejor aún, DejaNews ofrece un servicio gratis de correo antispam. Quéjate Si recibes correo basura y puedes averiguar de quién procede o al menos su proveedor de Internet, escríbeles quejándote. Usa tu sentido común No corras riesgos tontos. Si estás en el trabajo, no visites sitios porno ni escribas correos poniendo verde al jefe ni leas las noticias de alt.sex (o cosas peores). Productos comerciales Puedes encontrar una reseña de productos en los números atrasados del Boletín del Criptonomicón, que se actualiza con una periodicidad aproximadamente quincenal. Cómo protegerse frente a virus Cómo protegerse de los sustos en documentos Word Navidades sin disgustos Los virus en disquetes No creas todo lo que oyes ni instales todo lo que descargues Cómo protegerse de los sustos en documentos Word Resulta muy sencillo incluir cualquier tipo de objeto dentro de un documento Word, incluso programas ejecutables, siendo los virus de Macro (pequeños programas escritos generalmente en VisualBasic) uno de los mayores terrores en ficheros Word y Excel. La regla básica es: abre sólo ficheros .doc que provengan de una fuente conocida o al menos fiable. Claro que esta regla no te protege al 100%, pero reduce tus riesgos de infectarte. Por supuesto nunca abras un programa .exe embebido dentro del documento Word, ya que podría contener un virus. En Word7 u Office 97, activa la opción de abrir documentos sin macros. Si no está activada, Word te avisará en cualquier caso al disponerse a abrir un documento que contenga macros. Para más información, consulta la información de Microsoft, Comprobar que los documentos no contienen macros con virus. Navidades sin disgustos En estas fechas navideñas, el volumen de correo, tanto postal como electrónico, se multiplica considerablemente, debido al número colosal de tarjetas de felicitaciones enviadas. En el ámbito de Internet y del correo electrónico, crece en la misma medida el número de incidentes de seguridad y de virus transmitidos por este medio, en la forma de postales ejecutables. Normalmente sucede que o bien son ellas mismas un virus o bien han sido infectadas por el camino, ya que si la postal cae simpática, serán miles de usuarios los que se la retransmitan de unos a otros. Por otro lado, no sólo se corre el riesgo de contagiarse con algún virus, sino también de abrir inadvertidamente agujeros de seguridad en la red corporativa de la empresa para la que se trabaja, ya que junto con los correos de felicitación pueden aparecer simpáticas imágenes animadas de los Reyes Magos en Java o ActiveX, mientras en el trasfondo un ejecutable silencioso instala NetBus o BackOrifice, por citar algunos ejemplos. O, simplemente, el correo contiene código en JavaScript que explota los últimos y muy serios agujeros de seguridad descubiertos recientemente en los navegadores. En este panorama que puede parecer intimidatorio, resulta muy fácil evitar sorpresas, basta con seguir unos sencillos consejos de sentido común: - No envíes a los demás tarjetas de felicitación ejecutables si no estás seguro de su fuente (de quién los creó), especialmente si contienen ficheros ejecutables o código escrito en Java, JavaScript o ActiveX (algo frecuente si recibes o envías el correo en formato HTML). - Aunque te fíes de la fuente, no envíes ficheros muy grandes. Mucha gente se conecta a Internet en estas fechas para hacer sus compras en línea o simplemente para felicitarse. Internet ya está suficientemente colapsada, sin necesidad de sobrecargarla aún más con postales animadas de tamaño gigantesco. - Si recibes felicitaciones con ejecutables como ficheros adjuntos, no los abras si proceden de remitentes desconocidos. Incluso aunque conozcas a quien te la envió, suele ser más prudente no abrirlos, ya que puede habértela transmitido sin ser consciente de su contenido. En cualquier caso, utiliza siempre un escaneador de virus antes de ejecutarlos. Otro problema diferente lo constituye el contenido con controles ActiveX o applets de Java, que podría realizar una gran variedad de fechorías en tu sistema, desde tomar el control de tu ordenador hasta simplemente dejarlo colgado, haciéndote perder el trabajo no guardado en disco. Razón de más para no abrir ningún correo del que no estés completamente seguro. Por último, plantéate la siguiente pregunta: ¿Realmente te merece la pena enviar una postal con código ejecutable? ¿No puedes felicitar las fiestas con un texto? ¡Feliz Navidad! Los virus en disquetes Ya nadie se contagia con los disquetes. ¿Quién arranca hoy día desde un disquete? ¿Te suena familiar esta frase? Pues aunque usemos flamantes estaciones de trabajo, a menudo arrancamos desde la disquetera sin darnos cuenta. ¿Quién no se ha dejado olvidado un disquete dentro de la disquetera y cuando arranca el ordenador al día siguiente se encuentra con el mensaje de "Disco de arranque no válido"? Ajá, ya lo has hecho, y basta que ese disquete contuviera algún virus en el sector de arranque para que te hubieras infectado. Los disquetes con virus pueden ser algo del pasado. O no tanto. Por si acaso, la próxima vez que enciendas el ordenador asegúrate de que la disquetera está vacía. No creas todo lo que oyes ni instales todo lo que descargues Internet es un medio que se presta fácilmente a la rápida circulación de bulos y mentiras, especialmente en lo que a virus se refiere. Por este motivo no hay que creer todo lo que nos dicen ("No abras tal correo porque te borrará el disco duro...") ni se puede andar ejecutando programas felizmente. Además de los virus convencionales, existen ataques más sofisticados, como los caballos de Troya que explotan nuestra conexión a Internet para filtrar información sobre nuestro sistema. En ésta, como en otras cuestiones, se hace necesario mantenerse en un punto medio conservador, examinando todo el software antes de ejecutarlo, especialmente si lo recibimos por correo electrónico o lo descargamos desde sitios Web de dudosa fiabilidad. El CERT acaba de publicar una lista de consejos sobre los Troyanos de Internet que conviene leer. Se puede encontrar en la página del CERT. Cómo proteger el correo en Windows A muchos usuarios de Windows les surge la duda de cómo hacer para proteger el correo propio, de manera que no pueda ser examinado por terceros. Pedro Pérez Rodríguez, nos proporciona sus consejos: Para Outlook, y en lo que se refiere al correo almacenado, lo que tendrías que hacer es poner un password al nivel de tu carpeta personal de correo (la del fichero .pst). Para ello tienes que ir a servicios y en la carpeta personal que quieras proteger pulsar propiedades y ponerle una nueva password. Cuando te la pida recuerda no tener marcada la opción de 'Recordar la Clave', si la pulsas estarías como al principio, puesto que no te la volverá a pedir. Si a lo que te refieres es a que no se descarge tu nuevo correo y que te pida la password de tu servidor pop3 (como con un cliente NetScape), lo que debes hacer es no poner password en el recuadro dedicado para ello en el servicio de internet mail. Cuando te descargue nuevo correo te pedirá la password. No marques la opción de recordar la password puesto que otra vez perderás la única forma de seguridad que tiene. Si estas utilizando de servidor de correo uno Exchange, el usuario lo tomará por defecto con el que el servidor tenga configurada la cuenta, típicamente el usuario de la red NT donde estes, con lo que la validación del usuario la tienes en el login de red. Cómo desactivar JavaScript en Internet Explorer Muchos usuarios se han vuelto locos intentando desactivar JavaScript en Internet Explorer, sin llegar a encontrar por ningún sitio cómo hacerlo. La opción se oculta en el siguiente lugar: Ver --> Opciones de Internet... --> Seguridad --> Configuración... --> Automatización --> Automatización activa La gran mayoría de agujeros de seguridad que se han descubierto en Internet Explorer están directamente relacionados con la forma de implantarse Java y JavaScript en el navegador. Si, por precaución, se selecciona la opción Pedir datos, cada vez que se accede a una página que albergue código de JavaScript aparecerá una ventana con la pregunta ¿Desea permitir la ejecución de los archivos de comandos?, que puede terminar resultando molesta si todas las páginas web de un sitio utilizan JavaScript. Dependiendo del riesgo que se desee correr, se puede activar o desactivar JavaScript al gusto. ¿Cómo sé si tengo Java activado? Cualquier usuario de Netscape o Internet Explorer es un usuario de Java, tanto si lo sabe como si no, ya que la configuración por defecto de los navegadores es el activar Java. Pero si después de leer mis páginas sobre la seguridad en Java te sientes amenazado y deseas desactivarlo, aquí te explico cómo hacerlo: Usuarios de Netscape 4.x En el caso de Netscape es bastante sencillo: Edición --> Preferencias --> Avanzadas --> Activar Java Por defecto esa casilla estará chequeada. Para desactivar Java, simplemente haz click en ella. Usuarios de Internet Explorer 5 En este caso es un poco más complicado, pero también se puede hacer: Herramientas --> Opciones de Internet --> Seguridad --> Internet --> Personalizar nivel... --> Java --> Permisos de Java --> Desactivar Java Elige esta opción si deseas desactivar Java. Cuidado con los plug-ins En Netscape Communicator, en el menú de Edición, Preferencias..., Navigator, Aplicaciones, se puede especificar qué aplicaciones de ayuda y plug-ins se lanzarán en respuesta a la carga de ficheros con una extensión determinada y un tipo MIME asociado que el navegador no puede visualizar directamente. Así, por ejemplo, si al navegar por una página web encuentra un enlace a un documento Word, cuya extensión es .doc, al seguir el enlace se arrancará Microsoft Word, si así aparece configurado en la ventana de aplicaciones. Esta característica permite que el navegador sea capaz de visualizar directamente documentos en PDF, archivos de sonido o de vídeo, etc. Tanto las aplicaciones de ayuda como los plug-ins son programas en código nativo con acceso total a los recursos del sistema, por lo que conviene instalarlos con precaución, ya que si alguno estuviera escrito con malas intenciones podría causar daños irreparables. De hecho, se han producido ataques gracias a plug-ins maliciosos (lea la escalofriante historia de las Estafas telefónicas a través de la pornografía en Internet). Otros plug-ins, sin estar específicamente diseñados para perjudicar al navegante, contenían agujeros de seguridad que permitían obtener información de su sistema, como ocurrió en 1997 con el plug-in de ShockWave de Macromedia, que permitía a un servidor web obtener ficheros del disco duro del visitante. Por otro lado, una página maliciosa podría también utilizar documentos que contuvieran virus de macro, como ha ocurrido en Word y Excel, para hacer que el usuario incauto los ejecutara en su ordenador. Como medida cautelar, se debe instalar el menor número posible de plug-ins y aplicaciones de ayuda y siempre de casas conocidas en las que se puede confiar. Para los tipos de archivo que se consideren potencialmente portadores de virus o con capacidad de interpretar comandos, se debe especificar que el navegador pida confirmación antes de abrirlos. Para ello, se selecciona el tipo de documento, por ejemplo "Microsoft Excel Worksheet" y se aprieta el botón de Editar... en la ventana que aparece. En la nueva ventana se selecciona la opción de avisar antes de abrir documentos de este tipo. Puede comprobar qué plug-ins tiene instalados escribiendo en la ventana de dirección: about:plugins Es muy probable que se sorprenda de la cantidad de plug-ins que posee, sin ser consciente de ello. ¿Quién los puso ahí? Usted, cuando instaló otros programas, que a lo mejor en algún momento de la instalación le interrogaron acerca de su deseo de añadir un programa para su integración con el navegador. Si te preocipa tu seguridad al navegar por Internet, puedes consultar la guía más completa sobre navegación segura en Internet. Cómo comprar de forma inteligente en Internet Nunca deberías suministrar información confidencial por Internet sin ningún tipo de protección, especialmente en lo que se refiere a datos financieros. Si está pensando en comprar vía web ese libro raro o esa colección de discos que sólo encuentra en una tienda en línea, pero dudas a la hora de suministrar tu número de tarjeta de crédito, has de saber cuáles son las opciones que se te presentan a la hora de hacerlo de forma segura. - No entregues más información que la estrictamente necesaria para recibir el producto que has comprado (normalmente no existe motivo para que debas responder con tu renta anual o tus ideas religiosas). - Nunca entregues datos confidenciales si no es a través de un servidor seguro (que utilice SSL). - No envíes tu número de tarjeta de crédito por correo electrónico. - Comprueba rutinariamente los certificados de los sitios seguros a los que te conectas. De nada sirve SSL si no se lo toma en serio. - Reclama tus derechos como consumidor: - Exige imágenes del producto que piensas adquirir, al menos cuando sea relevante. - Exige información detallada y clara sobre los precios. - Exige información sobre la forma de envío y coste adicional. - Exige que te expliquen las condiciones de garantía y devolución. - Busca la página sobre política de privacidad del comercio, para saber qué se hace con tu información privada, tanto la recopilada directamente, suministrada al rellenar formularios, como la obtenida indirectamente por tu navegación. Si no la encuentras, exígela. - No pagues en efectivo, ni con cheque, ni con tarjeta de débito, mejor hazlo con tarjeta de crédito. Es más seguro de lo que generalmente se cree y te ocasionará menos problemas en caso de irregularidades con la entrega de tu compra o fraude con tu tarjeta. Consulta con tu banco las condiciones de resolución de disputas con el comerciante. La entidad financiera de medios de pago te respalda. En caso de fraude, el que tendrá problemas será el comercio en el que se hizo la compra con tu tarjeta, y no tú. La crisis de los escritorios seguros Como todos sabemos, Windows 95/98 es inseguro por antonomasia. Para evitar que distintos usuarios sentados en el ordenador, aunque entrando cada uno con su nombre y contraseña, puedan acceder a todos los ficheros del disco duro, existen en el mercado multitud de productos para asegurar el escritorio: Full Armor, Fool Proof, Fortres, etc. Desgraciadamente, existen métodos que nos permiten saltarnos esa protección, como describo a continuación. 1. Al encender el ordenador, se produce un intervalo de un par de segundos desde que ves aparecer tu escritorio hasta que ves abajo la barra del explorador. Si durante ese intervalo se presiona ctrl+alt+supr, se cargará el administrador de tareas, que te permite ahora ya ejecutar absolutamente lo que quieras. 2. Si se pulsa ctrl+esc cuando Windows pide el nombre y contraseña, se lanza también el administrador de tareas. Desde ahí ya ejecutas los programas que quieras, puedes abrir archivos, etc. Explicación: estos métodos se saltan la protección del escritorio puesto que todavía Windows 95/98 no ha tenido tiempo de cargarla, y dado que Windows 95/98 es inherentemente inseguro, no hay ninguna otra protección. SOLUCIONES Para que los protectores del escritorio sigan siendo relativamente eficaces a pesar de estas formas de saltárselos, podéis probar lo siguiente: 1. Añade lo siguiente al fichero MSDOS.SYS debajo de la sección [Options]: BootSafe=0 BootKeys=0 BootWarn=0 AutoScan=0 Network=1 (si estás en red) DOS no es muy seguro, en cualquier caso, así que puede que esto no mejore en mucho la situación. 2. Cambia el nombre al adminstrador de tareas o bórralo. Por ejemplo, en vez de taskman.exe, llámalo tasman.exe o lo que quieras, da igual. Moraleja de la historia: si buscas seguridad, no uses JAMÁS Windows 95/98. ¿Estamos seguros con SSL? Debido a la limitación de exportación del gobierno de los Estados Unidos sobre los productos criptográficos, las versiones de los navegadores distribuidas legalmente más allá de sus fronteras operan con nada más que 40 bits de clave, frente a los 128 ó 256 bits de las versiones fuertes. Claves tan cortas facilitan los ataques de fuerza bruta por búsqueda exhaustiva de claves, pudiéndose descifrar mensajes cifrados en estas condiciones tan desfavorables en cuestión de horas o días, dependiendo de los recursos informáticos disponibles. Al menos para aplicaciones financieras las restricciones de exportación se relajan, permitiendo hacer uso de criptografía fuerte. Si utilizas versiones de los navegadores 4.x o superiores, entonces al conectarte a tu banco para operaciones de telebanca, tu navegador utilizará automáticamente claves de 128 bits, estableciéndose un canal de comunicaciones completamente seguro. Cuando navegues por un sitio seguro con Netscape Communicator, encontrarás tres indicaciones de que estás en un sitio seguro: un candado cerrado en la barra de herramientas, otro en la parte inferior izquierda de la barra de estado y el cambio al protocolo https, en la ventana de dirección. Para saber con cuántos bits de clave está utilizando tu navegador, pincha en el candado de la barra de estado. Se abrirá una ventana llamada información sobre seguridad. Pulsa el botón "Abrir información sobre página" y en esta nueva ventana verás una línea titulada "Seguridad". Ahí se te informa del algoritmo de cifrado y del número de bits de clave. Si es 40, entonces tu canal no es en absoluto seguro. Cuando navegues por un sitio seguro con Internet Explorer, encontrarás dos indicaciones: un candado cerrado en la parte inferior central de la barra de estado y el cambio al protocolo https, en la ventana de dirección. Para saber con cuántos bits de clave está utilizando Internet Explorer, no tienes más que pasar el ratón por encima, sin necesidad de pinchar en él. Si haces doble clic, aparecerá una ventana con información sobre el certificado del sitio web seguro. En el campo "Tipo de encriptación" se dan los detalles de algoritmos y longitud de claves. Configuración segura del Registro en Windows NT En esta ocasión, contamos con los valiosos consejos de Bernardo Quintero, para aumentar la seguridad de nuestro sistema configurando adecuadamente el registro de Windows NT. El Registro de NT es un arma muy poderosa, por lo normal olvidada, para poder configurar correctamente nuestra máquina. En HispaSec vamos a dar algunos ejemplos de cómo unas sencillas modificaciones permiten aumentar la seguridad de nuestros sistemas. Una política de seguridad que englobe el factor humano, una actualización constante de los parches, un seguimiento diario de las noticias sobre los nuevos riesgos, y una buena configuración de los sistemas, son pilares básicos a la hora de proveer un entorno seguro. Cuando hablamos de configuración del sistema en Windows NT, debemos de tener una especial atención, entre otras, a la administración de las cuentas de usuarios, la seguridad de los recursos, los permisos de los archivos y directorios, los logs para auditorias, o las relaciones de confianzas. Sin duda podremos acudir a la extensa bibliografía existente para encontrar cumplida información sobre éstas y otras características del sistema de Microsoft. Sin embargo, suele ser habitual olvidar, o dejar en un segundo plano, los valores del Registro, herramienta fundamental a la hora de poder configurar determinados controles de seguridad. Debemos de pensar en el Registro de NT con una base de datos donde tienen cabida los parámetros de configuración de nuestro sistema, similar en parte a lo que se recogía en los ficheros .ini de otras versiones de Windows. NT permite interactuar con estos valores a través de las distintas herramientas de configuración del sistema. No obstante, quedan aun múltiples parámetros a los que sólo se podrá llegar a través del acceso directo mediante el editor de Registro: regedt32.exe. Es obligación por nuestra parte recomendar un especial cuidado a la hora de trabajar directamente con el editor de Registro, ya que una introducción de valores erróneos puede acarrear diversos problemas al sistema. El entorno ideal para estos casos sería contar con una máquina de pruebas, y tras comprobar que no existen problemas, proceder a la modificación del Registro en el resto de sistemas. Veamos a continuación algunos parámetros modificables, a través de la aplicación regedt32.exe, que pueden ayudarnos para poder crear un entorno más seguro en Windows NT. Ruta: HKLM\SOFTWARE\Microsoft\WindowsNT\Current\Version\Winlogon Variable: DontDisplayLastUserName Valor: 1 Esta modificación, DontDisplayLastUserName=1, evitará que el sistema muestre en la ventana de autentificación el nombre del último usuario. De sobra es conocido que los nombres de usuarios son pieza codiciada por los crackers, a la hora de poder proceder a distintos tipos de ataque, como el de fuerza bruta. Es por ello que además de esta modificación, recomendamos renombrar las cuentas de usuarios que vienen por defecto en Windows NT, como pueda ser la del Administrador. Ruta: HKLM\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement Variable: ClearPageFileAtShutdown Valor: 1 Con este valor conseguiremos que el archivo que almacena la memoria virtual del sistema se borre automáticamente tras salir de una sesión. Esta característica evitará que un posible atacante accediera a este archivo y recogiera información confidencial. Ruta: HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon Variable: AllocateFloppies Valor: 1 Ruta: HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon Variable: AllocateCDROMS Valor: 1 Con estás dos entradas se consigue desactivar las disqueteras y las unidades de CD-ROM respectivamente. En determinados entornos se aconseja esta práctica, para impedir la grabación de datos, o la ejecución e instalación de software. Sin olvidar que también suelen ser entrada habitual de los virus informáticos. Estos son sólo algunos ejemplos de la potencia que puede suministrar el uso directo del Editor de Registro. En sucesivas entregas seguiremos comentando otras entradas y configuraciones que nos ayudarán a conseguir un entorno NT más seguro. Así mismo, extenderemos estas recomendaciones a otros sistemas mayoritarios, como puede ser Linux. Publicar en las news sin dar tus verdaderos datos Cuando publicas un mensajes en los foros de noticias, el programa de correo que uses, toma por defecto y manda, lógicamente sin decirte absolutamente nada, tu dirección de correo y otra serie de datos, que se pueden ver, incluso aunque no firmes "manualmente" el mensaje, si entras en propiedades del mensaje. Este acto tan inocente de dejar tu dirección verdadera de correo a la vista de cualquier lector puede llegar a suponerte una serie de problemas, que yo en carne propia he padecido por algo tan nimio como publicar unos mensajes un día en que estaba convocada huelga (mensajes desagradables, mail-bombing, spam, etc.). Y claro, el que te mande algo, no va a ser tan incauto como tú y mandarlo desde su verdadera dirección de correo. Ya te puedes preparar a recibir publicidad no deseada desde sitios de los que ni has oído hablar, hasta aburrirte. La solución, puede ser tan compleja como buscar redireccionadores, programas externos que modifiquen las propiedades de tu mensaje o jugar un poco con el Outlook Express; para ello, y sin de paso falsear los datos verdaderos que utilices en tus mensajes de correo "personales", selecciona desde Outlook la dirección desde la cual te conectas a los foros, por ejemplo foros.teleline.es, vete a HERRAMIENTAS - CUENTAS - NOTICIAS - PROPIEDADES y en la pestaña GENERAL verás los campos NOMBRE y DIRECCION ELECTRONICA que manda el programa acompañando a tus mensajes. Desde ahí, modifícalos y pon lo que quieras, con la garantía de que no van a salir los datos de tu cuenta de correo real cuando escribas en las news, pero sí cuando mandes mensajes personales, excepto que también hayas seguido el mismo procedimiento para modificar los datos de la bandeja de salida, que también tiene sus ventajas en algunas ocasiones. Los mensajes, se pueden rastrear, pero solamente a partir de la dirección IP que tenías asignada al enviar ese boletín y, claro está, con la colaboración de tu proveedor, que ya es más difícil. Y claro, si crees que con añadir una firma del tipo pepeNOSPAM@hotmail.com, incluida en el mensaje lo solucionas, avisarte de que eso no vale para nada. Ten en cuenta, claro, que quien te quiera responder a tu boletín, solamente tiene la opción de hacerlo publicando otro en el mismo foro que tú, pero no puede responderte "personalmente" a una dirección... que no existe. Puedes aprender más sobre spam. Di NO al spam Últimamente, el spam se ha convertido en una de las peores plagas que asolan Internet. La mayor parte del correo basura está constituido por anuncios comerciales, normalmente de productos dudosos, pornografía, métodos fantasiosos para hacerse rico o servicios en la frontera de la legalidad. Estrictamente hablando, no existe forma humana (ni mecánica) de evitarlo por completo. Sin embargo, sí que se pueden apuntar una serie de sugerencias, que si bien no nos impermeabilizarán al correo basura, al menos lo harán disminuir significativamente. Si acabas de recibir un correo basura, puedes bloquear la dirección del remitente, de manera que se eliminen automáticamente los correos que en el futuro te lleguen de esa dirección, haciendo lo siguiente en Outlook Express: abre el mensaje y pincha con el botón derecho del ratón sobre la dirección del spammer. En el menú desplegable que se presenta, selecciona "Bloquear remitente". Ahora bien, esta precaución no te protegerá de nuevos spammers. Para ello, puedes crear filtros de entrada para enviar a la papelera aquellos mensajes con frases sospechosas en su asunto que contengan las palabras "dinero", "millonario" o "sex" o una proliferación de signos de exclamación, en el más puro estilo cutre del correo basura. Netscape Messenger En Edición-->Filtros de mensajes-->Nuevo, puedes definir reglas adecuadas para que los correos se eliminen automáticamente según llegan sin molestarte, ahorrándote ese trabajo. Indica que se eliminen los mensajes con asunto que contenga las palabras sospechosas. Pulsando el botón "Más" puedes definir más reglas para cada palabra de la que desconfíes. Outlook Express Puedes eliminar automáticamente los mensajes entrantes, configurando las reglas pertinentes en Herramientas-->Reglas de mensaje-->Correo-->Nueva. Marca "La línea Asunto contiene las palabras especificadas" y en la nueva ventana pulsa repetidamente el botón "Agregar" para añadir tantas palabras sospechosas como se te ocurran. Finalmente, define la acción "Eliminarlo". Copia Carbón Oculta Todos sabemos lo molesto que puede llegar a ser el spam y deberíamos tomar algunas precauciones para prevenirlo (puede obtener más información sobre spam si lo desea). A veces incluso colaboramos sin querer, cuando enviamos correos a muchos destinatarios, puestas sus direcciones una detrás de otra bien en el campo Para:, o bien utilizando el campo CC: (Copia de Carbón, por aquello de las páginas de papel carbón que se ponían antiguamente para hacer copias de cartas redactadas a máquina, que los lectores menos jóvenes seguro que aún recuerdan). La consecuencia de utilizar este método para enviar un mensaje a múltiples destinatarios es que todos ven las direcciones de los otros, lo cual puede no resultar deseable en muchas ocasiones. Para evitarlo existe el campo CCO (Copia de Carbón Oculta), en el que pondremos a todos los destinatarios del mensaje, de manera que cuando éste llegue a sus destinos, no sabrán a quiénes les fueron enviados y no dispondrán por tanto de estas direcciones. Veamos cómo hacerlo con dos de los programas de correo más populares: Outlook Express Para utilizar el cuadro CCO, haga clic en el menú "Ver" y seleccione "Todos los encabezados". Netscape Messenger Haga clic en "A:" para seleccionar un tipo de destinatario diferente del normal. A continuación seleccione CCO e introuduzca todos los destinatarios ocultos separados por punto y coma (;). (Mi agradecimiento a Fernando Weber por sugerirme el tema). Correo Web seguro El correo Web, por su conveniencia, facilidad de uso y precio (¡es gratis!), se está convirtiendo en una herramienta cada día más utilizada. ¿Pero qué riesgos entraña? Hotmail ha compilado las siguientes sugerencias para ayudarle a ser un usuario de correo electrónico seguro y con sentido común: Modifique su contraseña con frecuencia. El cambio de contraseña puede asegurar que su correo electrónico siga siendo privado. Además, las contraseñas que utilizan letras y números son más difíciles de adivinar. No comparta su contraseña. La mayoría de los administradores de correo electrónico no le pedirá su contraseña. No se deje engañar por mensajes de correo electrónico maliciosos que le pidan su contraseña. Éste es un truco bien conocido, aunque no demasiado común, ideado para engañarle y hacer que comparta su contraseña. Como regla general, no la comparta nunca con nadie. Nunca abra archivos de datos adjuntos que provengan de un origen desconocido. Pueden contener lo que se conoce como "cartas bomba" o "virus", los cuales pueden dañar su PC. Recuerde siempre cerrar la sesión cuando haya terminado. Es rápido, fácil y puede impedir que intrusos no deseados tengan acceso a su cuenta. Si utiliza un equipo público, en un café de Internet por ejemplo, le aconsejamos que cierre el explorador que estaba utilizando cuando esté preparado para finalizar su sesión de Internet. No responda a mensajes no solicitados ("spam"), u otro tipo de correo ofensivo o de acoso. Al responder, lo que único que hace es confirmar que tiene una dirección de correo electrónico activa a la que pueden enviar constantemente correo electrónico no solicitado. En su lugar, dirija el mensaje no solicitado al departamento del servicio al cliente del correo electrónico de origen (normalmente algo similar a abuse@[dominiocorrespondiente].com). Para ayudar a controlar el envío masivo, Hotmail proporciona a sus usuarios "filtros" para el correo entrante. Éstos se pueden configurar fácilmente para enviar ciertos mensajes (como los que incluyan ciertas palabras) directamente a su papelera de reciclaje. Asegúrese de que utiliza el software de Internet más reciente (p.e., un explorador como Microsoft Internet Explorer o Netscape Navigator). Las versiones más recientes a menudo ofrecen mejoras para proteger la seguridad. Utilice siempre una red segura. La mayor parte de redes corporativas y proveedores de servicios Internet están protegidos por administradores que vigilan los posibles problemas de seguridad y actúan para proteger a los usuarios de los "intrusos" (usuarios malintencionados) que pueden intentar robar información personal que se transfiera a través de la red. Aunque el riesgo es pequeño, tenga precaución cuando utilice una red que no le sea familiar. Use estaciones mantenidas por personal de confianza, o bien pregunte si el equipo de Internet que utiliza está protegido contra infracciones de seguridad. Utilice el sentido común cuando esté conectado a Internet y mantenga cierta dosis de escepticismo. Tenga precaución cuando revele información personal, tal como su dirección física, a cualquiera que conozca en el ciberespacio; incluso si afirma ser una autoridad. Fuente: www.hotmail.es Lobos con piel de cordero: extensiones ocultas A estas alturas, no debe quedar un solo usuario de Windows que no tenga una cierta idea de que el virus LoveLetter y sus variantes se deben a la ejecución automática de un programa, concretamente un script de Visual Basic. El nombre exacto del virus era "LOVE-LETTER-FOR-YOU.TXT.vbs". ¿Por qué dos extensiones, primero .txt y luego .vbs? Windows tiene la fea costumbre de ocultar por defecto la extensión de los archivos conocidos, de manera que un fichero llamado "manual.doc" aparecerá listado simplemente como "Manual", acompañado del icono de Word, para identificarlo con esta aplicación, y así para el resto de extensiones que identifica. Si en cualquier ventana de archivos se pulsa sobre "Ver"-->"Opciones de carpeta...", se encontrará la posibilidad de (des)habilitar "Ocultar extensiones para los tipos de archivos conocidos". Si se pregunta ¿Qué es esto?, Microsoft responde raudo: "Oculta las extensiones de nombre de archivo de tres letras de determinados archivos. Haga clic en esta opción para mejorar la organización de las ventanas de carpetas". No me queda tan claro que esta opción mejore la organización, antes al contrario, se ofrece la posibilidad de que programas peligrosos se oculten bajo el nombre de otros inocentes, como "inocente.txt.vbs", que con la opción de listar extensiones deshabilitada, aparecería como "inocente.txt", haciendo creer al usuario ingenuo que se trata de un archivo de texto inocuo. Al hacer clic en él, descubrirá con sorpresa y horror que se trataba en realidad de un programa ejecutable. De esta forma, los nombres de los virus pueden aparecer como "leeme.txt", "historias.doc", "pamela.jpg", etc., si se tiene la opción de listar extensiones deshabilitada. Aunque bien es verdad que el icono no se corresponderá con el programa a que hace referencia la extensión, ¿quién se fija en esos detalles si está ansioso por abrir el archivo? Como diría Microsoft, es culpa del usuario. Así que ya sabe, para que no le echen la culpa, nunca active la opción de ocultar extensiones y se ahorrará problemas. Bienvenido a la Cripta Estas páginas recogen una selección de mis editoriales publicados en el Boletín del Criptonomicón, tratando la más candente actualidad en materia de criptografía y seguridad. Podrás informarte y formar tu opinión acerca de los últimos avances en comercio electrónico, acerca de la evolución de SSL y SET, los retos a los que se enfrentan las Administraciones Públicas, legislación y regulaciones sobre criptografía, y mucho más. Bucea por estas páginas y empápate de los conceptos de seguridad que te permitirán saber qué está pasando en el mundo de las tecnologías de la información en los albores del tercer milenio. Artículos publicados Mamá, quiero ser hacker El ciego afán por estar conectado Los peligros de los PSA Las guerras de los MP3 ¿Sociedad de la Información o Sociedad de la Vigilancia? Piratas de chaqueta y corbata Protección de derechos de autor y retro-ingeniería Las compras en el nuevo milenio La seguridad de GSM se tambalea Internet en la palma de su mano La nueva banca digital del siglo que viene ¿Podemos hablar de criptología española? PKI o los cimientos de una criptografía de clave pública España, a la vanguardia de las firmas electrónicas Sobre puertas y ratoneras Seguridad en el comercio electrónico: ¿SSL o SET? Privacidad y sociedad en Red 50 días de Declaración de Renta por Internet Barreras al comercio electrónico La Declaración de la Renta a través de Internet Tarjetas Monedero y Comercio Electrónico ¿Internet o no Internet?: Internet segura El movimiento hacia el software abierto Mamá, quiero ser hacker Cuando yo era niño, soñábamos con ser astronautas, futbolistas o pilotos de carreras. Nuestros ratos de ocio transcurrían entre canicas, geypermans, balones y cochecitos de juguete. Los adolescentes de hoy han crecido con una Game Boy en las manos, una Play Station en el comedor y un ordenador en el cuarto. Antes de jugar al fútbol ya saben cómo ganar vidas extra en el Doom o buscar passwords para entrar en páginas pornográficas en Internet. Las nuevas tecnologías no encierran secretos para ellos. Y claro, tanto oír hablar de hackers, los últimos héroes rebeldes contra el Gran Imperio, también quieren convertirse en uno de ellos. Aquí sería interesante hacer la distinción entre el auténtico hacker, en su sentido original, que sabe programar en ensamblador y C, conoce los entresijos de Linux y Windows y sabe todo lo que se puede saber sobre protocolos TCP/IP, UDP e ICMP; y el conocido como "lamer", que tiene algunos conocimientos muy limitados de programación y mucho tiempo libre y aprovecha las vulnerabilidades descubiertas por los primeros en sistemas informáticos y los programas escritos por los primeros para explotar estos agujeros. Ser un auténtico hacker constituye un largo y arduo proceso de autoaprendizaje, mientras que para convertirse en "lamer" basta con frecuentar los conocidos sitios underground donde pueden obtenerse gratuitamente poderosas herramientas creadas por los verdaderos hackers. En estas páginas de hackers, rara vez escritas por uno genuino, se ofrecen herramientas gratuitas de inusitada versatilidad y potencia, como las sofisticadas Nmap, Nessus o Cheops para escaneo de puertos y detección de vulnerabilidades. El siguiente paso, una vez detectado con estos programas un buen agujero, consiste en intentar correr algún código que lo explote, códigos que normalmente se pueden encontrar en las mismas páginas de hacking (como por ejemplo Anticode); o descargar un programa de ataque que ejecute un DoS (Denegación de Servicio) sobre la máquina objetivo para tirarla abajo; o probar con las instrucciones que se han encontrado en alguna buena página sobre cómo hacerse con privilegios de root explotando algún oscuro fallo de configuración en un servicio. Estos programas poseen un interfaz de usuario a veces sorprendentemente amigable y se encuentran a menudo incluso precompilados, por lo que el "lamer" ni siquiera necesita saber cómo compilarlos, no tiene más que ejecutarlos. Habida cuenta de la facilidad con que se obtienen, instalan y ejecutan estas herramientas, y dada la cantidad de información detallada acerca de agujeros, vulnerabilidades y caminos para explotarlas, resulta que prácticamente cualquiera con un ordenador y una conexión a Internet puede atacar con éxito una extraordinaria cantidad de sistemas en línea. Estos ataques tienen éxito debido a que muchas redes funcionan ejecutando versiones antiguas de programas con vulnerabilidades conocidas y fácilmente explotables; configuraciones por defecto que dejan abiertas enormes puertas de entrada; contraseñas de fábrica que nadie se molesta en cambiar y que son de todos conocidas; servicios innecesarios que descubren multitud de puertos; y otras triquiñuelas que se describen con profusión de detalles en sitios underground. A la vista de la facilidad con que un niño puede convertirse en un hacker peligroso en unas pocas horas, no estaría de más que los administradores de sistemas y personal encargado de la seguridad informática se diesen una vuelta por las citadas páginas y utilicen las mismas armas que los "lamers" para escanear sus redes, aprender acerca de los últimos exploits y tomar las medidas oportunas. Puede tratarse de una interesante y aleccionadora experiencia para más de uno, que siempre surtirá resultados positivos. Hoy en día, ser hacker resulta más sencillo que nunca. Dejar de ser una víctima fácil, también. Publicado en el Boletín del Criptonomicón #72. Información adicional Nmap Nessus Cheops Anticode Otros artículos publicados Se pueden leer otros artículos desde la página principal de Susurros desde la Cripta. Enviar a un amigo Si consideras que este artículo puede interesarle a alguien que conozcas, puedes enviárselo por correo electrónico. No tienes más que indicar la dirección del destinatario, el asunto y tu nombre. El ciego afán por estar conectado Desde que el mes pasado el número de teléfonos móviles superara al de líneas fijas, cifra que ronda los 18 millones, se ha abierto una nueva página en las telecomunicaciones en España. A finales de año se espera que uno de cada dos españoles cuente con su teléfono móvil. Qué bien. Ahora podremos localizar en todo momento a la mitad de la población española. El teléfono móvil, como estandarte de la nueva economía digital, como signo de los tiempos de la España del progreso, habilitará la comunicación global: el jefe podrá llamarle en cualquier instante (Pérez, ¿qué hace en el restaurante a estas hora? ¿Y los informes de ventas?); la esposa sabrá localizarle a todas horas (¿Por qué tenías el móvil desconectado de 20 a 20.15? ¿Cómo que no había cobertura? ¿Dónde estabas?); podrá saber qué hacen sus hijos (¿Cómo que estás estudiando? ¿Qué es ese ruido?); en fin, qué maravilla que todos sepan dónde está a cualquier hora del día o de la noche y le puedan localizar, y hablar con usted, o mandarle esos simpáticos mensajes cortos. Cuánto podrá incrementar su productividad en el trabajo, mejorar sus relaciones de pareja o perfeccionarse como padre. Esto es progreso. Por supuesto, Internet no podía quedarse al margen de esta tendencia. Enviar correos y esperar a que lleguen a su destino, a que los abran y los contesten, eso pertenece a la prehistoria. Lo que de verdad se lleva es la mensajería instantánea (MI): saber si un usuario está conectado a Internet ahora mismo y entonces mandarle un mensaje que recibirá al instante. Los programas de MI más populares son ICQ y AOL Instant Messenger, ambos propiedad de America Online, el segundo de los cuales se distribuye con Netscape Communicator. Muy por detrás de ellos, se encuentra MSN Messenger de Microsoft, aunque no deja de ganar terreno. Existen otros programas de MI, todos ellos igualmente gratuitos, que están haciéndose un hueco, como Yahoo Messenger o Ding!. Así que, como puede ver, la oferta está bien surtida. En general, además de la posibilidad de enviar mensajes instantáneos en cualquier momento a una persona que utilice el mismo software, es posible incluso compartir ficheros del disco duro, es decir, estos programas son capaces de transformar el ordenador del usuario en un servidor de ficheros, donde se pueden cargar/descargar archivos. Por supuesto, esta posibilidad no está habilitada para que todo el mundo pueda conectarse, sino que se puede configurar: negar la carga/descarga de archivos, permitirla sólo a listas de amigos, pedir confirmación antes, etc. Ni que decir tiene que a nadie se le debería ocurrir jamás la idea de compartir su ordenador de forma tan despreocupada a través de Internet. Existen otros programas que, a diferencia de la mensajería instantánea, no están orientados a compartir mensajes, sino más bien a compartir ficheros. Se trata de Napster, cuya misión es facilitar la búsqueda e intercambio de música en formato MP3, o Scour, para el intercambio de cualquier tipo de archivos multimedia: música, vídeos, imágenes, audio, etc. En definitiva, se observa un movimiento hacia la proliferación de este tipo de software para compartición de recursos y localización instantánea de gente en Internet. Por desgracia, estos programas plantean muchos problemas de seguridad, legales y de invasión de la intimidad. Ya se han encontrado agujeros de seguridad en ICQ, AIM, Napster y Scour, los más extendidos, y a veces incluso en los mismos protocolos que utilizan. Se trata de la vieja historia: protocolos propietarios, mantenidos en secreto, pero que no han podido resistir mucho tiempo a la retroingeniería, por lo que ahora ya existen versiones clonadas de los programas para Linux y otras plataformas. Una vez con el código en su poder, ya le resulta más sencillo a un atacante buscar vulnerabilidades (por ejemplo, desbordamientos de búfer) y atacar a los sistemas que utilizan las versiones oficiales. Al margen de posibles agujeros, los programas de MI pueden suponer una amenaza a la intimidad en la medida en que permiten saber cuándo se conecta, le anuncia cuando participa en chats y ofrece por tanto herramientas para espiar sus movimientos en Internet con mayor facilidad. Por su parte, Napster, al compartir en principio solamente ficheros MP3, de unos 2.5 MB de tamaño medio, puede representar un importante foco de congestión en su red si muchos usuarios se conectan a su ordenador para descargar música. Eso sin mencionar, claro está, los problemas legales que puede ocasionarle poner a disposición del público música protegida por derechos de autor (de hecho, la más codiciada por los usuarios de Napster). Scour presenta los mismos inconvenientes que Napster, con la dificultar añadida de que realiza un escaneo de su disco duro completo en busca de material multimedia, poniéndolo en su totalidad, si se descuida, a disposición de cualquiera. En resumen, son muchos las cuestiones legales, de seguridad y de intimidad que se ven afectadas por el uso de estos programas, especialmente en redes corporativas, donde se puede llegar a tener dificultades no ya en un ordenador individual, sino en toda la red, perjudicando incluso la imagen de la empresa. Por estos motivos, si administra una red, erradique o, cuando menos, controle el uso que los usuarios hacen de este tipo de software, porque el día menos pensado puede encontrarse con un hacker en la puerta o con la Guardia Civil. Las herramientas de comunicación deben ser precisamente eso, herramientas a nuestro servicio, y nunca deberíamos volvernos dependientes de ellas. El mundo no se hunde por apagar el móvil de vez en cuando o desconectar el ordenador. Publicado en el Boletín del Criptonomicón #71. Información adicional Sitio del Protocolo ICQ Otros artículos publicados Se pueden leer otros artículos desde la página principal de Susurros desde la Cripta. Enviar a un amigo Si consideras que este artículo puede interesarle a alguien que conozcas, puedes enviárselo por correo electrónico. No tienes más que indicar la dirección del destinatario, el asunto y tu nombre. E-mail destino: Los peligros de los PSA La última palabra de moda en los círculos Internet es ASP o PSA para los españoles. A los veteranos de la programación web, ASP les resultará familiar: Active Server Pages, la respuesta de Microsoft a la creación dinámica de páginas web. Pero no, no se trata de ese ASP sino de Application Service Providers o Proveedores de Servicios de Aplicaciones (PSA). ¿Que no tiene dinero para comprar una aplicación de ERP o de CRM? No se preocupe, un PSA es la respuesta. ¿Que no puede invertir tantos recursos económicos y humanos en lanzar su aplicación de comercio B2B? No se aflija, un PSA lo hace por usted. ¿Que sus servidores y líneas de comunicación no pueden soportar el tráfico de la aplicación que está proyectando? No hay problema, un PSA sí. PSA representa la tendencia más novedosa en modelos de negocio basados en Internet. Se fundamenta en ofrecer una solución de red integrada y total, que incluya software, hardware, cableado, mantenimiento, soporte, conectividad a Internet con acceso fijo y/o móvil (WAP), actualización constante tanto de los programas como del hardware y otros servicios igualmente interesante. Básicamente, se trata de servir en alquiler software especialmente caro, personal cualificado, servidores y canales de acceso de gran capacidad, de manera que la empresa que contrata al PSA se evite esas inversiones iniciales, que de entrada pueden resultar prohibitivas. La idea consiste pues en alquilar en vez de comprar, externalizar en vez de afrontar grandes gastos. Las ventajas son evidentes. Aplicaciones o servidores que hasta ahora sólo estaban al alcance de grandes empresas con recursos ilimitados pasan a estar disponibles para cualquier pequeña o mediana empresa, derribando así la barrera de entrada en nichos de mercado antes cerrados. Adquirir una aplicación de Planificación de Recursos Empresariales (ERP) o de Gestión de Relación con Clientes (CRM), un lujo al alcance de unos pocos, con PSA se haría realidad para todos. Desplegar una sofisticada aplicación de comercio electrónico, con la consiguiente inversión en programas y servidores, mano de obra, mantenimiento, etc., pasaría a ser una posibilidad asequible con PSA, al alcance de pequeños empresarios de limitados recursos de TI. La PSA hace frente a las necesidades de adquirir servidores más potentes o canales de comunicación de mayor capacidad. PSA se erige así en una herramienta de democratización, eliminando muchas de las barreras económicas o tecnológicas de adquisición, operación y mantenimiento de aplicaciones o recursos reservados tradicionalmente a los grandes. Si tiene en su empresa un navegador y conexión a Internet, ya puede operar una gran aplicación albergada en un PSA. Pero no todo pueden ser ventajas, ¿cuál es su lado oscuro? Por supuesto, su riesgo más evidente es para la seguridad de la empresa que contrata al Proveedor de Servicios de Aplicaciones. Cuanto mayor sea el atractivo de hacerse con la información mantenida por el PSA, mayor será el número de ataques. Resulta obvio que de forma natural los PSA se convertirán en blanco preferido de los hackers. Los servicios de seguridad mínimos exigibles al PSA serán: Cifrado de las comunicaciones, utilizando canales seguros con SSL de 128 bits o acudiendo a tecnologías de VPN (cuidado aquí con soluciones cerradas como PPTP de Microsoft, con agujeros ya encontrados). Autenticación fuerte, basada en técnicas criptográficas robustas e infalsificables, que por supuesto deberán guardar proporción con el nivel de sensibilidad de la información a proteger. Detección de intrusos, escaneos de puertos y de otras operaciones sospechosas. Se deberá dotar al sistema de una capacidad de respuesta rápida y eficaz. Utilización de un sistema operativo seguro, o al menos, seguramente configurado, con definición de permisos de accesos muy restrictivos y especial cuidado en programas ejecutables accesibles a través de las redes. Resulta fundamental que los clientes de un PSA no puedan acceder a los datos de otros clientes (de la competencia) albergados en el mismo PSA. Mantenimiento realizado preferiblemente desde las propias consolas de los servidores, ya que se previenen problemas de agujeros en los accesos remotos. Es importante establecer quién accede a los datos de quién. ¿Puede un administrador del PSA acceder rutinariamente a la información confidencial y sensible de una empresa? A pesar de todas las medidas de seguridad, los mayores peligros a los que se enfrenta un servicio de PSA ofrecido a través de redes públicas son: Denegación de servicio: si el PSA deja de prestar el servicio transitoriamente, bien por ataques de hackers, bien por causas técnicas, la empresa puede ver su negocio seriamente afectado, dependiendo su impacto de la mayor o menor necesidad de prestación continuada del servicio a sus clientes. Hoy por hoy, habida cuenta del ciclo de vida tradicional del software, donde son los clientes, y no sus creadores, los que prueban el software y descubren vulnerabilidades, resulta muy arriesgado confiar en que el PSA se mantendrá a prueba de ataques con todas las brechas de seguridad cerradas y que garantizará un servicio durante el 100% del tiempo, incluso bajo ataques con éxito. La redundancia física y lógica de servidores juega aquí un papel crítico. La línea Maginot: una vez más, el mayor riesgo no procede de fuera, sino de dentro del propio PSA. Si alberga en él información confidencial de gran valor, un empleado desleal del PSA o implantado allí por un rival podría sentirse tentado de robarla para su uso o venderla al mejor postor. Nadie como él conoce cómo funciona internamente el Proveedor, por lo que nadie mejor que él para atacar sin dejar rastro. Estos empleados también podrían ser vulnerables a ataques de ingeniería social, sobornos, extorsiones, etc. En la actualidad, los PSA se encuentran en su infancia. A pesar de la publicidad, los riesgos superan con mucho a las ventajas como para apostar fuerte por un PSA de acceso a través de redes públicas. Por supuesto, esta situación cambiará en el futuro, especialmente en la medida en que la seguridad se afronte como un objetivo prioritario del ASP y no como una mera cláusula del contrato. Si está barajando la idea de externalizar sus servicios, sopese bien las amenazas y después, dude. La responsabilidad de la elección es muy grande. Al fin y al cabo, está jugando con la seguridad de su empresa y de sus clientes. Publicado en el Boletín del Criptonomicón #70. Información adicional El fenómeno ASP 'Netsourcing': la revolución que viene Otros artículos publicados Se pueden leer otros artículos desde la página principal de Susurros desde la Cripta. Enviar a un amigo Si consideras que este artículo puede interesarle a alguien que conozcas, puedes enviárselo por correo electrónico. No tienes más que indicar la dirección del destinatario, el asunto y tu nombre. ¿Sociedad de la Información o Sociedad de la Vigilancia? Desde que las cookies hicieran su aparición en la arena de Internet, se han visto permanentemente envueltas en la polémica, atrayendo un interés anormalmente desmesurado en los medios. Se las asocia comúnmente con amenazas a la intimidad, violación de la privacidad y peligros a veces más terribles. A pesar de que los grupos de anunciantes y de marketing mantienen una guerra particular con ciertas organizaciones, que por su parte promueven campañas de protección de la intimidad en la Red, lo cierto es que las cookies continúan utilizándose extensivamente en todo tipo de sitios web y la tendencia apunta a que su uso crecerá con el tiempo. Las cookies constituyen una potente herramienta empleada por los servidores web para almacenar y recuperar información acerca de sus visitantes: conservan información entre páginas sucesivas que visita el usuario, extendiendo significativamente las capacidades de las aplicaciones cliente/servidor basadas en la Web. Mediante el uso de cookies se permite al servidor recordar algunos datos concernientes al usuario, como sus preferencias para la visualización de las páginas de ese servidor, nombre y contraseña, productos que más le interesan o, simplemente, un identificador único. ¿Pero qué es exactamente una cookie? Una cookie no es más que un fichero de texto simple que algunos servidores piden a nuestro navegador que escriba en nuestro disco duro. El contenido de la cookie lo dicta el servidor y normalmente consistirá en un número para identificar unívocamente al visitante. Este número se utiliza como índice en una gran base de datos, en la que se va almacenando la mayor cantidad posible de información acerca de lo que el visitante ha estado haciendo por sus páginas: qué enlaces sigue, qué páginas lee, qué fotos mira, qué documentos o programas descarga, etc. De esta forma, si el usuario apaga el ordenador y se conecta de nuevo al día siguiente, la cookie permitirá identificarle, reconociéndole como el mismo usuario del día anterior, con lo que se puede continuar recabando información acerca de él. La cookie actúa como esos anillos que se pone a los pájaros en la patita, para poder seguir sus movimientos y migraciones. En sí, esta técnica no parece muy preocupante. De hecho, cuando visitemos sitios que nos han enviado cookies, recibiremos propaganda cada vez más personanalizada, ya que el anunciante va conociendo con gran precisión nuestros hábitos y gustos, lo cual puede resultar deseable. Y al fin y al cabo, sólo nos conocen por un número, no por nombre y apellidos. Desgraciadamente, a menudo se rellenan formularios con el nombre, apellidos, dirección, teléfono y a veces incluso datos aún más privados y sensibles. A partir de ese momento, si el formulario se envía a un sitio del que hemos recibido una cookie, la asociación entre el identificador anónimo de la cookie y nuestros datos personales, introducidos en el formulario, resulta inmediata. De ahí en adelante ya no es un número el que navega, sino un ciudadano con su nombre y domicilio. El reciente anuncio de Kevin O'Connor, fundador y presidente de DoubleClick, la mayor red de anunciantes y envío de cookies para marketing personalizado, ha provocado un gran revuelo en los círculos defensores de la intimidad en Internet: según sus palabras, DoubleClick planea cruzar la información recopilada en Internet (on-line), a través de cookies y formularios, con la información recopilada por otras compañías al margen de la Red (off-line). Ahora el panorama sí que empieza a perfilarse como un escenario Orwelliano, en el que se siguen a conciencia todos los movimientos de los ciudadanos en un mundo que camina hacia la informatización y automatización progresiva de todos los procesos. Cada día se hace un mayor uso de tarjetas, de crédito y de todo tipo: la tarjeta Caprabo para ganar puntos para descuentos mensuales en las compras del supermercado, la tarjeta VIPS para ahorrar dinero VIPS y obtener descuentos en comidas y cenas, la tarjeta del Corte Inglés, la tarjeta de Repsol, la tarjeta de MasterCard gratuita que distribuye la compañía eléctrica entre sus clientes, las tarjetas de crédito y débito habituales con las que se compra en cualquier tienda o se reservan entradas para el próximo concierto o se paga la habitación del hotel. Hay tarjetas para todo y las tarjetas Visa, AMEX y MasterCard cada vez se usan en más y más pagos. El peaje electrónico está a la vuelta de la esquina, funcionando ya en muchos países; se registran todas las llamadas desde móvil y fijo: a qué número se llamó, cuánto tiempo duró la llamada. ¿Nunca ha pensado que queda un registro electrónico de todas sus compras y servicios pagados con esa multitud de tarjetas? La facilidad de tratamiento masivo de la información que ofrecen los modernos sistemas informáticos, unida a la fácil movilidad de los datos, gracias a las redes de comunicaciones cada día más extendidas, posibilitan la compilación de gigantescos historiales sobre la vida personal de los ciudadanos: hábitos de compra, gustos musicales, destinos de viaje preferidos, lecturas favoritas, alimentación, tantas cosas que pueden llegar a conocerse a partir del uso que hace de sus tarjetas. Nuestra vida moderna deja una profunda huella digital, de la que creíamos que podíamos escapar en Internet, donde no nos vemos las caras, por donde navegamos desde la comodidad y aparente anonimato de nuestros hogares. El anuncio de O'Connor derriba incluso esta quimera. Ambos rastros, el de Internet y el del mundo cotidiano, pueden combinarse y DoubleClick, la mayor red de marketing en Internet, que incluye más de 1500 sitios, entre los que se cuentan Altavista, The Wall Street Journal o The New York Times, ha anunciado sus planes de hacerlo realidad. Los mundos on-line y off-line, una vez relacionados, pueden ofrecer tal cantidad de información acerca del usuario, que será necesario revisar los conceptos actuales de privacidad y anonimato. Internet y el rápido avance de las tecnologías de la información y comunicaciones claman por una reestructaración de nuestra ética en el ámbito del ciberespacio, sacudida ya por la conducta escandalosa de los nuevos ciber-ricos. Como sostiene Lawrence Lessig en su pesimista libro "Code and Other Laws of Cyberspace", pronto una combinación de contraseñas, filtros, cookies, identificadores digitales, libros y materiales de pago mientras se contemplan ("pay as you view downloadable books") pueden transformar Internet en un lugar oscuro, donde los instrumentos actuales de libertad y privacidad pueden ser borrados por una emergente arquitectura de ojos que todo lo ven. Como siempre, la última palabra la tiene el usuario, que debe exigir a los sitios web que visite una clara política de privacidad, que se le explique llanamente qué se hace con sus datos personales y se le ofrezca siempre la posibilidad de entregarlos solamente si quiere. En vez de seguir el esquema actual de obtener datos y ofrecer luego al usuario la posibilidad de darse de baja (opt-out), tiene más sentido el proporcionarle la posibilidad de suministrar sus datos personales sólo si así lo desea, cuando se le haya explicado por qué se solicitan y qué ventajas le reportará entregarlos (opt-in). Un enfoque racional y flexible del uso y recogida de datos personales en Internet puede conducir a una Sociedad de la Información en la que todos ganamos. El usuario debe gozar del control sobre sus datos y decidir a quién se los entrega. Si las empresas de marketing y de venta de servicios y mercancías en la Red se niegan sistemáticamente a ceder el control a los ciudadanos, no queda más remedio que recurrir a herramientas para asegurar la privacidad y el anonimato. Afortunadamente, existen numerosas herramientas para restringir el uso de las cookies y el rastreo de los navegantes y para ocultar la identidad. En cualquier caso, el primer paso hacia una sociedad digital responsable y no controlada por el poder económico o social es que los ciudadanos tomen conciencia de que sus datos son recopilados y comprendan los procesos por los que esta acumulación de información tienen lugar. ¿Cómo va a reaccionar un ciudadano desinformado que ni siquiera sabe que sus datos personales son almacenados con fines desconocidos? La información representa la delgada línea entre manipulación y libertad. Publicado en el Boletín del Criptonomicón #68. Información adicional Todo sobre las cookies Listas Robinson Centro para la Democracia y Tecnología Privacidad y sociedad en Red Otros artículos publicados Se pueden leer otros artículos desde la página principal de Susurros desde la Cripta. Piratas de chaqueta y corbata Cuando uno se asoma a los grandes medios de comunicaciones, el asombro surge cuando Internet aparece identificada con el fraude, la delincuencia, la pornografía infantil o los grandes pelotazos. El público en general que nunca se ha sentado ante un ordenador ni ha navegado por la Red, termina por asociarla con antro de criminales o escenario de pelotazos multimillonarios. Como consecuencia, los usuarios que navegan desde sus casas, el usuario de a pie que paga religiosamente el portazgo a Telefónica, comienza a dudar y se pregunta: ¿existe riesgo real en Internet o no?, ¿de qué naturaleza? Los grandes peligros de la Red se pueden agrupar en tres categorías: amenazas a su intimidad y a sus datos de carácter personal; amenazas a la seguridad de su información y de sus activos informáticos; y por último, amenazas a su bolsillo, en forma de robos, fraudes y timos. Internet no es sino un espejo de la sociedad, que refleja sus miserias y sus bondades. En este artículo nos ocuparemos del primer peligro. Cuando nos explican de dónde procede el riesgo para nuestra intimidad se nos habla de las cookies, el lobo feroz de Internet que supuestamente devora con avidez datos acerca de los navegantes; de los agujeros de los navegadores, que permiten en teoría hacerse con información del usuario; o de los troyanos que instalados en nuestro ordenador abren distintos puertos por los cuales filtrar información a piratas barbilampiños acurrucados en sus cubiles iluminados por la fosforescencia de la pantalla del monitor. Hay que reconocer que esos peligros son reales, pero remotos, siendo insignificante el volumen de internautas afectados por ellos. El verdadero peligro para la intimidad del usuario es su propia ingenuidad. Demasiado a menudo introduce sus datos personales a la ligera en el primer formulario que se le presenta. Es un problema de buena fe y exceso de confianza. Hay que saber sopesar qué datos se dan, a quién y para qué. Piense que cuando se le hacen todas esas preguntas para entrar en el sorteo de un fantástico reproductor de MP3, la motivación oculta detrás de esa petición es hacerse con información demográfica: su nombre y apellidos, dónde vive, cuál es su teléfono, su DNI, sus ingresos, etc. ¿De verdad quiere dar todos esos datos para participar en un sorteo? Tenga en cuenta que esa información, vinculada a sus correrías por la Red, le identifican no ya como una anónima dirección IP o un número en una cookie, sino como una persona sobre la que se conocen sus datos fundamentales. Consideremos el caso de la reciente fiebre (o epidemia) de los portales: Terra (Telefónica), Navegalia (Airtel), Alehop (Retevisión), Ya.com (Jazztel), todos se han lanzado a presentar sus megapuertas de acceso a Internet. Acceso gratuito, noticias gratuitas, correo gratuito, página web personal gratuita, todo es gratuito, todo a favor del usuario, todo por el usuario y para el usuario y sin cobrar ni un duro. ¿Nunca se ha preguntado por qué una compañía como Telefónica ofrece servicios a primera vista gratuitos? ¿Recuerda cuando Telefónica ofreció gratuitamente contestador automático a sus abonados? ¡Qué chollo! ¡Gratis! ¿De veras? Piense que antes de ese servicio, cuando llamaba a un teléfono y nadie respondía, la llamada se perdía sin beneficio para Telefónica. Ahora, salta el contestador (tantas pesetas por establecimiento de llamada), espera a oír el mensaje (tantas pesetas por un minuto de llamada) y a veces hasta deja uno (tantas pesetas más por el tiempo que ha utilizado la línea). Y no digamos a cuánto montan esas pesetitas si la llamada es interprovincial o desde móvil a hora punta. ¿Se da cuenta de los millones de ingresos al día que supone? ¿Dónde queda la gratuidad? Cuando la boa constrictor ciñe sus anillos alrededor de su víctima, al espectador puede parecerle que está abrazandola, cuando en realidad se está preparando para estrujarla. El primer precio que paga por esos servicios gratuitos de los portales es su información personal. El caso de Alehop es casi patológico: incluso exigen el DNI del que solicita su servicio de correo, además de su nombre completo, fecha de nacimiento, teléfono, profesión, sexo y domicilio, con código postal incluido. Todo ello sin una política de protección de datos claramente establecida. ¿Qué necesidad hay de entregar toda esa información a cambio de una triste cuenta de correo Web, que no puede compararse en prestaciones y servicios a la que por ejemplo ofrece Correo Yahoo! sin pedir datos personales a cambio? Si confiadamente rellena todos los formularios, en adelante, cuando navegue por los megaportales, que concentran una buena parte de los servicios que puede desear en Internet, el rastro que va dejando desde su ordenador será fácilmente vinculable a una persona con nombres y apellidos. Si lee noticias sobre fútbol, en la tienda virtual compra material deportivo y en el chat no para de hablar sobre los resultados de los partidos del día anterior, no se extrañe si luego le llega publicidad sobre deportes. Estos datos formarán parte de una base de datos para ser utilizados con fines de promoción y comercialización de servicios de la compañía. ¿Y todo por una dirección de correo Web? ¡Que no le engañen! Siempre que no sea absolutamente necesario para poder recibir el servicio, dé datos falsos. Que no jueguen con su información personal. No caiga en la trampa de los sorteos o en el camelo de los servicios gratuitos. Si quiere comprar algo a través de Internet, evidentemente deberá dar una dirección postal real y un número de tarjeta de crédito válido. Pero nunca responda a preguntas improcedentes, como su profesión o ingresos anuales. Tiene sentido que le pregunten por la velocidad de su módem, pero nunca por su religión o por su estado civil. Recuerde, el volumen y carácter de los datos solicitados deben corresponderse con el servicio prestado. Si no son imprescindibles para que el servicio funcione correctamente, no revele su identidad, dé datos falsos, aunque plausibles. Que no le controlen más. No es probable que las compañías que ofrecen esos servicios utilicen sus datos más allá del fin con que los recaban, es decir, marketing personalizado para cobrar más a sus anunciantes. Sin embargo, conocida la patética seguridad de sus sistemas, ¿quién garantiza que no serán usados por empleados desleales o por alguna organización criminal? Como anunciaba Hispasec hace unos días, "en lo que podemos considerar un grave fallo de seguridad y un gran error por parte de Telefónica, incluso contradiciendo toda la normativa legal al respecto, los datos de las facturas de cualquier abonado de Telefónica, lo que incluye nombre, dirección, NIF, e incluso cuenta bancaria y desglose de llamadas, quedan accesibles a la consulta de un navegador". ¿Quién necesita hackers con compañías así? Hoy en día, los piratas tecnológicos no llevan parche en el ojo ni pata de palo, visten con caros trajes de Ermenegildo Zegna y se sientan en grandes despachos. Controlan los medios de información, las finanzas y muy pronto Internet. ¿Y los hackers tan malos de las revistas? Pobrecitos, comen migajas mientras los otros se dan el banquete. Pues no les queda. Publicado en el Boletín del Criptonomicón #66. La seguridad de GSM se tambalea Grandes compañías y gobiernos en todo el mundo se empeñan en perseguir la seguridad a través de la oscuridad: consideran que ocultando los detalles de cómo funcionan sus algoritmos criptográficos conseguirán aumentar la seguridad global de sus sistemas. Nada más lejos de la realidad. En estas situaciones, lo que inevitablemente ocurre es que el desarrollo de los algoritmos de protección de la confidencialidad se deja en manos de un equipo de ingenieros y técnicos que lo llevan a cabo de la mejor manera que saben y que, sin duda alguna, superan con éxito los ataques convencionales, ofreciendo una seguridad satisfactoria a primera vista. Sin embargo, para contar con mayores garantías de que un algoritmo o protocolo es seguro, no basta con que sea revisado por un equipo de seguridad a sueldo. Es absolutamente imprescindible que se publique en revistas científicas, siendo accesible a todo aquel interesado en estudiar su robustez. Sólo así, sometiéndose al público escrutinio de la comunidad académica, se puede reunir un equipo de investigación de cientos o miles de expertos que trabajarán durante meses o años en la búsqueda de fallos y vulnerabilidades (considérese el caso de DES, sobre el que se lleva más de veinte años publicando artículos). Ninguna gran empresa ni gobierno puede permitirse una fuerza humana de semejantes dimensiones. Sólo los algoritmos de dominio público que superan durante años el análisis e indagación de profesionales de la criptografía se pueden considerar "seguros", en la medida en que no se conoce ningún medio de atacarlos (lo cual no significa que no existan, sino simplemente que en el estado actual de evolución de las matemáticas, la informática y la teoría de números no se conocen vías de ataque eficaces). Microsoft ha protagonizado recientemente varios ejemplos patéticos de sistemas de seguridad irrisoria desarrollados por la propia empresa, dando la espalda a algoritmos y protocolos de dominio público ampliamente extendidos y probados. En consecuencia, algunos de sus productos, aparentemente seguros porque nadie conoce sus mecanismos internos, basan su seguridad en unos algoritmos criptográficos endebles o incluso triviales de resolver, como ha sido el caso, casi humorístico, de la protección de las contraseñas en máquinas con Windows CE, que utilizaban como algoritmo criptográfico una suma exclusiva XOR de los caracteres de la contraseña con la palabra Pegasus (nombre de la primera generación de sistemas operativos Windows CE). El caso de las debilidades de PPTP, protocolo de "tunelado" punto a punto se para asegurar las conexiones sobre enlaces TCP/IP, reseñadas por el famoso criptógrafo Bruce Schneier, ilustra nuevamente que el secretismo sólo sirve para retrasar lo inevitable: el ataque con éxito a un sistema que no ha sido públicamente estudiado, sino obcecadamente mantenido en secreto. Por su parte, el estándar de telefonía móvil digital GSM tradicionalmente ha basado su seguridad en la fórmula oscurantista: ocultar los algoritmos y difundir mentiras para crear en los usuarios la sensación de privacidad y confidencialidad. Durante años se han mantenido en secreto sus algoritmos: A3, para autenticación de usuarios ante la red; A8, para derivación de claves de sesión; y A5, para cifrar el contenido de la conversación extremo a extremo. Estos nombres no son más que etiquetas para denominar a los algoritmos, cuya elección e implantación detallada queda al libre albedrío de cada operador en el caso de los dos primeros. Sin embargo, al suministrarse en el estándar un algoritmo de referencia, el COMP128, y recomendarse la adopción del mismo algoritmo para facilitar operaciones como el "roaming", resulta dudoso que existan muchas redes GSM que hayan desarrollado los suyos propios. A lo largo de los últimos años han ido saliendo a la luz una serie de datos, negados sistemáticamente por las operadoras y organismos encargados del desarrollo de GSM, que han puesto de manifiesto el engaño y manipulación a que se encontraban sometidos los clientes. Uno de los más controvertidos fue la constatación de que en las claves del algoritmo A5, utilizado para cifrar las conversaciones y preservar así su confidencialidad, teóricamente de 64 bits de longitud, en realidad sólo se utilizan 54, reduciendo por tanto 1024 veces el tiempo necesario para realizar un ataque de fuerza bruta sobre él. Este debilitamiento deliberado se conjetura pueda deberse al afán orwelliano de los gobiernos por espiar a sus ciudadanos, tarea drásticamente facilitada por esta reducción aparentemente intencionada en la seguridad de GSM. Más aún, sin necesidad de limitar el espacio de claves, poco a poco se fue filtrando información acerca de los algoritmos concretos utilizados en A3 y A8, que resultaron ser variantes de COMP128, que posee importantes debilidades y fallos de diseño, como revelaron los estudios posteriores realizados por un grupo de criptógrafos. La publicación en mayo de 1998 de un artículo acerca de la posibilidad de clonar tarjetas SIM (que identifican al usuario ante la red, hecho fundamental para saber a quién cobrar la factura de la llamada), destapó de nuevo la polémica en torno a la seguridad real o fingida de GSM. Merece la pena consultar a este respecto el monumental trabajo de reconstrucción llevado a cabo por Jesús Cea Avión, en el que se describe el ataque y sus consecuencias. Recientemente, la noticia hace unos días de que dos investigadores israelíes, Alex Byriukov y Adi Shamir (uno de los más reputados criptógrafos del mundo, creador junto a Rivest y Adleman de RSA, de ahí el nombre del algoritmo), han descubierto nuevos fallos en la seguridad de GSM que les permiten descifrar las conversaciones cifradas con A5/1 ¡en menos de un segundo! reabre el debate acerca de la verdadera fortaleza de GSM frente a escuchas ilegales y uso fraudulento de sus tarjetas SIM. Organizaciones como la GSM Association perseveran en la negación de los hechos y en recalcar la seguridad sin parangón de GSM, ciegos a los esfuerzos criptoanalistas de investigadores de todo el mundo, que lenta pero sistemáticamente van obteniendo su fruto. De momento, la dificultad de reproducir estos ataques, que exigen costosos recursos computacionales y equipos de telecomunicaciones muy sofisticados, como los escáneres digitales, de precio muy elevado, cuando no ilegales en muchos países, está frenando la comisión generalizada de delitos de escuchas y llamadas fraudulentas a cargo de otros abonados de la red. Sin embargo, mientras la industria GSM se empecine en el secretismo y en negar los riesgos reales que investigadores de todo el mundo descubren regularmente, llegará el día en que con modestos recursos se podrá escuchar cualquier conversación o timar a las operadoras y otros usuarios. Entonces los costes para reparar el boquete serán formidables, por no haberse querido tapar a tiempo los pequeños agujeros. No habrá que esperar mucho antes de que se demuestre que el oscurantismo es la mejor fórmula... ¡para el fracaso más estrepitoso! Publicado en el Boletín del Criptonomicón #62. ¿Podemos hablar de criptología española? A menudo me repiten la misma pregunta: "¿por qué en España no se hace nada de criptología?" A mi juicio, esta pregunta encierra dos trampas, transmite dos mensajes subliminales que adivino sólidamente injertados en la mente de mis interlocutores. La primera consiste en considerar que España es y continuará siendo una nación atrasada, el Tercer Mundo de la Europa del Sur, un país de risa donde impera la cultura del pelotazo y toda la ciencia se importa de Estados Unidos y, en su defecto, de Francia, Reino Unido, Alemania u otros países "serios". Bien es verdad que los presupuestos de investigación españoles quedan muy por detrás de los de nuestros vecinos, pero en criptología, como en el resto de ciencias y disciplinas científicas, sí se investiga, como se verá a continuación. Tras casi cuatro décadas de autarquía y aislamiento económico y científico, recuperar el terreno perdido se ha convertido en una tarea gargantuesca, en la que nada ayuda el hecho de que los mejores cerebros nacionales se "fuguen" a EEUU. Póngase Ud. en el lugar de un joven investigador, de genial talento y prometedor futuro. ¿Dónde buscaría desarrollar su carrera científica? ¿En un país que le ofrece recursos con cuentagotas o en otro donde dispondrá de la última tecnología y recursos ilimitados? Así están las cosas, en España se trabaja, pero sin los medios de otros centros extranjeros. En estas condiciones no es de extrañar que nuestra ciencia no destaque en el panorama internacional. La segunda trampa atañe a la sensación tan extendida de que "no se hace nada". ¿Es esto cierto?. Existen una serie de parámetros objetivos que permiten cuantificar y de alguna manera cualificar el volumen de investigación en este campo. Las revistas y congresos más importantes del gremio, como son Crypto, EuroCrypto, Journal of Cryptology, Cryptologia, etc., se consideran suficientemente imparciales y de gran rigor a la hora de seleccionar los artículos que publican en sus páginas, como para que podamos considerarlos árbitros fiables en este dilema. Basta con acudir a sus índices de autores y comprobaremos con desilusión la ausencia casi total de grupos españoles. Otra manera de evaluar los éxitos de nuestros criptólogos es revisar los algoritmos criptográficos más usados (lo que implícitamente debería significar más seguros) en busca de creaciones españolas. Aquí también nuestra desilusión persiste, pues no conozco ni un solo algoritmo abierto de uso internacional de origen español. De todas formas, estos criterios de juicio pueden resultar excesivamente duros y llevarnos a pensar que, efectivamente, la criptología española no existe o es una broma. Afortunadamente, desde hace ya unos años, están proliferando en todas las universidades españolas y laboratorios de investigación grupos dedicados a la creación de nuevos algoritmos, criptoanálisis de otros públicos ya existentes, diseño de protocolos, integración de servicios de seguridad basados en infraestructura de clave pública (PKI) y un sinfín de actividades relacionadas directa o indirectamente con la criptología. Como exponentes de esta labor, se pueden reseñar las investigaciones y trabajos llevados a cabo por: El grupo CriptoLab, de la Facultad de Informática, bajo la dirección de Jorge Dávila Muro. La Universidad de Zaragoza, con José Pastor Franco a la cabeza . El Departamento de Matemática Aplicada y Telemática de la Universidad Politécnica de Cataluña, dirigido por Carles Padró. Universidad de Valladolid, con Juan Tena Ayuso. Universidad Rovira i Virgili, con Josep Domingo Ferrer. El Departamento de Tratamiento de la Información y Codificación del Consejo Superior de Investigaciones Científicas, con Fausto Montoya Vitini como director. La Asociación Española de Criptología. La Universidad de La Laguna, con la presencia de Pino Caballero Gil. La compañía Servicios para Medios de Pago (SERMEPA), implicada en el desarrollo de medios de pago mediante tarjetas y a través de redes de comunicaciones. La Fábrica Nacional de Moneda y Timbre (FNMT), cuyo Proyecto Ceres está recabando gran atención del público, especialmente con motivo de su experiencia pionera en la Declaración de Renta '98. Los militares y el CESID constituyen un capítulo aparte, ya que su trabajo es secreto y poco se conoce acerca de él. Sin duda, son los pioneros en España (y en todo el mundo, ya que en general, puede decirse que la criptología nació como una herramienta militar más para su uso en conflictos bélicos). Y por supuesto, quedan en el tintero otros centros y departamentos, que por razones de espacio no cito, pero que también desarrollan su labor. El próximo congreso sobre Criptología y Seguridad en la Información, que tendrá lugar en Canarias en el año 2000, constituirá un punto de encuentro donde los profesionales de este campo podrán dar a conocer su trabajo y seguir lo que se está haciendo en nuestro país. Si bien es cierto que el estado de la criptología española no se encuentra en un nivel comparable al de las grandes potencias criptológicas como EEUU o Israel, quedémonos cuando menos con la idea esperanzadora de que en España se hace mucha criptología, y también buena criptología. ¿Qué nos falta entonces? Lo que en otros países abunda y en España escasea en todos los ámbitos: el apoyo de la empresa y de otras instituciones que aporten capital económico y humano. PKI o los cimientos de una criptografía de clave pública En los últimos meses se ha vuelto difícil encontrar un anuncio o propaganda sobre productos de seguridad y soluciones globales seguras para su empresa que no incluya alguna referencia a PKI. Las infraestructuras de clave pública (PKI en inglés) se están poniendo de moda. ¿Es todo una nueva palabra mágica en labios de sonrientes comerciales? ¿Qué hay detrás de las PKI? ¿Qué significa PKI exactamente? PKI se basa en la criptografía de clave pública, cuyos orígenes se remontan al artículo seminal de Diffie y Hellman en 1976, donde se explica la idea revolucionaria de servirse para las operaciones criptográficas de una pareja de claves, una pública, conocida por todos, y otra privada, sólo conocida por el usuario a quien le es asignada. Un mensaje puede ser cifrado por cualquier persona usando la clave pública, ya que es públicamente conocida, aunque sólo el poseedor de la clave privada podrá descifrarlo. Recíprocamente, un mensaje cifrado con la clave privada sólo puede ser cifrado por su poseedor, mientras que puede ser descifrado por cualquiera que conozca la clave pública. Estas propiedades de que goza la criptografía de clave pública, cuyo uso más común se plasma en la firma digital, la convierten en candidata ideal para prestar servicios como la autenticación de usuarios (para asegurarse de la identidad de un usuario, bien como signatario de documentos o para garantizar el acceso a servicios distribuidos en red, ya que sólo él puede conocer su clave privada, evitando así la suplantación), el no repudio (para impedir que una vez firmado un documento el signatario se retracte o niegue haberlo redactado), la integridad de la información (para prevenir la modificación deliberada o accidental de los datos firmados, durante su transporte, almacenamiento o manipulación), la auditabilidad (para identificar y rastrear las operaciones, especialmente cuando se incorpora el estampillado de tiempo), y el acuerdo de claves secretas para garantizar la confidencialidad de la información intercambiada, esté firmada o no. ¿Desea proporcionar todos estos servicios de seguridad en su empresa? PKI puede ser la respuesta. Ahora bien, ¿cómo podemos estar seguros de que la clave pública de un usuario, que hemos encontrado por ejemplo en un directorio o una página web, corresponde realmente a ese individuo y no ha sido falsificada por otro? ¿Cómo fiarnos de esa clave pública antes de confiarle algún secreto nuestro? La solución más ampliamente adoptada consiste en recurrir a una tercera parte confiable, erigida en la figura de una autoridad de certificación (AC). La función básica de una AC reside en verificar la identidad de los solicitantes de certificados, crear los certificados y publicar listas de revocación cuando éstos son inutilizados. El certificado contiene de forma estructurada información acerca de la identidad de su titular, su clave pública y la AC que lo emitió. Actualmente, el estándar al uso es el X.509.v3. Con el tiempo, una autoridad de certificación puede verse fácilmente desbordada si cubre un área geográfica muy extensa o muy poblada, por lo que a menudo delega en las llamadas autoridades de registro (AR) la labor de verificar la identidad de los solicitantes. Las AR pueden abrir multitud de oficinas regionales dispersas por un gran territorio, llegando hasta los usuarios en los sitios más remotos, mientras que la AC se limitaría así a certificar a todos los usuarios aceptados por las AR dependientes de ella. Gracias a esta descentralización se agiliza el proceso de certificación y se aumenta la eficacia en la gestión de solicitudes. En definitiva, una PKI incluirá una o varias autoridades de registro para certificar la identidad de los usuarios; una o varias autoridades de certificación que emitan los certificados de clave pública; un repositorio de certificados, accesible vía web u otro medio, donde se almacenen los certificados; las listas de revocación de certificados (CRL), donde se listan los certificados suspendidos o revocados; y, por supuesto, los propios certificados. Los mayores obstáculos a los que se han enfrentado las empresas pioneras en la implantación de soluciones PKI para sus necesidades de negocio electrónico (e-Business) han sido tradicionalmente: La falta de interoperabilidad, ya que el mero hecho de ceñirse al estándar X.509.v3 no garantiza en absoluto que dos certificados generados por dos sistemas desarrollados por casas distintas sean mutuamente compatibles. Además, existen problemas de confianza entre AC de distintas organizaciones, que puede imposibilitar la verificación con éxito de cadenas de certificación cuya AC raíz sea desconocida o no confiable, invalidándose todo el esquema de PKI. El coste ha sido un problema desde el principio. Al no existir un mercado suficientemente maduro en PKI, cada empresa que ofrece soluciones de clave pública tarifica en función de criterios diversos (por certificado, por uso de certificado, por servidores instalados,...) y cobra honorarios también dispares, de manera que la inversión en PKI como respuesta a las necesidades de seguridad y accesibilidad a los activos informáticos de la empresa puede resultar cuando menos inesperadamente elevada. PKI termina presentando problemas de escalabilidad, cuando el número de certificados emitidos a los usuarios va creciendo, debido a que las listas de revocación deben ser consultadas en cada operación que involucre certificados y firmas digitales, si se desea una implantación seria y robusta de PKI. Bien es cierto que el esquema de confianza vertical, promulgado por las estructuras de certificación en árbol, resulta más escalable que los modelos de confianza horizontal, como el adoptado por PGP, cuya problemática es tan seria que no se prevé solución satisfactoria. Finalmente, la tecnología PKI se le antoja un tanto esotérica al usuario final, que no terminan de entender del todo la jerga relacionada. Acostumbrado a autenticarse sin más que introducir su nombre y contraseña, puede sentirse fácilmente rebasado por la complejidad tecnológica de las firmas digitales y demás funciones criptográficas. Por demás, en la medida en que no se instauren las tarjetas chip, controles biométricos y otros dispositivos similares criptográficamente robustos, el problema de los usuarios anotando su contraseña (en este caso para acceder a su clave privada) en un post-it pegado en el monitor persistirá por mucho tiempo. Por lo tanto, ¿constituye PKI la solución a sus problemas? La respuesta depende de qué problemas afronte. No existen fórmulas mágicas ni soluciones generales aptas para todo tipo de negocio. La PKI resulta ideal en una intranet, en la que se comparten documentos (trabajo en grupo), se accede a recursos de red (cálculo, servidores de archivos, bases de datos, etc.), se intercambia correo certificado entre los empleados, etc. PKI resulta mucho más ágil que los sistemas tradicionales de control basados en nombre y contraseña y listas de control de acceso. En el caso de extranets o de Internet, PKI es de uso obligado. De hecho, es la única forma conocida actualmente de prestar confianza a los actores de las relaciones telemáticas que no se conocen entre ellos, tanto en el business-to-business entre empresas, como en el comercio al por menor, entre vendedores y compradores particulares por Internet. La confianza en un grupo de AC mundialmente reconocidas (como VeriSign) o localmente aceptadas (como FNMT, ACE o FESTE en España) permite que las entidades involucradas puedan fiarse unas de otras, a pesar de no existir contacto físico ni vínculo previo entre las partes. SSL y SET se están convirtiendo en estándares de facto que atestiguan el éxito de las tecnologías de clave pública en escenarios de seguridad descentralizados como Internet. Las últimas iniciativas de las Administraciones Públicas para descargar procedimientos administrativos, realizados en papel y sometidos a la venalidad burocrática, hacia procesos digitales interactivos, hacen uso también de tecnología PKI. Piénselo. PKI puede ser la respuesta a su futuro. Eso sí, no olvide definir correctamente cuáles son sus necesidades exactas y entonces elija la estrategia PKI que mejor se adapte a su modelo de negocio. Exija soluciones/productos integrables centrados en su proceso de negocio. Sólo entonces la tecnología probará ser su mejor aliado. Publicado en el Boletín del Criptonomicón #57. Información adicional Los secretos de la firma electrónica Introducción a la Infraestructura de Clave Pública Conceptos básicos sobre PKI Firma digital Criptografía de clave pública Cómo funcionan las firmas digitales Navegación anónima Cada vez que nos conectamos a un sitio Web, éste conoce automáticamente nuestra dirección IP, nombre de máquina, la página desde la que procedemos y a veces incluso nuestra dirección de correo electrónico (¿quieres una demostración?). De ahí en adelante, dependerá del servidor y de su política sobre intimidad lo que se hará con esa información. Con ayuda de las cookies se puede personalizar aún más la información recabada acerca de los visitantes, registrando las páginas más visitadas, nuestras preferencias, dónde hemos estado, tiempo de la visita, etc. Con todos estos elementos se pueden confeccionar perfiles de usuario cada vez más exhaustivos y detallados, con información muy personal que puede adquirir un valor considerable en manos de casas publicitarias, y por la que se paga dinero. Por todo lo dicho, existen muchas situaciones en las que convendría navegar anónimamente sin dejar trazas de nuestra identidad, ya que con estos datos y mediante programas de búsqueda de personas por su dirección de correo, se puede obtener la identidad del cibernauta, incluyendo su número de teléfono, dirección, y más. Por ejemplo, la red de DoubleClick fue capaz de identificar las preferencias sobre vacaciones en cruceros de más de 10 millones de personas en la Red. Gracias a esa información, les enviaba anuncios a la medida de sus gustos (J. Voight, "Beyond the banner"). Cómo se navega anónimamente Existen dos métodos: Anonimizadores El servicio de anonimato actúa como un filtro de seguridad entre tu navegador y el sitio Web que deseas visitar. Te conectas al anonimizador, introduces el URL al que deseas ir, entonces éste se adentra en la Red en busca de la página que deseas ver y te la muestra. Si posteriormente vas siguiendo enlaces de una página a otra, se presentarán asimismo a través del anonimizador. Sus inconvenientes: No funcionan con todos los sitios ni con los servidores seguros. Tampoco se reciben cookies (lo cual para algunos representa más bien un alivio). Desactivan todos los programas en Java, JavaScript, etc. (de nuevo, ventaja o inconveniente según para quién). Ralentizan la navegación. Para un servicio óptimo hay que pagar. Añaden a las páginas que visitamos banners con publicidad de sus patrocinadores. El servicio de navegación anónima más conocido es Anonymous Surfing. Servidores Proxy También se puede navegar anónimamente a través de un servidor proxy. La idea básica de un servidor proxy es actuar de pasarela (gateway) entre tu máquina o tu red y la Internet. Normalmente se usan para llevar las peticiones del cliente a través de un cortafuegos (firewall): el proxy espera a una petición desde dentro del cortafuegos y la expide al servidor remoto en el exterior del cortafuegos, lee la respuesta y la envía de vuelta al cliente. Dado que en la práctica todos los clientes en una subred salen a través del mismo proxy, también sirven para prestar servicios como caché de documentos que son pedidos por muchos clientes. De esta forma se reduce el coste de tráfico de red ya que a menudo gran cantidad de documentos son recuperados desde el caché local una vez que la petición inicial ha sido hecha. Así pues, el servidor proxy actúa de manera semejante a un anonimizador, ya que es él el que recupera las páginas Web, en lugar de la persona que está navegando. Sin embargo, presentan una serie de limitaciones frente a los anonimizadores: No impiden que las cookies se sigan almacenando en el disco duro del usuario. Normalmente todas las visitas quedan registradas en el proxy. La dirección IP del servidor proxy por defecto refleja tu nombre de dominio o por lo menos se acerca mucho. Se puede navegar anónimamente a través de proxies en: proxy1.emirates.net.ae, HTTP port 8080 wwwcache.marques.co.za, HTTP port 3128 proxy.chs.edu.sg, HTTP port 3128 proxy.pty.com, HTTP port 8080 proxy.silcom.com, HTTP port 3128 proxy.tmc.edu.tw, HTTP port 3128 webcache.ms.mff.cuni.cz, HTTP port 8080 Algunos de los proxies presentan el inconveniente de restringir el acceso a ciertos sitios Web según sus políticas particulares. Además es importante tener en cuenta que no todos los proxies actúan de forma verdaderamente anónima, ya que algunos revelan al sitio Web que visitas tu dirección IP. Ejemplos de proxy tales son: littlehat.zetnet.co.uk, HTTP port 8080 proxy.networld.it, HTTP port 80 proxy.hro.nl, HTTP port 80 Digilab.tau.it, HTTP port 80 proxy.ecity.net, HTTP port 80 proxy.ipm.lviv.ua, HTTP port 80 ¿Mi navegación es anónima? ¿Cómo puedo estar seguro de que cuando creo que navego anónimamente, realmente no estoy revelando mi dirección IP? Ejecutando el siguiente programa CGI comprobarás lo que se puede averiguar a partir de tu dirección IP: Si utilizas un proxy, se puede ejecutar el siguiente programa CGI: que te advertirá de si detecta o no de dónde procedes. Recuerda que si este programa lo hace, otros también pueden hacerlo. Recursos en la Red Alakarga (en castellano) Anonymous Surfing iproxy CYBERPASS - Anonymous and personal account services interMute Home Page The Internet Junkbuster Home Page Anónimos Anonymous WWW The Lucent Personalized Web Assistant: Proxy Home Page Cómo detectar el origen de correos sospechosos y camuflar la identidad