Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
i FACULTAD DE INGENIERÍA UNAM IMPLANTANDO SEGURIDAD EN LA RED DE LA SSA DE LA FI T E S I S QUE PARA OBTENER EL TITULO DE INGENIERO EN COMPUTACIÓN P R E S E N T A N: MUNGUÍA REYES JUAN CARLOS RUIZ SÁNCHEZ MARIBEL D I R E C T O R: ING. MANZO GONZÁLEZ FILIBERTO México D.F. SEPTIEMBRE 2006 UNAM – Dirección General de Bibliotecas Tesis Digitales Restricciones de uso DERECHOS RESERVADOS © PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL Todo el material contenido en esta tesis esta protegido por la Ley Federal del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). El uso de imágenes, fragmentos de videos, y demás material que sea objeto de protección de los derechos de autor, será exclusivamente para fines educativos e informativos y deberá citar la fuente donde la obtuvo mencionando el autor o autores. Cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por el respectivo titular de los Derechos de Autor. ii iii AGRADECIMIENTOS Maribel Ruiz Sánchez Al parecer esta es la parte más complicada de la tesis, no porque no haya a quién agradecerle sino porque siempre me van a venir a la mente recuerdos de momentos que pasé durante mi carrera tanto adentro como fuera del aula siendo todos ellos verdaderamente importantes para mí. Es ahora cuando puedo expresar de manera escrita todo lo que estoy agradecida con la Universidad Nacional Autónoma de México, por haberme abierto las puertas para poder seguir aprendiendo, para conocer, convivir, idear, investigar, en fin para amar la vida, ya que es una escuela que te forma para ser no solo un profesionista en la carrera que elijas sino que también te sensibiliza en la parte humana. Y ¿Qué poder decir de mi familia?, a mi papá Eduardo Ruiz quién es mi Superman, él que tantas cosas me enseñó, quién me ayudó a ver el camino correcto en aquellas decisiones difíciles; a mi mamá Gloria Sánchez por hacerme ver que la vida es del color que la quieras ver, por sensibilizarme en muchos aspectos que suelen ser triviales para muchas personas; a Dulce Ruiz mi hermana quién de vez en cuando me decía que una peinadita no estaba de más, quién me enseñó a compartir y a pedir perdón cuando una pierde su reloj o hecha a perder su ropa; a Charrín mi hermano Eduardo Ruiz con quién tantas veces me divertí de niña y ahora de adulto, con quién he reído tantas veces, ah pero no está por demás agradecerle a mi cuñada Luxandra por haberlo centrado, ya que a nosotros nos costó más tiempo hacer que entrara en razón y ella con una simple sonrisa pudo hacerlo; a mí cuñado casi hermano Mauricio Estrada, que no por estar al final sea el menos importante, ahora es momento de poder decirle que odio sus “cosquillitas” ya que está lejitos y no creo que pueda alcanzarme, por ayudarnos y apoyarnos, por saber que siempre puedes acudir a él y que no te fallará; y por último a Nabucodonosor que aunque nunca se entere de estas líneas por su analfabetismo, me enseñó que un pedazo de papel es mejor para dormir que un colchón o que un pajarito recién cazado es mejor que un pollito refrigerado. César Iván, no te puedes quejar si hasta te doy un párrafo completo de mi tesis jejeje. Te agradezco por todas aquellas risas a placer, con quién he convivido momentos de calidad, quién me enseñó a que con ningún peso en la bolsa también se la puede pasar uno de maravilla, que uno es el que le da el verdadero valor a las cosas y por enseñarme a sacar aquellas “fotos mentales” que aunque no puedan imprimirse jamás se perderán. A todas aquellas personas que se han cruzado y que espero se sigan cruzando por mi camino, porque al convivir con todos ellos me han hecho ser mas persona y que está por demás mencionarlos, esperando que por mucho tiempo nos sigamos viendo a pesar de las distancias. A Juan Carlos Munguía, que más que por ser alguien especial, por la convivencia, por las risas y enojos, le agradezco el haber realizado juntos este trabajo para culminar una etapa más de la vida. A Filiberto Manzo que más que mi sinodal, es quién nos apoyó en este proyecto para no dejarlo en el olvido por una u otra razón y quién me enseñó tantas y tantas cosas. iv Munguía Reyes Juan Carlos Gracias a mi familia que siempre me ha apoyado en todas las empresas que he decidido tomar, desde mis hermanos Angélica, Julio Cesar, Adrián y Berenice hasta mis padres Elvira Reyes Ibarra y Juan Munguía Arellano, gracias por ser la familia unida que somos y darme la oportunidad de ser quien soy, aunque se no soy todo lo que quisieran, también se que están felices de que soy todo lo que yo quiero ser, gracias por su comprensión y apoyo interminable y ante todo, gracias por todo el amor que me han dado, los amo. Gracias a la Universidad por brindarme la educación y la oportunidad de desarrollarme tanto en lo personal como el lo intelectual, estoy muy agradecido y se que no fallare en mi vida profesional ya que los principios y el conocimiento que en está casa aprendí fueron una parte sustancial de lo que ahora soy. De igual manera agradezco a mi facultad por todas las oportunidades que me brindo en el proceso de aprendizaje y educación. Agradezco a mi Asesor Filiberto Manzo, por todo el conocimiento y apoyo que recibí de él, también le agradezco por la parte humana que me brindo y en resumen, por su amistad. También quiero incluir a todos mis profesores durante la carrera, por medio de los cuales pude desarrollar una mentalidad diferente y apta para la vida profesional. Por último, agradezco a todas las personas que me rodean y también a todas esas personas que conocí en el camino, porque de todos ellos, he logrado aprender y conocer diferentes puntos de vista de la vida en general, agradezco principalmente a Aidee Méndez Herrera, Fabiola Munive, Carlos Tenorio Aguilar, Maribel Ruiz Sánchez y estoy seguro que en esté momento olvido a por lo menos una persona, les pido disculpas y espero me comprendan, a todos ustedes, les agradezco por ser parte del grupo de amistades de los que más he aprendido, por el apoyo, los consejos y los momentos que compartimos, gracias Amigos. 1 ÍNDICE INTRODUCCIÓN …………………………………………………………………… 5 DEFINICIÓN DEL PROBLEMA …………………………………………………… 5 OBJETIVO …………………………………………………………………………… 5 CAPÍTULO I…………………………………………………………………………… 7 CONCEPTOS ……………………………………………………………………7 1.1 Seguridad en equipos de cómputo ……………………………………………7 1.1.1 Problemática …………………………………………………………………..11 1.1.2 Posibles amenazas …………………………………………………………..11 1.2 Sistemas operativos (bugs y seguridad) …………………………………...14 1.2.1 Windows …………………………………………………………………..15 1.2.2 Unix …………………………………………………………………………..17 1.2.3 Linux …………………………………………………………………………..19 1.2.4 Open BSD …………………………………………………………………..21 1.3 Redes de computadoras …………………………………………………………..23 1.3.1 Historia …………………………………………………………………………..23 1.3.2 Topologías …………………………………………………………………..23 1.3.3 Modelos …………………………………………………………………………..26 1.3.4 Protocolos …………………………………………………………………..29 CAPÍTULO II …………………………………………………………………..37 ESTUDIO DE LA PROBLEMÁTICA EN LA SSA …………………………..37 2.1 Diagrama actual de la red de la SSA …………………………………………..43 2.2 Problemática en la SSA …………………………………………………………...57 2.2.1 SSA …………………………………………………………………………...58 2.2.2 USECAD (Unidad de Servicios de Cómputo Administrativos) …………..61 2.2.3 Departamento de Apoyo a la Comunidad …………………………………...66 2.2.4 Coordinación de Bibliotecas …………………………………………………...71 2.2.5 CAALFI …………………………………………………………………...72 2.2.6 DAE / OSE (Departamento de Administración Escolar) …………………...73 2.2.7 Publicaciones …………………………………………………………………...75 CAPÍTULO III …………………………………………………………………...77 ANÁLISIS Y SOLUCIÓN PROPUESTA …………………………………………...77 2 3.1 Análisis y selección de la solución …………………………………………...77 3.1.1 Firewall …………………………………………………………………………...773.1.2 Qué puede hacer un Firewall …………………………………………………...77 3.1.3 Qué no se puede hacer con un Firewall …………………………………...78 3.1.4 Selección del Sistema Operativo …………………………………………...83 3.1.5 Diagrama de la red …………………………………………………………...86 3.2 Políticas de seguridad a seguir …………………………………………………...95 CAPTÍTULO IV …………………………………………………………………...97 IMPLANTACIÓN DEL FIREWALL …………………………………………...97 4.1 Instalación del firewall …………………………………………………………..101 4.2 Configuración del firewall …………………………………………………..107 4.2.1 Creación del Bridge …………………………………………………………..107 4.2.3 Reglas de filtrado de paquetes …………………………………………..108 4.3 Instalación de herramientas de monitoreo …………………………………..112 4.3.1 Introducción a Herramientas de Monitoreo …………………………………..113 4.3.2 Algunas herramientas de monitoreo …………………………………………..120 4.4 Configuración de herramientas de monitoreo…………………………………..130 4.4.1 Nessus …………………………………………………………………………..130 4.4.2 Nmap …………………………………………………………………………..132 4.4.2 Snort …………………………………………………………………………..136 4.4.3 NTOP …………………………………………………………………………..141 4.5 Auditoria de la seguridad …………………………………………………..147 CAPITULO V ……………………………… …………………………………..151 MANTENIMIENTO …………………………………………………………..151 5.1 Instalación de parches …………………………………………………………..151 5.3 Actualizaciones …………………………………………………………………..154 5.4 Respaldo …………………………………………………………………………..154 5.5 Respaldo de las reglas …………………………………………………………..154 5.6 Bitácora de actualizaciones …………………………………………………..154 5.7 Red …………………………………………………………………………..154 5.8 Integridad de Archivos …………………………………………………………..155 CONCLUSIONES …………………………………………………………………..157 POLÍTICAS DE SEGURIDAD EN CÓMPUTO PARA ………………………….. 160 3 SEGURIDAD EN CÓMPUTO …………………………………………………..163 POLÍTICAS DE SEGURIDAD FISICA …………………………………………..165 POLÍTICAS …………………………………………………………………………..175 SANCIONES…………………………………………………………………………..176 CÓDIGO DE ÉTICA UNIVERSITARIO …………………………………………..192 GLOSARIO …………………………………………………………………………..201 BIBLIOGRAFÍA …………………………………………………………………..207 4 PREFACIO La Computadora, no está por demás decir que es la herramienta más importante en nuestros días, ya que con ella se realizan gran parte de los trabajos en la actualidad y se puede manejar gran cantidad de información simultáneamente a alta velocidad y en tiempo real, lo que le da su gran importancia. Puede ser usada para infinidad de actividades, es por ello que es un buen objetivo para ser atacado, ya que si se logra vencer su seguridad se puede obtener información que podría causar muchos daños a el o los usuarios de dicho equipo. Los estudios para dar seguridad a nuestros sistemas siempre esta avanzando, pero lamentablemente los estudios para atacar a los mismos, avanza al parejo y es prácticamente imposible dejar atrás a los atacantes, por lo que es necesario estar siempre a la vanguardia de debilidades en nuestros sistemas, ya sea seguridad informática como son las contraseñas, mensajes, etc. o también seguridad física como evitar la exposición de nuestros aparatos a descargas eléctricas, luz solar intensa, o un desastre natural, esta prevención puede ser por medio de la creación de respaldos. Sabemos perfectamente que la seguridad absoluta no existe, ya que día a día se descubren nuevas fallas en los sistemas operativos y siempre hay quien desea vulnerarlas. El objetivo en nuestro proyecto de tesis es evitarlo lo más posible para poder disfrutar de la confiabilidad en los servidores, para ello se desarrollará un proyecto de seguridad en red para la SSA (Secretaría de Servicios Académicos) por medio de un firewall que se describirá en este escrito. A continuación se da una breve mención del contenido de cada capítulo. Capítulo 1: “Conceptos”. En este capítulo hablará sobre la seguridad computacional en términos generales, los principales sistemas operativos y redes. Capítulo 2: “Estudio de la problemática en la SSA”. Este capítulo trata sobre el análisis de los conflictos que atañen a la SSA en todos sus departamentos. Capítulo 3: “Análisis y solución propuesta”. En este capítulo se analizan los sistemas operativos más adecuados para así implantar en base a las necesidades requeridas que exige la seguridad en esta Secretaría el sistema que mejor complazca estas deficiencias, se dará una propuesta de la red que mejor convenga y se sugerirán las políticas de seguridad a seguir. Capítulo 4: “Implantación del firewall”. Instalación del sistema operativo elegido como mejor opción, así como sus herramientas de seguridad apropiadas de acuerdo a las necesidades. Capítulo 5: “Mantenimiento”. Una vez terminada la instalación y con el firewall en funcionamiento, solo restará tenerlo vigente y depurado para que este no pierda su fuerza y se pueda seguir confiando en él. 5 INTRODUCCIÓN DEFINICIÓN DEL PROBLEMA El problema latente que se presenta actualmente en la S.S.A., es que no hay una protección adecuada contra virus, intrusos o un mal uso de los equipos en la red, por lo que es necesario adecuar la seguridad en esta Secretaría, ya que en ella se maneja información de suma importancia para la facultad, información que no debe ser arriesgada a ser vista o más peligroso aún manipulada o borrada sin autorización. Esta es la razón por la cual es conveniente, y podríamos decir necesaria, la implantación de un firewall, el cual sería configurado de acuerdo a las necesidades de la S.S.A. OBJETIVO El objetivo de esta propuesta es dar a la S.S.A. una mayor seguridad en cuanto al acceso no permitido a la información que en esta se maneja. A su vez administrar con mayor eficacia el uso adecuado de los equipos de cómputo y del ancho de banda de la red local (LAN). 6 7 CAPÍTULO I CONCEPTOS 1.1 Seguridad en equipos de cómputo La seguridad en equipos de cómputo, se podría definir como el conjunto de metodologías, documentos, programas y dispositivos físicos, encaminados a lograr que los recursos de cómputo disponibles en un ambiente dado, sean accedidos única y exclusivamente por quienes tienen la autorización para hacerlo. Existen técnicas desarrolladas para proteger a los equipos informáticos conectados en una red frente a daños accidentales o malintencionados. Estos daños incluyen básicamente el mal funcionamiento del hardware o la pérdida o cambio físico de los datos. Sin embargo, impedir los delitos informáticos exige también métodos más complejos, en un sistema de los denominados “tolerante a fallos” dos o más ordenadores funcionan a la vez, por lo que si una parte del sistema falla los demás asumirían el control, por otra parte, los virus informáticos son programas, generalmente destructivos, que se introducen en el ordenador (al leer un disco o acceder a una red informática) y pueden provocar pérdida de la información (programas y datos) almacenada en el disco duro. Existen programas antivirus que los reconocen y son capaces de 'inmunizar' o eliminar el virus del ordenador. Por ejemplo para evitar problemas en caso de apagón eléctrico existen las denominadas UPS (acrónimo de Unterrupted Power Supply), baterías que permiten mantener el sistema informático en funcionamiento, por lo menos el tiempo necesario para apagarlo sin pérdida de datos. Por lo que, la única forma de garantizar la integridad física de los datos, es mediante copias de seguridad. El mayor problema que tienen que resolver las técnicas de seguridad informática es el acceso no autorizado a datos. Uno de los puntos para que un sistema sea seguro, es donde el usuario antes de realizar cualquier operación, se tiene que identificar mediante una clave de acceso1. Para ser eficaces, las claves de acceso deben resultar difíciles de adivinar, éstas suelen contener una mezcla de caracteres y símbolos que no corresponden a una palabra real. Hoy en día, es posible contar con claves de acceso se ven reforzadas por mecanismos biomédicos basados encaracterísticas personales únicas como las huellas dactilares, los capilares de la retina, las secreciones de la piel, el ácido desoxirribonucleico (ADN), las variaciones de la voz o los ritmos de tecleado, pero la mayoría de ellas también involucra 1 Secuencias confidenciales de caracteres que permiten que los usuarios autorizados que puedan acceder a un ordenador. 8 altos costos de implementación, por lo que no en muchos casos no es viable dicha solución. Los hackers son usuarios muy avanzados que por su elevado nivel de conocimientos técnicos son capaces de superar determinadas medidas de protección. Su motivación abarca desde el espionaje industrial hasta el mero desafío personal. Internet, con sus grandes facilidades de conectividad, permite a un usuario experto intentar el acceso remoto a cualquier máquina conectada, de forma anónima. Las redes corporativas u ordenadores con datos confidenciales no suelen estar conectadas a Internet, en el caso de que sea imprescindible, en éstas conexiones se utilizan los llamados cortafuegos o firewalls, un ordenador situado entre las computadoras de una red corporativa e Internet. El firewall prevé a los usuarios no autorizados acceder a los ordenadores de una red, proporcionan además, conexiones seguras entre las computadoras conectadas en red y los sistemas externos como instalaciones de almacenamiento de datos o de impresión. Estos ordenadores de seguridad emplean el cifrado en el proceso de diálogo inicial, el comienzo del intercambio electrónico, lo que evita una conexión entre dos ordenadores a no ser que cada uno de ellos reciba confirmación de la identidad del otro. Una técnica para proteger la confidencialidad es el cifrado. La información puede cifrarse y descifrarse empleando ecuaciones matemáticas y un código secreto denominado clave. Generalmente se emplean dos claves, una para codificar la información y otra para decodificarla. La clave que codifica la información, llamada clave privada, sólo es conocida por el emisor, la clave que decodifica los datos, llamada clave pública, puede ser conocida por varios receptores. Ambas claves suelen modificarse periódicamente, lo que complica todavía más el acceso no autorizado y hace muy difícil decodificar o falsificar la información cifrada. Estas técnicas son imprescindibles si se pretende transmitir información confidencial a través de un medio no seguro como puede ser Internet. Con todo esto, la seguridad informática puede dividirse en: • Seguridad física Es todo aquello que nos lleva a proteger el hardware de nuestro sistema o acceso físico a él, ya que muchas de las veces se nos olvida mantener cierta seguridad a éste nivel, siendo ésta la forma más sencilla de obtener información o de perderla. • Referente al equipo informático (Hardware) Ésta, depende directamente del lugar en el que se encuentre el sistema. • Instalación eléctrica, con el cual el equipo no pueda sufrir daños frente a percances naturales como descargas eléctricas u ocasionados, por medios de no breaks o reguladores en su defecto, así como de la instalación eléctrica con buenas medidas de seguridad. • Ubicación del equipo • Desastres naturales (huracanes, terremotos, etc.), que ocasionen la pérdida del equipo. 9 • Vandalismo por parte del usuario o de alguna persona ajena que destruya el mobiliario o algún dispositivo. • Seguridad de red La seguridad de red podemos atacarla de diferentes maneras, políticamente, por capacitación a los usuarios, por software y hasta hardware que se tenga instalado en la red y equipos, pero por obvias razones no se puede confiar plenamente en alguna de ellas específicamente, pero en conjunto refuerzan la seguridad y hará un trabajo más difícil al querer introducirse los crackers2. Esto nos lleva a tener diferentes tipos de seguridad en red, como se muestran a continuación: Least Privilege (Menor privilegio) es dar un privilegio bajo a aquel usuario que no lo requiere. Generalmente los sistemas operativos dan servicios que el usuario tal vez no utilice, por ello es que debe tenerse un análisis previo al brindar privilegios de acceso al sistema. Defense in Depth (Defensa a fondo) es una estrategia práctica hoy en día para conseguir asegurar información en el ámbito de redes computacionales. Es una estrategia práctica porque está basado en una aplicación inteligente de tecnología existente actual. Ésta estrategia recomienda un balance entre la capacidad de protección, costo, rendimiento y consideraciones operacionales. Choke Point (Punto de ahogo), en el tráfico de la red podemos defendernos contra los ataques, supervisar y responder cualquier incidente. Una alternativa más es tener un punto de ahogo en la red pero sin dejar de dar la atención a todas las técnicas de seguridad, la teoría de tener un punto de ahogo o estrangulación es que podamos defendernos adecuadamente, sin distracción de software, es decir, instalar solo aquellas cosas que nos conciernen y que en realidad vamos a utilizar y no instalar distracciones que nos hagan perder nuestro objetivo. Weakest Link (Eslabón más débil) es un camino rápido y fácil para establecer debilidades en los sistemas de nuestros clientes, y así ofrecer posible soporte, ya que éste cliente será un blanco muy apetitoso si es que alguien lograra introducirse. Fail-safe Stance (Postura de falla segura), es otro principio fundamental de seguridad, es hacer que cuando exista un atacante, éste inmediatamente quede fuera de nuestro sistema, en vez de dejarlo adentro, es decir, que quede de nueva cuanta en modo seguro. La mayoría de las aplicaciones cuando caen dan ésta seguridad, como por ejemplo los seguros eléctricos de las puertas, en donde se abren si se va la luz, la tensión que aplican los elevadores en los cables cuando ésta también se va, entre otras. 2 Persona que se introduce a nuestro sistema de manera maliciosa para beneficio propio o por simple diversión. 10 Security Through Obscurity (Seguridad a través de oscuridad), consiste en no mostrar nuestras vulnerabilidades para que así los atacantes no sepan de ellas. Esto puede ser muy inseguro ya que basándose sólo en el desconocimiento de nuestro sistema nos estamos manteniendo seguros, pero estando siempre en la incertidumbre de que en cualquier momento podremos ser atacados. Existen dos estancias fundamentales que se pueden tomar con respecto a decisiones de seguridad y políticas: • Denegar todo por defecto, especificando solo lo que admitimos y prohibiendo todo lo demás. • Permitir todo por defecto, especificar solo lo prohibitivo y aceptar todo lo demás. • Seguridad informática Se puede definir la seguridad informática como aquella en la que se encuentran protegidos nuestros datos y recursos. Existen muchas formas de violar esta seguridad, pero también existen muchas formas de protegerlas. Ésta la podemos estudiar desde dos puntos de vista la estructural y la funcional. Desde el punto de vista funcional se puede decir que es aquello concerniente a la seguridad en que la información de los usuarios debe estar protegida, sea o no importante para nosotros o para el administrador, esto se puede controlar a partir de los siguientes puntos. 1. Privacidad, referente a como su nombre lo menciona, tener nuestros archivos o información de tal manera en que no puedan acceder a ellos sin un consentimiento previo. 2. Disponibilidad, hace referencia a aquella información en que debe estar disponible al usuario en todo momento o en los casos en los que éste desee consultarla. 3. Integridad, se refiere a la información en la cual no debe cambiar su contenido hasta que ésta es modificada por el usuario propietario, es decir, que se mantenga íntegra sin sufrir cambios por intrusiones. Desde el punto de vista estructural, tenemos: 1. Prevenciónde aquellos ataques posibles que puedan hacer a nuestra red. Siendo éstas instalaciones de parches de actualización del sistema, instalación de herramientas para denegar la entrada a personas o archivos no deseados, paquetes de detección de espionaje para detener cualquier sniffeo3. 2. El monitoreo es muy importante, ya que podremos conocer por medio de éste las acciones que se están realizando, por un lado a los servidores en donde se debe revisar diariamente las bitácoras que hay en él y ver las vulnerabilidades que se 3 Programa que monitorea y analiza el tráfico de una red para detectar cuellos de botella. Su objetivo es mantener la eficacia del tráfico de datos. 11 tienen y por otro lado el monitoreo de la red para observar que no haya actividades raras. 3. Reacción, debemos de tener presente cuando exista alguna actividad extraña, ya que la mayoría de las veces no se cuenta con el tiempo deseado como para ver la forma en la que podemos actuar. 1.1.1 Problemática Los problemas de seguridad han ido creciendo en los últimos años de forma alarmante, afectando también a las universidades tanto públicas como privadas del país. • 90% de las empresas detectaron problemas de seguridad en sus sistemas de cómputo. • 80% de las empresas reportó pérdidas monetarias ocasionadas por dichos problemas de seguridad. • En el estudio del 2003, de un total de 503 empresas 223 cuantificaron dichos daños de forma monetaria, reportando una cantidad de $455,848,000 USD en pérdidas. • Más del 70% de las empresas encuestadas reportó que el punto principal de los problemas de seguridad proviene de Internet. • 78 % de las empresas detectaron abuso de privilegios a través del Internet de sus empleados (uso indebido de correo electrónico, uso de software pirata, entre otros). 1.1.2 Posibles amenazas A medida que evolucionan los sistemas operativos, también lo hacen las amenazas a la seguridad que estos mismos pueden sufrir, por ello para proteger el entorno de forma eficaz contra los ataques, se necesita conocer con detalle los peligros a los que se está expuesto. Hay muchos ataques contra los sistemas, en general podemos clasificarlos de la siguiente manera: a) Intrusión Los ataques más comunes a los sistemas son las intrusiones; con ellas las personas pueden utilizar sus computadoras. La mayoría de los atacantes quieren utilizar sus computadoras como si fueras usuarios legítimos. Los intrusos tienen docenas de formas de obtener acceso. Van desde ataques mediante manipulación social a adivinación, pasando por formas complicadas de entrar sin necesidad de saber el nombre y la contraseña de la cuenta. 12 Los firewalls ayudan a evitar intromisiones de varias maneras. Lo ideal es bloquear todas las formas de entrar al sistema sin saber el nombre y contraseña de la cuenta. Si están configurados de manera correcta, reducen el número de cuentas que tienen acceso desde el exterior y que por lo tanto, son vulnerables a que las adivinen o a la manipulación social. Un firewall da la posibilidad de registrar los intentos de entrada a su sistema y, de esta manera, le ayudan a detectar los ataques de quienes tratan de adivinar las contraseñas. b) Negación de servicio Un ataque de negación de servicio es el que está dirigido en su totalidad a evitar que usted utilice su propia computadora. El inundar es la forma más simple y común de llevar a cabo un ataque de negación de servicio, inunda a tal grado un sistema o red (con mensajes, procesos o solicitudes a la red) que hace imposible realizar su verdadero trabajo. La mayoría de las veces no se puede evitar el riesgo de ataques de negación del servicio. Si se aceptan cosas de Internet (correo electrónico o paquetes) es posible inundarse. c) Robo de información Algunos tipos de ataques permiten que el atacante obtenga información sin tener que utilizar directamente sus computadoras. Por lo general estos ataques se aprovechan de los servicios de Internet que tienen como fin proporcionar información, haciendo que den más de lo que era su intención o dándosela a las personas equivocadas. En la actualidad, los ataques a las redes de sistemas se han acrecentado considerablemente mediante el empleo de nuevas técnicas desarrolladas con habilidades necesarias para poder obtener información sensitiva. Es de vital importancia que servicios de red en ejecución en un sistema lo hagan de forma óptima y segura. Estos ataques se usan generalmente para conseguir que un usuario corra un programa que concede acceso a un usuario invasor (por ejemplo, instalando programas de puertas traseras de acceso remoto), o para causar daño tal como borrar todos los archivos del disco duro de la víctima. Para que este ataque tenga éxito la víctima debe tomar la acción de correr el programa que le han enviado. El atacante puede usar varios métodos para convencer a la víctima de correr el programa; por ejemplo, el programa puede estar disfrazado como una carta de amor o una lista de chistes, con un nombre de archivo especialmente seleccionado para aprovecharse de la propensión de Windows a ocultar información importante del usuario. Las combinaciones típicas de extensiones aparentemente benignas y peligrosamente ejecutables son: • xxx.TXT.VBS - un script ejecutable (Visual Basic script) enmascarado como un archivo de texto • xxx.JPG.SCR - un programa ejecutable (protector de pantalla) enmascarado como un archivo de una imagen 13 • xxx.MPG.DLL - un programa ejecutable (biblioteca de funciones enlazada dinámicamente) enmascarado como una película Algunos de los ataques más frecuentes son por medio de: • Ataques basados en Contenido Activo Aprovechan fallos de software y varias características de lenguajes de programación basados en scripts y código activo HTML. Estos ataques están dirigidos contra personas que usan clientes de correo con soporte HTML habilitado o navegadores web para leer su correo, lo cual en estos días corresponde a una gran proporción de la comunidad de cómputo. Típicamente estos ataques intentan usar las características de los lenguajes basados en scripts del HTML o de los clientes de correo electrónico (típicamente Javascript o VBScript) para extraer información privada del computador de la víctima o para ejecutar código en el computador de la víctima sin el consentimiento de ésta (y posiblemente sin su conocimiento). • Ataques basados en Desbordamiento de memoria o búfer Un búfer es una región de memoria donde un programa almacena temporalmente los datos que está procesando. Si esta región es de un tamaño fijo predefinido y si el programa no toma medidas para asegurar que los datos quepan dentro de ese tamaño, se presentará un fallo de software, si se leen más datos que los que alcanzan dentro del búfer, el exceso será aún escrito, probablemente reemplazando otros datos o instrucciones de programa. Estos ataques pueden usarse como ataques de Negación del Servicio, ya que cuando la memoria de un programa llega a sobrescribir en forma aleatoria, el programa generalmente colapsará. Sin embargo, al manipular cuidadosamente el contenido exacto de lo que desborda el búfer, en algunos casos hará posible que se proporcionen instrucciones de programa para que el computador de la víctima las ejecute. El atacante envía un programa a la víctima y éste será ejecutado por el computador de la víctima. • Ataques basados en Scripts de Interprete de Comandos Donde un fragmento de un script de intérprete de comandos Unix se incluye en las cabeceras del mensaje con la esperanza de que un cliente de correo Unix configurado inapropiadamente ejecute los comandos. Muchos programas que corren bajo Unix y sistemas operativos similares soportan la capacidad de incluir en forma embebida scripts cortos de intérpretes de comandos (secuencias de comandos similaresa los archivos de procesamientos por lotes bajo DOS) en sus archivos de configuración. Esto es una forma común para permitir la extensión flexible de sus capacidades. 14 • Rootkits Son grupos de herramientas que ayudarán a continuar teniendo el control de la máquina a la que se realizó la intrusión. Éste consiste en puertas traseras (back doors), programas falsos (troyanos), analizadores de red (sniffers) y limpiadores de bitácoras de los sistemas. • Puertas traseras Es un programa para asegurar el acceso en cualquier momento que a cierta señal sean activadas y que el intruso pueda volver a entrar a este sistema. • Ataques tipo Caballos de Troya Los Caballos de Troya son programas maliciosos que se enmascaran como algo benigno en un intento para conseguir que un usuario desprevenido los corra. Pueden actuar robando información o recursos o implementando ataques distribuidos, tal como distribuir un programa que intenta robar contraseñas u otro tipo de información de seguridad, o puede ser un programa "auto-propagable" que por si mismo realiza las tareas que le fueron planeadas. • Snifferes Son utilizados para obtener información de la red. Estos programas captarán toda la información que cruza por el segmento de red. Básicamente capturan, interpretan, y guardan todos los paquetes que se envían a través de la red. 1.2 Sistemas operativos (bugs y seguridad) Un Sistema Operativo es una parte importante de cualquier sistema de computación, en donde éste último puede dividirse en cuatro componentes: el hardware, el Sistema Operativo, los programas de aplicación y los usuarios. El hardware es la Unidad Central de Procesamiento (UCP), memoria y dispositivos de entrada / salida (E/S) proporcionando los recursos de computación básicos. El sistema operativo contiene un supervisor, una biblioteca de programación, un cargador de aplicaciones y un gestor de ficheros. Los programas de aplicación como los compiladores, sistemas de bases de datos, juegos de vídeo y programas para negocios, definen la forma en que estos recursos se emplean para resolver los problemas de computación de los usuarios. Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y el hardware de una computadora y su propósito es proporcionar un entorno en el cual el usuario pueda ejecutar programas. El objetivo principal de un Sistema Operativo es, entonces, lograr que el Sistema de computación se use de manera cómoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente. En general, se puede decir que un Sistema Operativo tiene las siguientes características: • Aceptar los trabajos y conservarlos hasta su finalización. 15 • Detectar errores y actuar de modo apropiado en caso de que se produzcan. • Controlar las operaciones de E/S. • Controlar las interrupciones. • Planificar la ejecución de tareas. • Entregar recursos a las tareas. • Retirar recursos de las tareas. • Proteger la memoria contra el acceso indebido de los programas. • Soportar el multiacceso. • Proporcionar al usuario un sencillo manejo de todo el sistema. • Aprovechar los tiempos muertos4 del procesador. • Compartir los recursos de la máquina entre varios procesos al mismo tiempo. • Administrar eficientemente el sistema de cómputo como un todo armónico. • Permitir que los diferentes usuarios se comuniquen entre sí, así como protegerlos unos de otros. • Permitir a los usuarios almacenar información durante plazos medianos o largos. • Dar a los usuarios la facilidad de utilizar de manera sencilla todos los recursos, facilidades y lenguajes de que dispone la computadora. • Administrar y organizar los recursos de que dispone una computadora para la mejor utilización de la misma, en beneficio del mayor número posible de usuarios. • Controlar el acceso a los recursos de un sistema de computadoras. Existen diversos Sistemas Operativos, los cuales ofrecen diversas capacidades en cuanto a facilidad de uso, ambientes y seguridad. En este capitulo se tratará de mostrar las principales cualidades de los S.O. más importantes, tratando de enfocarnos principalmente en la seguridad y costos que cada uno de ellos nos ofrece, menor cantidad de bugs o defectos dentro del sistema, los cuales pueden producirse por un error en una fórmula matemática o por un defecto en la forma de leer y tratar la información que recibe, en otras palabras, es un fallo dentro del sistema que sus creadores no han detectado, provocando con esto mayor inestabilidad y un buen blanco de ataque. En la actualidad se realiza un control de calidad exhaustivo de las aplicaciones mediante programas, conocidos como versiones de beta-testers, que prueban el programa durante meses en todas las situaciones imaginables, con el objetivo de detectar la presencia de bugs. Cabe mencionar, que es casi imposible depurar totalmente los errores que contengan estos códigos, debido a que las aplicaciones actuales son bastante complejas. 1.2.1 Windows Windows posee un ambiente grafico muy amigable, por lo que es de muy fácil acceso para los usuarios, su problema es que tiene gran cantidad de bugs, esto añadido a que contiene un código fuente extremadamente grande, ya que para programar un ambiente grafico se requiere mucho código, provocando con esto un sistema muy vulnerable. 4 Referente a los intervalos de tiempo en los que el procesador se encuentra en espera de un dato. 16 Por mucho tiempo, el Sistema Operativo Windows sólo era un shell5 de MS-DOS, por lo cual se empezará con éste último. • MS-DOS no fue diseñado para ser sistema operativo multiusuario o multitarea. Muchos programas fueron desarrollados usando la técnica terminar y permanecer residente (Terminate and Stay Resident (TSR)) y otras funciones principalmente indocumentadas para proporcionar aplicaciones pop-up. Se logró implementar la multitarea, junto con la administración de memoria del hardware con la llegada del procesador Intel 80386. • Windows 95 tiene varios inconvenientes, como configurar infinidad de parámetros, localizar los drivers correctos e instalar las nuevas versiones de los programas. La mayoría de las aplicaciones funcionaban más lentamente que en MS-DOS y Windows 3.1, dado que no se aprovechaban las mejoras realizadas y como se mencionó anteriormente, no cuenta con procesos multiusuario. • Windows 98 fue el último de los sistemas operativos basados en MS-DOS antes de la migración a NT. Es una versión mejorada del 95, con 3.000 alteraciones, siendo 400 de las mismas correspondientes a la depuración del código para hacerlo más robusto. Pero como es solo un shell de MS-DOS, éste no cuenta con procesos multiusuario. • Windows NT: (Windows New Technology, NT). El sistema operativo de 32 bits desarrollado originalmente para que sea OS/2 3.0 antes que Microsoft e IBM discontinuaran su trabajo con OS/2. NT se diseñó para estaciones de trabajo avanzadas (Windows NT 3.1) y para servidores (Windows Advanced Server). A diferencia de Windows 3.1, que era una interfaz gráfica que corría sobre MS-DOS, Windows NT es un sistema operativo por sí solo. El usuario lo ve como Windows 3.1, pero tiene multi-procesos real, seguridad y protección de memoria. Está basado en un micro kernel, con un direccionamiento de hasta 4GB de RAM, soporte para sistemas de archivos FAT, NTFS y HPFS, soporte de red incorporado, soporte y multiprocesador. NT está diseñado para ser independiente del hardware. NT necesitaba un 386, con al menos 12MB de RAM (preferible 16MB), y al menos 75MB de disco duro libre. • Windows Me está pensado para potenciar la experiencia multimedia de todos los usuarios, haciendo que mejore la red de casa, la multimedia, los CDs de audio, el video digital y la conectividad a Internet. Aunque el nuevo sistema comparte algunas características con el entornode Windows 2000, no está basado en el código de Windows NT que usa este. Entre otras cosas, esto implica que Windows Me no soporta una arquitectura de procesadores múltiples, o la robusta arquitectura de memoria que hace NT y 2000. Se ha reducido la compatibilidad con las aplicaciones 5 Interprete de órdenes de un Sistema Operativo. 17 DOS en modo real, por la sencilla razón de que con este sistema no se arranca desde DOS. Lo que si hizo Microsoft, afortunadamente, es incluir (aunque con una funcionalidad menor) algunas de las características de mantenimiento del sistema presentes en el Windows 2000, incluyendo un nuevo y mejorado menú de ayuda, personalización de menús y mejoras a la conectividad a Internet y la experiencia de red. Otra de las mejoras de Windows Me son las claves en el nuevo sistema de protección de ficheros que hace muy difícil el borrar accidentalmente ficheros necesarios para el funcionamiento del sistema y el sistema reestablece aquellos archivos o paquetes borrados accidentalmente por el usuario. • Windows 2000 es una optimización de Windows 98 usando tecnología NT y ahora si, este es un sistema operativo en toda la extensión de la palabra, ya que hace a un lado a MS-DOS como parte del sistema de arranque, aunque con mayores ventajas ya que queda más restringido NT al ámbito de servidores de mayor rendimiento. Windows 2000 está dirigida expresamente al usuario de oficinas y empresas de cualquier tamaño, por lo que incorpora una serie de opciones que un usuario normal y corriente nunca necesitará usar. Es de señalar que el sistema de archivos NTFS de Windows 2000 mejora velocidad y rendimiento al realizar lecturas de disco duro. • Windows XP Professional integra la base de códigos de Windows NT y Windows 2000, que presenta una arquitectura informática de 32 bits y un modelo de memoria completamente protegida. Proporciona incluso mayores pruebas de carga para los controladores de dispositivos. Elimina la mayoría de los escenarios que obligaban a los usuarios finales a reiniciar los equipos en Windows NT 4.0 y Windows 95/98/Me. Las estructuras de los datos importantes del núcleo son de sólo lectura, por lo que los controladores y las aplicaciones no pueden corromperlas. Todos los códigos de controladores de dispositivos son de sólo lectura y con protección de página. Admite hasta 4 Gigabytes (GB) de memoria RAM y hasta dos multiprocesadores simétricos. 1.2.2 Unix Sistema operativo desarrollado originalmente por AT&T. Puede compilarse en muchos y diferentes lenguajes de máquina, lo que le permite ejecutarse en una variedad más amplia de hardware en relación con cualquier otro sistema operativo ya que está programado en lenguaje C. De esta forma, UNIX se ha convertido en sinónimo de "sistemas abiertos". Sus características principales, son: • Es un sistema operativo de multitarea real y multiusuario, como lo son todas las otras versiones de UNIX. Esto significa que muchos usuarios pueden autentificarse en el sistema y ejecutar programas, y hacerlo de forma simultánea. • El sistema es en su mayoría compatible con varios estándares de UNIX (hasta donde pueda tener estándares el UNIX) en lo que respecta al código fuente de los 18 programas, entre ellos los estándares POSIX.16, UNIX System V, y Berkely System Distribution (BSD) UNIX. Se ha desarrollado con la idea de que el código fuente sea portable de un sistema a otro, y así es fácil encontrar características de uso general que son compartidas por más de una plataforma. Gran parte del software para UNIX disponible en Internet y en otros lugares compila sin hacer modificaciones. Además, es libremente redistribuible todo el código fuente del sistema, el núcleo, los controladores de dispositivo, las bibliotecas, los programas de usuario y las herramientas de desarrollo. • Incluyen control de tareas POSIX (que utilizan intérpretes de órdenes), pseudoterminales y soporte para teclados nacionales o personalizados que se cargan dinámicamente. Soporta consolas virtuales que le permiten cambiar entre sesiones de login en una única consola del sistema. • El sistema operativo soporta varios sistemas de ficheros para almacenar los datos. Hay soporte para los sistemas de ficheros de Xenix7 y UNIX System V, así como los sistemas de ficheros de MS-DOS y el VFAT8 de Windows 98, en disco duro y en disquete. • Proporciona una implementación completa del software de redes TCP/IP. Incluidos controladores de dispositivo para muchas tarjetas Ethernet habituales, y también SLIP (Serial Line Internet Protocol) y PPP (Point-to-Point Protocol), que proporcionan acceso a una red TCP/IP a través de una conexión serie, PLIP (Parallel Line Internet Protocol), y NFS (Network File System - Sistema de Ficheros de Red). También está soportada toda la gama de clientes y servicios TCP/IP, lo que incluye FTP, telnet y SMTP. • El núcleo soporta ejecutables con paginación por demanda: sólo aquellos segmentos de un programa que realmente se utilizan se pasan a la memoria desde el disco. Si varias copias de un programa se están ejecutando a la vez, comparten la memoria física, lo cual reduce su uso global. • X Window permite al usuario ejecutar aplicaciones en otras máquinas de la red en forma simultánea. UNÍX es un SO de mucha calidad y muy seguro como puede observarse, pero es de alto costo. 6 Interfaz de Sistema Operativo portátil basado en Unix 7 Versión de Unix que corre en PC’s 8 Virtual File Allocation Table, usado para controlar el acceso a archivos de Windows 95 y 98 19 1.2.3 Linux Linux es una implementación del sistema operativo UNIX (uno más de entre los numerosos clónicos del histórico Unix), pero con la originalidad de ser gratuito y a la vez muy potente, que sale muy bien parado (no pocas veces victorioso) al compararlo con las versiones comerciales para sistemas de mayor envergadura y por tanto teóricamente superiores. Comenzó como proyecto personal del -entonces estudiante- Linux Torvalds, quien tomó como punto de partida otro viejo conocido, el Minix de Andy. S. Tanenbaum (profesor de sistemas operativos que creó su propio sistema operativo Unix en PCs XT para usarlo en su docencia). Actualmente Linux Torvalds lo sigue desarrollando, pero a estas alturas el principal autor es la red Internet, desde donde una gigantesca familia de programadores y usuarios aportan diariamente su tiempo aumentando sus prestaciones y dando información y soporte técnico mutuo. La versión original comenzó para PC’s compatibles (Intel 386 y superiores), existiendo también en desarrollo versiones para prácticamente todo tipo de plataformas. Dos características muy peculiares que lo diferencian del resto de los sistemas Windows y algunos Unix es de que el sistema viene acompañado del código fuente, es decir, que uno mismo puede hacer cambios en la programación del sistema. Está conformado por el núcleo del sistema (kernel) más un gran número de programas ó librerías que hacen posible su utilización. LINUX se distribuye bajo la “GNU Public License” en inglés, por lo tanto, el código fuente tiene que estar siempre accesible. Las versiones que actualmente existen son Red Hat Linux, Linux Mandrake, SuSe, Debian Linux, Caldera Open Linux y Slackware, etc. Éstas son las características principales de Linux: • Multitarea: varios programas (realmente procesos) ejecutándose al mismo tiempo. • Multiusuario: varios usuarios en la misma máquina al mismo tiempo (y sin licencias para todos). • Multiplataforma: corre en muchas CPU’s distintas, no sólo Intel. • Funciona en modo protegido 386. • Tiene protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema. • Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de unprograma que están siendo usadas actualmente. • Política de copia en escritura para compartir páginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria. 20 • Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha (se sigue denominando intercambio, es en realidad un intercambio de páginas). Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio. • La memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y éste puede a su vez ser reducido cuando se ejecuten grandes programas. • Librerías compartidas de carga dinámica (DLL's) y librerías estáticas también, por supuesto. • Se realizan volcados de estado (core dumps) para posibilitar los análisis post- mortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo. • Casi totalmente compatible con POSIX, System V y BSD a nivel fuente. • Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito. • Control de tareas POSIX. • Pseudo-terminales (pty's). • Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si tu ordenador ya tiene una FPU (unidad de coma flotante), será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria. • Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente. • Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de vídeo). Se crean dinámicamente y puedes tener hasta 64. • Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Terabites y nombres de archivos de hasta 255 caracteres de longitud. 21 • Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no necesitas ningún comando especial para usar la partición MS-DOS, parece un sistema de archivos normal de Unix (excepto por algunas graciosas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para VFAT (WNT, Windows 95) ha sido añadido al núcleo de desarrollo y estará en las próximas versiones estable. • Un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS. • Soporte en sólo lectura de HPFS-2 del OS/2 2.1 • Sistema de archivos de CD-ROM que lee todos los formatos estándar de CD- ROM. • TCP/IP, incluyendo ftp, telnet, NFS, etc. • Appletalk (protocolo de comunicación con Sistemas Operativos Mac) disponible en el actual núcleo de desarrollo. • Software cliente y servidor Netware disponible en los núcleos de desarrollo. 1.2.4 Open BSD Todas las partes componentes de OpenBSD tienen unos derechos de autor con unos términos razonables que permiten su libre distribución. Esto incluye la posibilidad de reutilizar la mayor parte del árbol de fuentes de OpenBSD, tanto para el uso personal como para el comercial. OpenBSD no incluye ninguna restricción más allá de las que vienen impuestas por la licencia original de BSD. En una distribución regular de OpenBSD no se puede incluir ningún tipo de código que se encuentre bajo licencias más estrictas o restrictivas. OpenBSD 3.4 funciona en las siguientes plataformas: • i386, soportado por computadoras personales y tiene soporte en gran cantidad de procesadores, arquitecturas de bus E/S y periféricos. • Sparc es el porte de OpenBSD para la mayoría de estaciones de trabajo SPARC de Sun de 32 bits, incluidas las familias de arquitecturas sun4, sun4c y sun4m. 22 • HP300 para la mayoría de estaciones de trabajo HP 9000 de las series 300 y 400, basadas en la familia de procesadores 680x0 de Motorola. • MAC68k para muchas de las máquinas de Apple Macintosh basadas en los procesadores 680x0 de Motorola. Para ello requiere de un procesador Motorola 68020, 68030, ó 68040. Si tiene un 68020, también necesitará un PMMU Motorola 68851. • MACPPC para los sistemas con procesadores PowerPC de Macintosh de la familia ``New World'', o sea las máquinas de Apple desde los modelos iMac hasta los modelos más nuevos. • MVME68k para la familia de placas base de Motorola basadas en VME 680x0. • MVME88k en fase experimental. • ALPHA funciona en una gran variedad de máquinas alpha fabricadas por Digital (luego Compaq y ahora Hewlett-Packard). • VAX es el porte de OpenBSD para un amplio grupo de máquinas VAX fabricadas por Digital (luego pasó a Compaq y ahora a Hewlett-Packard). • HPPA OpenBSD contiene soporte para la emulación de la mayor parte del código binario de los sistemas SVR5 (Solaris), FreeBSD, Linux, SunOS, y HP-UX. • Funciona en varios tipos diferentes de plataformas de hardware. • Está reconocido por muchos profesionales de la seguridad informática como el sistema operativo tipo UNIX más seguro; esto es el resultado de una intensa auditoría de seguridad sobre el código fuente. • Es un sistema operativo con todas las funcionalidades de UNIX que se puede adquirir de forma gratuita. • Integra las últimas tecnologías en seguridad para la implementación de cortafuegos (filtros de IP) y redes privadas virtuales (VPN) dentro de un entorno distribuido. • Aprovecha el intenso desarrollo actual en muchas áreas, y ofrece la oportunidad de trabajar con tecnologías emergentes dentro de una comunidad internacional de programadores de sistemas y usuarios finales. 23 • Ofrece al usuario normal la oportunidad de participar en el desarrollo y prueba del producto. 1.3 Redes de computadoras Una red de computadora es un conjunto de terminales, nodos, servidores y elementos de propósito especial que interaccionan entre sí con la finalidad de intercambiar información y compartir recursos. 1.3.1 Historia Las redes nacen de tres necesidades básicas de la sociedad humana: • La comunicación. • La organización del conocimiento humano. • La necesidad que surge de compartir recursos e información. Esto se da alrededor de los años 60’s que surge la necesidad de estar varias personas conectadas a los mismos recursos, dado que el equipo de trabajo utilizado antes (mainframes) era de un costo excesivo, por lo que se compraba un equipo caro para una empresa - u organismo - y se usaba el mismo equipo por medio de las llamadas terminales tontas. Con la creación de las computadoras de escritorio (desktop) sucede un fenómeno interesante: se abaratan los costos y surgen mayoresaplicaciones para atacar problemas cada vez más complejos, pero esto trae consigo que los programas ya no sean residentes en un solo punto: ocurre una descentralización de la información, lo cual aumenta los costos de los equipos periféricos, surgiendo la necesidad de compartir los datos en redes locales; así surgen las Redes Locales de Datos (RLD) o LAN's. El nombre de las RLD viene de usar un medio de comunicación común, limitado a una cierta distancia, encaminado a compartir información (datos). Los recursos a compartir pueden ser Memoria, dispositivos de impresión, Fax, bases de datos, programas y otros; y es muy común el implementar RLD's en hospitales, oficinas, universidades, compañías de datos, fábricas y en general cualquier organización cuyo factor de la información compartida sea importante para sus metas. 1.3.2 Topologías Una topología de red va relacionada con el tipo de conexión entre los diferentes dispositivos que forman la red de computadoras, es decir, la forma como se interconectan todos los dispositivos para formar la red. Existen tres topologías básicas que son utilizadas para formar redes: Star (estrella), Ring (Anillo) y Bus. De estas tres topologías principales, es posible generar diferentes topologías “híbridas”, logrando así, una integración entre las 24 topologías básicas, expandiendo las redes de computadoras hacia redes de cobertura global. Hay que hacer notar que las topologías definidas van relacionadas con el tipo de interconexión física para unirlas. Es posible hablar de topologías en relación a una interconexión física y a una interconexión lógica, es decir, forma como comparten el medio transmisor y forma como lógicamente comparten este medio. Topología Bus En esta topología no existe un CPU o similar que controle la comunicación entre los nodos. Cada nodo está conectado a un bus, donde cada nodo actúa como si fuera parte de una red anillo, pero ninguno depende del nodo siguiente para que el flujo de información continúe, ni tampoco depende del nodo anterior para que la información llegue a él. Su figura se muestra a continuación, figura 1.1. Figura 1.1 Topología Bus La tecnología común que trabaja bajo una topología Bus es denominada Ethernet fue desarrollada por Digital, Intel y Xerox, normalizada con IEEE 802.3. Ethernet distribuye paquetes de datos de longitud variable con una velocidad de 10 Mbps a los diferentes nodos dispersos a lo largo de un bus que comúnmente es cable coaxial, pero cabe mencionar que también los hay para fibra óptica y cables UTP. Los nodos separados hasta 50m de largo pueden ser también unidos por cable par trenzado. Una red Ethernet puede estar formada hasta por 1024 nodos. Ethernet se basa en el acceso al medio denominado CSMA/CD (Carrier Sense Multiple Access with Collisión Detect). Es denominada Carrier Sense porque cada nodo es capaz de saber si la información que viaja en el bus es para si mismo o no. Multiple Access porque como se ha mencionado, un bus es compartido por todos los nodos que forman la red. Collision Detect porque cada nodo sabe si existe información que viaja en la red y es posible detectar y eliminar colisiones. Topología Star (Estrella) La topología Star consta de una unidad central que controla el flujo de información a través de la red. La topología Star tiene limitaciones en cuanto a rendimiento y confiabilidad, ya que el tamaño de la red depende directamente de la capacidad del controlador central (número de conexiones que puede soportar) y en caso de fallar éste, todo el sistema deja de 25 funcionar. Por otro lado, tiene la ventaja de poderse administrar únicamente administrando el dispositivo central. Su figura se muestra a continuación, Figura 1.2: Figura 1.2 Topología Estrella En la topología estrella se tiene un control de transmisión Centralizado y una forma de transferencia de Conmutación. Topología Ring (Anillo) Una de sus características importantes es que está formado por un conjunto de enlaces punto a punto (como se muestra en la siguiente figura 1.3), lo cual es una topología bien entendida y probada, en donde la información es pasada a través de los nodos de uno a uno en una comunicación peer-to-peer. La ventaja que tiene esta topología es que no se requiere un cuarto de control central, aunque la desventaja es que si uno de los enlaces peer to peer que la forman se rompe (o se desconecta debido a errores en la transmisión, etc.), la red deja de funcionar. El control de transmisión que usa esta topología es Distribuido y su modo de transferencia es de Conmutación. Figura 1.3 Topología Anillo La tecnología común que utiliza dicha topología es denominada Token Ring. Esta es una tecnología desarrollada por IBM, corresponde al estándar IEEE 802.5. El diseño básico es un anillo de nodos que no superan 256, operando a 4 ó 16 Mbps. En Token Ring se utiliza un código de autorización llamado Token que actúa como método de acceso al medio denominado Token Passing. 26 Concentrador El método de acceso al medio Token Passing trabaja de la siguiente forma. Si no hay mensaje, el token (tres bytes) es enviado a través del anillo. Cuando un nodo A con un mensaje a enviar recibe el token, retiene éste y envía el mensaje, el cual incluye un código de identificación del destinatario. Los nodos ignoran el mensaje si no es para si mismo, en caso contrario, obtienen la información. La información sigue viajando hasta que se completa su trayectoria alrededor del anillo hasta que llega al nodo A. Dicho nodo suelta el token para que pase nuevamente alrededor del anillo para futuros envíos de información. Topología Híbrida La red Híbrida es aquella que está conformada por mas de una de las topologías anteriores, es decir, puede estar formada por bus y estrella, estrella y anillo, etc. Un ejemplo se muestra a continuación en la figura 1.4 Figura 1.4 Topología Híbrida Una característica principal de las redes LAN es su distancia máxima de control de hasta 1 Km. 1.3.3 Modelos El modelo OSI (Open Systems Interconection) de telecomunicaciones esta basado en una propuesta desarrollada por la organización de estándares internacional (ISO), por lo que también se le conoce como modelo ISO - OSI. Su función es la de definir la forma en que se comunican los sistemas abiertos de telecomunicaciones, es decir, los sistemas que se comunican con otros sistemas. El modelo de referencia consiste en 7 capas, como se muestra en la figura 1.5. Nivel 1: capa física Nivel 2: capa de enlace de datos Nivel 3: capa de red Nivel 4: capa de transporte Nivel 5: capa de sesión Nivel 6: capa de presentación Nivel 7: capa de aplicación 27 Figura 1.5 Arquitectura de red basada en el modelo OSI 1. Nivel Físico: Permite utilizar directamente el medio físico de transmisión. Como servicio ofrece la transmisión de bits. En este nivel se definen las siguientes características: • Medio, es decir, los tipos de conectores, el diámetro del cable y el tipo de material en su caso, etcétera. • Eléctricas de la transmisión, como los niveles de transmisión o el tipo de señal transmitido. • Funcionales del medio, es decir, especificar que hace cada hilo o canal. También se definen las reglas de procedimiento y la secuencia de eventos para transmitir. 2. Nivel de enlace: La capa física proporciona un flujo de datos, pero es el nivel de enlace de datos el quien se encarga de que el enlace físico sea seguro, además deproporcionar medios para activar, mantener y desactivar el enlace. Sus funciones más importantes son la detección de errores y el control de flujo. Ofrece al siguiente nivel una transmisión fiable de bits. En redes de conmutación, controla la conexión de cada uno se los siguientes enlaces • Flujo 28 • Establecimiento • Mantenimiento • Liberación Por otro lado garantiza un salto sin errores, es decir, asegura que el bit transmitido pasa entre dos nodos, o entre un nodo y un terminal sin problemas. En redes de difusión • Se encarga del control de acceso al medio compartido. La unidad de información con la que se trabaja es la trama (o secuencia de bits). El origen envía las tramas de forma secuencial y procesa las tramas de asentimiento, devueltas por el destino. Establece los límites de la trama mediante la inclusión de un patrón de bit determinado al principio y final de la trama. 3. Nivel de red Se encarga de suministrar una conexión de extremo a extremo, es decir, la transmisión de información entre sistemas finales a través de algún tipo de red de comunicación. Libera a las capas superiores (les proporciona independencia) por las tecnologías de conmutación utilizadas para conectar los sistemas. Esta capa sólo es necesaria en las redes de conmutación o en redes interconectadas, pues en redes punto a punto o de difusión existe un canal directo entre los dos equipos, por lo que el nivel 2 proporciona por tanto conexión fiable entre los dos equipos. No obstante, estas dos últimas tipologías de redes son de uso más restringido. Es el nivel responsable de establecer, mantener y terminar las conexiones. Efectúa el encaminamiento de los mensajes desde el origen al destino a través de los nodos de la red. 4. La capa de Transporte Puede multiplexar varias conexiones de transporte sobre la misma conexión de red o bien distribuir la misma conexión de transporte en varias conexiones de red. En la cabecera que añade este nivel se envía la información que identifica a qué conexión pertenece cada mensaje. El ejemplo más conocido de protocolos de este nivel es el TCP. 5. Capa de sesión Las operaciones de la capa de sesión ordenan o deciden a donde deben ir los datos. Una comunicación en la red tiene dos tipos • Conexión lógica (connection oriented, como el TCP) 29 • Sin conexión lógica entre los nodos (connection less como el UDP). 6. Capa de presentación Recibe bits y bytes de las aplicaciones y las formatea de modo que sean octetos entendibles en una red. Recibe un mensaje con octetos de una red y los decodifica para que se conviertan en bits y bytes de una aplicación. 7. Capa de aplicación Todas las capas anteriores en este modelo sirven únicamente como infraestructura de telecomunicaciones. Por si solas no hacen nada más que mantener en buen estado el camino para que fluyan los datos, la capa que hace posible que una red se pueda usar es la capa de aplicación. 1.3.4 Protocolos Los protocolos son reglas y procedimientos para la comunicación. Cuando dos equipos están conectados en red, las reglas y procedimientos técnicos que dictan su comunicación e interacción se denominan protocolos. El protocolo consta de una sintaxis, una semántica y un tiempo: • La sintaxis de un protocolo define los conjuntos de bits divididos en campos; por ejemplo, los primeros 48 bites son la dirección fuente y los siguientes 48 son la dirección destino. • La semántica define el significado exacto de los bits dentro del campo; por ejemplo, una dirección de 48 bits iguales, significa que es una dirección broadcast (puede ser leída por todas las computadoras). • El tiempo define la relación entre el rango de los bits dentro de los campos y las pausas entre reconocimientos de los mismos. Las características más importantes de un protocolo son: • Directo / indirecto: los enlaces punto a punto son directos pero los enlaces entre dos entidades en diferentes redes son indirectos ya que intervienen elementos intermedios. • Monolítico / estructurado: monolítico es aquel en que el emisor tiene el control en una sola capa de todo el proceso de transferencia. En protocolos estructurados, hay varias capas que se coordinan y que dividen la tarea de comunicación. • Simétrico / asimétrico: los simétricos son aquellos en que las dos entidades que se comunican son semejantes en cuanto a poder tanto emisores como consumidores de información. Por otra parte, un protocolo es asimétrico si una de las entidades tiene funciones diferentes de la otra (por ejemplo en clientes y servidores). 30 A los protocolos que permiten la comunicación LAN a LAN se les conoce como protocolos encaminables y crean así entornos de red más extensas, es por ello que son de gran utilidad. La industria informática ha diseñado varios tipos de protocolos como modelos estándar de protocolo. Los fabricantes de hardware y software pueden desarrollar sus productos para ajustarse a cada una de las combinaciones de estos protocolos. Los modelos más importantes incluyen: • La familia de protocolos ISO/OSI. El conjunto de protocolos OSI es una jerarquía completa de protocolos. Cada protocolo se corresponde directamente con un único nivel del modelo OSI. El conjunto de protocolos OSI incluye protocolos de encaminamiento y transporte, la serie de protocolos IEEE 802, un protocolo a nivel de sesión, un protocolo a nivel de presentación y varios protocolos a nivel de aplicación diseñados para proporcionar una funcionalidad de red, incluyendo el acceso a archivos, impresión y emulación de terminal. • La arquitectura de sistemas en red de IBM (SNA). • Digital DECnet, es una jerarquía de protocolos de Digital Equipment Corporation. Es un conjunto de productos de hardware y de software que implementan la Arquitectura de Red Digital (Digital Network Arquitecture). Define redes de comunicación sobre LAN Ethernet, redes de área metropolitana con interfaz de datos distribuida de fibra (FDDI MAN) y WAN que utilicen características de transmisión de datos privados o públicos. DECnet también puede utilizar protocolos TCP y OSI, así como sus propios protocolos. Se trata de un protocolo encaminable. • Novell NetWare. Al igual que TCP/IP, Novell proporciona un conjunto de protocolos desarrollados específicamente para NetWare. Los cinco protocolos principales utilizados por NetWare son: • Protocolo de acceso al medio. • Intercambio de paquetes entre redes/Intercambio de paquetes en secuencia (IPX/SPX). • Protocolo de información de encaminamiento (RIP). • Protocolo de notificación de servicios (SAP). • Protocolo básico de NetWare (NCP). • Apple Talk de Apple, es la jerarquía de protocolos de Apple Computer para permitir que los equipos Apple Macintosh compartan archivos e impresoras en un entorno de red. Se introdujo en 1984 como una tecnología LAN autoconfigurable. Apple Talk también está disponible en muchos sistemas UNIX que utilizan paquetes 31 comerciales y de libre distribución, así como de Windows. El conjunto de protocolos AppleTalk permite compartir archivos a alto nivel utilizando AppleShare, los servicios de impresión y gestores de impresión de LaserWriter, junto con la secuencia de datos de bajo nivel y la entrega de datagramas básicos. Cuenta con los siguientes protocolos: • AppleTalk: Una colección de protocolos que se corresponde con el modelo OSI. • LocalTalk: Describe el cable par trenzado apantallado utilizado para conectar equipos Macintosh con otros Macintosh o impresoras. Un segmento LocalTalk permite hasta un máximo de 32 dispositivos y opera a una velocidad de 230 Kbps. • Ether Talk: (AppleTalk sobre Ethernet) opera a una velocidad de 10 Mbps. • Token Talk: AppleTalk sobre Token Ring. Dependiendo de su hardware, TokenTalk opera a 4 o a 16 Mbps. • El conjunto de protocolos de Internet o TCP/IP. El Protocolode Control de Transmisión / Protocolo Internet (TCP/IP) es un conjunto de Protocolos aceptados por la industria que permiten la comunicación en un entorno heterogéneo (formado por elementos diferentes). Además, TCP/IP proporciona un protocolo de red encaminable y permite acceder a Internet y a sus recursos. La mayoría de las redes permiten TCP/IP como protocolo. Entre otros protocolos escritos específicamente para el conjunto TCP/IP se incluyen: • SMTP (Protocolo básico de transferencia de correo). Correo electrónico. • FTP (Protocolo de transferencia de archivos). Para la interconexión de archivos entre equipos que ejecutan TCP/IP. • SNMP (Protocolo básico de gestión de red). Para la gestión de redes. La utilización de TCP/IP ofrece varias ventajas: • Es un estándar en la industria. Como un estándar de la industria, es un protocolo abierto. Esto quiere decir que no está controlado por una única compañía, y está menos sujeto a cuestiones de compatibilidad. Es el protocolo, de hecho, de Internet. • Contiene un conjunto de utilidades para la conexión de sistemas operativos diferentes. La conectividad entre un equipo y otro no depende del sistema operativo de red que esté utilizando cada equipo. • Utiliza una arquitectura escalable, cliente/servidor. TCP/IP puede ampliarse (o reducirse) para ajustarse a las necesidades y circunstancias futuras. Utiliza sockets6 para hacer que el sistema operativo sea algo transparente. Históricamente, TCP/IP ha tenido dos grandes inconvenientes: su tamaño y su velocidad. TCP/IP es una jerarquía de protocolos relativamente grandes que puede 6 Identificador para un servicio concreto en un nodo concreto de red, consta de una dirección y de un número de puerto que identifica al servicio. 32 causar problemas en clientes basados en MS-DOS. En cambio, debido a los requerimientos del sistema (velocidad de procesador y memoria) que imponen los sistemas operativos con interfaz gráfica de usuario (GUI), como Windows NT o Windows 95 y 98, el tamaño no es un problema. El protocolo TCP/IP no se corresponde exactamente con el modelo OSI. En vez de tener siete niveles, sólo utiliza cuatro. Conocido normalmente como Conjunto de protocolos de Internet, TCP/IP se divide en estos cuatro niveles: • Nivel de interfaz de red. • Nivel Internet. • Nivel de transporte. • Nivel de aplicación. Cada uno de estos niveles se corresponde con uno o más niveles del modelo OSI. Muchas veces, los protocolos por sí mismos no funcionan del todo bien, es por ello que se combinan entre sí para formar nuevos y realizar un mejor trabajo, como se mostrarán posteriormente, conocido esto como jerarquía de protocolos. Cada nivel de la jerarquía especifica un protocolo diferente para la gestión de una función o de un subsistema del proceso de comunicación. Cada nivel tiene su propio conjunto de reglas. Los protocolos definen las reglas para cada nivel en el modelo OSI: Nivel de aplicación Inicia o acepta una petición Nivel de presentación Añade información de formato, presentación y cifrado al paquete de datos Nivel de sesión Añade información del flujo de tráfico para determinar cuándo se envía el paquete Nivel de transporte Añade información para el control de errores Nivel de red Se añade información de dirección y secuencia al paquete Nivel de enlace de datos Añade información de comprobación de envío y prepara los datos para que vayan a la conexión física Nivel físico El paquete se envía como una secuencia de bits Tabla 1.1 Modelo OSI Los niveles inferiores en el modelo OSI especifican cómo pueden conectar los fabricantes sus productos a los productos de otros fabricantes. Cuando utilicen los mismos protocolos, pueden enviar y recibir datos entre sí. Los niveles superiores especifican las reglas para dirigir las sesiones de comunicación (el tiempo en el que dos equipos mantienen una conexión) y la interpretación de aplicaciones. A medida que aumenta el nivel de la jerarquía, aumenta la sofisticación de las tareas asociadas a los protocolos. Cabe mencionar que algunos protocolos se crearon antes de que se hiciera el modelo OSI, por lo tanto no es extraño encontrar protocolos que no correspondan directamente con éste. 33 Los tipos de protocolos se dividen de las siguientes maneras: • Aplicación, trabajan en el nivel superior del modelo de referencia OSI y proporcionan interacción entre aplicaciones e intercambio de datos, como se describen a continuación: • APPC (Comunicación avanzada entre programas): Protocolo SNA, mayormente utilizado en equipos AS/400. APPC se define como un protocolo de aplicación porque trabaja en el nivel de presentación del modelo OSI. Sin embargo, también se considera un protocolo de transporte porque APPC utiliza el protocolo LU 6.2 que trabaja en los niveles de transporte y de sesión del modelo OSI. • FTAM (Acceso y gestión de la transferencia de archivos): Un protocolo OSI de acceso a archivos • X.400: Un protocolo CCITT para las transmisiones internacionales de correo electrónico. • X.500: Un protocolo CCITT para servicios de archivos y directorio entre sistemas. • SMTP (Protocolo básico para la transferencia de correo): Un protocolo Internet para las transferencias de correo electrónico. • FTP (Protocolo de transferencia de archivos): Un protocolo para la transferencia de archivos en Internet, pero trabaja en ésta capa. • SNMP (Protocolo básico de gestión de red): Un protocolo Internet para el control de redes y componentes. • Telnet: Un protocolo Internet para la conexión a máquinas remotas y procesar los datos localmente. • SMBs (Bloques de mensajes del servidor) de Microsoft y clientes: un protocolo cliente / servidor de respuesta a peticiones. • NCP (Protocolo básico de NetWare) y cliente: un conjunto de protocolos de servicio. • AppleTalk y AppleShare: Conjunto de protocolos de red de Apple. • AFP (Protocolo de archivos AppleTalk): Protocolo de Apple para el acceso a archivos remotos. • DAP (Protocolo de acceso a datos): Un protocolo de DECnet para el acceso a archivos. • Transporte, facilitan las sesiones de comunicación entre equipos y aseguran que los datos se pueden mover con seguridad entre equipos. • TCP: El protocolo de TCP/IP para la entrega garantizada de datos en forma de paquetes secuenciados. • SPX: Parte del conjunto de protocolos IPX/SPX de Novell para datos en forma de paquetes secuenciados. • NWLink: La implementación de Microsoft del protocolo IPX/SPX. • NetBEUI (Interfaz de usuario ampliada NetBIOS): Establece sesiones de comunicación entre equipos (NetBIOS) y proporciona los servicios de transporte de datos subyacentes (NetBEUI). • ATP (Protocolo de transacciones Apple Talk) y NBP (Protocolo de asignación de nombres): Protocolos de Apple de sesión de comunicación y de transporte de datos. 34 • De red, proporcionan lo que se denominan «servicios de enlace». Estos protocolos gestionan información sobre direccionamiento y encaminamiento, comprobación de errores y peticiones de retransmisión. Los protocolos de red también definen reglas para la comunicación en un entorno de red particular como es Ethernet o Token Ring. • IP: Protocolo de conmutación de paquetes que realiza direccionamiento y encaminamiento. Cuando se transmite un paquete, este protocolo añade una cabecera al paquete, de forma que pueda enviarse a través de la red utilizando las tablas de encaminamiento dinámico. IP es un protocolo no orientado a la conexión y envía paquetes sin esperar la señal de confirmación por parte del receptor. Además, IP es el responsable del empaquetado y división de los paquetes requerido por los niveles físico y de enlace de datos del modelo OSI. Cada paquete IP está compuesto por una dirección de origen y una de destino, un identificador de protocolo, un checksum
Compartir