TRABAJO SOBRE SEGURIDAD EN INTERNET Sistemas de Información Empresarial Índice Página • Hackers y Crackers .......................................... 3. • Password crackers (crakeadores de claves) ...... 5. • Sniffers (fisgones) ........................................... 12. • Caballos de Troya ........................................... 28. • Logging and Audit Tools ................................ 33. • Plataforms and Security .................................. 46. • Microsoft ....................................................... 60. • UNIX: El Gran Kahuna ...................................... 75. • Ataques Remotos ............................................ 110. • Niveles de Ataque ........................................... 116. • Ataques Spoofing ............................................ 127. • Ocultando Nuestra Identidad .......................... 135. ********** HACKERS Y CRACKERS Son dos conceptos distintos: Hackers: suelen ser programadores con conocimientos avanzados de sistemas operativos y lenguajes de programación que descubren fallos de seguridad que no usan para hacer daño. Para eso escriben programas para chequear la integridad de otros programas. Cracker: agrede la integridad del sistema desde máquinas remotas. Raramente escriben sus propios programas, sino que usan aplicaciones ya hechas. ¿DÓNDE EMPEZÓ TODO? (Mediados−Finales 70`s en EEUU) Empezó con el phreaking (aprender cómo funciona el sistema telefónico para engañar a la compañía). Simulaban con una máquina el sonido del dinero al caer en la cabina y realizaban llamadas gratis. Después se 1 combinó el phreaking y la programación. Los phrekers buscaban líneas interesantes para machacar y a veces se encontraban módems a través de los cuales entraban en internet. 2 Noviembre 1988: los hackers consiguieron llamar la atención soltando el primer gusano por la red. Este es un programa que hace copias de si mismo e infecta otras máquinas. En cuestión de horas había un montón de máquinas infectadas. El gusano fue desarrollado desde el instituto de tecnología de Masachusets pero los loggin files no funcionaron por lo que el canalla no dejó huella. Finalmente lo pillaron investigando de forma tradicional (existe un retrato robot de él). Ese día fue el principio de la preocupación por la seguridad en internet y marcó la diferencia entre cracker y hacker. SITUACIÓN ACTUAL: UNA RED EN GUERRA La situación actual es totalmente distinta a la de hace diez años. Los 2 grupos tienen posiciones encontradas: los crackers luchan furiosamente para que se les reconozca atacando sitios, en un alarde de conocimientos técnicos, mientras que los hackers trabajan en el desarrollo de nuevos métodos de seguridad para parar a los crackers. ¿Qué está pasando? Los crackers lo tienen cada vez más difícil debido a la entrada de grandes empresas en la red que demandan e instalan herramientas de seguridad lo que hace que surjan empresas dedicadas a la seguridad. PASSWORD CRACKERS (Crackeador de Claves) Un crakeador de claves es cualquier programa que revela las claves que han sido previamente encriptadas. Sin embargo, esto no quiere decir que el crakeador de claves lo desencripte porque los algoritmos usados para encriptar nos aseguran que no hay vuelta atrás en un periodo razonable de tiempo usando algoritmos de fuerza bruta y claves que no estén en el diccionario. ¿CÓMO FUNCIONAN LOS CRAKEADORES DE CLAVES? Antes hay que ver cómo se crean las claves encriptadas: Criptografía: Cripto del griego Kryptos, lo oculto, escondido, vetado, secreto o misterioso. Graph de graphía: escritura. Criptografía: arte de escritura secreta. Consiste en cómo la comunicación puede ser codificada para que sólo pueda ser leída por cierto tipo de gente. Formas de codificar e encriptar 2 1.− Asiganar a cada letra un número o otra letra. Muy fácil de descodificar. 2.− ROT−13 que consiste en a ña letra n le asigno la n+13. Muy inefectivo. Descodificadores y Codificadores (DES y Crypt) Al principio sólo estaba linux, ya que los crakeador de claves estaban hechos para él. En UNIX los ID de usuario y claves están en un fichero "pass". El ID está en formato texto mientras que la clave está encriptada usando Crypt 3 que es un programa basado en la encriptación de datos estándar (EDE o DES en inglés) creado por IBM y aprobado por la oficina nacional de estándares y la agencia nacional de seguridad. De hecho desde 1977 es el método generalmente aceptado para salvaguardar datos. El código fuente de Crypt 3(la implementación de DES para UNIX) es de dominio público, pero nadie ha encontrado una forma fácil de descodificar un mensaje codificado con él. ¿Cómo funciona Crypt? 1.− La clave es aceptada en texto plano. 2.− La clave es usada como llave para encryptar 64 ceros. El texto codificado es llamado cipher text. Algunas versiones de Crypt 3 van más lejos. Por ejemplo el resultado lo vuelven a codificar usando la clave como llave. DES coge los datos enviados y los codifica usando una operación de un sólo sentido a veces llamada hash que aunque es simple de codificar un usuario puede pasarse su vida entera intentando romper la clave por el método de fuerza bruta y no lograrlo. Pero aunque DES no admite marcha atrás, la clave codificada puede ser obtenida mediante un método de comparación: 1.− consigues un fichero con una lista de palabras comúnmente usadas. 2.− Las palabras las codificas o encriptas usando DES. 3.− Comparas cada palabra con la clave objetivo. Si coincide alguna hay un 98% de probabilidad de que la clave reviente. Los programas usados para crackear pueden usar reglas: − alterar mayúsculas/minúsculas. − deletrear hacia atrás, adelante y concatenar. − añadir el 1 al inicio de cada palabra. EL VALOR DE LOS REVENTADORES DE CLAVES Los administradores de sistemas deberían ejecutar un crakeador de claves con cierta asiduidad para ver cómo de vulnerable es su sistema frente a un ataque. Hace falta: hardware, crakeador de claves y fichero de claves. Hardware Los reventadores de claves usan CPU y memoria de forma intensiva. Recomendado: 66Mhz, 32MB RAM y mínimo: 25Mhz, 8MB RAM. 3 Hay técnicas para saltarse las restricciones del hardware: reventamiento distribuido que consiste en ejecutar el reventador en varios procesadores a la vez. Se debe dividir el fichero de claves en trozos. Problema: llama mucho la atención. Algunos reventadores de claves Para Windows NT: L0phtcrack 2.0: usa 2 métodos: diccionario y fuerza bruta. ScanNT: ¡es comercial!. Características: clasifica por grupos, para aislar usuarios o grupos de usuarios. Revisa las claves automáticamente. Dice que claves han cambiado desde la última revisión de claves. ScanNT es parte de un paquete de admón. llamado herramientas de ayuda del administrador (Administrator Assistant Tool). NTCrack: su propósito es desarrollar ataques muy rápidos de fuerza bruta contra NT. Aplicaciones Imprescindibles: − samdump: descarga las claves del fichero SAM de NT. − pwdump: descarga las claves y los nombres de usuario. Necesita privilegios de administrador. NTFSDOS: monta sistemas NTFs y los ve como si fueran FAT32. Reventadores para UNIX Crack: diseñado para reventar claves encriptadas con 8 bits mediante técnicas de estimación. Crackerjack: se ejecuta en MSDOS aunque revienta claves de UNIX. PaceCrack95: creado para subsanar las deficiencias de Crackerjack. Qcrack: diseñado originalmente para linux aunque ha sido trasladado a MSDOS/Windows. Problema: para 1 fichero con 5000 palabras se necesitan 20 MB. Otros tipos de reventadores de claves ZipCrack: ataques por fuerza bruta a ficheros ".zip" con clave en Pascal. Decrypt: rompe claves de WordPerfect escrito en BASIC. Glide: usado para romper claves PWL, que son las que genera Windows para trabajo en grupo y sus versiones posteriores. 4 AMI: para arrebatar la clave CMOS de alguna máquina que use una BIOS American megatrends. NetCrack: fuerza bruta para Novell Netware. PGPCrack: PGP usa una encriptación de llave pública y puede aplicar una serie de técnicas de encriptación. Una de ellas es IDEA que es dificilísima de romper: 1000.000.000 máquinas a 1000.000.000 teclas/seg llevaría más tiempo que la edad del universo en encontrar la llave usando fuerza bruta. SEGURIDAD EN UNIX UNIX es relativamente seguro pero debido a su naturaleza multiusuario, un usuario con una clave "fácil" es un riesgo para el sistema entero. Pero, ¿qué es una clave fácil?. Básicamente que esté en el diccionario o que sea un nombre propio. Una buena elección para los administradores es cuequear el sistema buscando claves débiles o fáciles usando herramientas reventadoras de claves. CABALLOS DE TROYA ¿QUÉ ES UN CABALLO DE TROYA? Un caballo de troya es: · Código desautorizado contenido en un programa legal. Este código desautorizado realiza funciones desconocidas (probablemente desagradables) para el usuario. ·Cualquier programa que realiza una función necesaria y correcta pero que (por tener un código desautorizado) realiza funciones desconocidas (probablemente desagradables) para el usuario. Las funciones desautorizadas que el caballo de troya puede realizar están calificadas de estrategias perjudiciales. Los virus son un ejemplo de caballo de Troya. Algunas veces un virus no tiene porqué ser ocultado por un programa, en estos casos se puede denominar tanto como virus como caballo de Troya. El fichero que abriga un caballo de Troya/Virus tiene la efectividad de un caballo de Troya. La seguridad clásica en Internet para los documentos define los ámbitos de un caballo de Troya en varios caminos. Quizás es mejor conocer la definición en RFC1244,: Un caballo de Troya puede ser un programa que hace algo útil o sencillamente algo interesante, Siempre 5 hacen algo inesperado como robar password o copiar ficheros sin autorización. Dr. Alan Salomon, un especialista en virus de renombre internacional, en su trabajo titulado "All about Viruses" da otra definición más conveniente: Un caballo de Troya es un programa que hace algo más de lo esperado por el usuario, y cuyas funciones extraordinarias son peligrosas. Esto provoca un problema en detectar los caballos de Troya. Supongamos que yo escribo un programa que puede detectar infaliblemente cualquier otro programa que formatee el disco duro. Entonces, se puede decir que ese programa es un caballo de Troya? Obviamente no, si el otro programa es supuestamente para formatear el disco duro (como el Format, por ejemplo), entonces no es caballo de Troya. Pero si el usuario no esperaba el formateo, entonces es un caballo de Troya. El problema está en ver que programas realizan funciones esperadas por el usuario. De ahí que no se pueda determinar que es lo que el usuario espera del programa. Como propósito general, se puede clasificar un caballo de Troya, como cualquier programa que realice encubrimientos y funciones no deseables. Un caballo de Troya puede venir de cualquier forma. Como una palabra de un procesador o una utilidad de trabajo en red, como un código de desbloqueo de un software, etc. ¿DESDE DÓNDE PUEDE LLEGAR UN CABALLO DE TROYA? Los programadores crearon los caballos de Troya con una mala intención. En algún lugar del planeta algún programador está creando ahora un caballo de Troya. El programador sabe exactamente que hará y sus intenciones pueden o no ser altruistas, pero seguro que son maliciosas. Los creadores de caballos de Troya normalmente tienen una agenda, la cual no sería de importancia si no fuera porque en el contexto de la seguridad en Internet, puede ser usada para hacer un par de cosas: 1) Realizar alguna función que le revele al programador información vital y privilegiada sobre un sistema comprometiéndolo. 2) Ocultar alguna función que haga lo anterior. Algunos caballos de Troya hacen las dos. Actualmente, otras clases de caballo de Troya causan daños en las tarjetas (por ejemplo se puede encriptar el formateo del disco duro). Los caballos de Troya suelen estar bien diseñados para ser capaces de penetrar coleccionar información o sabotear un sistema. Ejemplos de caballo de Troya: −Caballo de Troya PC CYBORG: Es un caballo de troya diseñado para el sabotaje. Su funcionamiento es el siguiente: entran en el sistema y sustituye el AUTOEXEC:BAT y se puede llegar a contar hasta 90 infecciones en el sistema de inicio. Las nuevas versiones de PC CYBORG dañan la unidad C. −Caballo de Troya AOLGOLD: Es distribuido por Usenet a través de email. El programa se suponía que era un software para acceder a América Online (AOL). La distribución consistía en un archivo que, cuando los descomprimias, aparecían 2 ficheros. Uno de ellos era un standar INSTALL.BAT. Ejecutando el Install.bat se expandían 18 ficheros. De 6 estos 18 ficheros Video.drv (el fichero del virus.bat) al ejecutarse borra el contenido de directorios importantes de la unidad C. C:\ C:\QUEMM C:\DOS C:\STACKER C:\WINDOWS C:\NORTON C:\WINDOWS\SYSTEM Cuando las macros del virus han terminado se ejecuta un ordinario mensaje contenido en DommDay.exe Los programadores Amater desarrollan los caballos de Troya (probablemente chicos que quieren causar problemas) destructivos, los que realizan colección de información o los que realizan infiltraciones poco sofisticadas. A veces los caballos de Troya son desarrollados dentro de la legalidad. En esas situaciones se inserta un código extra dentro de una aplicación o utilidad (o en raras ocasiones, operaciones sobre el mismo sistema). Esas operaciones están lejos de ser peligrosas: −esos caballos de Troya no son destructivos, su existencia suele estar oculto hasta que son descubiertos por accidente. −los sitios web que verdaderamente están comprometidos son aquellos que proporcionan cientos o miles de accesos a internet para usuarios. Estos sitios web suelen ser gubernamentales o educativos y se diferencian de los que son mantenidos por pequeñas compañías. Con una pequeña compañía el peligro para ella y para sus usuarios generalmente queda bastante lejano. Esa es una cuestión seria, pero sólo es relevante para esas compañías. Al contrario, el compromiso de los sitios gubernamentales o educativos puede colocar miles de computadoras en riesgo. La mayoría de las veces, los programadores no pueden hacer nada con el desarrollo de utilidades comerciales UNIX que no tienen involucradas referencias de seguridad. Y por tanto incrementan las posibilidades de contener caballos de Troya, por ejemplo en la distribución de Satán 1.0 para linux se descubrió que contenía un caballo de Troya. ¿DÓNDE PODRÍA ENCONTRARSE UN CABALLO DE TROYA? Los caballos de Troya pueden aparecer en casi cualquier sitio, en alguna aplicación, o en algún sistema de operaciones. Por esa razón, se debe ser cauteloso en el software que se baja de Internet, particularmente el software descargado de servidores poco fiables o de Usenet. De cualquier forma, la mayoría de las veces no necesitas viajar a través de oscuros y prohibidos caminos para encontrar un caballo de Troya. Estos aparecen en los mayores distribuidores de Redes. Por ejemplo, en 1994 el caballo de Troya WUFTPD. El problema con este caballo de Troya fue tratado con una alerta del CIAC: CIAC recibió información sobre que algunas copias de wuarchive FTP daemon (ftpd) versiones 2.2 y 2.1f habían sido modificadas y que contenían un caballo de Troya en el código fuente. Este caballo de Troya permitía a cualquier usuario, remoto o local, llegar a estar en Modo Supervisor en sistemas ftpd. Se pedía a los usuarios de este software que desinstalasen las versiones anteriores a 2.3, ya que estas podían contener 7 caballos de Troya, e instalasen la versión 2.3, que había sido revisada. WUFTPD es el servidor ftp más usado del mundo. El caballo de Troya afectó a miles de sitios web tanto públicos como privados. Muchos de esos sitios están en riesgo porque sus administradores de sistema no están concienciados en el tema de seguridad tanto como deberían. Aquí hay descritos algunos ejemplos de caballos de Troya: · StuffIt 4.5 Tojan: Apareció al final de 1997. StuffIt es un programa popular de manejo de archivos, usado inicialmente en MACs. Durante la instalación del programa borra algunos ficheros clave del sistema. · AOL Password Trojan: Apareció a mediados de 1997. Algunos caballos de Troya desarrollados podrían revelar tu nombre de usuario y el password y ceder esta información a AOL. Los usuarios de AOL no están advertidos de que descargar alguno de los 106 diferentes que hay afectará a su sistema de archivos. · El AOL4FREE Trojan: Aparece en abril de 1997 se desarrollaron los llamados AOL4FREE.COM (no deben ser confundidos con los virus Aol4free). El caballo de Troya (el cual es una herramienta para proporcionar un acceso desautorizado a AOL sobre cualquier sistema) destruye las unidades de disco duro de la máquina afectada. ¿CÓMO SON DESCUBIERTOS LOS CABALLOS DE TROYA? Los caballos de Troya son descubiertos tan a menudo porque son una de las mayores preocupaciones de seguridad. Los caballos de Troya son bastante insidiosos, porque después de ser descubiertos pierden su efecto. Los caballos de Troya son como los snifers (fisgones) en ese sentido. Realmente no podemos calcular el alcance que tienen los caballos de Troya en el ataque a un sistema y esa es una cuestión muy seria. Una razón es que los caballos de Troya golpean el sistema de cualquier máquina. Sin importarle el lenguaje en el que esté descrito. El código de los caballos de Troyano está escrito en un lenguaje que pueda ser humanamente leído desde cualquier máquina con una herramienta de depuración. La compilación de un caballo de Troya se hace en ficheros binarios. Otra razón de la dificultad de descubrir los caballos de Troya es que ellos no anuncian su presencia. Simplemente realiza su cometido tranquilamente y eficientemente. Además muchos caballos de Troya están tan bien definidos que se mantienen ocultos en el sistema esperando ser ejecutados Por eso no se pueden detectar listando los procesos ejecutados en un momento dado. De cualquier manera antes de empezar a buscar caballos de Troya en tu sistema debes tener causas para creer que existe uno. También hay que saber donde empezar a mirar. Eso depende de la experiencia del usuario. Aquellos que conocen poco sus sistemas es poco probable que profundizando aventuradamente en su estructura de directorios, o buscando ficheros sospechosos encuentre un caballo de Troya. Incluso para programadores experimentados puede ser muy dificultoso identificar un caballo de Troya incluso cuando el código es accesible para su examinación. (Esto es especialmente verdad si el caballo de Troya está escrito en un lenguaje de programación poco conocido. Es imposible detectar para un programador de Basic un caballo de Troya escrito en Perl). ¿QUÉ NIVEL DE RIESGO REPRESENTAN LOS CABALLOS DE TROYA? Los caballos de Troya representan un alto nivel de riesgo, principalmente por las razones que ahora vamos a describir: 8 − Los caballos de Troya son difíciles de detectar. − En muchos casos, los caballos de Troya son encontrados en ficheros binarios, haciendo humanamente imposible leerlo desde un depurador. Los caballos de Troya pueden comprometer totalmente un sistema. Un caballo de Troya puede estar en un lugar durante semanas o incluso meses antes de ser descubierto. En ese momento, un craker con privilegios adquiridos de Modo Supervisor puede alterar la entereza del sistema si lo necesita. ¿CÓMO SE DETECTA UN CABALLO DE TROYA? Detectar un caballo de Troya es relativamente fácil si provees a tu sistema de los mejores servicios de seguridad, si no detectarlo puede ser una tarea realmente difícil. La mayor parte de los métodos de detección descansan sobre los principios llamados "object reconciliation", que trabajan de la siguiente forma: "objects" son los ficheros y directorios, "reconciliation" es el proceso de comparación de esos objetos antes y después de una fecha determinada. Este método es simple y consiste en testear la integridad de los ficheros para así detectar cambios en la información que contenían. Se examina el rango de integridad de los diferentes ficheros de forma primitiva pero sofisticada. Por ejemplo: tu puedes testear la integridad de cualquier fichero siguiendo alguno de estos casos: − la última fecha ha sido modificada − la fecha de creación del fichero − tamaño del fichero. Desafortunadamente, todos estos métodos son insuficientes. Ahora explicaremos porqué: Cada vez que un fichero es alterado sus variables cambian. De cualquier manera esa fecha puede ser manipulada fácilmente. Examinar las manipulaciones en los programas del PC, ¿es muy difícil? Cambiar la hora del sistema, editar ficheros y archivar ficheros son acciones que cambian la hora. Por esa razón es difícil comparar ficheros tomando en cuenta la fecha. Otra forma de chequear la integridad de un fichero es examinando su tamaño. De cualquier forma ese método es extremadamente irrealizable porque el tamaño es un valor fácilmente modificable. Es fácil comenzar un fichero con tamaño de 1,024KB y terminarlo con el mismo tamaño, incluso después de editarlo. Aun así, este proceso es más complejo cuando se alteran ficheros binarios. Aunque, estos ficheros casi siempre implican la inclusión de funciones especiales de librerías sin las cuales el programa no funcionaría. Por lo tanto manteniendo las funciones indispensables del programa , se puede encontrar la ubicación del código del caballo de Troya. El caso más fácil es aquel en el que el caballo de Troya modifica ficheros clave en el sistema (por ejemplo csh en UNIX o el command.com en DOS). Estos ficheros fueron instalados inicialmente en el PC y tienen una fecha y tamaño determinados. Por tanto es fácil comprobar si han sido modificados. Los programadores de caballo de Troya saben esto. Por lo tanto su trabajo es examinar el código fuente de esos ficheros y comprobar que hay en ellos que sea imprescindible, los crackes podrían borrar comentarios y texto que no fuese esencial en el fichero, introducir el código desautorizado y recompilar el fichero. El cracker 9 examina el tamaño del fichero, si es más o menos largo se pueden comenzar el proceso otra vez hasta que el tamaño coincida con el original. Esto hace pensar que no hay ninguna técnica suficiente. Pero existe una técnica bastante potente, que implica el uso de distintos algoritmos que calculan los "digital fingerprint". Esta técnica está basada en una de las implementaciones más populares de algoritmos de seguridad: el sistema llamado MD5. MD5 MD5 pertenece a una familia de funciones llamadas " message digest algorithms". El sistema MD5 está definido en RFC 1321. Cuando se ejecuta un fichero a través de MD5, sale un "fingerprint" con un valor de 32−caracteres. Parecido a esto: 2d50b2bffb5357fcch48g54g84g18784 Muchos sitios web que distribuyen software UNIX usan MD5 para generar fingerprint digitales para sus productos. Luego el navegador puede examinar el fingerprint original de cada fichero. Si descargas un fichero desde un servidor y encuentras un ficngerprint digital diferente hay un 99.9999% de que haya habido un cambio en el contenido del fichero. Algunos programas de seguridad extrema usan algoritmos MD4 y MD5. Uno de esos programas son S/Key de Bell Laboratories. S/Key genera un password y es usada por logins remotos. S/Key ofrece seguridad avanzada para sesiones remotas (del tipo de conexiones Telnet o Rlogin). Sin o con MD5buscar caballos de Troya es un proceso complejo. Es verdad que en una estación de trabajo con recursos limitados, técnicamente se pueden comparar a mano cada fichero y directorio. A pesar de ello en grandes estaciones de trabajo en red eso es simplemente imposible. Existen varios productos que han sido desarrollados para usar "object reconciliation". El producto más reclamado es una aplicación de nombre "TRIPWIRE" Tripwire Fue escrito en 1992, es una herramienta externa sobre la integridad de ficheros. Está bien definido, es fácilmente entendible y está implementado con una mínima dificultad. El sistema lee el entorno desde un fichero de configuración. Ese fichero contiene todas las variables de los ficheros. Este sistema puede ser bastante penetrante. Por ejemplo: puedes especificar que cambios pueden ser realizados en los ficheros y Tripwire mantendrá un fichero de los cambios. Este fichero original se guarda sin case de datos, simplemente en ASCII, y se accede cuando necesita ser calculado un posible cambio. Las funciones hash incluidas en la distribución son: − CRC 32: este método hash es llamado chequeo cíclico redundante. CRC general es usado para chequear la integridad de los ficheros empezando por la transmisión. Al comienzo de la transmisión el fichero está dividido en pequeñas partes las cuales tienen el tamaño predeterminado. Para cada parte se genera un valor criptográfico justo antes de ser enviado. Cuando cada parte llega a su destino el receptor recalcula el valor criptográfico. Si los dos valores coinciden no se ha producido ningún error, sino significa que los datos han sufrido una modificación. CRC32 es una mejora de CRC, está en 32 bit y a menudo se usa para chequear la integridad de ficheros. − SHA(The Nist Secure Hash Algorithm): Es muy fuerte y fue usado en sistemas de defensa. Por ejemplo el Departamento de Defensa exigía a todos los controladores de sistemas DoD que adquiriesen el Multilevel 10 Information System Security Initiative (MISSI) y que sólo usase productos "limpiados" con él. SHA es usado en uno de los productos de búsqueda de caballos de Troya llamado Fortezza card, es una tarjeta PCMCIA que proporciona una capa extra de seguridad en los envíos de email desde DoD. − Snefru: puede generar mensajes de 128 o 256−bit Snefru fue desarrollado por Xerox y es extremádamente potente. Lo ideal es usar la herramienta Tripwire inmediatamente después de una instalación limpia. Esto da un 100% de garantía sobre la integridad del sistema de ficheros desde el principio. Una vez que has generado toda la base de datos del sistema de ficheros, se pueden introducir otras herramientas. Otras ventajas de Tripwire son las siguientes: − Tripwire puede llevar a cabo un testeo sobre conexiones de trabajo en red. − Tripwire fue escrito en C y posee una gran portabilidad. Puede ser compilado en muchos sistemas sin sufrir alteraciones. − Tripwire viene con un lenguaje de procesamiento que permite automatizar los testeos del sistema. − Tripwire es una magnífica herramienta pero tiene algunos problemas de seguridad, por ejemplo: en relación a los valores que se generan en la base de datos. Un cracker puede alterarla, por eso se recomienda que se tomen medidas sobre la seguridad de la misma. Un sistema de protegerla muy conocido es: almacenar los datos en un sistema de read−only. Esto elimina cualquier posibilidad de alteración. De hecho, esta técnica está empezando fuerte en el tema de seguridad a pesar de su simplicidad. TAMU (Texas A&M University) Es una colección de herramientas diseñadas para mantener la seguridad en sistemas UNIX. Estas herramientas fueron creadas para responder a un problema real: Las computadoras Unix de Texas A&M University recibieron hace poco un ataque intensivo desde un grupo coordinado de crackers. Esto provocó una visión global del problema y su respuesta fue el desarrollo de policías, procedimientos y herramientas para proteger los ordenadores de la universidad. Las herramientas desarrolladas incluían "drawbridge", un avanzado filtro de puentes en internet los "tiger scripts", una herramienta extremadamente poderosa pero de fácil uso, los programas de seguridad individual para los host y los "xvefc" (Xview Etherfind Client) un poderoso entorno para trabajo en red. ATP (The anti−tampering program) ATP trabaja como Tripwire: asume que tienes una configuración perfecta y limpia y genera unos números de chequeo cobre el entorno, los cuales guardará para comprobar los cambios que pueden aparecer en los ficheros. SNIFFERS (fisgones, husmeadores) 11 ¿Qué son? dispositivos que capturan los paquetes de la red para analizar el tráfico e identificar áreas potenciales de interés. La mayoría analiza los protocolos: Ethernet, TCP/IP, IPX, DECNET. Son una combinación de hardware y software. Los fisgones como riesgo para la seguridad Para husmear los paquetes, ponen el interfaz de red en modo promiscuo. Para entender qué es esto, antes hay que cer cómo están diseñadas las redes locales. Redes locales y tráfico de datos: LAN´s son redes pequeñas conectadas vía Ethernet. La información va por cable. Tipos de cable: 10Base−2: cable coaxial fino 200 m 10 MB/s. 10Base−5: cable coaxial grueso 500 m 10Mb/s. 10Base−T: cable UTP 500 m 100Base−T: 100MB/s fibra óptica. Los datos viajan en pequeñas unidades (marcos o frames). Estos marcos llevan información tal como origen, destino, cabeceras, etc. Transporte de paquetes y entrega: Cada máquina tiene una dirección única que la distingue de las demás. Cuando mandas un paquete por la red, los paquetes llegan a todas las máquinas, pero sólo responderá aquella a la que vaya dirigido. Si el interfaz de red de la máquina está en modo promiscuo, esta capturará todos los paquetes de la red. Una máquina que funcione de esta forma es un fisgón. ¿Qué riesgo representan los fisgones? Los fisgones son un riesgo porque: − capturan claves. − capturan información confidencial. ¿Qué información capturan los fisgones? Suelen capturar 200−300 bytes de cada paquete ya que si capturasen todo se les llenaría el disco duro porque se transmiten miles de paquetes por minuto. En esta porción es donde suele estar la clave y el nombre de usuario. ¿Dónde colocarlo? Se suele colocar en puntos estratégicos como las máquinas o redes que reciben muchas claves. La evolución de la técnica permite que los mensajes se mande codificados, lo que añade dificultad al pirata. Hay dos tipos de fisgones: − comerciales. 12 − gratis. Defendiéndose de un ataque de un fisgón Hay dos formas: − detectándolo y eliminándolo. − protegiendo tus datos del fisgón. Detectándolo y eliminándolo Son muy difíciles de detectar porque son pasivos (residentes) y consumen muy pocos recursos. A esto se une la dificultad añadida de trabajar con redes heterogéneas. Un mapa de topología de red que compruebe los cambios en la red a diario podría detectar el que alguien desenchufe un PC y conecte otro para usarlo como un fisgón o que alguien pinche un PC en un cable. Sin embargo, es mejor prevenir que curar y sobre todo más barato por lo que será mejor defenderse. Hay dos formas de defenderse: − tener una topología segura. − mensajes encriptados. Topología Segura Cuanto más impermeabilizas la red, más difícil es para el fisgón, pero esto suele ser muy caro porque requiere hardware muy caro. Hay 3 interfaces que un fisgón no puede cruzar: − conmutadores − enrutadores − puentes Se pueden crear segmentos seguros (o impermeables) situando estratégicamente estos dispositivos. Una buena elección puede ser meter 20 máquinas entre alguno de estos dispositivos y chequear cada segmento 1 vez al mes. Esta técnica de segmentar sólo es práctica en redes pequeñas por razones de coste. Si la red es grande, mejor usar mensajes encriptados. Mensajes Encriptados Permiten que aunque haya robo de datos, no le sirvan de nada al fisgón al estar encriptados. Desventajas: − técnica. Puede que la encriptación no sea lo suficientemente fuerte o que no la soporte alguna máquina. − humana. La gente se resiste a usarla porque la ve como un engorro. Una buena solución es encontrar el término medio entre aplicaciones que soporten una encriptación en los 2 sentidos y que presenten una interfaz amigable. 13 LOGGING AND AUDIT TOOLS HERRAMIENTAS LOGGING (REGISTRO). Este capítulo introduce herramientas que pueden ayudarnos a conseguir el máximo partido de su logging. ¿POR QUÉ USAR MÁS LOGGING ?. Si su sistema operativo ya soporta los logging, tu puedes tener la tentación de saltarse la instalación de las herramientas del logging. Para evitar la tentación, usted no debe confiar siempre en su logs (registros). De hecho, lo primero que aprenden los Crackers es como alterar el registro. La práctica ha llegado a ser tan común que ahora hay herramientas que automatizan el proceso. He aquí unas pocas: UTClean. Es una utilidad que elimina cualquier evidencia de su presencia en wtmp, wtmpx, utmp, y lastlog. Puedes chequearlo en: http://www.unitedcouncil.org/c/utclean.c Remove. Quita, limpiando la utmp, wtmp y lastlog, tachando cualquier evidencia de su presencia. Puedes chequearlo en: http://www.unitedcouncil.org/c/remove.c Marry. Es una herramienta de edición de entradas en utmp, wtmp, y lastlog. Puedes chequearlo en http://www.unitedcouncil.org/c/marry.c La mejor apuesta para cubrirse contra los crackers que alteran las entradas del registro, usted debería usar, al menos una tercera parte de las herramientas de los registros. Este enfoque tiene varias ventajas. La primera es, que mientras la comunidad de crackers tiene una buena familia de registros base del sistema operativo, pocos crackers tienen el conocimiento o los medios para circunvenir la tercera parte del software de registro. La segunda es que buena parte de este software es independiente del registro, sin que use los índices de registros del arranque del sistema operativo. Usted sabrá inmediatamente que los intrusos han penetrado en su sistema cuando compare la información de los registros third−party y los registros del sistema operativo y exista cierta discrepancia entre ambos. Esto es cierto si usted aísla sus registros third−party. Por ejemplo, supongamos que tu usas las herramientas de registro third−party, mas tarde verificas la integridad de los registros bases del sistema operativo. Por qué no escribe estos registros third−party en el medio? Eso es caro, pero te garantiza un conjunto de registros fiables, y la fiabilidad es todo. Usando los productos third−party es prudente en el caso que las utilidades de registro fallaran. Por ejemplo, en algunas versiones de Solaris, los ficheros tmpx son truncados a la entrada del hostname, presentando algunos datos de los obtenidos mas tarde incompletos y erróneos. 14 Desde un ángulo distinto, ahora es muy común que los crackers maten sus logging antes de realizar un ataque verdadero. Si el blanco es funcionando bajo Solaris 2.5.x, por ejemplo, tu puedes matar el syslogd simplemente enviando un mensaje externo desde una dirección IP inexistente. Similarmente, si syslogd acepta el mensaje remoto, alguien podría hacer una entrada falsa en el registro. Tu podrías considerar un sistema de logging alternativo para todos estos razonamientos. La próxima sección cubrirá brevemente buena parte de esto. VERIFICACIÓN DE LA RED Y LOS DATOS. Las herramientas siguientes no solo aportan datos de los registros, obtendremos una serie de datos de diversas fuentes. SWATCH (El sistema buscador) Autor: Stephen E. Hansen and E. Todd Atkins Plataforma: UNIX (Necesita Perl) URL: ftp://coast.cs.purdue.edu/pub/tools/unix/swatch Los autores escribieron SWATCH para completar la capacidad de los logging en las plataformas con sistemas UNIX. Consiguientemente, tienen logging con capacidad que exceden a la ejecución del syslog. SWATCH provee de verificación, logging, e información en tiempo real. Porque SWATCH esta escrito en PERL, en ambos caso es portable y extensible. SWATCH tiene una serie de características únicas: BACKFINGER es una utilidad que recoge información del finger desde donde se produce el ataque. Soporta la paginación al instante. (por tanto puede recibir información al momento). Ejecución condicionada de comandos (Si la condición es encontrada en el fichero de registro, entonces la realiza). Posteriormente, SWATCH confía en archivos locales de configuración. Convenientemente, pueden existir múltiples ficheros de configuración en la misma máquina. Por lo tanto, mientras originalmente solo estaba destinado a administradores del sistema, cualquier usuario local con los privilegios adecuados puede usar SWATCH. WATCHER Kenneth Ingham Kenneth Inghan Consulting 1601 Rita Dr. NE Alburquerque, NM 87106−1127 15 Phone: 505−262−0602 Email: ingham@i−pi.com URL: http://www.i−pi.com Ingham desarrollo Watcher mientras estaba en la Universidad de Nuevo México Compunting Center. El explico que el Centro de Computing empezaba a expandirse con el tiempo. La conclusión fue que, el procesamiento de logging que ellos usaban , no era el mas adecuado. Ingman buscaba la forma de automatizar la exploración de registros. Watcher es el resultado de dicha labor. Watcher analiza varios registros y los procesa, buscando de forma radical cualquier actividad anormal. (El autor sincronizó suficientemente este proceso, para que Watcher pudiera interpretar ampliamente el rendimiento variable de comandos como ps si producir alarma.) Watcher funciona en sistema UNIX y necesita el compilador de C. WebSense Aunque WebSense es el mas conocido por su capacidad de selección, este producto también tiene una gran capacidad de logging. (Aunque recientemente se ha mejorado porque el producto ha sido diseñado para trabajar estrechamente con PIX de Cisco). NetPartners Internet Solutions, Inc. jtrue@netpart.com http://www.netpart.com Win−Log Ver. 1 Es una utilidad bastante simple para Windows NT. Sus registros, son usados por Windows NT frecuentemente desde hace tiempo. (Usted podrá usar esta utilidad para comprobar si alguien ha reiniciado su máquina, aun cuando ellos, de algún modo circunvengan el Event Logger.) INFINITY Software jcross@griffin.co.uk http://www.griffin.co.uk/users/jcross MLOG Es una LAN NetWare−based con una utilidad Event−Logging creada por ABIT & MG−SOFT. La utilidad de Logs (Registros) usa la red y los siguientes tipos de protocolos: Apple Talck open session DEC LAT start DECnet NSP connection initialize 16 IPX NCP create connection NBEUI session initialize TCP/IP synchronize NLOG funciona en todos los protocolos con dirver 1.09 o mayor. ABIT Corporation http://www.marx156.com/swebfile.send.37./MLOG_210.ZIP NOCOL/NetConsole v.4.0 Es un departamento de aplicaciones estándar que desempeñan una amplia variedad de controles de tares. Este departamento ofrece un interface Curses, que es una gran interface que permite ejecutarse en una amplia gama de terminales (No requiere X para trabajar). Es extensible, soportado por interfaces PERL, y opera sobre redes que funcionan en Apple Talck y Novell. ftp://ftp.navya.com/pub/vikas/nocol.tar.gz PingLogger PingLogger registra el paquete ICMP en los ficheros de salida. Al usar esta utilidad, podemos confiar en determinar cual es el Ping de quien nos inunda. Esta utilidad se escribió y probó originalmente sobre Linux (Requiere el compilador C y los ficheros de cabeceras de IP), pero puede trabajar sobre cualquier otro sistema Unís. Jeff Thompson http://www.ryanspc.com/tools/pinglogger.tar.gz HERRAMIENTAS PARA ANALIZAR LOS FICHEROS DE REGISTRO. Las siguientes herramientas examinan los ficheros de registro, extraen la información de ellos, y hacen informes. NetWatch NetWatch puede importar los ficheros de registro desde los mas importantes servidores Web y varios Firewalls. Funciona bajo Windows NT y puede sacar informes en HTML y distribuirlos por los servidores elegidos. Scandinavian Security Center scansec@sscnet.com http://www.sscnet.com/netwatch.html NetTracker 17 Analiza los ficheros Firewalls y Proxy. El producto se puede extender a filtrar e informar, y puede exportar información a fichero con formato Excel y Accept. El producto por tanto puede analizar accesos a registros y formatear una información de salida apropiada para un diagrama. NetTraker funciona en Windows 95/Windows NT y existe una versión de prueba de 30 días en la Web. Sane Solutions, LLC info@sane.com http://www.sane.com/productos/NetTracker/ LogSurfer Es otra herramienta de análisis de registros. El programa examina el fichero de registro Plain−text y, basándose en lo que encuentra (Y las reglas que le damos), puede desempeñar varias acciones. Entre ellas puede incluir creación de alertas, ejecución de un programa externo, o tomar porciones paralelamente de los datos del registro y de los comandos o procesos externos. LogSarfer requiere el Compilador C. DFN−CERT: ftp://ftp.cert.dfn.de/pub/tools/audit/logsurfer/logsurfer−1.41.tar.gz VBStats Es una poderosa herramienta para analizar los registros para Windows. La utilidad exporta la información al formato de los ficheros de Microsoft Accept, por tanto podremos formatear y recortar los datos resultantes. De particular interés es que VBStats automatiza el proceso contrario a la búsqueda del DNS sobre la dirección IP del visitador. Esto es muy útil porque normalmente desearemos conocer la el nombre real del Host visitante. Por esta razón nada mas es un producto. Bob Denny: http://tech.west.ora.com/win−httpd/#vbstat Netlog Obtiene todos los registro TCP y UDP que circulan. Esta herramienta por tanto soporta logging de mensajes ICMP (aunque los desarrolladores informan que realizar esta actividad de registro, requiere un gran almacenamiento). Debemos tener el compilador C para usar este producto. ftp://coast.cs.purdue.edu/pub/tools/unix/TAMU/ Analog Analog es probablementa la única Cross−Plataform analizadora de ficheros de registro. Analog normalmente funciona en los siguientes sistemas operativos: Macintosh · VAX/VMS OS/2 · RISC/OS Windows 95/NT · BeOS UNIX · BS2000/0SD Analog no solo es una Cross−Plataform, también incorpora un soporte para una amplia variedad de idiomas, 18 incluyendo ingles, portugués, francés, alemán.... Analog también realiza la búsqueda del DNS contrario (Muy lento), construye lenguajes encriptados (similar a los lenguajes Shell), y un mínimo soporte para AppleScript. Posteriormente, Analog soportará más formatos de conocidos servidores Web, incluyendo Apache, NCSA, WebStar, IIS, W3 Extended, Netsacape, y Netpresenz. Stephen Turner http://www.statslab.cam.ac.uk/~sret1/analog/ UTILIDADES ESPECIALIDADES DE LOGGING Courtney Courtney esta escrito Perl y está diseñado para detectar y registrar los ataques SATAN al registro. La documentación que describe Courtney es: Courtney recibe la entrada desde el Tcpdump contando el numero de nuevos servicios que ha originado la maquina dentro de un cierto tiempo seguro. Si alguna máquina conecta a numerosos servicios dentro de ese tiempo, Courtney identifica que máquina es el host SATAN. Este sistema requiere incluir la librería libcap−0.0, tcpdump−3.0 y perl5. Marvin J. Christensen ftp://ciac.llnl.gov/pub/ciac/sectools/unix/courtney/courtney.tar.Z Gabriel Gabriel sirve para el mismo propósito que Courtney − Para registrar y advertir de ataques SATAN. Sin embargo, Gabriel esta diseñado de una manera muy diferente y confía en un servidor y una serie de clientes que constantemente distribuyen informes de las condiciones. Esta información de las condiciones indican diversos modelos de uso de los recursos del host remoto. Cuando aparece el host se lanzan un indeterminado número de recursos, al los cuales se le dará una prioridad mayor. Necesitaremos un Sistema UNÍS, el compilador C e incluir los ficheros en la red para ejecutar Gabriel. Los Altos Tecnologies, Inc. Info@lat.com http://www.lat.com 19 PLATAFORMS AND SECURITY The hole EL CONCEPTO DE HOLE (AGUJERO O FALLO DE SEGURIDAD) Un hole ES UN DEFECTO EN EL hardware, software, o políticas que permite a los atacantes conseguir accesos no autorizados a otros sistema. A lo largo de cualquier semana determinada, surgen entre 15 y 30 HOLES. Estos pueden afectar una amplia gama de herramientas de red, incluyendo: Routers Clientes y servidores software Sistemas operativos Firewalls Parte de su trabajo es administrar la red, conociendo cuando surge algún HOLE y que impacto tiene en nuestro sistema. Sobre los timeliness Para asegurar tus sitios Interner y la red, necesitamos una mayor información, de hecho, lo ideal sería poder asegurar la red contra los HOLES minutos u horas después de su aparición. (Puede estar seguro que los Crackers usarán esos HOLES en la mitad de ese tiempo). Para comprender la importancia de los Tímeles, debemos considerar que: En 1.995 se descubrió que la línea de login en IRIS 6.2 tenía un password por defecto. Esta información fue telegrafiada al grupo de noticias de los cracker en cuestión de horas. Por la media noche de esa misma tarde, los crackers pudieron descubrir las máquinas vulnerables que usaban motores de búsqueda de WebCrawler y AltaVisa. Durante esas horas que siguieron a la mañana, cientos de host estuvieron comprometidos. El manejo de una red con conexión a Internet es muy diferente a la administración de cualquier LAN cercana. En una red cerrada, se tiene el lujo de poder investigar a los usuarios. Así se tiene un número limitado de atacantes y además estos usuarios tendrán restringidos el acceso al número de horas del negocio. En contraste, cuando administramos una red con conexión a Internet, podemos ser atacados por ser atacados por alguien desde cualquier sitio y en cualquier momento. Además, en Internet, frecuentemente los atacante trabajan desde otra red. Por lo tanto, nos veremos las caras con un ejercito maléficos usuarios, los cuales tienen información al instante de nuevas técnicas de ataque. 20 Para combatir esta situación, necesitaremos que nos echen un cable del exterior. Como surgen los holes. Un Hole no aparecer repentinamente por si mismo; alguien tiene que descubrirlo. El descubrirlo forma parte de una de los siguientes tres grupos: Hackers Crackers Empresa de Seguridad. Aunque estos tres grupos tienen misiones distintas, ellos tienen algo en común: pasan casi todo el tiempo buscando Holes. Normalmente, esta gente son programadores o administradores de sistema los cuales testean la seguridad de varias aplicaciones y sistemas operativos. Cuando ellos encuentran un Hole, Transmiten la información a distintas personas, dependiendo de la función que realicen. Los Hackers y las empresas de Seguridad generalmente avisan a los miembros de seguridad. En cambio los Crackers, pueden no avisar. Normalmente, ellos distribuiran la información entre su gremio. Dependiendo de cómo se distribuya la información, se hará publica en distintos lugares. Por ejemplo, si un cracker distribuye la información, donde primero se advierte la publicación es en los servidores craqueados. Por el contrario, si un hacker distribuye la información, surge en seguridad y boletines de advertencias. Internet tiene centralizada la aparición de información de seguridad al instante. Parte del trabajo del administrador de la red es revisar la información, el problema es que mucha información de la red no esta relacionada con la configuración especifica de la red. Por lo tanto, necesitaremos desarrollar una estrategia para analizar y extraer esa información para poder interpretar el significado de esa información. Mirar el data monster Si nos suscribimos a una lista de seguridad, inmediatamente descubriremos que los miembros son simplemente usuarios de la red. Esta decisión es un gran problema, su buzón se llenará de 100 mensajes diarios, cuando únicamente 12 de ellos tienen información válida, el resto serán argumentos Spam. Podemos pensar que esto no sea un serio problema, pero si lo es. Si usamos una red heterogénea, necesitaremos suscribirnos a varias listas. De esta forma si el promedio de mensajes por lista es de 30 mensajes al día, podríamos acabar recibiendo una media de entre 150 y 300 mensajes diarios. Algunas sugerencias de ayuda: Compartimiento. Antes de unirnos a una lista de envío, debemos preparar nuestro sistema para realizar el compartimiento. Debemos establecer un apartado para el correo antiguo. Deberemos asignar una dirección de Email para cada envío de la lista que nos hemos unido. Por ejemplo, crearemos una cuenta NTSEC, SUNSEC y HPUXSEC para recibir el correo relacionado con NT Segurity, Sun segurity, y HP−UX segurity. Si no tenemos una conexión permanente a la red, también podremos establecer una dirección de correo electrónico. Muchas compañías ofrecen correo electrónico gratuito. Suscribirse a un grupo moderado. La mayoría de las listas de envío ofrecen una versión moderada de su lista. Estas versiones generalmente tienen un menor radio de Noisse−to−signal. En otras palabras, los mensajes y 21 correos se editan con anterioridad a la distribución, es decir, fuera . Por tanto la información recibida es más relevante y pertinente. Se necesita mucho tiempo para automatizar, por lo menos el análisis de advertencias y mensaje de lista de envío. Así por ejemplo, si mantenemos una red funcionando con tres o cuatro plataformas, la cantidad de correos de seguridad recibidos al día puede ser mayor al que tu puedas leer. Para esto sirve la automatización, por lo que se recomienda PERL. ¿Cuánta seguridad necesitamos? Realmente es necesaria toda la información de estas listas? Probablemente. La mayoría de los vendedores esperan estratégicamente los momentos más favorables para distribuir los parches. Por lo tanto, cada cierto tiempo se consigue un CD−ROM con parches, su sistema puede tener de una 30 a 100 parches. Interiormente, nuestro sistema no es seguro del todo. Si no se mantiene este desarrollo, al menos, semanalmente, actualizarlo a la fecha puede ser una tarea muy costosa. Podemos concluir que es nuestra responsabilidad el obtener la información de seguridad. Si consigue entrar un cracker en nuestra red, nosotros seremos los culpables. Así deberemos guardar información sobre los desarrollos recientes. General source. La siguientes fuentes tienen información al instante e información legal. The Computer Emergency Response Team (CERT) Fue establecida en 1.988, siguiendo los incidentes Morris Worm. Desde entonces, CERT ha emitido cientos de avisos de seguridad y ha respondido alrededor de 200.000 informes de Internet sobre Break−ins. CERT no solo emite avisos donde aparecer una nueva vulnerabilidad, también: − Tiene un servicio de llamada de 24 horas al día, para ofrecer información vital a aquellos que hayan sufrido un Break−in. − Usa los sitios Web para proveer valiosa información de seguridad, nueva y antigua (incluyendo información desde 1.980). − Publica un informe anual que puede dar gran conocimiento sobre estadísticas de seguridad. The US Departament of Energy Computer Incident Advisory Capability (CIAC). CIAC fue establecida en 1.989. CIAC mantiene una base de datos con material relacionado con la seguridad, aunque la mayor parte de la información de la casa CIAC es disponible en las publicaciones que realiza ésta. CIAC es una excelente fuente de información. Algunas de las fuentes de las que dispone son: − Una base de datos sobre virus. Esta base de datos contiene una especificación y descripción de miles de virus. Incluye un listado de los nombres de los virus, tipos, localización en el disco, impacto Frecuentemente, se encuentra información adicional, incluyendo información de identificación, Checksums, y métodos de detección y eliminación de estos. − Boletines de seguridad. Los boletines de seguridad de CIAC son muy parecidos a los avisos de CERT (Vistos anteriormente). Estos boletines describen particularmente la vulnerabilidad y posibles soluciones. CIAC tiene un motor de búsqueda bastante bueno, por tanto puedes rastrear boletines pasados o buscar 22 información interesante. − Documentos de Seguridad. CIAC tiene una interesante colección de documentos de seguridad. Algunos son originales (por ejemplo, como asegurar X Windows) y otros considerando la información que se tiene, (tal como un lista de enlaces sobre información de seguridad). La mayoría de éstos se encuentran modo texto y en formato PDF. The National Institute of Standards and Technology Computer Security Resource Clearinghouse (NIST CSRC). El sitio Web de NIST CSRC ofrece una considerable lista de publicaciones, herramientas, organizaciones y servicios de soporte. En particular, las siguientes fuentes pueden ser de una extremada ayuda: − NIST Information Technology Laboratory (ITL). Boletines de seguridad de computadores. Los boletines de ITL cubren una gran variedad de temas de actualidad de gran interés. Aunque raramente los documentos ITL se reparten con información específica sobre vulnerabilidad, valoran los últimos desarrollo de la tecnología sobre seguridad. − Borradores CSRC. Contiene importantes investigaciones sobre seguridad, conducido por NIST y en otros lugares. Estos documentos pueden ayudarnos para definir los planes y políticas de seguridad. En particular, CRSC contiene una multitud de documentos sobre políticas de seguridad. − La búsqueda CSRC. Nos ofrece un motor de búsqueda, con información de enlaces de una amplia variedad de agencias y fuentes. The US Department of Defense (DoD) Network Information Center Fue fundada por The Defense Information Systems Agency's Defense Networks Organization (DISA DNSO). Su propósito principal es diseminar información importante de seguridad en la red. (Principalmente las agencias del gobierno). La principal atracción del DoDNIC son los boletines de Defense Data Network. Los boletines DDN ofrecen avisos de seguridad al instante. Estos archivos se encuentran en http://nic.ddn.mil/SCC/bullentins.html. Este sitio web incluye un motor de búsqueda por lo que puedes buscar avisos particulares. The BUGTRAQ Archives Estos archivos contienen todos los mensajes enviados al correo de BUGTRAQ. La mayoría de estos mensajes describen HOLES de sistemas operativos UNÍS. El sitio es de particular interés porque las características de búsqueda de Glimpse, el cual permite buscar el archivo en diferentes caminos. La lista de BUGTRAQ son una excelente fuente porque no nos inundan con una cantidad de información irrelevante. La mayoría de los correos son cortos y con carácter informativo. BUGTRAQ es posible que sea la mejor fuente en Internet con información sobre la vulnerabilidad de los sistemas UNÍS. URL: http://www.geek−girl.com/bugtracq/search.html The Forum of Incident Response and Security Teams (FIRST) Es una coalición de algunas organizaciones, publicas y privadas, las cuales trabajan en la circulación de 23 información de seguridad en Internet. Algunos miembros son: · DoE Computer Inciden Advisory Capability (CIAC). · NASA Automated Systems Incident Response Capability. · Purdue University Computer Emergency Response Team. · Stanford University Response Security. · IBM Emergency Response Service. · Australian Computer Emergency Response Team. Para chequear FIRST lo podemos hacer en: http://first.org/team−info/ The Windows 95 Bug Archive Rich Graves mantiene el archivo Bug de Windows 95 en la Universidad de Stanford. Es la única fuente de información comprensiva sobre la seguridad en Windows 95. Este archivo se puede localizar en: URL: http://www−leland.standford.edu/~win95netbugs/archives/. Mr. Graves tiene una inmensa colección de fuentes sobre la red en Windows 95. Su lista Win95NetBugs se puede encontrar en: URL: http://www−leland.stanford.edu/~llurch/win95netbugs/search.html/. Vendor security mailing lists, patch depositories, and resources. Finalmente, identificaremos lugares de ventas, parches, y listas que contienen importante información de seguridad. Silicon Graphics Security Headquarters. Los servicios que nos ofrece son: · Avisos SGI de seguridad. Ofrece información al instante sobre vulnerabilidad en el Sistema Operativo IRIS. Los avisos están disponibles en: URL: http://www.sgi.com/Support/security/advisories.html · Parches de seguridad SGI. Es un buen lugar donde encontraremos soluciones para antiguas vulnerabilidades. Los parches SGI podemos localizarlos en: http://www.sgi.com/Support/security/patches.html · Herramienta de programas Q's. Esta es una colección de programas de seguridad que pueden ayudarnos para levantar nuestro sistema de seguridad SGI. (Incluye herramientas de escaneado, utilidades de logging) Para obtener estos programas: URL: http://www.sgi.com/Support/security/toolbox.html The Sun Security Bulletin Archive. Ofrece un boletin de seguridad a diario sobre algunos productos. Este boletín esta disponible en SunSolve en: 24 URL: http://sunsolve.sun.com/pub−cgi/secbul.pl The ISS NT Security Mailing List. La lista de seguridad de envío en NT es mantenida por Internet Security Systems (ISS). Aquí encontramos preguntas y respuesta sobre la seguridad de NT. Sobre este aspecto existen muchos artículos. Están presentados en una lista que puede ser vista en: URL: http://www.iss.net/lists/ntsecurity/ The National Institutes of Health. La página de Computer Security Information es un enlace a National Institutes of Health (NIH). Tiene enlaces directos a revistas, avisos, asociaciones, organizaciones, y otras paginas web con temas de seguridad interesantes. URL: http://alw.nih.gov/Security/security.html The Computer and Network Security Reference Index. Esta computadora y red de seguridad hace referencia otras páginas con fuente de seguridad. Contiene enlaces a advisories, newsgroup, mailing list, vendor, y archivos. http://www.telstra.com.au/info/security.html Eugene Spafford's Security Hotlist. Es un sitio web que se puede resumir en cinco palabra: Página definitiva de recursos de seguridad. Cientos de paginas están dedicadas a la seguridad, esta es la colección mas comprensible de enlaces disponibles. En contraste a esto alguno de los enlaces han desaparecido. URL: http://www.cs.purdue.edu/coast/hotlist/. MICROSOFT En los recientes años Microsoft se ha caracterizado por tener productos con una mala reputación en lo 25 referente a seguridad. Pero esto no es totalmente cierto. DOS Microsoft Disk Operating System es el sistema operativo para ordenador personal más popular del mundo. Es sencillo, requiere poca memoria, y tiene pocos comandos. De hecho DOS 6.22 tiene aproximadamente 1/16 del número de comandos ofrecidos por la versión primaria de UNIX. Aunque la popularidad de MSDOS ha disminuido en los últimos años, muchas familias todavía lo usan. IBM: Compatibles en General MSDOS se ejecuta sólo en hardware compatible con IBM. Las arquitecturas compatibles con IBM no están diseñadas para la seguridad. Eso hace que el sistema de MSDOS sea vulnerable a un ataque. Ese ataque comienza con el password de la BIOS. El Password de la BIOS Puede ser desactivado por cualquier acceso físico al sistema. Para desactivar la protección del password de la Bios: borra, corat o desconecta la batería del CMOS del panel principal, entonces el password se borra, un cracker puede sacra provecho de esto y acceder al sistema. Esto puede comprometer a una estación de trabajo en red. Aunque este sistema no es el único para obtener el paso de la Bios, también hay herramientas para obtener el password, por ejemplo: −BIOS password−capturing utility −Amiecod −Ami.com −Aw.com Una vez dentro, el cracker para poder sacarle provecho al acceso tiene que obtener los Ids y los passwords. Para hacer eso usan las utilidades de Key−capture. Key−Capture Utilities Las Key−Capture Utilities capturan las teclas después de haber sido pulsadas. Esas "keystrokes" son guardadas dentro de ficheros ocultos. El directorio donde los keystrkes están capturando datos puede estar también oculto. Enla siguienet tabla hay unos cuantas utilidades de Key−capture disponibles para MSDOS: Herramienta Keycopy PlayBack Phantom 2 Keytrap Características Captura 200 teclas a la vez en distintos entornos WordPerfect, MultiMate, Norton Editor y cualquier entorno con una linea de comandos estándar. Graba y reejecuta el tecleo de la misma manera que fue pulsado. Es bueno para las simulaciones. Captura las teclas pulsadas en cualquier entorno. Poderoso capturador de teclas que puede ser ejecutado a cualquier hora específica del día. 26 Software de Control de Acceso para DOS Las siguientes secciones informan sobre paquetes que añaden control al acceso en Dos. − Secure 1.0: previenen de cualquier usuario desautorizado. URL: ftp://ftp.cs.cuhk.edu.hk/pub/simtel/win3/security/secure10.zip − Secure File System: SFS es una excelente aplicación de seguridad. SFS ofrece un alto nivel de encriptación para MSDOS. URL: ftp://ftp.telepac.pt/pub/garbo/pc/crypt/sfs110.zip − Sentry: es un producto shareware bastante completo, incluso para la seguridad de ficheros individuales. También ofrece password y algunos soportes para Windows. URL: ftp://ftp.digital.com/pub/micro/pc/simtelnet/msdos/security/sentryba.zip − Encrypt−it: ofrece un alto nivel de encriptación DES para DOS. Esa encriptación puede ser aplicada a un fichero simple o a series de ficheros. URL: http://www.maedae.com/ − LCK2: bloquea el terminal mientras el sistema está en ejecución. URL: ftp://ftp.lib.sonoma.edu/pub/simtelnet/msdos/security/sentryba.zip Sitios WEB donde adquirir herramientas de seguridad para DOS − The simtel Dos security Index: URL: http://www.cpee.ufmg.br/simtel/simtel_index_security.html − The CIAC DOS security Tools Page contiene información sobre restricción de acceso e incluye un programa que protege cilindros específicos del disco: URL: http://ciac.llnl.gov/ciac/ToolsDOSSystem.html − DOS Security Tools at Cypher.net esta página ofrece material sobre protecciones de password, restricción de acceso y protección del sector de inicio: URL: http://www.cypher.net/tools/dossecure.html − The Repositoty at Oakland.edu 27 esta página contiene información sobre protección password, restricción de acceso, protección del sector de inicio, etc: URL: ftp://oak.oakland.edu/pub/simtelnet/msdos/security/ WINDOWS PARA TRABAJO EN GRUPO Y WINDOWS 95 Windows para trabajo en Grupo y Windows 95 tienen sólo un poco más de seguridad que Dos. Ambos confían en el sistema de ficheros PWL. Estos ficheros son creados cuando activas el password. Los ficheros PWL no son un sistema de seguridad fiable ya que simplemente los derrotas borrándolos. Crackeando los ficheros PWL Para ello se usa una herramienta en Windows 95. Esta herramienta es llamada Glide. Se examina el código fuente del fichero interesado. Usando Glide, se le introduce el nombre del fichero PWL y el nombre de usuario asociado a él. Glide es bastante efectivo y se puede encontrar online aqui: Software de Control de Acceso para Windows95 − Cetus Storm Windows: permite la protección casi de cualquier entorno Windows95 incluyendo lo siguiente: enlaces y carpetas drives y directorios recursos Network e impresoras URL: http://www.cetussoft.com/ − Clasp 97: ofrece una fuerte protección password, desactiva el acceso a Windows95 e intercepta ejecuciones de inicio con la secuencia: Ctrl+Alt+Del URL: http://www.cyberenet.net/ryan/ − ConfigSafe 95 by Tech Assit, Incorporated: protege registros y los ficheros .dll. URL: http://www.toolsthatwork.com/csafe95.htm − Desktop Surveillance 97: es una completa pero todavía innovadora investigación sobre el acceso al control en Windows95. URL: http://www.decros.cz/ − HD95Protect: tiene un nivel de control de acceso para el hardware y restringe el acceso actual al disco duro. URL: http://www.geocities.com/SiliconValley/Lakes/8753/ − Secure 4U: provee de un poderoso filtro de control de acceso URL: http://www.arcmain.com/index.html 28 − StopLock95 by PCSL: provee de un control del acceso a Windows95. URL: http://www.pcsl.com/ VULNERABILIDADES MODERNAS EN APLICACIONES MICROSOFT Microsoft Internet Explorer Hay serios problemas de vulnerabilidad en Microsoft Internet Explorer. Estas vulnerabilidades están cubiertas por su grado de peligrosidad: − La vulnerabilidad de la Identificación del Password: Impacto: Microsoft Internet Explorer revela tu username, password y dominio. Clase: critico. Info. Adicional: http://support.microsoft.com/support/kb/articles/q111/7/21.asp Discusión: el Microsoft Internet Explorer envía el password, username dominio y grupo de trabajo a un servidor remoto. − La vulnerabilidad del icono: Impacto: se puede ejecutar un código remoto en nuestro PC. Clase: extremadamente grave. Info. Adicional: http://www.njh.com/latest/9703/970306−01.html Discusión: cambiar un icono del escritorio el cual sea usado por nosotros corrientemente por otro que ejecute un código remoto. − La vulnerabilidad del HTML: Impacto: webmasters desautorizados pueden ejecutar un montón de ficheros en tu PC. Clase: Grave. Info. Adicional: http://main.succeed.net/kill9/hack/os/nt/ie4.html Discusión: El código Html puede ser escrito, cuando lo descargas puede resultar que tengas en el PC un montón de ficheros arbitrarios. − La vulnerabilidad de la maquina Virtual de Java: Impacto: puede redireccionar peticiones de conexión. Clase: grave. 29 Info. Adicional: http://neurosis.hungry.com/ben/msie_bug/ Discusión: la implementación Java de Microsoft Internet Explorer es defectuosa y permite a páginas remotas conectar con una tercera máquina. Microsoft FrontPage Microsoft FrontPage y sus extensiones tienen muchos problemas de seguridad: − Las vulnerabilidades del FrontPage VTI−BIN y VTI_PVT: Impacto: usuarios remotos pueden ver el password o otros ficheros importantes. Clase: de grave a crítico. Info. Adicional: bugtraq@netspace.org Discusión: 1.Usuarios remotos pueden conectar vía ftp, hacer un directorio /VTI_BIN y colocar hay los ficheros de los comandos. 2. Usuarios remotos pueden coger el password y ficheros del administrador desde el directorio /VTI_PVT simplemente especificando su localización. − La vulnerabilidad de las extensiones del FrotntPage 97: Impacto: usuarios remotos pueden ganar en el nivel de acceso. Clase: de Moderado a grave. Info. Adicional: http://www.microsoft.com/frontpage/wpp/1330update.htm Discusión: usuarios remotos pueden usar shtml.dll para sobreescribir asp.dll, esto fuerza al servidor a revelar el código ASP. Microsoft Exchange Hay cuatro vulnerabilidades importantes en Microsoft Exchange version 5.0, aquí nombramos las 4 y explicamos las 2 más peligrosas: − La vulnerabilidad del conector Web de Microsoft Exchange: Impacto: los usuarios pueden acceder a cualquier buzón de email. Clase: de moderado a grave. Info. Adicional: http://www.dhp.com/fyodor/sploits/NT.ms.exchange.5.0.html Discusión: Por defecto, todos los buzones se hacen accesibles a cualquier usuario. − La vulnerabilidad de la Password en la Cache de Microsoft Exchange: Impacto: las passwords quedan en cache. Clase: de moderado a grave. 30 Info. Adicional: http://www.njh.com/latest/9708/970825−04.html Discusión: las passwords de Exchange quedan en cache durante N minutos. Sumario de DOS, Windows y Windows 95 Son todos unos excelentes sistemas, aunque no sean seguros. Si tu empresa usa esos sistemas operativos en todas sus máquinas estas podrían estar atrasadas frente a un ataque. Esto es especialmente así con Windows 95 por que ha sido poco revisado. WINDOWS NT Microsoft puede ser conocido tradicionalmente por su pobreza en cuestiones de seguridad, pero esto cambia cuando hablamos de Windows NT. Antes de nada hay que hacerse esta pregunta: ¿tengo instalado Windows NT usando NTFS? Si la respuesta es no, el sistema qeu usas no es seguro. Las partes más importantes para examinar la seguridad de Windows NT son: − Servidor de Información de Internet (IIS): IIS es un servidor de Internet popular y es de los que más gustan aunque tiene algunos puntos vulnerables. CMD/BAT: permite a los crackers ejecutar comandos en nuestro servidor. Página Activa del Servidor IIS: puede ser usado para sobreescribir ficheros. IIS ASP URL: permite a conexiones remotas examinar el código ASP. WEBHITS.EXE: usuarios remotos lo usan para buscar puntos vulnerables. Seguridad Interna de Windows NT Lo visto anteriormente hacia referencia a la seguridad externa donde los ataques llegan desde networks exteriores, desafortunadamente los networks son siempre la fuente de los ataques. A veces los propios usuarios atacan el servidor. En general la seguridad de Windows NT es sólamente bastante buena en lo referente a seguridad interna. Algunos administradores de sistemas argumentan que ellos no necesitan NTFS. Piensan que entre la vigilancia, una cuidada administración y un control de quien accede a sus máquinas ellos pueden mantener más o menos la integridad del sistema. Están soñando. El fallo RDISK Un ejemplo perfecto es el fallo RDISK. RDISK es una utilidad de Windows NT que permite crear reparaciones de emergencia en el disco. Es uan buena herramienta para el administrador del sistema, aunque también lo es para personas con malas intenciones. ¿Por qué?: RDISK guarda toda la información del sistema en un directorio llamado C:\winNT\REPAIR (passwords y registros de información). Accediendo a ese directorio podemos obtener toda la información importante del sistema. Existen varias herramientas para mantener la seguridad del sistema Windows NT: − Administrator Assistant Tool Kit 2.0: contiene herramientas para el administrador de sistema. 31 URL: http://www.ntsecurity.com/ − FileAdmin: es una herramienta avanzada para manipular los permisos de los ficheros en grandes networks. URL: http://www.ntsecurity.com/ − Kane Security Analyst: detecta a tiempo real una intrusión en el sistema. Esta herramienta registra las violaciones de seguridad y además es muy configurable. URL: http://www.intrusion.com/ − NetXRay Analyzer: es un poderoso protocolo de análisis (snifer) y un registrador de network de windows NT. URL: http://cinco.com/ − Somarsoft DumpEvt: Somarsoft DumpEvt se deshace de la información Event Log para importarla dentro de una base de datos para su análisis. URL: http://somarsoft.com/ PLATAFORMS AND SECURITY UNIX: the big kahuna. ADDRESSING PHYSICAL SECURITY. En nuestro marco de UNIX solo es seguro su localización. Por tanto, deberemos aislar el marco de UNIX de usuarios malos. Nuestra máquina puede encontrarse expuesta a pequeños contactos físicos de intrusos. Sin embargo, esto no es factible a no ser que nos encontremos en un territorio hostil. Algunos productos que podríamos considerar son: DOMMUS ITSS. No es un producto especificamente, es más bien un servicio de consulta. http://www.domus.com/itss/bio−adv−card.thml 32 IrisScan. Es un sistema biometric de autentificación que soporta hasta 256 estaciones de trabajo en una LAN. Los usuarios son autentificados por el iris de su ojo. http://iriscan.com PC Guardian. Es un producto incluido en disco y que controla el acceso para IBM compatibles. http://www.pcguardian.com/ Barracuda Security. Dispositivo de seguridad física para IBM compatibles. Este producto incluye sistemas de paginación automática que controla alteraciones de la temperatura. http://barracudasecurity.com/ PHAZER. Desarrolado por Computer Security Products, Inc. Es un dispositivo de fibra óptica que detecta alteraciones físicas. Es un buen dispositivo para la seguridad de Univesidades o otras grandes redes. URL: http://computersecurity.com/fiber/index.html CONSOLE SECURITY La seguridad de la consola es otro punto importante. Hay dos áreas principales de interés: · Consola y modo password de un solo usuario. El password de consola es algo muy común en estaciones de trabajo UNIX. Dependiendo de nuestra arquitectura, un intruso puede usar esos password con diferentes objetivos. En arquitecturas X86, podíamos poner el password de la BIOS. Si no lohacías, intrusos locales podían causar ataques o destruir datos. Algunos sistemas BIOS ofrecían utilidades de formateo de disco o herramientas de análisis que podían destruir toda la información del disco. Además, Sistemas BIOS mas modernos ofrecían accesos a los puertos serie y de impresora o a otro hardware que podía ser usado para exportar e importar información. Mas tarde, si usábamos SCSI, nosotros podíamos prevenir ataques de intrusos, usando las utilidades SCSI. Algunas de esta utilidades se graban en el BOOT o cuando conectaba el adaptador SCSI. Buenos ejemplos son los productos de Adaptec. La estación de trabajo de UNIX tiene problemas similares. El password se coloca en la PROM nada mas realizar la instalación. Este password pueden conseguirlo los intrusos, dependiendo de la arquitectura. Algunos sistemas soportan el modo de password individual. Por ejemplo, DECstation. Cuando la estación de trabajo DEC se arranca la primera vez, el sistema operativo de la consola opera en modo de comandos privilegiado. Si no hacemos ningún cambio en este modo, la consola no ofrecerá ninguna restricción. De ésta forma, alguien que quiera acceder a la consola físicamente podrá hacerlos sin que ofrezca ninguna restricción. Estando así de la forma más vulnerable posible. · El Password Root. Finalmente, cuando estemos realizando la instalación, introduciremos el root password. Es verda que algunos distribuidores, como SunOS o Solaris, requieren el que tu lo hagas. Esta es la última opción que presenta antes de reiniciar en SunOS o al reiniciar en Solaris. Sin embargo, algunos distribuidores no fuerzan a elegir lo anterior. INSTALLATION MEDIA. 33 Debemos asegurar la instalación. De otra manera alguien podria comprometer nuestro sistema. Un buen ejemplo es AT&T UNIX, particularmente SVR3 y V/386. Uusarios malos pueden comprometer la máquina con un disco de arranque y elegir la opcion "magic mode" a través de la cual ellos pueden obtener el shell. Similarmente, el CD−ROM de instalación ofrece acceso abierto a usuarios malos. Si nuestro SPARC es accesible y la instalación ha sido correcta, alguien podrá entran en la máquina, en la instalación y sobrescribir nuestro disco. (Este ataque no está limitado en SunOS o Solaris. Algunos sistemas Linux pueden comprometer ese camino, para asegurar los discos. Configuraciones por defecto. Lo siguiente es, la necesidad de una dirección especifica para el sistema operativo. La mayoría de sistemas UNIX tienen una o más cuentas o password por defecto . antes procedemos a la siguiente paso, necesitaremos cerrar esos HOLES. IRIX es un buen ejemplo. Algunas versiones tiene HOLES en la configuración por defecto. Las siguientes cuentas no requieren introducir el password de registro: · lp (line printer) · jill · guest · backdoor · 4Dgifts · tutor · demos · tour · jack Otros sistemas tienen este mismo problema pero en distinto grado. Por ejemplo, algunos tienen cuentas por defecto con passwords conocidos, los cuales son distintos a los emitidos. PASSWORD SECURITY. Probablemente tendremos mas de un usuario que use nuestra máquina, (quizás hasta docenas de usuarios). Por ello, antes de conectar nuestra máquina a la red deberemos de seguir una cierta política de contraseñas. Algunos sistemas de password pueden ser abatidos. Estos es peligroso, porque el password es el principal plan de seguridad de los sistema UNIX. Cualquier acceso a la contraseña o password es fatal. Por esta razón, debemos instalar todas las utilidades de password, una fuerte encriptación (donde sea posible), y ocultamiento del password. Si no usamos el ocultamiento de la contraseña, usuarios locales podrán ver el contenido de /etc/passwd, que es el fichero que contiene los datos de los password. Aunque el password se encuentra en forma encriptada, es fácil de crackear. INSTALLING PASSWORD SHADOWING. Si nuestra versión no está actualizada con el soporte para ocultamiento, se recomienda usar el paquete de 34 ocultamiento de John F. Haugh II. Que no solo contiene un ocultamiento básico, sino también permite un password de 16 caracteres (Tradicionalmente se permiten 8 caracteres). Otras funciones que contiene el paquete son: · Passwords antiguos. · Herramientas de restricción al puerto desde el cual root puede acceder a login. · Grabación de intentos de login fallidos. · Una función para examinar los password de usuarios y evaluar su fortaleza. · Forzar la petición del password, cuando se introduzca un password nulo. Podemos conseguir estas herramientas en: URL: http://www.assist.mil/ASSIST/policies/tools/security/unix/shadow.tar. Algunas herramientas sobre ocultamiento de contraseñas escritas específicamente para Linux son estas dos: − Shadow in Box. Escrita por Michael Quan, es una recopilación de utilidades para el manejo del ocultamiento de nuestra contraseña. El paquete contiene herramientas para FTP, POP, sudo, y xlock. Podremos localizarlo en: URL: http://sunsite.unc.edu/pub/Linux/system/admin/shadow−ina−box−1.2.tgz. − The Linux Shadow Password Suite. Implementado por Julianne F. Haugh, este paquete contiene algunos herramientas para el manejo de ocultamiento y desocultamiento de contraseñas. (También contiene soporte para SunOS). Este paquete se puede localizar en: URL: http://sunsite.unc.edu/pub/Linux/system/admin/shadow−971215.tar.gz. Para aprender mas sobre este tema (y sobre contraseñan de UNIX, en general), podremos encontrar mayor información en las siguientes rutas. · The Linux Shadow Password HOWTO. URL: http://www.tscnet.com/sysop/mhjack/SHADOW−HOWTO/SHADOW−HOWTO.http · Folling the Cracker: A survey of, and Improvements to, Password Security. URL: http://www.um.es/~hmberto/art/password.ps · OPUS: Preventing Weak Password Choice. URL: http://www.alw.nih.gov/Security/FIRST/papers/passeord/pwtenyrs.ps INSTALACIÓN DEL PROGRAMA DE CHEQUEO DE CONTRASEÑAS. 35 El propósito del programa de chequeo de contraseñas es eliminar las contraseñas débiles, antes de que consigan comprometer el fichero passwd. El proceso que sigue es el siguiente: Cuando un usuario introduce su password, es comparado con una lista de palabras siguiendo una serie de reglas. Si la contraseña falla, es porque no reúne una serie de requisitos mínimos y es forzado el usuario para elegir un nuevo password. ¿Es realmente necesario el chequeo de password?, pues sí, porque los usuarios somo muy perezosos y cuando se nos pregunta por la contraseña, normalmente escogemos una que sea fácil de recordar y como consecuencia es fácil de craquear. Ejemplos son los nombres de los niños, día de cumpleaños, nombres de departamentos, etc En el Sistema aunque se realiza un chequeo, estas contraseñas débiles tienen que llegar hasta el administrador, el cual comprueba, con herramientas de chequeo, la fortaleza de la contraseña, pero para entonces ya puede ser demasiado tarde. · Passwd+ Se usa para el chequeo de contraseñas. Realiza las siguientes funciones: − Capacidad del logging. − Especificación del número de caracteres significativos del password. Adicionalmente, passwd+ envía mensajes de error si se introduce una palabra de usuario o un password débil. Podremos usar esta función para que los usuarios no introduzcan password malos. Podremos conseguirlo en: ftp://ftp.assist.mil/pub/tools/passed_utils/passwd+.tar.Z. · Anlpassed Otra buena herramientas para el chequeo de contraseñas es ésta, de Argonne Narional Laboratory's. Está escrita parcialmente en PERL, y se usa un fichero diccionario para la elección de la contraseña, incluso se pueden crear reglas. Algunas de éstas reglas incluidas en el paquete estándar son: − Números con espacios y espacios con números. − Mayúsculas y minúsculas con espacios. − Todas mayúsculas o todas minúsculas. − Todos números. − Letra capital y números. − Todas las combinaciones de las anteriores. Podemos conseguirlo en: ftp://coast.cs.purdue.edu/pub/tools/unix/anlpasswd/anlpassed−2.3.tar.Z · Npasswd Está implementada por Clyde Hoover, y es mas que una simple herramienta de chequeo de contraseñas. Es 36 una solución fácil de manejar y que puede fortalecer mucho la seguridad de las contraseñas en nuestro sistema. Aunque desafortunadamente, si utilizamos Solaris 2.5, podemos perder algunas de las funciones. VULNERABILIDADES EN PARTICULAR. Debido a que no todos los paquetes de parches son muy exhaustivos y existe una gran dificultad para encontrar los parches más antiguos, se ha creado una lista especial que cubra los ataques más serios sobre las distintas plataformas, porque continuando con la sección de la integridad de datos, en la lista encontraremos aplicaciones de chequeo del sistema contra los HOLES. · Critical Remote vulnerabilities: AIX. Versión o Aplicación: AIX 3.x Impacto: Bugfiler binarios se instalan en SUID root. Los usuarios locales podrán grabar los privilegios del root. Fix: Borrar el bit SUID del Bugfiler binario. Información adicional: http://njh.com/latest/9709/0970909−03.html Acreditado: Johannes Schwave. · Crontab. Versión o Aplicación: AIX 3.2 Impacto: Usuarios locales pueden grabar el root. Fix: http://service.software.ibm.com/rs6000/ Información adicional: http://www.sw.com.sg/download/cert_advisories/CA−92:10.AIX.crontab.vulnerability Acreditado: CERT. · Dpsexec. Versión o Aplicación: Dpsexec Impacto: Usuarios locales pueden grabar el root (dpsexec es un PostScript , programa interprete de comandos que permite caminar sobre el codigo PostScript de forma interactiva.). Fix: Desconocido. Información adicional: http://geek−girl.com/bugtraq/1994_3/0038.html Acreditado: Sam Hartman. · Dtterm. 37 Versión o Aplicación: AIX 3.2 dtterm Impacto: Desbordamiento del buffer en el shell del root. Usuarios locales pueden grabar el root. Fix: chmod −s /usr/dt/bin/dtterm Información adicional: http://mayor.dia.fi.upm.es/~alopez/bugs/bugtraq/0239.html Acreditado: Georgi Guninski. · FTP. Versión o Aplicación: AIX 3.2, 4.1, 4.2 FTP Impacto: Servidores remotos pueden ejecutar arbitrariamente comandos en forma cliente. Fix: IBM dice que elimina el bit de setuid desde un comando ftp. Información adicional: http://geek−girl.com/bugtraq/1997_3/0626.html Acreditado: Andrew Green. · Gethostbyname() Versión o Aplicación: AIX 3.2−4.2x & gethostbyname() Impacto: El desbordamiento del buffer puede llevar al ocultamiento del shell del root. Fix: APAR IX60927, IX61019, ó IX62144 Información adicional: http://ciac.llnl.gov/ciac/bulletins/h−13.shtml Acreditado: Giorgi Cuninski. · Login. Versión o Aplicación: AIX 3.2−4.2x Impacto: Usuarios remotos pueden tener acceso al root. Fix: APAR IX44254 Información adicional: http://www.xnet−consulting.com/security/ciac/bulletins/e−fy94/ciacfy94.txt Acreditado: Desconocido. Critical Remote Vulnerabilities: IRIX. · Handler. Versión o Aplicación: handler 38 Impacto: /cgi−bin/handler acepta de forma arbitraria, comandos para añadir argumentos. Algunos lo hacen de forma local o remota, pueden ejecutar comandos en nuestro sistema. Fix: ftp://sgigate.com Información adicional: http://www.geek−girl.com/bugtraq/1997_3/0148.html Acreditado: Wlfram Schneider. · webdist.cgi Versión o Aplicación: webdist.cgi Impacto: El paquete IRIS Midshare Out Box usa un script llamado webdist.cgi en la instalación de las rutinas de red. Un par de permisos erróneos y un fallo en el chequeo de argumentos son pasados por alto en el programa, por lo cual usuarios remos y locales pueden ejecutar de forma arbitraria código con httpd UID. Fix: ftp://sgigate.sgi.com Información adicional: http://www.tech.chem.ethz.ch/~bolinger/sgi−ethz/secadv/msg00003.html Acreditado: Grant Haufmann y Chris Sheldon. · Xdm Versión o Aplicación: X Display Manager 5.3 Impacto: Permite al servidor aceptar algunos clientes validos. Fix: Turn off xhost+. Información adicional: N/A Acreditado: Desconocido. · Line Printer Login. Versión o Aplicación: lp loginIRIX 6.2 Impacto: La línea de impresión (lp) devuelve que el password es nulo. Fix: Buscar el password lp en /etc/passwd. Información adicional: N/A Acreditado: Desconocido. Critical Remote Vulnerabilities: SunOS y Solaris. · Syslogd Versión o Aplicación: SunOS 4.1.x 39 Impacto: Hace vulnerable el desbordamiento del buffer y permite ataques remotos al root Fix: Contactar con Sun. Información adicional: http://www.dice.ucl.ac.be/crypto/oliver/cq/msgs/msg000089.html Acreditado: 8LGM. · Rlogin Versión o Aplicación: SunOS y Solaris. Impacto: Rlogin tiene un desbordamiento del buffer que permite ataques y accesos remotos al root. Fix: http://sunsolve.sun.com/sunsolve/pubpatches.html Información adicional: http://ciac.llnl.gov/ciac/bulletins/h−25a.shtml Acreditado: CERT. · Statd Versión o Aplicación: SunOS y Solaris. Impacto: Es vulnerable al eliminar el desbordamiento del buffer. Pueden producirse ataques a los privilegios del root, creando y eliminando ficheros. Fix: Patch−ID# 104167−02 de noviembre 1.997 Información adicional: http://rtfm.ml.org/archives/bugtraq/Nov_1997/msg00181.html Acreditado: Anonimo. Critical Remote Vulnerabilities: Linux. · Rcp Versión o Aplicación: Red Hat y Slackware Impacto: Usuarios desconocidos pueden hacer un HOLE en rcp que puede producir un ataque remoto al root. Fix: Cambiar el UID. Información adicional: http://www.geek−girl.com/bugtraq/1997_1/0113.html Acreditado: Miro Pikus. · ftp Versión o Aplicación: Slackware y AIX Impacto: Servidores FTP remotos pueden causar al FTP cliente local la ejecución arbitraria de comandos. 40 Fix: Para Linux, desconocido. Para AIX, ver el URL. Información adicional: http://www.unitedcouncil.org/sploits/ftp_mget.html Acreditado: ers@VNET.IBM.COM · imapd Versión o Aplicación: Red Hat y Slackware Impacto: Usuarios remotos pueden cambiar el password del root local para escribir espacios y activar un HOLE en imapd. Fix: Contactar con Red Hat. Información adicional: http://njh.com/latest/9796/970624−07.html Acreditado: Tetsu Khan. EL SIGUIENTE PASO: EXAMINAR LOS SERVICIOS. Suponemos que hemos asegurado nuestra estación de trabajo. Se ha activado la ocultación y aceptará solo password fuertes. Ahora, es tiempo de considerar como nuestra estación de trabajo puede interactuar con el resto del mundo. Los Servicios r. Rlogin y rsh se usan para los seguridad de los HOLES. Por ejemplo, algunas versiones de Linux albergan un crítico rlogin HOLE. El Hole permite a los usuarios locales y remotos el acceso. El problema no está confirmado por Linux. Algunas distribuciones de UNIX tienen el mismo error, incluyendo ciertas distribuciones de AIX. AIX no es la única distribución que ha tenido problemas con los servicios r. Así es recomendable que lo reemplacemos con un Secure Shell (SSH). SSH dispone de una fuerte autentificación y una encriptación a través de sesiones remotas. Es un excelente reemplazo para los rlogin y Telnet paralelamente. SSH vence a los ataques que se realizan sobre los DNS e IP. Algunos administradores sugieren que si no proveemos de servicios r al sistema, podemos eliminar los ficheros etc/hosts.equiv y .rhosts. El cliente de SSH soporta la autentificación por medio de .rhosts y etc/hosts.equiv, Así que si se está usando SSH, es recomendable que guarde estos archivos. Antes de la implantación de SSH en nuestro sistema, debemos estudiar el RFC relativo a este punto. Lo podremos hacer en: URL: http://www.cs.hut.fi/ssh/RFC Si queremos obtener SSH, lo podemos conseguir en: URL: http://escert.upc.es/others/ssh El Servicio Finger. 41 Este servicio puede proporcionar ciertos riesgos de seguridad y puede usarse para comprometer la privacidad de los usuarios. Por lo que no es recomendable que se provea del servicio Finger para el exterior. Sin embargo, si es necesario el servicio finger en nuestro sistema, es recomendable usar un paquete mejorado de dicho servicio, tal como sfingerd, implementado por Laurent Demailly. Uno de los aspectos principales de sfingerd es que da acceso para planificar archivos mediante el directorio chrooted. Podemos conseguirlo en: URL: http://hplyot.obspm.fr:/net/sfingerd−1.8.tar.gz Telnet No es un servicio muy peligroso. Sin embargo, algunas versiones de Telnet pueden dar acceso, a usuarios remotos, a información valiosa. Telnet tiene el mérito de tener pocos Holes. Uno de ellos fue descubierto por Sam Hartman de MIT's Kerberos Development Team. Este Hole fue mas bien oscuro, pero pudo proveer a un usuario remoto de acceso al root (raíz). El Hole descubierto por Hartman no era simplemente común para una versión del telnetd, sino para varias: − NetBSD − FreeBSD − SGI IRIX − DEC UNIX − Linux Si buscamos un Telnet para reeplazarlo, tenemos varias elecciones. Secure shell es muy buena, pero no es la única posibilidad. Otras dos opciones muy buenas son: · Telnet Authentification Via Kerberos. Algunas distribuciones del Telnet de Kerberos soportan encriptación y autentificación. Algunos de estos desarrollos se realizaron en Octubre de 1.995 cuando Hartman identificó el Hole. Puede obtenerse en: http://andrew2.andrew.cmu.edu/dist/telnet.html. · Telnet Proxy by Firewall. Tal como la aplicación tn −gw está disponible en TIS Firewall Toolkit. Estos tipos de aplicaciones pueden permitir o denegar el acceso a host remotos de forma explicita. FTP Existen muy pocas razonas para permitir FTP anónimos. Y aunque el FTP no suponga un gran riesgo para la seguridad, deberemos ser consciente de algunos puntos en concreto. Principalmente los FTP's interactúan con otros programas o servidores: Algunos protocolos son difíciles de filtrar sin riesgo (servicios RPC y UDP), de esta forma se provee una mayor apertura a la red interna. Los servicios suministrados sobre una misma máquina pueden obrar de forma recíproca, provocando una catástrofe. Por ejemplo, si permitimos FTP anónimos en alguna máquina con un servidor WWW puede permitirse que un intruso ponga un fichero en el área de FTP anónimo y cause su ejecución del servidor http. Los ataques de "salto" en FTP involucran al servidor FTP, para conseguir así el acceso, para la que está 42 conectado el cracker. El escenario típico es cuando nuestro máquina blanco está configurada de forma que niegue las conexiones desde una dirección IP segura dentro de la máscara. La máquina del cracker tiene una dirección IP dentro de la máscara, y por lo tanto, el directorio FTP que es el blanco buscado, es inaccesible para ellos. Para circunvenir esto, los cracker usan otras máquinas (intermedias) para acceder al blanco. Los crackers realizan esto por medio de un fichero escrito en el directorio FTP de la máquina intermedia, el cual contiene un comando para conectar el blanco y coger algunos ficheros de ella. Cuando la máquina intermedia conecta, lo hace desde su propia dirección y no la del cracker. El blanco acoge la conexión pedida y acepta el archivo. Los ataques de "salto" en FTP no tiene una prioridad muy alta, porque son raros y no implican intentos de penetración. Los mejores ataques de "salto" son los originados en el extranjero. Los estados Unidos han creado restricciones a algunos productos que tienen un alto nivel de encriptación en su programa. Estos ataques se usan principalmente para circunvenir las restricciones de los sitios FTP de los Estados Unidos. Para más información adicional, podemos visitar: http://www−jcr.lmh.ox.ac.uk/rootshell/hacking/wuftpd_umask.txt FTP EN GENERAL. Ciertas versiones de FTP son fáciles de estropear o desconfigurar. Si usamos una versión de wu_ftpd que sea anterior a Abril 1.993, necesitaremos actualizarla inmediatamente como se informa en CERT Advisory 93:06: El Centro de Coordinación de CERT ha recibido información concerniente a la vulnerabilidad en versiones del archivo ftpd disponibles antes del 8 de Abril de 1.993 Por tanto para la versiones más viejas de wu_ftpd. En 4 de Enero de 1.997 fue descubierto un error en la versión 2.4. Esto es algo crítico porque la versión 2.4 es la versión más usada. Así que si esta es la versión que estamos usando, deberemos buscar el parche inmediatamente. Este parche podremos encontrarlo en: http://www.landfield.com/wu−ftpd/mail−archive/1996/feb/0029.html La seguridad del FTP, en general, es el tema más estudiado en la tecnología FTP. Esta tecnología ha cambiado bastante desde su introducción. La especificación actual del FTP fue llevada adelante en RFC 959 , "Protocolo de Transferencia de Ficheros" hace casi una década. Desde entonces, se ha hecho mucho para mejora la seguridad de esta aplicación. El documento que necesitaremos es "FTP Security Extensions". Este documento define las extensiones para los FTP especificados en RFC 959. Estas extensiones tienen una fuerte autentificación, integridad, y confidencialidad en el control y canales de datos con la introducción de nuevos comandos opcionales, contestaciones, y transferencia de fichero codificados. Podemos encontrarlo en: http://info.internet.isi.edu/0/indrafts/files/draft−ietf−cat−ftpsec−09.txt Finalmente, podemos seguir unos pasos para asegurarnos que nuestro servidor FTP es seguro: · Examinamos nuestro servidor con SITE EXEC Bug. Algunas versiones más antiguas de FTP permiten a individuos remostos el obtener el Shell desde una inicialización de una sesión con Telnet en el puerto 21. Para chequear este Hole, iniciamos la sesión de Telnet en el puerto 21 y emitimos el comando SITE EXEC. Si 43 consigues el shell, entonces hay problemas. Tu puedes comprender este claro problema en las referencias de CERT advisory CA−95:16. http://bulsai.kaist.ac.kr/~ysyun/Mail−Archives/cert−advisory/95/0006.html · El directorio Home de nuestro servidor FTP puede que no sea posible escribir en él. La forma más fácil de cambiar los permisos correctamente es chmod 555. · No permitir al sistema conectar por medio de FTP sin el ID. Esto incluiría naturalmente la raíz, bin, uucp, ni a nadie. TFTPD Raramente se usa este protocolo y posee un importante riesgo en seguridad, aun cuando consideramos que la versión que usamos es segura. Deshabilitar TFTPD es muy fácil. Simplemente hay que editar inetd.conf, después de haber grabado el boot, si finalmente nos determinamos por usar TFTP, hay unos puntos que debemos considerar: · Usando el ocultamiento del password , hacemos que el contenido de /etc/passwd sea irrelevante para los crackers. Así pues deberemos de instalar el ocultamiento (shadowing) para usar TFTP. · Algunas distribuciones de TFTP puede funcionar en modo seguridad. Si existe este modo puede obtenerse en inetd.conf, especificando la opción −s. · Ejecuta los registros y los verifica a diario. Gopher. Es un protocolo que ya está anticuado, pero es rápido y eficiente. Si lo ejecutamos, nos sorprenderemos. Gopher entrega información a nuestro escritorio instantáneamente, aunque anuncios, lo cual está permitido en Internet. Gopher tradicionalmente no se ha caracterizado por una gran seguridad, pero algunos puntos son dignos de mención.. El servidor Gopher de la Universidad de Minesota es probablemente el más popular, disponible en www.boombox.micro.umn.edu. El Bug afecta al Gopher en todas las versiones adquiridas antes de Agosto de 1.993. De este Hole se informó en Defense Data Network Bulletin, el cual podemosver en http://nic.mil/ftp/scc/sec−9315.txt. También Gopher proporciona una sesión FTP, y por lo tanto, podremos desempeñar un ataque de "salto" usando Gopher como lanzadera. Debe tener presente un punto respecto a la seguridad del Firewall, por ejemplo, si nuestro servidor FTP está detrás del Firewall, pero el servidor Gopher no, el acceso al servidor FTP se bloqueará. Finalmente, en su estado por defecto, Gopher es muy pobre respecto a la capacidad de logging, comparándolo a otros servicios de red. SISTEMA DE FICHERO EN LA RED. 44 NFS exporta ficheros de sistemas que pueden o no tener cierto riesgo, dependiendo de cómo se exporten. Los permisos son uno de los principales factores. Seguramente, tenemos razón en pensar que nuestros usuarios irán generando sus propios ficheros .rhosts, los ficheros exportados irán a /export/home lo cual es una mala idea porque estos directorios tienen permisos de lectura / escritura. Algunas herramientas pueden ayudarnos para automatizar el proceso de examinación de los Holes. Uno de estos es NFSbug, el cual es designado para escanear los Holes conocidos. Éste está disponible en ftp://ftp.cs.vu.nl/pub/leendert/nfsbug.shar. Otro problema es que si usamos "enhanced" o "secure" NFS es posible que todavía no sea segura. La llave DES es derivado de los password de usuario, los cuales presenta un obvio problema. Instalando el ocultamiento (shadowing) puede presentar un camino para los Cracker para alcancar nuestra lista de passwd. El procedimiento Time−stamped elimina la posibilidad de que un cracker verifique el cambio y más tarde vuelva. HTTP Tiene un amplio rango de puntos de seguridad, de los cuales veremos unos pocos. El primero, httpd no funciona en la raíz. Las caídas de los programas CGI permiten ataques remostos para ejecutar arbitrariamente código won el UID de le servidor http. Si este servidor está funcionando en la raíz, pondremos en un compromiso el sistema entero. Podemos considerar la posibilidad de ejecutar httpd con un proceso chrooted. Algunas consultas sugieren que esta forma proporciona una gran seguridad. La mayoria de nuestro usuarios dependen de si se le permite o no el acceso al servidor Web y sus servicios. Algunos ISP no permite el acceso. El negocio típico son 10MB de espacio FTP pero no CGI. De hecho, la mayoría de ISPs actualmente no permiten el acceso al shell. Si ofrecemos tales servicios, podremos tener nuestras propias políticas. Por ejemplo, in ISP que permite CGI solamente si el desarrollo del código puede leerse con claridad antes de lanzarlo. Este enfoque tiene ventajas y desventajas, como que podremos ver cada línea del código en el servidor. La pregunta que nos hacemos ahora es ¿Quién chequea realmente todo este código?. La solución es usar programas como CGIWRAP, el cual automatiza el proceso que desempeñan las siguientes funciones: − Chequea el CGI por los Holes. − Registro de todos los acceso al Script. CGIWRAP fue implementada por Nathan Neulinger en 1.995. Podemos encontrarla en: ftp://ftp.cc.umr.edu/pub/cgi/cgiwrap CGIWRAP ha sido verificada para funcionar en las siguientes plataformas. − A/UX − HPUX − Solaris 45 − Linux − OSF/1 Desafortunadamente, CGIWRAP no da solución para los problemas de seguridad de HTTP. Debemos tener ciertas precauciones: · Desactivar la opción EXEC, Esto previene a los usuarios que se ejecuten comandos desde el servidor. · Acabar la inclusión del Server−side (documento elemental basado en la declaración de <include> tal como hora, día, y última modificación). · Seleccionar la opción NONE de AllowOverride esto desactiva los usuarios locales desde su propia configuración con la opción Locally, dentro de su propio directorio. También, debemos anotar que NCSA advierte con respecto a la autentificación basada en los DNS: El control de acceso por medio del Hostname y la autentificación básica de usuarios facilitada por HTTPd son relativamente únicas, pero no bulletprof. La autentificación del usuario envía el password a través de la red en modo texto, haciendo muy fácil su lectura. La DNS basados en el control de acceso es el único tan seguro como el DNS, por tanto deberemos guardarla en la mente cuando la usemos. "NCSA Tutorial Pages: Making Your Setup More Secure": http://hoohoo.ncsa.uiuc.edu/docs/tutorials/security.html HTTP Seguridad en General. La seguridad de HTTP ha experimentado algunos cambios, particularmente en los últimos dos años. El motivo de los avances ha sido el desarrollo de los protocolos de seguridad. De estos, el candidato viable es Secure Socket Layer Protocol. Secure Socket Layer Protocol. SSL fue desarrollada por Netscape Communications. El sistema es método que emplea autentificación RSA y DES y encriptación, tan buena como el chequeo de integridad de MD5. Para aprender más sobre SSL podemos visitar la página de SSL: http://home.netscape.com/eng/ssl3/ssl−toc.html Sobre X. Los sistemas de seguridad de X Windows son ya otro punto que puede o no interesarnos. Si nuestro sistema es un servidor Web, entonces no necesitaremos tener X Windows en nuestro disco. En cambio, si vamos a usar X, existen unos puntos obvios que deberemos tratar. La principal vulnerabilidad de X es muy fácil de remendar. Cuando un servidor X tiene el control de acceso desactivado, alguien en Internet puede abrir adicionalmente X Windows y comenzar a ejecutar programas arbitrariamente. Como una dificultad adicional, podemos cerrar eso Hole cambiando la sesión con X Windows con xhost de la siguiente forma: xhost + to xhost −. Si tenemos un sistema UNIX moderno, podremos mirar X simplemente en otra ventana. 46 Si X no es simplemente un sistema de ventanas. Las conexiones se envían al servidor X. Este servidor puede crear clientes X validos, que pueden estar en la misma máquina o a miles de kilómetros. Por lo tanto X es como cualquier otro protocolo en UNIX. Trabaja en modo cliente o Servidor y proporciona acceso a través de Internet y multitud de sistemas y arquitecturas. Cuando se inicia una conexión válida, puede suceder cualquier cosa. Una vez se inicia la conexión , los atacantes pueden destruir la ventana, crear una nueva, capturar los golpes de teclas y el password, y realice cualquier actividad factible en el entorno de X. La autentificación en X está basado en algo llamado Magic Cookie, el cual es un valor de 128 bits, generado de forma semi−aleatoria. Este valor es distribuido a los clientes y grabado en el fichero .Xauthority. Este plan de autentificación es conocido como "Médium−strength" y puede ser teóricamente derrotada. Si tenemos activado el control de acceso, existe una pequeña posibilidad de que un extraño grabe nuestro fichero Xauthority. Sin embargo no deberíamos confiar en el control simple de acceso. Los esfuerzos realizados han sido para afianzar la seguridad de X, y no existe ninguna razón por la cual no nos aprovechemos de ella. Así pues, deberíamos tomar adicionalmente otras medidas de seguridad porque, el plan básico de seguridad de X se ha roto en el pasado. Además, algunos de los programas disponibles automatizan la tarea de crackear un servidor X o romper el servidor una vez se ha craqueado. Las autoridades sugieren que usemos el Xlib de Kerberzed o los protocolos de identificación definidos en RFC 1413. De nosotros dependerá la elección, para la configuración de nuestra red. Algunos puntos importantes a tener en cuenta son: · Siempre usaremos la versión más nueva de Magic Cookie Authentification. · Nos aseguraremos que xhost + no añada a nadie más al sistema, en el fichero .xsession. · Chmod /tmp to 1777 para prevenir el acceso al descriptor del socket que puede ser grabado en el directorio. ATAQUES REMOTOS ¿QUÉ ES UN ATAQUE REMOTO? 47 Cualquier ataque contra una máquina remota. Primeros pasos El primer paso requiere poco o ningún contacto con el objetivo. El problema es obtener la información: − cómo es la red − posibles puntos débiles − quien usa la red − dónde se conectan Esta información es fácil y rápida de conseguir. Echando un vistazo a la red Una buena forma de empezar es haciéndole una consulta al host, esto nos dará un montón de información. A partir de esto, cogemos un objetivo e intentamos conseguir un nombre de usuario válido con el comando finger. Esto es fácil en redes públicas como por ejemplo las de las universidades, pero no es fácil en redes privadas. Después de usar varias técnicas para obtener el nombre de los servidores un cracker se irá a otros servicios de la red. Uno de ellos es el servicio WHOIS. Whois El servicio WHOIS está en internic.net, el centro de información de la red. Esta Base de Datos contiene la siguiente información: − nombres de los host para los dominios de EEUU no militares. − nombres de los propietarios de los dominios. − contacto técnico para cada dominio. Una consulta WHOIS se puede hacer de 2 formas: − desde línea de comandos en UNIX. − desde una página HTML. Puede ser muy útil el recoger información sobre el sitio del administrador del sistema o sobre sus consultas a listas de correo sobre seguridad ya que a veces especifican sus arquitectura, topología, o problemas que les surjan. Esto nos dará pistas sobre su política de seguridad. Si no hay rastro del administrador de sistema en la lista de correo, podemos probar a intentar adivinar su dirección concatenando sus nombre a todos los host de su red. "Finger" y Rusers" Si el objetivo está ejecutando finger y rusers, puedes darte cuenta de que el administrador de sistema está en otra red, y esta información se puede conseguir del informe que finger y rusers proporcionan. Sin embargo, conseguir esta información puede llevar días, y el administrador puede que ya haya entrado desde la red 48 externa. Una solución es escribir un script(macro) que coja la información regularmente. El sistema Operativo Próximo paso: identificar el Sistema Operativo del objetivo. Esto puede ser muy fácil porque muchos sistemas identifican sus SSOO cuando se produce un nuevo acceso (login). Si esta información no aparece inmediatamente prueba a usar las ordenes host, dig y nookup. Sin embargo, la información proporcionada no tiene porqué ser del todo cierta: podría estar anticuada o manipulada. Si esto falla: − abrir una conexión con un socket a un puerto conocido que preste servicios únicos. − usar motores de búsqueda. Para esto hay que saber los nombres de usuario del objetivo y habrá que buscar mensajes enviados desde aquí porque en las cabeceras pone al final el S.O. IDENTIFICANDO DEBILIDADES EN EL SISTEMA Los escáneres son buenas herramientas para auditar la red, y pueden ofrecer un testeo rápido para debilidades bien conocidas. Sin embargo, no son apropiadas para atacar una red externa porque hacerlo es como entrar a robar por la ventana a plena luz del día. La proliferación de escáneres ha llevado al desarrollo de herramientas que detectan los rastros de los mismos. Por esto, su uso es poco aconsejable. Las formas más prudenciales de recabar información del objetivo son: − consultores de seguridad (security advisories) − lista de correo sobre seguridad − sitios sobre cracking − manuales de administración de sistemas − sitios parches. Sitios sobre Cracking Son sitios maravillosos que ofrecen un montón de programas, pero: − No suelen dar documentación y cuando lo hacen, esta puede ser incompleta, inconsistente o difícil de entender. Además suelen estar hechos con menos calidad que los programas comerciales. − Pueden suponer un riesgo para tu propio sistema al llevar troyanos o código sospechoso. − Son herramientas hechas deprisa, justo después de que se descubra un fallo de seguridad por lo que pueden no estar muy bien depuradas. Haciendo uso de esas herramientas deberás: − saber quién es el administrador, sus hábitos, cuentas alternativas, horario de tranajo, datos personales, etc. esto se puede lograr haciendo un seguimiento del administrador de sistema en los foros de seguridad entre otras técnicas. 49 − Conocer la topología de la red, hardware, software, arquitectura, servidores y sospechar las relaciones de confianza. − Conocer las posibles vulnerabilidades, el porque de las mismas, herramientas para testearlas y los peligros y riesgos de explorarlas. Próximo paso hacer una prueba. Haciendo Pruebas No hacen falta, pero son muy recomendables. Se debe conseguir una máquina igual a la que se vaya a atacar. 3ventajas: 1. Conoces como responde el objetivo a tus ataques ya que una máquina con la misma configuración que el objetivo debería responder igual. Si eso no pasa anda con cuidado porque el administrador ha metido ahí sus narices. Existen sistemas de detección de intrusos y de desinformación que hacen creer al intruso que está trabajando con otro Sistema Operativo distinto al del objetivo. 2. Los archivos log de la víctima demostrarán que has estado allí lo cual es importante conocer porque así puedes borrar las huellas de tu ataque. Para esto debes saber exactamente que ficheros se generan a partir de tu ataque. 3. Aprendes que ataques son efectivos. Si usas código ajeno no sabrás si funciona hasta que lo pruebes ya que el que haya funcionado con la configuración del autor no significa que funcione con la tuya. NIVELES DE UN ATAQUE ¿CUÁNDO PUEDE OCURRIR UN ATAQUE? Un ataque puede ocurrir en cualquier momento en el que tu estación de trabajo en red esté conectada a internet. La mayoría de los ataques ocurren en las horas nocturnas de la posición del servidor. Se podría pensar que los crackers deberían trabajar durnate el día ya que el alto tráfico oculta sus actividades. Pero hay varias razones por las que los crackes no usan estas horas: − Factibilidad: la mayoría de los cracker son personas que tienen su trabajo durante el día y durante la noche es cuando pueden llevar a cabo sus actividades. Esto difiere del pasado, cuando los crackers eran chicos en 50 casa sin nada que hacer. − Velocidad: los crackers prefieren trabajar a las horas en las que menos tráfico hay para que sus paquetes se envíen lo más rápido posible. • Sigilo: supongamos por un momento que un cracker encuentra un fallo, y en ese momento hay 3 administradores de sistema controlando el acceso, ¿qué puede hacer? Muy poco. Es preferible esperar y entonces actuar. • ¿QUÉ SISTEMA OPERATIVO USAN LOS CRACKERS? El sistema operativo usado por los cracker varía. Macintosh es la plataforma menos preferible para un cracker, simplemente porque no hay suficientes herramientas para MacOs y las que hay tienen muchos problemas para ser portables. UNIX es la más preferible probablemente FreeBSD o Linux. Las razones para que Linux sea muy usado por los crackers es que en un precio aceptable consigues un PC a 100Mhz con 8MB de RAM al que pones como sistema operativo FreeBSD o Linux de forma gratuita y de repente te encuentras con que tienes una poderosa estación de trabajo. También deberíamos mencionar a los crackes profesionales (cobran por su trabajo) que pueden probablemente proporcionarse cualquier sistema ya que para esos individuos las licencias y los costes no son cuestiones de importancia. SUN Es relativamente fácil ver cracker usando la plataforma Solaris X86 o SCO. Esto es porque además de que son productos con licencia gratuita, son fáciles de obtener. Un cracker típico es un estudiante y estos poseen ventajas respecto a la compra de software, ya que hay acuerdos entre las empresas y las universidades que bajan el precio del software, precios a los que no pueden acceder las personas de la calle. UNIX La plataforma UNIX es muy popular porque generalmente necesita muy pocos recursos para tener un buen funcionamiento. Un PC con Windows 95 requiere muchos megas de RAM, en contraste con Linux o FreeBSD que pueden ser ejecutados en un 80386, además hay muchas herramientas escritas para Linux. MICROSOFT La plataforma Microsoft soporta muchas herramientas de seguridad legales que pueden ser usadas para atacar host remotos, De hecho muchas crackers están usando Windows NT que es mejor que Windows 95 en un amplio margen y tiene mejores herramientas para trabajo en red. Además Windows NT es una plataforma más seria en términos de seguridad. El acceso al control es mejor, así los cracker pueden ofrecer servicios remotos a sus compañeros. Windows NT comenzó como la mejor plataforma para servicios en Internet. EL ORIGEN DEL ATAQUE. Hace años muchos ataques se iniciaban en las universidades porque era donde el acceso a internet era mejor. Esto influenciaba no sólo en el origen del ataque seno en la duración, ya que los protocolos TCP/IP no eran una buena opción para crackear. Hoy es totalmente diferente. Los crackers pueden atacar una estación de trabajo desde su propia casa, oficina o vehículo. A pesar de eso hay algunas constantes, por ejemplo: los crackers importantes generalmente no usan proveedores como America OnLine, Prodigy o Microsoft NetWork(aunque los que se dedican al robo de números de tarjetas de crédito tienen en AOL la mejor elección). Además esos proveedores no ofrecen UNIX, y ya hemos comentado que el entorno Unix es uno de 51 los más utilizados por los crackers. La imagen de un crackers típico es: esa persona que trabaja por la noche con UNIX o Windows NT, con herramientas muy avanzadas y usando un proveedor local. ¿Cómo es un típico cracker? Un cracker típico tiene tres características básicas: − puede codificar en C, C++ o Perl, − tiene un profundo conocimiento de TCP/IP, − usa internet más de 50 horas al mes, − tiene un conocimiento íntimo de al menos dos sistemas operativos, de los cuales sin duda uno de ellos es UNIX o VMS, − tiene o tuvo un trabajo relacionado con la informática, − colecciona viejo software y hardware. ¿Cómo es un típico objetivo? Los objetivos típicos de los crackers son muy variados pero coinciden principalmente en ser servidores pequeños o redes privadas. El porque está claro, es más fácil atacar pequeñas redes que tienen pocos elementos de seguridad, además las pequeñas compañías no suelen tener asignado un presupuesto especial para el anti−cracking. Las características de un objetivo son: − Los dueños son nuevos en internet. − El administrador de sistema está experimentado con LAN`s y no con TCP/IP.. − Su equipo o el software (o ambos) son viejos y quizá anticuados. También hay cracker que prefieren recorrer ciegamente muchos objetivos y ver donde hay fallos de seguridad no detectados por el sysad (administrador de sistema). Otra cuestión es la familiarización y especialización ya que los crackers cada vez atacan menos a múltiples plataformas. Uno de los objetivos más importantes son las universidades por varias razones: − El trabajo del sysad suele estar distribuido en varias estaciones de trabajo. − Aunque sea en un segmento pequeño las universidades tienen varios cientos de usuarios. Otro objetivo importante son las web gubernamentales. Suelen ser atacadas por elementos anarquistas. ¿Por qué quieren atacarnos? Hay varias razones por las que los crackers pueden querer atacar un sistema: − Rencor: por que el cracker está en desacuerdo con tus ideas. − Deporte: quizás se ha dado cuenta que había un fallo en la seguridad de tu sistema. 52 − Sacar provecho: alguien paga a un cracker para que ataque al propietario de los datos. − Estupidez: muchos crackers quieren impresionar a sus amigos. − Curiosidad: muchos crackers son por pura curiosidad. • Políticos: un pequeño (pero significante) porcentaje de crackers crackean por motivos políticos. NIVELES DE ATAQUE A UN SISTEMA Nivel 1 Los ataques clasificados en el nivel uno son básicamente irrelevantes. Se incluyen los ataques al sistema de correo electrónico y la negación de servicios− Lo mejor de esto es que se requieren 30 minutos para corregir el problema. Esto es así porque el ataque se realiza con el expreso propósito de fastidiar. Nivel 2 y 3 En estos niveles se engloban los ataques como cuando usuarios locales acceden a la lectura o escritura de ficheros (o directorios) a los que ellos no deberían tener acceso. Esto puede ser un problema dependiendo de la importancia de los ficheros. Ciertamente, cualquier caso en el que un usuario local tenga acceso al directorio /tmp es una situación crítica. Y esta es una cuestión primaria para un administrador de UNIX o de Windows NT. Hay dos cuestiones clave de seguridad del nivel 2 que si son vulneradas afectaran al nivel 3, 4 ó 5. Esos factores son: − Mala configuración − Fallos inherentes al software La primera cuestión ocurre cuando no se entiende bien el sistema y se colocan mal los permisos. Esto no es un crimen. Hay que reconocer que cada sysad de Windows NT o UNIX no es un genio, y tampoco el hecho de que se tenga un profundo conocimiento del sistema no significa que sea un sistema seguro. Además hay varias herramientas para chequear el sistema en busca de malas configuraciones. La segunda cuestión es más común de lo uno se piensa. De hecho, desde 1980 están apareciendo mensajes de advertencia sobre problemas en software que se creía eran muy serios en cuestiones de seguridad. Un intento de solucionar este problema es sacar al mercado versiones del software al que los mismos usuarios van descubriendo los fallos de seguridad, pero no es una solución muy buena ya que hay fallos que no aparecen hasta que el software es vendido en su versión completa. La única solución es subscribirse a una lista de correo donde te envíen información sobre los fallos y problemas que vayan surgiendo en tu sistema y pensar al respecto que la seguridad es un proceso de continuo aprendizaje. Nivel 4 En este nivel los casos ya son de usuarios remotos que acceden a ficheros internos. La intención de este acceso puede variar: puede ser buscando verificar la existencia de ciertos ficheros, o para leerlos. Los problemas en el nivel 4 también incluyen aquellas vulnerabilidades encontradas por usuarios remotos a través de las cuales ejecutan un numero de comando en el servidor. El mayor porcentaje de esos fallos llegan a través 53 de malas configuraciones en el servidor, malos CGI`s y problemas de overflow. Nivel 5 y 6 En estos niveles se engloban las cosas que nunca deberían ocurrir. Un problema en el nivel 5 o 6 es fatal. En estos niveles los usuarios remotos pueden leer, escribir y ejecutar ficheros. Afortunadamente si se tiene el nivel 2, 3 y 4 cerrados convenientemente es casi imposible que haya una crisis en el nivel 5 ó 6. Fuentes − UniX Incident Guide How to Detect an Intrusion URL: 2305_UNIX_Incident_Guide_How_to_Detect_an_Intrusion.pdf − Securing Internet Information Servers URL: 2308_Securing_Internet_Information_Servers.pdf ATAQUES SPOOFING ¿QUÉ ES UN SPOOFING? Spoofing puede ser definido es una sentencia simple: es una técnica sofisticada de autentificar los paquetes de una máquina a otra desde una verdadera dirección fuente. Spoofing es un complicado proceso. Fundamentos de seguridad Hay dos fundamentos de seguridad: − Confianza − Identificación 54 Confianza: es lo que necesitan dos máquinas para conectarse. Identificación: es el proceso de identificación entre ellas. La confianza y la Identificación generalmente tienen una relación proporcionalmente inversa. De hecho cuando hay un alto nivel de confianza entre dos host, no se requiere la cadena de conexión para comenzar la comunicación. Métodos de Identificación En internet constantemente nos estamos identificando sobre todo en los siguientes servicios: − la conexión a internet − sitios FTP − servicios Telnet y cuentas de internet Hay varios métodos de identificación dependiendo de la confianza que haya en las relaciones de comunicación: RHOSTS: el sistema RHOSTS puede ser usado para establecer una relación de confianza entre máquinas. El fichero /etc/hosts.equiv y rhosts proveen los datos para una identificación remota para rlogin(1), rsh(1), rcp(1), por ejemplo una muestra del fichero .rhosts podría ser: node1.sams.hacker.net hickory node2.sams.hacker.net dickory node3.sams.hacker.net doc node4.sams.hacker.net mouse Este fichero especifica los nombres de las cuatro máquinas que son confiables. Esto hace que el acceso a la máquina local ofrezca sus servicios sin usar una password de identificación. Ahora se han establecido los siguientes puntos: − confianza e identificación que tiene una relación inversa − una identificación inicial esta basada en una dirección fuente en relaciones de confianza − la identificación mediante una dirección fuente IP es irrealizable porque las direcciones Ip pueden ser falsificadas • una relación de confianza de cualquier tipo puede tener un ataque spoofing esperándole. MECANISMOS DE UN ATAQUE SPOOFING La identificación de una dirección fuente comprobando la dirección IP no es suficiente para establecer una 55 conexión, sino que se requiere de un completo dialogo entre máquinas. Es más fácil entender el proceso siguiendo estos pasos: − IP es responsable del transporte, pero no se responsabiliza de que el paquete llegue perfectamente a su destino. El primer paso para establecer una conexión es iniciarla de modo que tengamos la garantía de que los paquetes llegarán intactos al host destino. − Cuando uno de los paquetes llega TCP lo recoge, lo chequea y lo verifica. El ataque Stoofing está caracterizado por dos elementos: Primero, se pueden falsificar la dirección fuente y segundo se debe mantener un diálogo con la tarjeta de red. El segundo problema tiene porque: la secuencia de diálogo no es arbitraria. La tarjeta inicia el diálogo con una secuencia de números y el atacante debe contestar con la respuesta correcta. Esto puede sonar confuso, vamos a explicar con más claridad: − El cracker sabe que los host 207.171.0.111 y 199.171.190.9 están teniendo una comunicación correcta. − El cracker intenta penetrar en la 207.171.0.111 − Para hacerlo, debe suplantar a la 199.171.190.9 − Para suplantar a 199.171.190.9, hay que falsificar su dirección. El problema es que todas las respuestas desde 207.171.0.111 están actualmente corriendo hacia 199.171.190.9 (y no hacia la máquina del crackers). Por eso el cracker no puede ver el trafico del paquete. El está conduciendo ciego. LOS INGREDIENTES DE UN ATAQUE SPOOFING CON ÉXITO Hay ciertos pasos que se deben dar: 1.− El cracker debe identificar su tarjeta. 2.− Debe anestesiar el hosts e intentar la suplantación. 3.− Debe falsificar la dirección del host que quiere suplantar. 4.− Debe conectar la tarjeta y enmascararse como el host que ha anestesiado. 5.− Debe conseguir la secuencia correcta de números para responderla por la tarjeta. Obtener la secuencia de números Los primeros 4 pasos son fáciles, la dificultad viene en el quinto paso, donde hay que conseguir la secuencia de números correcta, para ello hay que seguir unos pasos: 1.− Intentar conectar con la tarjeta respondiendo a la conexión. 2.− La tarjeta responde con una secuencia de números. 3.− El cracker registra esa secuencia de números y corta la conexión. 56 El cracker examina la secuencia registrada y es en ese análisis donde identificará el patrón de la conexión. Esa secuencia se irá incrementando uniformemente de acuerdo a un algoritmo designado especialmente para ello. Su trabajo es determinar que algoritmo o determinar cual es el número con el que se incrementa. Una vez el conoce esto, puede generar la secuencia correcta requerida para la identificación. Antes el ataque spoofing era sólo una teoría, pero ahora está demostrado que son una amenaza real a los sistemas. Hay de hecho algunas utilidades que están disponibles: − ipspoof autor: desconocido lenguaje: C plataforma: UNIX plataforma de la tarjeta: UNIX requerimientos: compilador de C, ficheros de cabecera de IP, UNIX URL: http://www.rootshell.com/archive_j457nxiqi3gq59dv/199707/ipspoof.c − rbone autor: desconocido lenguaje: C plataforma: Linux plataforma de la tarjeta: UNIX requerimientos: compilador de C, ficheros de cabecera de IP, linux URL: − synk4.c (Syn Flooder by Zakath) autor: Zakath con Ultima lenguaje: C plataforma: Linux plataforma de la tarjeta: UNIX requerimientos: compilador de C, ficheros cabecera de IP, Linux URL: 57 OCULTANDO NUESTRA IDENTIDAD OCULTANDO NUESTRA IDENTIDAD Ya hemos visto anteriormente como usar las herramientas para proteger nuestros datos. También podemos usar para proteger nuestros datos los siguientes métodos: identificadores digitales, paquetes de filtros, encriptación fuerte, utilidades de virus, redes privadas virtuales, aparatos de red y una docena de otras herramientas. Cada una de ellas nos ofrecen algún tipo de garantía sobre seguridad en cualquier tipo de red e Internet. Ahora la pregunta que nos hacemos es ¿qué pasos podemos dar para asegurar nuestra privacidad mientras navegamos por la red?. A continuación intentaremos de ver con más detalle la explicación a esta pregunta. GRADOS DE EXPOSICIÓN. A menos que tomemos ciertas medias para prevenir nuestra identificación, nuestra identidad puede estar expuesta a cualquiera, si nos encontramos navegando en Internet. Esta exposición se puede manifestar de diferentes formas y grados, dependiendo de diferentes factores, incluyendo: · Nuestra conexión de red. · Nuestro navegador o browser. · Nuestro tráfico público. · Que tipo de conexiones y aplicaciones mantenemos. Los puntos anteriores nos exponen a dos tipos de inteligencias distintas: − Inteligencia Humana. − La inteligencia de la red 58 La Inteligencia Humana. Normalmente los humanos tendremos la capacidad de espiar, a través de lo cual podrán descubrir nuestra identidad, seguir nuestros movimientos o incluso cogernos cometiendo algún tipo de delito. Por algo la inteligencia humana es sin duda la más antigua. La inteligencia humana la podemos dividir en dos tipos: · La colectiva. Será la que cuyo objetivo es la de reunir información sin establecer necesariamente contacto directo. · La penetrativa. Cuyo principal objetivo es establecer contacto directo, ganar nuestra confianza y obtener información de forma continua. Internet es una magnífica herramienta para la inteligencia colectiva. Por ejemplo, consideramos nuestro correo de la Usenet, los cuales están disponibles al público, personas conocidas y desconocidas. Otros podrán seguir la pista de nuestros mensajes y aprender bastante sobre la actividad que realizamos, haciendo esto. Simplemente usando motores de búsqueda podrán conducir la inteligencia colectiva a su antojo. Hace 25 años, todo esto era diferente. En los años 70 existía en América un gran desorden político, de lo cual se aprovecharon algunas organizaciones más radicales y partidarios de la violencia contra el gobierno. Las agencias de inteligencia de los Estados Unidos respondieron conduciendo operaciones colectivas y penetraciones a gran escala. Estas operaciones pueden llevarse a cabo por seres humanos. Por ejemplo, para identificar a los componentes de la Sociedad Democrática de Estudiantes, el FBI mandó agentes a pie (Empleados del FBI o informadores civiles). Estos agentes se mezclaron entre ellos para recoger información sobre huellas digitales, direcciones etc Internet permite a las agencias de inteligencia controlar los sentimientos públicos desde sus oficinas, además pueden hacerlo sin violar ninguna ley. Al igual que no se requiere ningún tipo de garantía antes de usar Internet a la hora de recopilar listas de gentes se encuentran involucrada en algún tipo de actividad ilegal. Así si tenemos algún tipo de ideología política radical, será mejor que nos la guardemos para nosotros (o bien tener una buena base en criptografía), porque los motores de búsqueda pueden ser usados para aislar todo el tráfico de la Usenet entre clases particulares de individuos (miembros de la milicia, por ejemplo). Podemos concluir con que la Usenet no es un foro para ejercer nuestro derecho a la libertad de expresión, en cambio, es un lugar donde estamos expuesto e indefensos ante el mundo. Aunque la Usenet es solo el comienzo, seis de cada diez Web que visitamos siguen nuestros movimientos. LOS NAVEGADORES WEB Y LA INVASIÓN DE LA PRIVACIDAD Antes de que existieran los navegadores Web nosotros solo podíamos acceder a Internet por medio de un interface de línea de comandos, el cual era un hueso e intimidaba a mucha gente. El hallazgo de los navegadores han transformado Internet en un paraíso en el que cualquiera con un ratón puede navegar fácilmente por la Word Wide Web. La inclusión de los navegadores fue de gran importancia y de la noche a la mañana millones de usuarios se conectaron a la red. La agencias de marketing tomaron buena nota y lanzaron la siguiente pregunta al mundo ¿Cómo ganar un dólar usando Internet?. Las compañía dieron varias respuestas, entre las cuales se encuentra el comercio electrónico. (En el cual los consumidores compran productos y servicios a través de la Web desde su casa). 59 Existe un fuerte impulso para desarrollar métodos para espiar a los usuarios, no solo las compras, sino también el consumo que tienen. La mayoría de los métodos surgieron en 1.993, y hoy día debe haber ya más de una docena. A continuación veremos como nuestra identidad puede ser descubierta bit a bit por cualquier persona. ARQUITECTURA Y PRIVACIDAD DE INTERNET Algo que no debemos olvidar es que la arquitectura de Internet no está diseñada para mantener la privacidad de la información personal, de hecho, hay varias utilidades en Internet diseñadas específicamente para seguir e identificar a los usuarios. A continuación veremos como se almacena la información de los usuarios en los distintos servidores. Como se almacena la información de los usuarios en el servidor. Hay dos formas universales de identificarse en Internet: Nuestra dirección de e−mail y nuestra dirección IP. Ambas revelan nuestra identidad, por lo cual ya existe algo por donde los espías pueden empezar. En particular, nuestra dirección de e−mail, puede revelar nuestro nombre real, porque si nuestro proveedor del servicio de Internet usa Windows NT para albergar algunas páginas Web, casi todos los ISP's usan UNIX como plataforma base. Esto es porque UNIX (en unión a un protocolo llamado RADIUS) hacen que el manejo de la cuentas de "dial−up" sea muy fácil, (además proporciona un mejor soporte de correo que Windows NT, incluso si te conectas con cientos o miles de cuentas). En el sistema UNIX, se almacena la información del usuario en un fichero llamado passwd, que esta situado en el directorio /etc/. Este fichero contiene los login, los nombres, y ocasionalmente incluso el password del usuario( Esto de forma encriptada). Esta información es vital y UNIX la utiliza para muchas tares, como por ejemplo, esta información es doblemente chequeada cada vez que nos conectas, o recibimos un e−mail y cada vez que nos desconectamos. Desafortunadamente, esta información está también disponible para el público en general a través de una utilidad que se llama finger. Finger. Es un servicio común de los sistema UNIX y cuyo propósito es proporcionar información del usuario a terminales remotos, y como todos los servicios que nos ofrecen los protocolos TCP/IP, finger está basado también en el modelo Cliente − Servidor. Cuando un Sistema UNIX se arranca por primera vez, se cargan cerca de una docena de servicios remotos (como el servidor Web, servidor FTP, telnet). El servidor finger se llama fingerd, más conocido como "finger Daemon". Este recoge las peticiones locales o remotas sobre información del usuario. Cuando se realiza una petición de este tipo, la información que ofrecerá será la nuestra. En UNIX, podemos realizar un finger desde la línea de comandos. Los resultados de estos se imprimen en el terminal local. Una petición podría ser: $finger −l jdoe@john−doe.com Este comando podríamos traducirlo como: "Busca a jdoe y dime todo lo que sepas sobre él". Cuando el 60 usuario solicita una respuesta el finger daemon de john−doe es contactado, busca a través del sistema y al final devuelve esta información: Login name: jdoe in real life: John Doe Directory: / shell: /sbin/sh Last Login Tue May 18 19:53 on pts/22 New mail received Mon May 18 04:05:58 1997; Unread since Mon May 18 03:20:43 1997 No Plam. Hace unos años esta información solo estaba disponible para los usuarios de UNIX y VAX/VMS. Hoy día existen clientes finger para todas las plataformas Algunos administradores de sistemas permiten un acceso no restringido del finger, al mundo exterior. Esto permite a usuarios remotos no solo identificarnos, sino también a todos en el sistema. Para hacer esto, los usuarios remotos ejecutan el comando: Finger @my_terget_host.com El símbolo @ trabaja precisamente como un * lo hace en una expresión normal. El comando quiere decir: "Háblame sobre los usuarios que están conectados." En muchos casos, empezando con finger y acabando con WorldPages, podemos encontrar la dirección de la casa de alguien en menos de 30 segundo. Así podemos concluir que finger puede llevar a un completo extraño hasta la puerta de nuestra casa. SOLUCIONES AL PROBLEMA DEL FINGER. Hay soluciones para este problema, sin embargo, antes de preocuparnos de esto, debemos mirar si somos un blanco viable. Esto lo haremos de dos formas distintas − Realizar una consulta finger con nosotros mismos. − Chequear el fichero /etc/passwd en nuestro servidor ISP. Para chequear desde la línea de comandos del shell, utilizaremos el siguiente comando: Grep Nuestro_nombre /etc/passwd Ypcat passwd || cat /etc/passwd | grep Nuestro_nombre Este comando impimirá la información del fichero /etc/passwd del servidor, obteniendo una salida de la siguiente forma: Jdoe:x:65536:1:John Doe:/Export/home/jdoe:/sbin/sh 61 Si somos un blanco viable para el finger, hay varias cosas que podemos hacer par minimizar el riesgo: − Utilizar la utilidad chfn para alterar la información disponible para los de fuera. − Si chfn no está disponible, podemos pedir al administrador del sistema que cambie nuestra información. − Cancelar nuestra cuenta actual y comenzar una nueva. Por otro lado, sino nos preocupa lo que proporciona el finger, pero simplemente queremos conocer quien lo esta haciendo, usaremos MasterPlan. MasterPaln Realiza la labor de identificar quien nos está haciendo un finger. Cada vez que se detecta una consulta finger, MasterPlan captura el nombre del host y el ID del usuario que está ejecutando el finger. Esta información se almacena en el fichero llamado finger_log. MasterPlan podrá determinar con que frecuencia nos hacen una consulta finger, por lo que podemos detectar si alguien intentar hacernos un "Clock". ("Clocking" es cuando un usuario A intenta percibir los hábitos de un usuario B, por medio de varias utilidades de red, incluyendo el comando finger y los comandos r). En el "Clocking", el "Snooping party" usa un Script que de forma automatizada ejecutara el finguer en sus blancos cada n minutos o horas. Las razones por las que se realizan estas investigaciones son diversas, una es la construcción de un archivo sobre el blanco, donde se recogerá información como: ¿Cuando esta conectado el usuario?, ¿Desde donde se conecta normalmente? Un ejemplo: Un cracker quiere interceptar un e−mail de una periodista de renombre, que cubre las historias de los hackers . Esta periodista tiene varias cuentas y se conecta a una desde otra, es decir, encadena sus conexiones. De esta manera ella intenta mantener su dirección de e−mail en secreto. Ejecutando el "clock" sobre la periodista, el cracker es capaz de identificar su dirección de e−mail privada y no la publica. Es también capaz de comprometer su red y por último capturar su correo. MasterPlan puede identificar los patrones del "clocking" al menos con respecto a las consultas finger. La utilidad es pequeña y fácil de configurar. Se incluye el fuente C y su distribución es incluida en muchos sistemas UNIX. Podemos encontrar una distribución estándar de MasterPlan en: ftp://ftp.netscape.org/pub/Software/Unix/masterplan.tar.Z La versión para Linux la encontraremos en: ftp://ftp.netscape.org/pub/Software/Unix/masterplan−linux.tar.Z Una vez que nos hemos protegido contra las consultas finger, pensaremos que nuestros datos están a salvo, pero no es así, finger es sólo el comienzo, existen un adocena de formas de obtengan nuestra información a través de nuestra dirección de e−mail. Para finalizar, podemos pensar que MasterPlan previene que otros nos apliquen un finger, pero no es así, simplemente identifica que grupos y con que frecuencia nos lo aplican. Aun cuando nuestro proveedor prohibe las consultas finger, nuestro nombre es todavía fácil de obtener. Cuando los curioso intentan aplicarnos un finger y descubren que el este no funciona se vuelve contra nuestro servidor de correo. En muchas ocasiones los servidores aceptan conexiones Telnet por el puerto 25 (Puerto por el cual se envía el correo). Este tipo de conexiones son de la siguiente forma: 62 220 shell. Sendmail SMI−8.6/SMI−SVR4 at Wed, 19 Feb 1997 07:17:18 −0800 Si un extraño puede alcanzar el prompt, podrá obtener nuestro nombre utilizando el comando expn username. El comando expn expande los nombres de usuario en la dirección de e−mail y los nombres reales. La respuesta será normalmente de este tipo: Username < username@targer_of_probe.com >Real_name El primer campo nos proporciona nuestro nombre de usuario o el ID de usuario, seguido de nuestra dirección de e−mail, y finalmente nuestro nombre real. El administrador del sistema puede deshabilitar la función expn. En cualquier caso, si la función expn está operativa, los curiosos podrán obtener nuestro nombre si este está disponible. De nuev, la mejor poliza de seguro es borrar nuestro nombre del fichero passwd. De todas formas, si esta función está desactivada, el grupo de curiosos podrá verificar la existencia de nuestra cuenta con la función vrfy. LA SEGURIDAD DEL NAVEGADOR. Con el aumento del comercio electrónico se están desarrollando nuevos métodos para seguir nuestro movimientos. Existe dos nuevos métodos para nuestro navegador: − Las direcciones IP y las cache Snooping. − Cookies. Por si mismo estas técnicas parecen bastante inofensivas. Sin embargo, si queremos permanecer anónimo deberemos seguir los siguientes pasos: Dirección IP y Cache Snooping. Cada vez que visitamos un servidor Web dejamos allí una pista, la cual se graba de diferentes formas en los distintos servidores. Una típica conexión de entrada en UNIX es de la siguiente forma: 153.35.38.245 [01/May/1998:18:12:10−0700] "GET / HTTP/1.1" 401.362 La primera entrada es la dirección IP, todos los paquetes de servidores Web son capaces de grabar las direcciones IP de los visitantes, sin embargo, muchos servidores Web pueden grabar otra información, incluyendo nuestro nombre de host e incluso nuestro nombre de usuario. Para ver que puede decir tu servidor Web sobre nosotros podemos visitar la página: http://www.ixd.com/cgi−bin/cgi−test.cgi El test−cgi se utiliza básicamente para capturar los distintos entornos, ambos en el servidor y en el lado del cliente. (Cuando esto ocurre, test−cgi puede ser un tremendo agujero en la seguridad y muchos ISPs lo borran de su servidor). Usando estos registro y Scripts el Webmaster puede saber donde estas, cual es tu dirección de red 63 Cookies. Los Cookies se utilizan para almacenar la información sobre nosotros y el navegador de páginas web. La gente de Netscape lo explican de esta forma: Es un simple mecanismo que proporciona una poderosa herramienta capaz de activar un host en entornos Web. Las aplicaciones de compras pueden almacenar información sobre los artículos seleccionados, para los derechos de servicio se puede devolver la información del registro y liberar así al cliente de tener que el ID de usuario en la siguiente conexión. Son lugares donde se podrán almacenar las preferencias del cliente y así tener tenerla cada vez que se este conectado. El concepto de cookie es como tener un sello en nuestras manos, cuando entras en alguna lugar, podemos vagar por el, hacer lo que queramos. Mientras el sello esta en nuestra mano no tendremos que volver a pagar ni tener acceso restrigido. Similarmente los cookies permiten al servidor Web recordarnos nuestro password, y diversa información. De esta forma cuando volvemos, esta información se recobra automáticamente. El problema es de donde se recobra esta información. El proceso es el siguiente: Cuando visitamos una página Web el servidor escribe un cookie en nuestro disco duro. (Es un fichero especial). Los usuarios de Windows podemos encontrar este fichero en diversos lugares, dependiendo de nuestro navegador y de la versión del Windows. Los cookies en la versiones más viejas están en un fichero llamado cookies.txt, en la nuevas se almacenan en C:\windows\cookies. Si observamos el contenido de un fichero cookie podemos ver que aparecen nuestra dirección IP. Los partidarios de los cookies insisten en que son inofensivos, que no pueden ayudar a identificar al usuario, y que ademñas son benignos. Esto no es cierto, como explican D. Kritol y L. Montulli: Un servidor original puede crear una cabecera Set−Cookie para seguir el camino de un usuario a través del servidor. Los usuarios podrían protestar por este comportamiento como una acumulación intrusita de información, incluso si nuestras identidades no son evidentes. Hoy en día los cookies se utilizan rutinariamente para la autentificación del usuario. Esto se distorsiona y se reconoce inmediatamente con un problema como se expresa en RFC−2109: Los agentes de usuario deberían permitir al usuario controlar la destrucción de los cookies. El cookie usado poco debe funcionar como un "fichero preferente" por las aplicaciones de red, y el usuario deberá mantenerlo incluso si es el último cookie usado. Una posible implementación sería un interface que permitiría un almacenamiento permanente del cookie a través de un Checkbox. A peso de todo esto los navegadores Web principales aún navegan con la opción Accept Cookie activada. Peor todavía, muchos navegadores tienen una opción que le avisa antes de aceptar un cookie, la cual está deshabilitada por defecto. El Netscape, por ejemplo, navega de esta forma. Si usamos Netscape Comunicartor, deberemos ir al menu Edit y elegir Preferences, una vez abierta haremos clic en Advanced, donde deshabilitaremos dicha opción. Microsoft Explorer navega básicamente en el mismo estado. Ahora la pregunta que nos planteamos es ¿Existe alguna solución a este problema?. Pues si, hay 2 muy buenas. Una resuelve el problema de los cookies y la otra resuelve todos los problemas relacionados con el snoop de las direcciones IP. 64 Combatiendo los Cookies. Los cookies pueden ser fácilmente detectados y destruidos usando un "Cookie Cutter". Estos son los programas que permiten nuestro control sobre ellos. Algunos de ellos son: − Cookie Pal Windows http://www.kburra.com/cp1setup.exe − CookieCutterPC Windows http://ayecor.com/software/cc32/ccpc32.zip − Cookie Monster MacOS http://www.geocities.com/Paris/1778/CookieMoster151.sit Los usuarios de windows y MacOS, puede crear ficheros o directorios para cookies solo de lectura. Esto les previene de que ningún cookie pueda escribir en el disco. Los usuarios de UNIX deberían tomar el fichero cookie.txt, y colocarle un enlace simbólico que apunte a to/dev/null. Algunas direcciones de interes son: URL: http://www.cookiecentrol.com/n_cookie_faq.htm URL: http://www.usual.com/article6.htm URL: http://www.junkbusters.com/ht/en/cookies.html Otro punto de interés que los cookies y los script test−cgi no son la única forma de que los Webmaster graben información en nuestra máquinas. Existen otras técnicas menos complicadas. Algunos Scripts escritos en JavaScript y Perl pueden obtener nuestra dirección IP. Este tipo de código también pueden obtener el tipo de navegador, el sistema operativo Con el javascript se conseguirán browser mejores y será usado en miles de sitios a través e Internet. Un script de Java muy popular es el "Bookém, Dan−o". Este script (escrito en Perl) conseguirá el tiempo de acceso a la página, el tipo de browser, su versión y la dirección IP. SOLUCIONES PARA EL AISLAMIENTO DE TECNOLOGÍAS LUCENT Cookie culters son excelentes modos para pactar/negociar con la máquina destino (aunque de ese modo se disminuyen los cookies en tu browser). De cualquier manera, si tu estás auténticamente paranoico (como yo) necesitas Lucent Personalized Web Assistant. Hast la fecha es la única solución completa que se ha encontrado. El LPWA no sólo resuelve el problema de cookies, sino que también resuelve el problema de la dirección IP. Para combatir el problema de la privacidad. Lucent creó el LPWA. LPWA se apodera de todo tu tráfico de Internet, aunque en Lpwa.com lo único que se graba es la dirección IP. Esto proporciona una privacidad completa: los servidores de la web no pueden coger tu dirección IP, ni pueden activar cookies en tu disco. USANDO LPWA Puedes usar LPWA con algún "Browser" que mantenga proxy gateways. Para hacerlo debes seguir 3 pasos 65 simples. • configurar tu browser para usar lpwa.com como proxy. • Conectar con lpwa.com • Entrar en la red TU DIRECCIÓN DE EMAIL Y USENET Tu dirección de email es como cualquier otra cadena de caracteres. Si aparece en una página Web, se puede alcanzar por métodos de búsqueda. Una vez que un espía tiene tu dirección email esta se llena de anuncios, y puede ser un primer paso para entrar en tu sistema. DejaNews El buscador DejaNews es una herramienta especializada exclusivamente en buscar en Usenet. El DejaNews tiene archivos de información desde Marzo de 1995, y la dirección indica que ellos están constantemente intentando llenar huecos y sacar los artículos más viejos de la base de datos. Ellos pretenden trabajar para proporcionar todos los artículos enviados desde 1979. Asume que aunque tu nombre real no aparece en el correo Usenet, aparece en el fichero /etc/passwd del servidor UNIX que usas como gateway a internet. Aquí están los pasos que debes tomar: 1.− Los espías ven tu correo Usenet, tu dirección de email es visible pero tu nombre no. 2.− Los espías intentarán un finger para ver tu dirección, pero si eso ocurre, solicita demandas de prohibición de la herramienta finger. 3.− Los espías hacen un telnet al puerto 25 de tu servidor,, ejecutan el comando expn y obtienen tu nombre real. Una vez obtenida esta información, los investigadores intentarán encontrar el estado donde vives, Para esto usan el comando Whois. El servicio Whois El servicio WHOIS (rs.internic.net) contiene el dominio de los registros grabados de toda América no militares situados en Internet. Los registros de la base de datos contienen información detallada de cada sitio de Internet, el dominio incluye nombre, dirección de servidor, contactos técnicos, número de teléfono y dirección. Armados con toda esta información los espías proceden a teclear http://www.worldpages.com. WorlPage es una base de datos grande con nombres de casas, direcciones de email y números de teléfonos de millones de usuarios de Internet. Los investigadores usan tu nombre real como cadena de búsqueda, especificando California como tu estado. Instantáneamente confronta con puntos que proporcionan nombre, dirección y número de teléfono. Aquí puede haber algunos problemas, dependiendo de cómo de común sea tu nombre. Por ejemplo si tu nombre es John Smith, los espías tendrán que buscar más tiempo. Cuando los espías descubren 3 direcciones y cada una en una ciudad distinta de Calfornia usan el host para determinar cual es la correcta. El host listará todas las máquinas desde las cuales se ha accedido a la red y su localización. El comando host puede identificar donde están localizadas cada workstation por ciudad. Por tanto, tu puedes 66 ver una entrada como la siguiente: Chatsworth1.target−provider.com Chatsworth es una ciudad al sur de California. Desde esta entrada, podemos asumir que chatsworth1.target−provider.com es localizado dentro de la ciudad de Chatsworth. El espía examina de nuevo tu post de Usenet y así se puede determinar que servidor has usado para enviar el artículo. Los espías extraen el nombre del estado pero no la dirección IP. Para completar el procesose hace un Telnet sobre el host que consta en el post. Cuando se inica la sesión Telnet aparece el número IP y desde el DNS se envía a la salida estándar. Ahora los buscadores tienen la dirección IP de la máquina que aceptó el correo original. Habiendo obtenido esta información los buscadores vuelven a WorldPages y eligen tu nombre. En segundos aparece un mapa de tu barrio, la localización exacta de tu casa se marca en el mapa con un círculo. Los buscadores conocen exactamente donde vives. En este momento, ellos pueden conseguir más información interesante sobre ti, por ejemplo: · pueden conocer tu status, a quien votas y tus afiliaciones políticas en el URL: http://www.india.com/lycos/voter−records.htm · pueden determinar cuales son tus candidatos preferidos y cuanto has contribuido (para las elecciones federales). Esta información la obtienen del URL: http://www.tray.com/fecinfo/aip.htm · también pueden conseguir tu número de la seguridad social y el día que naciste. Esta información está en el URL: http://kadima.com/ La gente minimiza la importancia de esto. Se mantienen en la idea de que esta información es accesible por muchas vías, pero no se dan cuenta de que Internet es una única vía de acceso a toda la información. El anonimato total en Internet es posible pero no recomendable. Hay foros a favor y en contra de este. La pregunta esta en si quien usa Internet está o no en derecho de tener anonimato, porque donde para algunas cosas es bueno para otras el anonimato en la red supone un peligro para los usuarios de la misma. Aquí hay unas buenas fuentes sobre la privacidad en Internet: Privacy & Anonymity on Internet FAQ Autor: L. Detweiler Contenido: muchas fuentes de privacidad y anonimato en internet. URL: http://www.prz.tu−berlin.de/derek/internet/sources/privacy.faq.02.html Anonymous Remailer FAQ Autor: Andre Bacard Contenido: Descripción de algunas técnicas de email anónimos, como trabajan y donde se pueden encontrar. URL: http://www.well.com/user/abacard/remail.html The Anonymous Remailer List Autor: Ralh Levien 67 Contenido: Localización de remailer en internet. URL: http://www.cs.berkeley.edu/raph/remailer−list.html 68