ÍNDICE Y GLOSARIO
ÍNDICE Y GLOSARIO
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a esponsorizarlo a través de de la compra de una licencia, una donación o una esponsorización. All works copyright ISECOM, 2004.
2
ÍNDICE Y GLOSARIO
Índice Lección 1: Ser un Hacker 1.1. Introducción 1.2. Recursos 1.2.1 Libros 1.2.2 Magazines y Periódicos 1.2.2.1. Ejerci 1.2.3 Zines y Blogs 1.2.3.1. Ejerci 1.2.4 Forums y Listas de Correo 1.2.4.1. Ejerci 1.2.5 Grupos de Notícias 1.2.5.1. Ejerci 1.2.6 Páginas W 1.2.6.1. Ejerci 1.2.7 Chat 1.2.7.1. Ejerci 1.2.8 P2P 1.3. Más lecciones
Lección 2: Nociones de Comandos de Windows y Linux 2.1. Objetivos 2.2. Requerimientos y escenario 2.2.1 Requerimientos 2.2.2 Escenario 2.3. Sistema Operativo: WINDOWS 2.3.1 ¿Cómo abrir una ventana de MS-Dos? 2.4. Sistema operativo: LINUX 2.4.1 ¿Cómo abrir una ventana de consola? 2.4.2 Comandos básicos 2.4.3 Herramientas de red 2.5. Ejercicios Prácticos 2.5.1 Ejercicio 1 2.5.2 Ejercicio 2 2.5.3 Ejercicio 3
Lección 3: Puertos y Protocolos 3.1. Objetivos 3.2. Conceptos básicos de redes 3.2.1 Dispositivos 3.2.2 Topologías 3.3. Modelo TCP/IP 3.3.1 Introducción
3
ÍNDICE Y GLOSARIO
3.3.2 Capas TCP/IP 3.3.2.1 Aplicacionón 3.3.2.2 Transporte 3.3.2.3 IP 3.3.2.4 Acceso a Red 3.3.3 Protocolos 3.3.3.1 Protocolos de la capa de Aplicación 3.3.3.2 Protocolos de la capa de Transporte 3.3.3.3 Protocolos de la capa de Internet 3.3.4 Direcciones IP 3.3.5 Puertos 3.3.6 Encapsulación 3.4. Ejercicios 3.4.1 Ejercicio 1: Netstat 3.4.2 Ejercicio 2: Puertos y protocolos 3.4.3 Ejercicio 3: Mi primer servidor 3.5. Lecturas recomendadas
Lección 4: Servicios y Conexiones 4.1. Introducción 4.2. Servicios 4.2.1 HTTP y la Web 4.2.2 E-mail – POP y SMTP 4.2.3 IRC 4.2.4 FTP 4.2.5 Telnet y SSH 4.2.6 DNS 4.2.7 DHCP 4.3. Conexiones 4.3.1 ISPs 4.3.2 Servicio de telefonía tradicional 4.3.3 DSL 4.3.4 Cable Modems 4.4. Lecturas recomendadas
Lección 5: Identificación de Sistemas 5.1. Introducción 5.2. Identificación de un servidor 5.2.1 Identificación del propietario de un dominio 5.2.2 Identificación de la dirección IP de un dominio 5.3. Identificación de servicios 5.3.1 Ping y Traceroute 5.3.2 Obtención del banner 5.3.3 Identificación de servicios a partir de puertos y protocolos 5.4. Identificación de un sistema 5.4.1 Escaneo de ordenadores remotos 5.5. Lecturas recomendadas
4
ÍNDICE Y GLOSARIO
Lección 6: Malware 6.0 Introducción 6.1 Virus 6.1.1 Introducción 6.1.2 Descripción 6.1.2.1 Virus de Sector de Arranque (Boot Sector Viruses) 6.1.2.2 Virus de Archivos Ejecutables 6.1.2.3 Virus Residentes en Memoria (Terminate and Stay Resident - TSR) 6.1.2.4 Virus Polimórfico 6.1.2.5 Virus de Macro 6.2 Gusanos 6.2.1 Introducción 6.2.2 Descripción 6.3 Troyanos y Spyware 6.3.1 Introducción 6.3.2 Descripción 6.4 Rootkits y Backdoors 6.4.1 Introducción 6.4.2 Descripción 6.5 Bombas Lógicas y Bombas de Tiempo 6.5.1 Introducción 6.5.2 Descripción 6.6 Contramedidas 6.6.1 Introducción 6.6.2 Anti-Virus 6.6.3 NIDS (Sistemas de detección de intrusiones de red) 6.6.4 HIDS (Sistemas de detección de intrusiones de host) 6.6.5 Firewalls (Cortafuegos) 6.6.6 Sandboxes (Cajas de arena) 6.7 Sanos Consejos de Seguridad
Lección 7: Attack Analysis 7.0 Introducción 7.1 Netstat y Cortafuegos –firewall - de aplicaciones de hospedaje 7.1.1 Netstat 7.1.2 Cortafuegos (Firewalls) 7.1.3 Ejercicios 7.2 Analizadores de paquetes 7.2.1 Analizando 7.2.2 Decodificando el tráfico de red 7.2.3 Analizando otras computadoras 7.2.4 Sistemas de Detección de Intrusos –IDS por sus siglas en inglés 7.2.5 Ejercicios 7.3 Redes y Sistemas Tipo Señuelo (Honeypots y Honeynets) 7.3.1 Tipos de Sistemas Tipo Señuelo 7.3.2 Construyendo un Sistema Tipo Señuelo 7.3.3 Ejercicios
5
ÍNDICE Y GLOSARIO
Lección 8: Digital Forensics 8.1. Introducción 8.2. Principios del Forensics 8.2.1. Introducción 8.2.2. Evita la contaminación 8.2.3. Actúa metódicamente 8.2.4. Cadena de Evidencias 8.2.5. Conclusiones 8.3. Análisis forense individualizado 8.3.1. Introducción 8.3.2. Fundamentos sobre discos duros y medios de almacenaje 8.3.3. Encriptación, Desencriptación y Formatos de Ficheros 8.3.4 Buscando una aguja en un pajar 8.3.4.1 Find 8.3.4.2 Grep 8.3.4.3 Strings 8.3.4.4 Awk 8.3.4.5 El pipe “|” 8.3.5 Haciendo uso de otras fuentes 8.4 Network Forensics 8.4.0 Introducción 8.4.1 Firewall Logs 8.4.2 La cabecera de los mails 8.5 Lecturas de interés
Lección 9: Seguridad del Correo Electrónico (E-Mail) 9.0 Introducción 9.1 ¿Cómo funciona el correo electrónico? 9.1.1 Cuentas de correo electrónico 9.1.2 POP y SMTP 9.1.3 Correo Web 9.2 Utilización segura del Correo Parte 1: Recibiendo 9.2.1 Spam, Phishing y Fraude 9.2.2 Correo HTML 9.2.3 Seguridad en Archivos Anexados 9.2.4 Encabezados Falsos / Forged headers 9.3 Utilización Segura del Correo Parte 2: Enviando 9.3.1 Certificados Digitales 9.3.2 Firmas Digitales 9.3.3 Obteniendo un certificado 9.3.4 Encriptación / Cifrado 9.3.5 ¿Cómo funciona? 9.3.6 Desencriptación 9.3.7 ¿Es el cifrado irrompible? 9.4 Seguridad en las Conexiones
6
ÍNDICE Y GLOSARIO
Lesson 10: Web Security in progress
Lección 11: Passwords 11.1. Introducción 11.2. Tipos de Passwords 11.2.1. Cadenas de caracteres 11.2.2. Cadenas de caracteres más un token 11.2.3. Passwords biométricos 11.3. Historia de las Contraseñas 11.3.1. Ejercicio 1 11.4. Construcción de passwords robustos 11.4.1. Ejercicio 1 11.4.2. Ejercicio 2 11.5. Cifrado de los passwords 11.5.1. Ejercicio 1 11.5.2. Ejercicio 2 11.5.3. Ejercicio 3 11.6. Password Cracking (password Recovery) 11.6.1. Ejercicio 11.7. Protección contra el descifrado de passwords 11.7.1. Ejercicio
Lección 12: Legalidad y Ética en Internet 12.1. Introducción 12.2. Delitos transfronterizos versus Derechos locales 12.3. Delitos relativos a las TIC’s 12.3.1. Delitos relacionados con la pornografía 12.3.2. Descubrimiento y revelación de secretos: Correo Electrónico 12.3.3. Descubrimiento y revelación de secretos: Secretos de Empresa 12.3.4. Delitos relacionados con instrumentos tecnológicos para la manipulación de accesos y/o contenidos 12.3.5. Daños en programas o documentos electrónicos, soportes o sistemas informáticos 12.3.6. Delitos por agresión a la propiedad intelectual 12.4. Prevención de Delitos y Tecnologías de doble uso 12.4.1. Los sistemas globales de vigilancia: el concepto “COMINT” 12.4.2. El sistema “ECHELON” 12.4.3. El sistema “CARNIVORE” 12.4.4. Ejercicio 1 12.4.5. Ejercicio 1 12.5. Hacking Ético 12.5.1. Ejercicio 12.6. Los 10 delitos y fraudes más usuales en Internet 12.6.1. Ejercicio 12.7. Lecturas recomendadas
7
ÍNDICE Y GLOSARIO
Glosario Para mas definiciones de términos computacionales, se puede consultar www.webopedia.com, la cual proporcionó algunas de las definiciones reproducidas aquí. awk – Lenguaje de programación diseñado para el trabajo con cadenas de caracteres. Baudio – bits por segundo, se utilizan para describir la tasa de intercambio de información de una computadora. BIOS – basic input/output system (sistema básico de entrada/salida). Es el software incluído en una computadora que determina lo que puede hacer esta sin acceder a un programa en disco. En las computadoras personales, el BIOS contiene todo el código necesario para controlar la pantalla, teclado, unidades de disco, puertos seriales y diversas funciones adicionales. Típicamente el BIOS se encuentra en una memoria ROM (Memoria de solo acceso) que viene en la placa base. blog (weblogs) – Página web que funciona como diario electrónico para un individuo, y es accesible publicamente. Bombas de tiempo – Código diseñado para ejecutarse en un momento específico en una computadora. Un ejemplo es cuando se llega a la fecha de expiración de un software de prueba. Bombas lógicas – Código diseñado para ejecutarse cuando se cumple una condición o sucede una actividad específica en una red o computadora. Cache – Es un tipo de memoria especial de alta velocidad. Puede ser una sección reservada de la memoria principal o un dispositivo independiente. Existen dos tipos principales de cache: de disco y de memoria. Cliente – Un programa en la computadora local que es utilizado para intercambiar datos con una computadora remota. Ver Servidor. Cluster /unidad de asignación – Grupo de sectores de disco. El sistema operativo asigna un identificador único a cada cluster y mantiene el rastro de los archivos de acuerdo a los clusters que utilizan. Concentrador – Punto común de conexión para dispositivos de red. Generalmente utilizado para conectar equipos en redes locales. Cookie – Es un mensaje proporcionado a un navegador por el servidor web. El navegador guarda el mensaje en un archivo de texto que puede estar cifrado. Este mensaje es enviado de vuelta al servidor cada vez que el cliente solicita una página nueva. Las cookies pueden ser encriptadas en disco. Correo electrónico – Servicio que permite la transmisión de mensajes a través de diversas redes. CRC – Cyclical redundancy check. Prueba de redunancia cíclica. DHCP – Dynamic Host Configuration Protocol. Protocolo de configuración dinámica de host. Digital Subscriber Line (DSL) – Línea de suscripción digital. Es una tecnología que permite la transmisión simultanea de voz y datos a alta velocidad utilizando como medio las líneas telefónicas tradicionales.
8
ÍNDICE Y GLOSARIO
Dirección IP – Identificador para una computadora en Internet o una red TCP/IP. El formato de una dirección IP es un número de 32 bits, escrito como cuatro números separados por puntos. Cada número puede ir desde cero hasta 255. Dirección MAC (Media Access Control) – Dirección de hardware única que identifica a cada nodo de una red. DNS – Domain Name Server. Servidor de nombres de dominio. Domain Name Server (DNS) – Es un servicio que traduce los nombres de dominio a direcciones IP. DSL – Digital Subscriber Line. Dynamic Host Configuration Protocol (DHCP) – Ver DHCP. Ethereal – Analizador de protocolos que registra el tráfico que circula por la red a la que se encuentra conectado. Ethernet – Arquitectura de LAN desarrollada por Xerox Corporation en conjunto con DEC e Intel en 1976. Es uno de los estándares de LAN ampliamente implementados. Filtrado (puertos) – puertos abiertos en un host, para los cuáles un firewall examina la cabecera de un paquete y determina si dejará o no pasar el paquete. (ver puertos abiertos). Firewall – Sistema designado para prevenir el acceso no autorizado de una red a otra. Los firewalls pueden ser implementados a través de hardware, software o una combinación de ambos. Firma de archivo – Es una pequeña cabecera de 6 bytes al inicio de un archivo, que identifica que tipo de archivo es. Foro – Grupo de discusión en línea. Los servicios en línea y servicios de boletines (BBS´s) proveen una variedad de foros que los participantes pueden intercambiar mensajes de acuerdo a intereses comúnes. FTP – File transfer protocol. Protocolo de transferencia de archivos. FTP Anónimo – Método por el cual, los archivos en una computadora son puestos a disposición del público general para su descarga. GCHQ – Government Communications Headquarters, oficinas de comunicaciones de gobierno. Es una organización relacionada con la seguridad e inteligencia en el Reino Unido. Grupo de noticias – Newsgroups. Es lo mismo que un foro, un grupo de discusión en línea. grep – Acrónimo de global-regular-expression-print. Es una utilería de UNIX que permite al usuario realizar búsquedas de cadenas de caracteres en uno o mas archivos. La salida de la herramienta consta de las líneas donde aparece la cadena buscada. Gusano – Worm. Programa que se reproduce a si mismo en una red de computadoras, y generalmente realiza acciones maliciosas como el uso de recursos, pueden incluso llegar a dar de baja el sistema. HIDS – Acrónimo de host intrusion detection system. Sistema de detección de intrusos basado en host. Honeypot – Equipo conectado al Internet, que actúa como un señuelo para atraer intrusos y así poder estudiar sus actividades, además de monitorear el proceso de intrusión a un sistema. Http – Hypertext transfer protocol.
9
ÍNDICE Y GLOSARIO
Hypertexto – Método de organizar y presentar datos, de manera que sea fácil al usuario el movimiento entre elementos relacionados. Hypertext transfer protocol (http) – El protocolo utilizado por el World Wide Web. HTTP define el formato y transmisión de mensajes. También define las acciones que pueden tomar los navegadores en respuesta a diversos comandos. IANA – Internet Assigned Numbers Authority. ICMP – Internet Control Message Protocol. IM – Instant messaging. Instant messaging (IM) – Mensajería instantanea. Es un servicio de comunicación que permite crear una plática privada con otro individuo, en tiempo real, a través del Internet. Interfaces – Límites entre el cual dos sistemas independientes se comunican entre ellos. Internet Assigned Numbers Authority (IANA) – Organización de trabajo auspiciada por la Internet Architecture Board (IAB). Es responsible de asignar direcciones IP en Internet. Internet Control Message Protocol (ICMP) – Extensión del IP (Internet Protocol) definido en el RFC 792. ICMP se encarga del envío de mensajes de error, control e información. El comando PING es un ejemplo del uso de ICMP para probar una conexión. Internet protocol (IP) – IP especifica el formato y direccionamiento de los paquetes. La mayoría de las redescombinan IP con un protocolo de capa superior como TCP (Transmision Control Protocol). TCP establece un circuito virtual entre la fuente y el destino. Internet Relay Chat (IRC) – Servicio que permite la comunicación entre usuarios de internet en tiempo real, basada en texto. IP – Internet protocol. Ingeniería Social – El acto de obtener, o intentar obtener información o datos confidenciales a través del uso de técnicas de engaño, entre otras, con las personas. Ipconfig – Herramienta de Windows para desplegar información de las interfaces activas en la computadora. IRC – Internet Relay Chat. ISP – Internet Service Provider. Ver Proveedor de servicio de Intenet. Lógica Booleana – La lógica booleana es una forma de algebra, en la cual todos los valores se reducen a VERDADERO o FALSO. Esta lógica es importante para las ciencias computacionales, ya que se acomoda perfectamente al sistema numérico binario en el que los posibles valores son 1 y 0. Loopback – Es cuando una computadora se refiere a si misma. La dirección IP de la interface de loopback es un número especial (127.0.0.1). Esta interface es virtual, ya que no existe hardware asociado, ni se encuentra conectada a la red. MAC – Media access control. MD5 hash – Algoritmo utilizado para crear firmas digitales. MD5 es una función de una vía, toma un mensaje de longitud variable y lo convierte en una salida de longitud fija conocido como digestión. Su intención es para utilizarse con máquinas de 32 bits. Es mas seguro que el algoritmo MD4, el cual ya ha sido comprometido.
10
ÍNDICE Y GLOSARIO
Modem – Modulador/Demodulador. Dispositivo que convierte las señales analógicas en señales digitales y viceversa, permitiendo así la comunicación entre computadoras a través de las líneas telefónicas. MS-DOS (Microsoft Disk Operating System) – MS-DOS es un sistema operativo. Permite la comunicación entre los usuarios y el hardware de la computadora. También controla el acceso a los recursos, tales como memoria, dispositivos y uso de procesador. Navegador – Programa que permite a los usuarios conectarse a servidores web para visualizar las páginas almacenadas. netstat – comando que despliega el estado de la red. NIDS – Network intrusion detection system. nmap – programa que realiza un barrido de puertos a una computadora, en busca del estado de estos (abierto, cerrado, filtrado). Nombre de dominio – Nombre que identifica una o mas direcciones IP. Cada nombre de dominio cuenta con un sufijo que indica a que dominio raíz (TLD) pertenece. Existe solo un número limitado de dichos dominios, por ejemplo: .gov – Agencias gubernamentales .edu – Instituciones educacionales .org – Organizaciones (sin ánimo de lucro) .com – Organización comercial .net – Organización de red Dado que Internet se basa en direcciones IP en lugar de nombres de dominio, todos los servidores web requieren un servicio de nombres de dominio (DNS) que traduzca los nombres en direcciones IP. NSA – National Security Agency. Agencia nacional de seguridad de Estados Unidos. Es la organización que coordina, dirige y realiza actividades altamente especializadas para proteger los sistemas de información de Estados Unidos y producir información para la inteligencia. P2P – Punto a punto (peer to peer). Paquete – Es una parte de un mensaje que es transmitido a través de una red de conmutación de paquetes. Punto a punto (P2P) – es un tipo de red en la cual cada estación cuenta con responsabilidades y capacidades equivalentes. Ping – Utilería para determinar si una dirección IP específica es accesible. Su funcionamiento se basa en enviar un paquete ICMP a una dirección IP y esperar una respuesta. POP – Post Office Protocol. Es el protocolo utilizado para extraer el correo electrónico de un servidor de correo. La mayoría de las aplicaciones cliente de correo utilizan el protocolo POP o IMAP. Proveedor de servicio de Internet (ISP) – Compañía que proporciona acceso a internet a los usuarios. POTS – Plain old telephone service.
11
ÍNDICE Y GLOSARIO
ppp – Protocolo punto a punto. Es un método de conectar una computadora al Internet. PPP es mas estable que sus predecesores como SLIP, y además provee de características de control de errores. Privilegios de acceso – El privilegio de utilizar la información de una computadora en alguna forma. Por ejemplo, un usuario puede tener permisos de lectura y acceso a un archivo, significando que puede leer el archivo pero no modificarlo ni eliminarlo. La mayoría de los sistemas operativos cuentan con diferentes dipos de privilegios de acceso que pueden ser establecidos para los usuarios o grupo de estos. Protocolo – Formato establecido entre partes para la transmisión de datos. Protocolo de transferencia de archivos (FTP) – Protocolo utilizado para permitir la descarga de archivos remotamente. Prueba de redundancia cíclica (CRC) – Es una técnica común para detectar errores de transmisión de datos. Los mensajes transmitidos son divididos en longitudes determinadas, que son divisibles entre un número establecido. De acuerdo al cálculo, el número que sobra de esta división se anexa al mensaje al momento de ser enviado. Cuando el mensaje es recibido, la computadora vuelve a calcular el sobrante y compara el recibido con su propio resultado, si los números no son iguales, se detecta un error. Puertas traseras – Forma indocumentada de ganar acceso a un programa, servicio en linea, o todo un sistema computacional. Puerto – Es la interface de una computadora a través de la cual se conecta un dispositivo. Las computadoras personales cuentan con diversos puertos; internamente se utilizan para conectar unidades de disco, pantallas y teclados. Externamente se conectan modems, impresoras, ratones y otros dis´positivos periféricos. Puerto Abierto – puertos que permiten que los paquetes tengan acceso al servicio proporcionado. RAM (Random Access Memory) – Memoria de acceso aleatorio. Es untipo de memoria que puede ser accesada de manera aleatoria, significando que se puede acceder cualquier byte sin la necesidad de tocar los bytes precedentes. Red telefónica conmutada – También conocida como POTS (Plain Old Telephone System). Término utilizado para describir la red telefónica conmutada tradicional. Rompimiento de contraseñas – Es el proceso de intentar determinar una contraseña desconocida. Rootkit – programa malicioso que permite mantener el acceso a un equipo. Ruteador – Dispositivo que reenvia paquetes entre redes. Un router debe conectarse en la frontera de dos redes, comunmente entre dos redes de área local, o una red local y un proveedor de servicios. Los ruteadores utilizan la información del encabezdo de los paquetes y tablas de ruteo para determinar el mejor camino para reenviar un paquete. Entre routers se utilizan diversos protocolos para la comunicación de rutas, y así determinar el mejor camino. Sandbox – Medida de seguridad utilizada en JAVA. Consta de reglas que son utilizadas cuando se crea un applet, y que previene que ciertas funciones sean ejecutadas cuando el applet es enviado como parte de una página web. Script kiddie – Persona que utiliza herramientas de hackeo sin conocer su funcionamiento o propósito. Sector – es la mínima unidad de acceso en un disco.
12
ÍNDICE Y GLOSARIO
Secure Shell – Protocolo diseñado como un reemplazo para Telnet. Utiliza cifrado de datos en la comunicación y permite la ejecución remota de comandos, así como también la transferencia de archivos. Servidor – Programa en una computadora remota que provee datos o un servicio a una computadora cliente. Servidor Web – Computadora donde se almacenan páginas para que puedan ser accesadas por otras computradoras. Servicios – Los servicios de red permiten a computadoras remotas el intercambio de información. Sector de arranque – Es el primer sector de un disco duro, donde se encuentra un pequeño programa que se ejecuta cuando se enciende una computadora. Este programa es registro maestro de arranque (MBR – Master Boot Record). Sistema de detección de intrusos en red (NIDS) – Network intrusion detection system. Es un sistema de detección de intrusos en el cual cada paquete que atraviesa la red es analizado. Sistema operativo – El programa de bajo nivel que se ejecuta en una computadora. Cada computadora de propósito general debe tener un sistema operativo para ejecutar otros programas. El sistema operativo proporciona las tareas básicas de bajo nivel como: reconocel el teclado, enviar las salidas al monitor, mantener un control sobre los archivos y directorios del sistema, y controlar los dispositivos de entrada y salida. Algunos sistemas operativos son Windows, Unix y Linux. SMTP – Simple Mail Transfer Protocol. Protocolo para el envío de correo electrónico entre servidores. La mayor parte de los sistemas de correo electrónico envían utilizan SMTP en Internet. Sniffer – También conocido como analizador de protocolos. Es un programa o dispositivo que monitorea los datos que viajan a través de una red. Spyware – Software que obtiene información del usuario, sin el conocimiento de este, y lo envía a través de la conexión a Internet. SSH – Secure Shell. Switch – En el ámbito de las redes, dispositivo que filtra y reenvia paquetes entre segmentos de una red local. Tabla de ruteo – Es la tabla donde se almacenan los caminos disponibles para realizar el proceso de ruteo. TCP – Transmission Control Protocol. Protocolo de control de transmisión. Permite establecer una conexión entre dos equipos, y realizar un intercambio de flujos de datos. TCP garantiza la recepción de los datos en el orden en que son enviados. TCP/IP – Transmission Control Protocol/Internet Protocol. El conjunto de protocolos utilizados para la comunicación en algunas redes locales e Internet. Tcpdump – analizador de protocolos que registra el tráfico que circula por la red. Telnet – Protocolo que permite a un usuario establecer una sesión remota que permite el uso de recursos y ejecución de comandos. Topología – La estructura de una red de área local (LAN) o un sistema de comunicaciones.
13
ÍNDICE Y GLOSARIO
Tracert – Utilería que realiza el trazado de un paquete desde un equipo hacia otro, desplegando el número de saltos del paquete, el tiempo que tarda en cada salto, y el nombre o dirección de cada nodo. Track – Parte de un disco donde se pueden almacenar datos. Un disco flexible cuenta con 80 (doble densidad)) o 160 (alta densidad) tracks. Para los discos duros, cada plato se divide en tracks; una posición de track en todos los platos (por ambos lados) se llama cilindro. Un disco duro cuenta con miles de cilindros. Troyano – Programa destructivo que se oculta como una aplicación legítima. A diferencia de los virus y gusanos, los troyanos no se replican pero pueden llegar a ser igual de destructivos. Weblogs (blogs) – Ver blog. Whois – Utilería de internet que permite consultar la información referente a un dominio de Internet o una dirección IP. World Wide Web (www)– Servicio para la presentación y transmisión de hypertexto. Zine – Pequeña publicación gratuita, producida generalmente por periodistas novatos o aficionados.
14
LECCIÓN 1 SER UN HACKER
LECCIÓN 1 – SER UN HACKER
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a esponsorizarlo a través de de la compra de una licencia, una donación o una esponsorización. All works copyright ISECOM, 2004.
2
LECCIÓN 1 – SER UN HACKER
Índice
“License for Use” Information............................................................................................................... 2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................4 1.1. Introducción......................................................................................................................................5 1.2. Recursos ............................................................................................................................................6 1.2.1 Libros............................................................................................................................................6 1.2.2 Magazines y Periódicos.............................................................................................................7 1.2.2.1. Ejercicios............................................................................................................................7 1.2.3 Zines y Blogs................................................................................................................................7 1.2.3.1. Ejercicios............................................................................................................................7 1.2.4 Forums y Listas de Correo..........................................................................................................7 1.2.4.1. Ejercicios............................................................................................................................8 1.2.5 Grupos de Notícias....................................................................................................................8 1.2.5.1. Ejercicios............................................................................................................................8 1.2.6 Páginas Web.............................................................................................................................. 9 1.2.6.1. Ejercicios............................................................................................................................9 1.2.7 Chat...........................................................................................................................................11 1.2.7.1. Ejercicios..........................................................................................................................11 1.2.8 P2P............................................................................................................................................. 11 1.3. Más lecciones.................................................................................................................................12
3
LECCIÓN 1 – SER UN HACKER
Contribuciones Pete Herzog, ISECOM Chuck Truett, ISECOM Jaume Abella, La Salle URL Barcelona – ISECOM Marta Barceló, ISECOM
4
LECCIÓN 1 – SER UN HACKER
1.1. Introducción Bienvenido al programa Hacker Highschool! Este programa está diseñado para animarte a estar al día y valerte por tí mismo. El tema principal de instrucción es satisfacer la curiosidad hacker que hay en tí y guiarte progresivamente a través de una educación hacker para ayudarte a crecer en un rol responsable capaz de determinar los problemas de seguridad y privacidad y ayudarte a tomar decisiones sobre seguridad por tí mismo. El hacking puede ser emocionante debido en parte a la naturaleza ilegal del acceso a los ordenadores. Nosotros pretendemos enseñarte que puede llegar a ser incluso más emocionante el hecho de alertar a otros sobre problemas de seguridad y hacerlos públicos sin preocuparse de ir a la carcel por ello. Como un ciudadano, en muchos países no es sólo tu derecho sino también tu responsabilidad avisar de fallos de seguridad y privacidad a las autoridades convenientes. De este modo estás ayudando a aquellos que no pueden valerse por sí mismos. Esto es lo que hacen los perros guardianes. Es lo que tú vas a aprender a hacer.
5
LECCIÓN 1 – SER UN HACKER
1.2. Recursos Esta lección trata del modo de aprender las cosas. Es un tópico extraño para un hacker, pero es lo más importante. Hacking, en realidad, es un proceso creativo basado en experiencias aprendidas en muchos campos. Enseñar hacking es más o menos como enseñar unos buenos hábitos alimentarios: podemos ayudarte a reconocer aquello que debes aprender y no enseñartelo directamente. Esto es especialmente importante debido a los constantes avances en el mundo de los ordenadores. Lo que hoy enseñamos, mañana puede ya no ser importante. Es mucho mejor enseñar al estudiante hábitos de aprendizaje hacker, que son la parte principal del hacking, y es lo que te diferenciará de un script kiddie (una persona que utiliza herramientas de hacking sin tener ningún conocimiento sobre su funcionamiento). Las palabras o conceptos que tú no entiendas de este manual requerirán la consulta en la web o en una biblioteca. Si tú no entiendes una palabra, o un concepto, es esencial que intentes averiguarlo por tus propios medios. Ignorar esto te hará más difícil entender conceptos que puedas leer en otros manuales. Otros manuales te proporcionarán únicamente enlaces o conceptos que tendrás que comprender por tí mismo para poder responder a las cuestiones que se plantean. Este manual te enseña a valerte por tí mismo, a investigar y a aprovechar todos los recursos que estén a tu alcance. Este es el único punto en el que te proporcionaremos información muy detallada de cómo hacer las cosas. A partir de aquí deberás valerte por tí mismo, así que asegúrate de dedicarle a este capítulo tanto tiempo como sea necesario para aprender a investigar, utilizando todos los recursos que tengas a tu alcance.
1.2.1 Libros Los libros son una buena forma de aprender la base de todas las ciencias que tu estás deseando explorar. ¿Quieres conocer algo de un campo de la ciencia en detalle, como los detalles del hardware de tu PC en profundidad? Nada te ayudará más que leer un buen libro que trate sobre ese tema. El principal problema es que los libros sobre ordenadores se quedan anticuados muy rápidamente. Debido a esto, no es recomendable leer sobre asuntos que no sean fundamentales. Por ejemplo, aunque a lo largo de los años muchas cosas relacionadas con la seguridad y la privacidad han cambiado, la base sigue siendo la misma. El Arte de la Guerra, el libro de estrategia Sun Tzu, tiene más de 2500 años, pero aún hoy en día es aplicable. No te limites únicamente a los ordenadores, el hacking y Internet. Los grandes hackers son muy creativos. Muchos de ellos son pintores, escritores y diseñadores. Los hackers pueden ser lo que en el campo de las ciencias políticas es El Príncipe de Maquiavelo. Además de interesarte en otros campos, deberías interesarte tambíen en cómo funcionan las cosas. Leer libros de todo, desde Psicología a Ciencia Ficción te hará ser un hacker más versátil y funcional. Recuerda: hacking es imaginarse como funcionan las cosas sin preocuparse de cómo se diseñaron. De este modo podrás identificar problemas de seguridad y vulnerabilidades. ¿Dónde puedes encontrar libros? En todas partes. No es necesario crear una biblioteca propia, pero seguramente querrás anotar cosas en las páginas, y eso es algo que sólo puedes hacer en tus libros. Finalmente, si comienzas un libro, no lo dejes a medias sólo por su tamaño o complejidad. Muchas veces no te será necesario leer los libros de principio a fin. Puedes abrir un libro y comenzar a leer a partir de un punto aleatorio. A menudo, eso te hará retroceder a capítulos anteriores. La lectura no lineal es mucho más interesante y satisfactoria para los hackers, ya que se trata de satisfacer la curiosidad más que “leer”.
6
LECCIÓN 1 – SER UN HACKER
1.2.2 Magazines y Periódicos La utilización de magazines y periódicos es altamente recomendable para tener información concisa y actualizada. No obstante, los magazines a menudo no proporcionan demasiados detalles y se centran demasiado en la comunidad. Esto puede causar información poco precisa creada por la prensa sensacionalista. Obviamente esto se hace para vender más subscripciones. Incluso los magazines gratuitos necesitan subscritores para vender más publicidad. Otro inconveniente que se debería considerar es el tema que trata el magazine. Un magazine sober Linux intentará desprestigiar a Microsoft Windows porque existe un conflicto entre ellos y es lo que los lectores de Linux esperan leer. Es importante leer entre líneas y no dejarse influenciar por un punto de vista hasta haber consultado las dos versiones. 1.2.2.1. Ejercicios a. Busca en la Web 3 magazines relacionados con Seguridad. b. ¿Cómo los has encontrado? c. ¿Los tres magazines están relacionados con la seguridad informática?
1.2.3 Zines y Blogs Los Zines son magazines pequeños, a menudo gratuítos, y que tienen muy poca distribución (casi siempre menos de 10.000 lectores). A menudo están producidos por aficionados y periodistas amateur. Algunos Zines, como el famoso 2600 o el Phrack están escritos por voluntarios que no editan el contenido por errores no técnicos. Esto significa que el lenguaje puede ser rudo para aquellos que esperan esa lectura. Los Zines tratan temas muy fuertes y son muy opinados. De todos modos, casi siempre intentan mostrar y discutir las ideas desde varios puntos de vista ya que no les acostumbra a preocupar el problema de los anuncios y los subscritores. Los Blogs son la modernización de los Zines. Los Blogs se actualizan más a menudo y son utilizados por las comunidades para discutir temas fuertes. Del mismo modo que los zines, de todos modos, cualquiera puede criticar una historia y mostrar una opinión opuesta. En el caso de los Blogs es tan importante leer los comentarios como la propia historia. 1.2.3.1. Ejercicios a. Busca en la Web 3 zines relacionados con la seguridad informática. b. ¿Cómo has encontrado esos zines? c. ¿Por qué los clasificas como zines? Recuerda, sólo porque se etiqueten como “zine” no necesariamente significa que lo sean.
1.2.4 Forums y Listas de Correo Los Forums y las Listas de Correo son comunidades de desarrollo que se centran en muchos temas, a menudo conflictivos. Estos medios contienen información que la gente puede enviar anónimamente y a veces puede no contener “toda la verdad”. Como los Blogs, es
7
LECCIÓN 1 – SER UN HACKER
importante leer todas las respuestas y los comentarios, y no quedarse únicamente con el primero para conseguir la mejor información. Puedes encontrar forums que traten prácticamente todos los temas, y muchos magazines y periódicos online ofrecen forums a sus lectores para tener un feedback de los artículos. Para este caso, los forums son inestimables para conseguir más de una opinión sobre un artículo, sin que tenga importancia si te ha gustado el artículo o no. Muchas listas de correo que tratan temas muy específicos son difíciles de encontrar. A menudo, debes buscar en profundidad sobre una idea hasta encontrar alguna comunidad que ofrezca una lista de correo que trate sobre esa temática. Lo más imporante es ser consciente que existen muchos forums y listas de correo que no pueden encontrarse mediante los grandes motores de búsqueda de Internet. Puedes encontrar información sobre una lista de correo a través de una búsqueda en un buscador de Internet, pero difícilmente encontrarás información sobre posts individuales. Esta información se llama “la web invisible”, ya que contiene información y datos que no son visibles a la mayoria de gente ya que es necesario realizar búsquedas muy específicas, a menudo mediante buscadores de meta información o directamente a traves de las páginas web apropiadas.
1.2.4.1. Ejercicios a. Busca 3 forums de seguridad informática. b. ¿Cómo has encontrado esos forums? c. ¿Puedes determinar el tema principal que trata el sitio web? d. ¿Los tópicos que has encontrado reflejan la temática que muestra el sitio web que los alberga? e. Busca 3 listas de correo de seguridad informática. f.
¿Quién es el “propietario” de las listas?
g. ¿En qué lista esperarías encontrar información más objetiva y menos subjetiva? ¿Por qué?
1.2.5 Grupos de Notícias Los grupos de notícias llevan mucho tiempo funcionando. Existían grupos de notícias antes de que existiera la Web. Google compró un archivo entero de noticias y lo puso en la web http://groups.google.com. Puedes encontrar información enviada desde principios de los ’90. Este archivo es muy importante para encontrar quien es el propietario real de una idea o producto. También es importante para encontrar información oscura que tal vez alguien puso en alguna web en algun momento. Los grupos de notícias no se usan menos ahora de lo que se hacía hace años, antes de que la web se convirtiera en el primer mecanismo para compartir información. Aun así, los grupos de notícias no han crecido demasiado, ya que su popularidad ha sido reemplazada por otros nuevos servicios web como los blogs y los forums. 1.2.5.1. Ejercicios
8
LECCIÓN 1 – SER UN HACKER
a. Usando el Google Groups, encuentra el grupo de notícias más antiguo que envió notícias sobre seguridad. b. Busca otras formas de utilizar los grupos de notícias. ¿Existe alguna aplicación que se pueda utilizar para leer grupos de notícias? c. ¿Cuántos grupos de notícias puedes encontrar que hablen sobre hacking?
1.2.6 Páginas Web El estándar de facto para compartir información actualmente es a través de un navegador web. Mientras esto se clasifica como “la web”, el termino real debería ser “servicios web” ya que no todo lo que hay en la web son sitios web. Si tú compruebas tu e-mail utilizando un servidor web, estás utilizando un servicio web. A menudo, los servicios web requieren privilegios. Esto significa que necesitas un login y un password para tener acceso. Tener acceso y el derecho legal a acceder se conoce como tener privilegios. Acceder a un sitio web que te permita cambiar una página web puede darte acceso, pero como no tienes derecho legal para hacerlo, eso no sería un acceso privilegiado. A menudo nos preocupa el hecho de tener acceso o no a un recurso web, pero hay que tener en cuenta que es posible que accidentalmente algunos sitios web permitan acceso a areas privilegiadas. Si encuentras uno de estos sitios, deberías tener el hábito de escribir al propietario del sitio web y hacérselo saber. Los sitios web pueden ser escudriñados con un gran número de buscadores de Internet. Incluso es posible hacer tu propio motor de búsqueda, si tienes suficiente tiempo y espacio de disco. A veces, los propios buscadores consiguen acceso a sitios privilegiados y buscan la información por tí. A veces es en forma de caché. Muchos motores de búsqueda tienen un link a la caché para buscar las páginas web en la memoria local de la compañía para acelerar el proceso de búsqueda. Es posible encontrar resultados de búsqueda en la caché de los buscadores que ya no sean válidos. Una de las caches públicas más útiles es http://www.archive.org. Allí podrás encontrar versiones guardadas de sitios web enteros de hace años. Una nota final sobre los sitios web: no supongas que puedes confiar en las páginas web que visites tan sólo porque aparezcan en un buscador. Muchos ataques hacker y virus se esparcen tan sólo por el hecho de visitar una página web o descargar un programa y ejecutarlo. Puedes protegerte a tí mismo no descargando nunca programas de fuentes que no ofrezcan confianza y asegurándote de que tu navegador está actualizado por lo que respecta a parches de seguridad. 1.2.6.1. Ejercicios a. Utilizando un buscador, encuentra sitios que hayan proporcionado acceso a todo el mundo accidentalmente. Para hacerlo, buscaremos listados de directorios accesibles cuando no te conectas a una página correcta. Por ejemplo escribiendo lo siguiente en el diálogo de búsqueda del buscador: allintitle: "index of" .pdf b. De los resultados obtenidos, visita alguna de las direcciones listadas y deberías acceder al contenido de todo el directorio. Este tipo de búsqueda se llama Google Hacking.
9
LECCIÓN 1 – SER UN HACKER
c. ¿Puedes encontrar tipos de documentos de este modo utilizando Google? Busca 3 listados de directorios que contengan archivos del tipo .xls y .avi. d. Existen muchos buscadores a parte de google. Un buen hacker sabe cómo y cuando utilizarlos todos. Algunos sitios web se especializan en monitorizar motores de búsqueda como www.searchengine.com. Incluso existe un buscador para “la web invisible”. Busca 10 buscadores que no sean buscadores de meta información. e. Busca “security testing and ethical hacking” y lista las 3 primeras respuestas. f.
Busca exactamente lo mismo pero sin las comillas. ¿Son diferentes los resultados?
g. Es muy diferente buscar una palabra clave que toda una frase. En el ejercicio D, se ha buscado una frase entera. Ahora, buscamos una o varias palablras clave. Para esto es necesario saber exactamente qué estamos buscando y cómo buscarlo. Cuando se busca una canción, por ejemplo, es más probable encontrar lo que se busca cuando se indica el nombre de la canción y tambien el grupo. Una buena combinación podria ser: “I am the walrus” +the beatles De todos modos, ¿Qué pasa si sabes como es la canción, pero no sabes exactamente el título o el grupo que la canta? Ahora, tu búsqueda es similar a la búsqueda por un concepto o idea. Si puedes cantar un trocito de la canción, o tararearla, tal vez encuentres algún patrón que te sirva para volver a intentar la búsqueda. Se me queda pegada una canción en la cabeza que se repite una y otra vez, “you take my self you take my self control”. Para buscar esto, si no utilizo las comillas, el buscador encontrará las palabras aunque no esten en el mismo orden. Utilizando las comillas y buscando “self control”, en cambio, la búsqueda sería mucho más exacta. Ahora yo tengo una idea en mi cabeza. Quiero recopilar recursos de magazines sobre hacking ético. Si escribo “online resource of magazines for ethical hacking” sin las comillas en un buscador, encontraré resultados que contengan algunas de éstas palabras, lo cual no es tan útil como lo que estoy buscando. Así que, en lugar de eso, necesito pensar, si yo tuviese que hacer ese recurso, qué información contendría, de modo que pueda comenzar por ahí mi búsqueda. Busca lo siguiente en tu buscador y determina cuáles proporcionan mejores resultados para esta búsqueda:
my favorite list of magazines on ethical hacking
list of ethical hacking magazines
resources for ethical hackers
ethical hacking magazine
magazines ethical hacking security list resource h. Busca el sitio web más antiguo del navegador Mozilla en el Internet Archive. Deberás buscar www.mozilla.org en http://www.archive.org. Intenta localizar cómo bajarte la versión 1 (pero no la instales).
10
LECCIÓN 1 – SER UN HACKER
1.2.7 Chat El Chat tambien se conoce como Internet Relay Chat (IRC) y es un sistema de mensajería instantánea (IM) muy popular y que ofrece una forma muy rápida de establecer comunicación en tiempo real, para preguntar y encontrar información. Como fuente de información, el Chat es una opción que implica preguntar a la gente, y no siempre es fácil encontrar gente dispuesta a colaborar. De todos modos, una vez uno se siente confortable con un cierto grupo de usuarios y canales, puedes ser aceptado en una comunidad y se te permitirá preguntar mas cosas. Eventualmente, tendrás la oportunidad de compartir información de seguridad muy reciente (conocida como zero day o dia cero, lo que significa que acaba de ser descubierta), lo que te permitirá ampliar tu conocimiento. Hay que tener en cuenta que a veces se obtiene información falsa. Es necesario adquirir suficiente experiencia para distinguir información cierta de la que no lo es.
1.2.7.1. Ejercicios a. Busca 3 programas de Chat. ¿Qué los hace diferentes? ¿Se pueden usar entre ellos para hablar? b. Busca qué es IRC y como puedes conectarte. Una vez seas capaz, entra en el Chat Room de ISECOM que encontrarás en http://www.isecom.org. c. ¿Cómo puedes saber qué canales existen en un IRC? Busca tres canales de seguridad informática y 3 canales hacker. ¿Puedes entrar en estos canales?¿Hay gente hablando, o son “bots”?
1.2.8 P2P Las redes Peer to Peer, también conocidas como P2P, son redes que están dentro de Internet. Existe una gran variedad de clientes P2P que permiten descargar música en mp3. De forma más amplia, estos programas permiten compartir todo tipo de información de forma distribuida. Puedes encontrar más información en http://www.infoanarchy.org. Aquí podrás encontrar un listado de redes P2P y clientes. Las redes P2P son de vital importancia para encontrar información. Es posible que parte de la información que encuentres mediante este método sea robada. Debes ir con cuidado cuando utilices las redes P2P, pero no debe darte miedo utilizarlas.
11
LECCIÓN 1 – SER UN HACKER
1.3. Más lecciones Ahora deberías practicar para adquirir práctica con las técnicas de búsqueda de información. Cuanto mejor lo hagas, más información encontrarás, y de forma más rápida. Algunos temas relacionados que te pueden ayudar a adquirir más experiencia para el programa Hacker Highschool son:
Meta Search
The Invisible Web
Google Hacking
How Search Engines Work
The Open Source Search Engine
12
LECCIÓN 2 NOCIONES DE COMANDOS DE WINDOWS Y LINUX
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a esponsorizarlo a través de la compra de una licencia, una donación o una esponsorización. All works copyright ISECOM, 2004.
2
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
Índice
“License for Use” Information................................................................................................................2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................ 4 2.1. Objetivos............................................................................................................................................5 2.2. Requerimientos y escenario............................................................................................................6 2.2.1 Requerimientos...........................................................................................................................6 2.2.2 Escenario.....................................................................................................................................6 2.3. Sistema Operativo: WINDOWS........................................................................................................7 2.3.1 ¿Cómo abrir una ventana de MS-Dos?..................................................................................7 2.4. Sistema operativo: LINUX...............................................................................................................12 2.4.1 ¿Cómo abrir una ventana de consola?...............................................................................12 2.4.2 Comandos básicos..................................................................................................................13 2.4.3 Herramientas de red................................................................................................................15 2.5. Ejercicios Prácticos.........................................................................................................................17 2.5.1 Ejercicio 1..................................................................................................................................17 2.5.2 Ejercicio 2..................................................................................................................................17 2.5.3 Ejercicio 3..................................................................................................................................18 Glosario...................................................................................................................................................19
3
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
Contribuciones Daniel Fernández Bleda, Internet Security Auditors Jairo Hernández, La Salle URL Barcelona Jaume Abella, La Salle URL Barcelona - ISECOM Kim Truett, ISECOM Pete Herzog, ISECOM Marta Barceló, ISECOM
4
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
2.1. Objetivos En esta lección introductoria se pretende dar a conocer los comandos básicos de Windows y de Linux, para que el alumno se familiarice con ellos y que le servirán para resolver los problemas planteados en el resto de lecciones. Al término de la lección el alumno tendrá conocimientos de los comandos:
generales de Windows y Linux.
básicos sobre redes: - ping - tracert - netstat - ipconfig - route
5
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
2.2. Requerimientos y escenario 2.2.1 Requerimientos Para la presente lección se necesitará: - Un PC con Windows 98/Me/2000/NT/XP/2003. - Un PC con Linux Suse/Debian/Knoppix… - Acceso a Internet.
2.2.2 Escenario
Este es el escenario en el que se va a trabajar. Consta de la propia red de ordenadores donde trabajará el alumno, con acceso a Internet, y de la red de servidores de ISECOM destinada al programa Hacker Highschool (HHS), a la cual se accede a través de Internet. Esta es la red contra la que se van a realizar la mayoría de las pruebas. Debemos tener presente que el acceso a la red de pruebas de ISECOM está restringido, y que es necesario solicitar acceso a ella mediante el proceso de inscripción en el programa: www.hackerhighschool.org.
6
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
2.3. Sistema Operativo: WINDOWS Para la mayoría de herramientas referentes al estudio de redes, se utilizan los propios comandos del sistema operativo windows. Es por ello que se va a explicar cómo abrir una ventana de comandos si se está utilizando Windows como sistema operativo.
2.3.1 ¿Cómo abrir una ventana de MS-Dos? Para acceder a editar los siguientes comandos, se debe abrir una ventana de comandos. El procedimiento será el mismo para cualquier Windows que se tenga: 1.- Ir al botón de Inicio.
2.- Escoger la opción Ejecutar.
3.- Escribir “command” si se está utilizando Windows 95/98 o bien “cmd” para el resto de Windows, y pulsar Aceptar.
4.- Aparecerá una ventana similar a la siguiente:
7
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
5.- Ahora ya se pueden probar los comandos y herramientas que se listan a continuación.
2.3.2 Comandos básicos Date Time Ver Dir Cls mkdir <directorio> md <directorio> chdir <directorio> cd <directorio>
Muestra o establece la fecha del sistema Muestra o establece la hora del sistema Muestra la versión de MS-DOS que se está utilizando Muestra la lista de subdirectorios y ficheros de un directorio o carpeta Borra la pantalla Crea un directorio o carpeta. Por ejemplo:
md utilidades Muestra el nombre o cambia el directorio actual . Por ejemplo:
cd utilidades Rmdir <directorio> rd <directorio> tree <ruta>
Borra un directorio o carpeta. Por ejemplo:
rd utilidades Muestra de forma gráfica-texto la estructura de carpetas de una unidad o ruta. Por ejemplo:
tree c:\utilidades Chkdsk Mem rename <origen> <destino> Ren <origen> <destino>
Comprueba un disco y muestra un informe de estado Muestra la cantidad de memoria usada y libre en el sistema Cambia el nombre de uno o más ficheros. Por ejemplo:
ren nombreantiguo nombrenuevo
8
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
copy <origen> <destino>
Copia uno o más ficheros en otra localización. Por ejemplo:
copy c:\util\fichero.txt c:\temporal move <origen> <destino>
Cambia el nombre a ficheros y directorios. Por ejemplo:
move c:\herramientas type <fichero>
c:\utilidades
Muestra el contenido de un fichero de texto. Por ejemplo:
c:\utilidades\mifichero.txt More <fichero>
type
Muestra la información pantalla a pantalla. Por ejemplo:
More c:\utilidades\mifichero.txt delete <fichero>
Elimina uno o más ficheros. Por ejemplo:
del <fichero> del c:\utilidades\mifichero.txt Nota: Las palabras entre corchetes < > no son comandos, sino que deben substituirse por los valores deseados. Hay comandos que pueden emplearse utilizando su forma larga o corta, por ejemplo, “delete” y “del” son el mismo comando.
2.3.3. Herramientas de red ping <máquina>
El comando ping permite enviar “sondas” ICMP (Internet Control Message Protocol) a otra computadora, con el objetivo de saber si ésta es alcanzable a través de la red. Además muestra un resumen estadístico acerca del porcentaje de sondas que no han tenido respuesta y del tiempo de respuesta. Se puede utilizar el nombre de la máquina o directamente su dirección IP en Internet. Por ejemplo: ping www.google.com
ping 193.145.85.2 Algunas opciones son: -n <N> : envía N paquetes -t : envía de manera indefinida los paquetes. Para cancelar ésta y otras opciones: CTRL+C. Para ver más opciones: ping
/h
9
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
tracert <máquina>
El comando tracert es la abreviatura de trace route, el cual nos permite saber la ruta que siguen los paquetes desde el origen, es decir, nuestra máquina, hasta la máquina destino. También se pueden visualizar los tiempos de cada salto. Como máximo, se listarán 30 saltos. Es interesante observar que se obtienen los nombres de las máquinas por las cuales viajan los paquetes. Por ejemplo: tracert www.google.com
tracert 193.145.85.2 Algunas opciones: -h <N> : para especificar N saltos como máximo. -d : no muestra en nombre de las máquinas. ipconfig
Para ver más opciones: tracert El comando ipconfig muestra información sobre las interfaces de red activas en el ordenador. Por ejemplo:
ipconfig Algunas opciones: /all : muestra más detalles /renew : activa las direcciones IP del adaptador cuando se usa configuración automática con DHCP. /release : desactiva las direcciones IP del adaptador cuando se usa configuración automática con DHCP. route
Para ver más opciones: ipconfig /? El comando route sirve para definir rutas estáticas, borrar rutas o simplemente ver el estado de las rutas. Algunas opciones: Print : muestra la lista de rutas. Delete : borra una ruta. Add : añade una ruta. Por ejemplo:
route print Para ver más opciones:
route /?
10
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
netstat
Muestra gran cantidad de información sobre el estado de la red y conexiones de red establecidas con máquinas remotas. Algunas opciones: -a Muestra todas las conexiones y puertos escucha. -e Muestra estadísticas Ethernet. Por ejemplo:
netstat netstat –an Para ver más opciones:
netstat /?
11
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
2.4. Sistema operativo: LINUX Por el mismo motivo que sobre un Windows se ha necesitado abrir una ventana de MS-Dos, si se utiliza LINUX, la gran mayoría de comandos igualmente se ejecutan desde una ventana que emula como si se estuviera trabajando desde una consola. Es por este motivo que se va a proceder a explicar cómo abrir una ventana de consola en LINUX.
2.4.1 ¿Cómo abrir una ventana de consola? Para acceder a editar los siguientes comandos, se debe abrir una pantalla de consola: 1. - Ir al botón de K
2. - Escoger la opción Run Command:
12
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
3. - Escribir “konsole”.
4. - Debería salir una ventana similar a la siguiente:
5. - Ahora ya se pueden probar los comandos y herramientas que se listan a continuación.
2.4.2 Comandos básicos pwd
Muestra el nombre del directorio actual.
hostname
Muestra el nombre de la máquina local (en la que estamos trabajando) Muestra información sobre el usuario <usuario>
finger <usuario>
Por ejemplo:
finger root Ls
Lista el contenido de directorios Por ejemplo:
ls -la
13
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
cd <directorio>
Cambia al directorio <directorio>. Ejemplo 1: Si nuestro login es “milogin”, el comando $cd cambia al directorio /home/mylogin Ejemplo 2: $cd Cambia al último directorio visitado. Ejemplo 3: $cd /tmp Cambia al directorio “tmp”
cp <origen> <destino>
Copia ficheros. “destino”.
Copia
el
fichero
“origen”
en
Por ejemplo:
cp /etc/passwd /tmp rm <fichero>
Borra ficheros. Sólo el propietario del fichero (o root) puede borrarlo. Por ejemplo:
rm mifichero mv <origen> <destino>
Mueve o renombra ficheros y directorios Por ejemplo:
mv nombreantiguo nombrenuevo mkdir <directorio>
Crea un directorio con nombre “directorio” Por ejemplo:
mkdir midirectorio rmdir <directorio>
Borra el directorio “directorio” si se encuentra vacío Por ejemplo:
rmdir midirectorio man <comando>
Muestra las páginas del manual on-line Por ejemplo:
man ls Nota: Las palabras entre corchetes < > no son comandos, sino que deben sustituirse por los valores deseados.
14
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
2.4.3 Herramientas de red ping <máquina>
El comando ping permite enviar “sondas” ICMP (Internet Control Message Protocol) a otra computadora, con el objetivo de saber si ésta es alcanzable a través de la red. Además muestra un resumen estadístico acerca del porcentaje de sondas que no han tenido respuesta y del tiempo de respuesta. Se puede utilizar el nombre de la máquina o directamente su dirección IP en Internet. Por ejemplo: ping www.google.com
ping 193.145.85.2 Para ver más opciones: traceroute <máquina>
man ping
El comando traceroute indica la ruta que siguen los paquetes desde el origen, es decir, nuestra máquina, hasta la máquina destino llamada <máquina>. Por ejemplo: traceroute www.google.com
Ifconfig
Para ver más opciones: man traceroute El comando ifconfig muestra información sobre las interfaces activas (ethernet, ppp, etc.). Por ejemplo:
ifconfig route
Para ver más opciones: man ifconfig El comando route sirve para definir rutas estáticas, borrar rutas o simplemente ver el estado de las rutas. Algunas opciones: print: muestra la lista de rutas. delete: borra una ruta. add: añade una ruta. Por ejemplo:
route Para ver más opciones:
man route
15
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
netstat
Muestra gran cantidad de información sobre el estado de la red y de las conexiones TCP/IP establecidas. Por ejemplo:
netstat netstat –an Para ver más opciones:
man netstat
16
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
2.5. Ejercicios Prácticos 2.5.1 Ejercicio 1 Para profundizar sobre los conocimientos adquiridos de Windows. a.
Accede a una ventana de MS-DOS
b.
Identifica la versión de MS-DOS que estás utilizando. ¿Qué versión has detectado? ¿Qué comando has utilizado?.
c.
Identifica la fecha y hora del sistema. Comprueba que sean correctas; sino, modifícalas para que lo sean. ¿Qué comandos has utilizado?
d.
Identifica todos los directorios y ficheros que se encuentran en “c:\”. ¿Qué comando has utilizado y cuál ha sido la salida de este comando?
e.
Crea el directorio c:\hhs\tema0. Copia en este directorio todos los ficheros con la extensión .sys que se encuentren en c:\. ¿Qué ficheros has encontrado? ¿Qué comandos has utilizado?
f.
Identifica la dirección IP de tu máquina. ¿Qué comando has utilizado? ¿Qué dirección IP tienes?
g.
Traza la ruta hasta alguna máquina del dominio de ISECOM (Por Ejemplo 193.145.85.201). Identifica las direcciones IPs de los equipos intermedios.
2.5.2 Ejercicio 2 Para profundizar sobre los conocimientos adquiridos de Linux. a.
Identifica el propietario del fichero “/etc/passwd”. ¿Qué comandos has utilizado?
b.
Crea el directorio “trabajo” en nuestro directorio (por ejemplo, si nuestro login es “milogin”, crear el directorio en “/home/milogin”), y copia el fichero “passwd” en el directorio “trabajo” que acabamos de crear. Identifica el propietario del fichero “passwd” que se ha copiado.
c.
Crea el directorio “.oculto” en el directorio “trabajo”. Lista el contenido de nuestro directorio. ¿Cómo podríamos listar el contenido de nuestro directorio de forma que pudiéramos visualizar el directorio “.oculto”?
d. Identifica el nombre y la dirección IP de tu máquina. ¿Qué comandos has utilizado? ¿Qué dirección IP tienes? e.
Recuerda el escenario de la práctica (apartado 0.1.2) y traza la ruta hasta alguna máquina del dominio de ISECOM (Por Ejemplo 193.145.85.202). Identifica las direcciones IP de los equipos intermedios.
17
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
2.5.3 Ejercicio 3 Completa la siguiente tabla con los paralelismos entre Windows y Linux. Por ejemplo: En Linux: comando –help es lo mismo que en Windows comando
/h.
En linux: cp (copiar) es lo mismo que en Windows copy.
comand o -help cp mv more ls cd route Ping
comando /h copy del print deltree md rd tracert ipconfig
18
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
Glosario Dirección IP (IP address): Es la dirección que identifica a cualquier máquina en Internet. El formato son 4 números, con valores entre 0 y 255, separados por puntos. Por ejemplo, 10.160.10.240. Dominio (Domain): Es un nombre que identifica una o más direcciones IP. Por ejemplo, el dominio Microsoft.com representa cerca de una docena de direcciones IP. Los nombres de dominio se usan en URLs para identificar determinadas páginas Web. Por ejemplo, en la URL http://www.pcwebopedia.com/index.html, el nombre de dominio es pcwebopedia.com. Cada nombre de dominio tiene un sufijo que indica a qué nivel de dominio superior (TLD, Top Level Domain) pertenece. Este número de sufijos es limitado. Por ejemplo: -
gov – Agencias gubernamentales
-
edu – Instituciones Educacionales
-
org – Organizaciones (no lucrativas)
-
com – Negocios comerciales
-
net – Organizaciones de Red
-
es – España
-
… etc …
Como Internet está basada en direcciones IP, y no nombres de dominio, cada servidor Web necesita un sistema de nombres de dominio (DNS, Domain Name System) que traduzca los nombres de dominio a direcciones IP. MS-DOS (Microsoft Disk Operating System) El MS-DOS es un sistema operativo. Su objetivo es facilitar la comunicación entre el usuario y el ordenador, y utilizar eficientemente los recursos disponibles, por ejemplo el uso de memoria y CPU. Router (encaminador, direccionador, enrutador) Dispositivo que distribuye tráfico entre redes. Un router está conectado como mínimo a dos redes, generalmente dos LANs (Local Area Network) o WANs (Wide Area Networks) o una LAN y la red del ISP (Internet Service Provider). Los routers se localizan en la pasarela, el lugar donde dos o más redes se conectan. Los routers usan tablas de encaminamiento para determinar el mejor camino donde dirigir los paquetes IP.
19
LECCIÓN 2 – NOCIONES DE COMANDOS DE WINDOWS Y LINUX
Sistema Operativo (Operating System – OS): Un sistema operativo es un programa especial que se ejecuta en un ordenador tras ser encendido y cuya función es gestionar el resto de programas, o aplicaciones, que en él se ejecutarán, como, por ejemplo, un procesador de texto o una hoja de cálculo, o la impresión de un texto en una impresora o una conexión a Internet. El sistema operativo también es responsable de detectar dispositivos hardware y establecer la comunicación entre el usuario y el hardware (teclado, ratón, monitor, etc). Ejemplos de sistemas operativos son: Windows, Linux, UNIX, etc.
20
LECCIÓN 3 PUERTOS Y PROTOCOLOS
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a esponsorizarlo a través de la compra de una licencia, una donación o una esponsorización. All works copyright ISECOM, 2004.
2
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
Índice “License for Use” Information............................................................................................................... 2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................4 3.1. Objetivos............................................................................................................................................5 3.2. Conceptos básicos de redes..........................................................................................................6 3.2.1 Dispositivos..................................................................................................................................6 3.2.2 Topologías...................................................................................................................................6 3.3. Modelo TCP/IP..................................................................................................................................7 3.3.1 Introducción ..............................................................................................................................7 3.3.2 Capas TCP/IP..............................................................................................................................7 3.3.2.1 Aplicación..........................................................................................................................7 3.3.2.2 Transporte...........................................................................................................................7 3.3.2.3 IP..........................................................................................................................................8 3.3.2.4 Acceso a Red....................................................................................................................8 3.3.3 Protocolos...................................................................................................................................8 3.3.3.1 Protocolos de la capa de Aplicación............................................................................9 3.3.3.2 Protocolos de la capa de Transporte............................................................................ 9 3.3.3.3 Protocolos de la capa de Internet.................................................................................9 3.3.4 Direcciones IP.............................................................................................................................9 3.3.5 Puertos.......................................................................................................................................11 3.3.6 Encapsulación..........................................................................................................................13 3.4. Ejercicios..........................................................................................................................................14 3.4.1 Ejercicio 1: Netstat................................................................................................................... 14 3.4.2 Ejercicio 2: Puertos y protocolos.............................................................................................14 3.4.3 Ejercicio 3: Mi primer servidor.................................................................................................15 3.5. Lecturas recomendadas...............................................................................................................16
3
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
Contribuciones Gary Axten, ISECOM La Salle URL Barcelona Kim Truett, ISECOM Chuck Truett, ISECOM Marta Barceló, ISECOM Pete Herzog, ISECOM
4
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
3.1. Objetivos En la presente lección se parte de unos conocimientos básicos sobre Windows y Linux, para luego aplicarlos a los conocimientos sobre qué son y para qué sirven los puertos y protocolos. Al término de la lección el alumno debe tener unos conocimientos básicos sobre: -
Conceptos básicos de redes.
-
Direccionamiento IP.
-
Puertos y Protocolos.
5
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
3.2. Conceptos básicos de redes 3.2.1 Dispositivos Antes de empezar a explicar protocolos y puertos, hay que familiarizarse con los iconos de los dispositivos más comunes que se ven en los esquemas básicos. Éstos son:
3.2.2 Topologías Con estos dispositivos se pueden crear las denominadas redes de área local o LAN (Local Area Network). Con una LAN se puede tener una comunicación eficaz de dispositivos tales como ordenadores e impresoras para compartir recursos, se puede dar acceso a Internet con total control del administrador, etc. A la hora de diseñar una LAN, se puede optar por alguna de las siguientes topologías físicas:
En la primera, topología de Bus, se tienen todos los ordenadores conectados a un único medio de transmisión que a su vez está conectado a unas terminaciones a ambos lados. Todos los ordenadores se ven entre sí. En la configuración en Anillo se conecta un ordenador al siguiente, y el último al primero, de esta manera sólo se ve un ordenador con el contiguo. En la topología en Estrella se conectan todos los terminales a un único punto central y es éste el que se encarga de retransmitir la información. Si se conectan varios puntos centrales entre sí, se obtiene una topología de Estrella Extendida. Por lo contrario, si se van concatenando dispositivos a diferentes niveles se obtiene una topología Jerárquica.
6
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
3.3. Modelo TCP/IP 3.3.1 Introducción El modelo TCP/IP fue desarrollado por el DoD (Department of Defense) de los EUA y DARPA (Defense Advanced Research Project Agency) en la década de los 70. El modelo TCP/IP fue pensado como un estándar abierto para poder conectar dos máquinas cualesquiera, todo el mundo puede utilizarlo y es en el que se basa Internet.
3.3.2 Capas TCP/IP El modelo TCP/IP define cuatro capas totalmente independientes en las que divide el proceso de comunicación entre dos dispositivos. Las capas por las que pasa la información entre dos estaciones o máquinas son las siguientes:
3.3.2.1 Aplicación Es la capa más cercana al usuario final y la que le proporciona servicios de red. Como es la capa superior, no da servicios a ninguna capa. Es la responsable de traducir los datos de la aplicación, programa, para que puedan ser enviados por la red. Sus funciones se resumen en: -
Representación
-
Codificación
-
Control de diálogo
-
Gestión de las aplicaciones de usuario
3.3.2.2 Transporte La capa de transporte establece, mantiene y termina circuitos virtuales, proporciona mecanismos de control de flujo y permite las retransmisiones y proporciona mecanismos de detección y corrección de errores. La información que le llega de la capa de aplicación la divide formando diferentes segmentos. El direccionamiento se realiza a través de puertos. Sus funcionalidades básicas son:
7
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
-
Fiabilidad
-
Control de flujo
-
Corrección de errores
-
Retransmisión
3.3.2.3 IP Divide los segmentos de la capa de transporte en paquetes y los envía por la red. No proporciona fiabilidad en las conexiones, de esto ya se ocupa la capa de transporte. Realiza un direccionamiento lógico de red mediante las direcciones IP. Es la capa responsable de proporcionar conectividad entre usuarios. Selecciona la mejor ruta a elegir entre origen y destino. 3.3.2.4 Acceso a Red Se encarga de controlar el acceso al nivel físico utilizado y enviar la información por el mismo. Transforma a información básica (bits) toda la información que le llega de las capas superiores y la prepara para que se pueda enviar por el medio. El direccionamiento físico de la red lo hace mediante direcciones MAC.
3.3.3 Protocolos Para poder enviar información entre dos máquinas, es necesario que ambas estaciones hablen el mismo lenguaje para que se entiendan entre ellas. A este lenguaje se le llamará protocolo. Los protocolos más representativos que figuran en la capa de Aplicación de la torre TCP/IP son: -
File Transfer Protocol (FTP)
-
Hypertext Transfer Protocol (HTTP)
-
Simple Mail Transfer Protocol (SMTP)
-
Domain Name System (DNS)
-
Trivial File Transfer Protocol (TFTP)
Los protocolos de la capa de Transporte son: -
Transport Control Protocol (TCP)
-
User Datagram Protocol (UDP)
El protocolo más conocido de la capa de Internet es: -
Internet Protocol (IP)
El protocolo utilizado en la mayoría de redes locales en la capa de Acceso es: -
Ethernet
A continuación se describirán los protocolos anteriormente comentados y su puerto asociado de la capa de Transporte. Más adelante se detallarán todos los puertos y su significado.
8
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
3.3.3.1 Protocolos de la capa de Aplicación El protocolo FTP es útil para la transmisión de archivos entre dos máquinas. Utiliza TCP para crear una conexión virtual para la información de control, y luego crea otra conexión para el envío de datos. Los puertos utilizados son el puerto 20 y 21. El protocolo HTTP es para visualizar la mayoría de páginas web de Internet. Sus mensajes se distribuyen como los de correo electrónico. El puerto que se utiliza es el 80. El protocolo SMTP es un servicio de correo que se basa en el modelo de FTP. Transfiere mensajes de correo entre dos sistemas y provee de notificaciones de correo entrante. El puerto que se utiliza es el 25. El protocolo DNS es el que se encarga de reconocer el nombre de la máquina remota con la que se quiere establecer la conexión y traduce el nombre a su dirección IP. El puerto que se utiliza es el 53. El protocolo TFTP tiene las mismas funciones que el protocolo FTP pero funciona sobre UDP, con lo que hay mayor rapidez pero menor seguridad y confiabilidad. El puerto que se utiliza es el 69. 3.3.3.2 Protocolos de la capa de Transporte Dentro de la capa de transporte existen dos protocolos que se utilizan para el envío de segmentos de información: -
TCP: El protocolo TCP establece una conexión lógica entre puntos finales de la red. Sincroniza y regula el tráfico con lo que se conoce como “Three Way Handshake”. Controla el flujo para que no se pierdan los paquetes y evitar así una congestión en la red. Es un protocolo orientado a conexión.
-
UDP: El protocolo UDP es un protocolo de transporte no orientado a conexión que intercambia datagramas sin la utilización de ACK ni SYN que se utiliza como acuse de recibo en el caso de TCP. El procesamiento de errores y retransmisiones es soportado por los protocolos de capas superiores.
3.3.3.3 Protocolos de la capa de Internet El protocolo IP sirve como protocolo universal para unir dos ordenadores en cualquier momento, lugar y tiempo. No es un protocolo orientado a conexión y no es confiable. Ofrece servicios de Best Effort: hará cuanto sea posible para que funcione correctamente. El protocolo IP determina el formato de la cabecera del paquete IP donde se incluye la dirección lógica y otras informaciones de control.
3.3.4 Direcciones IP Las direcciones IP son los identificadores que se utilizan para diferenciar a cualquier dispositivo que se encuentre en la red. Cada dispositivo debe tener una dirección IP diferente para que no haya problemas de identidad dentro de la red.
9
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
La dirección IP consta de 32 bits que se dividen en 4 octetos (8 bits) separándolos por puntos. Lógicamente se compone de una parte que identifica la dirección de red (network) a la que pertenece y una segunda parte que es su propio identificador dentro de esa red, dirección de máquina (host).
Hay direcciones IP públicas y privadas. Las primeras deben ser únicas en todo Internet porque sino no sería posible el encaminamiento y por tanto la comunicación. En cambio, las direcciones privadas corresponden a redes de uso privado y que no tienen conexión alguna con otras redes, no tienen conexión a Internet. En las redes privadas hay que tener en cuenta que no se puede duplicar ninguna dirección IP en toda la red privada. Las direcciones IP privadas existentes y que están definidas por el organismo internacional IANA son las que se engloban en los márgenes siguientes: 10.0.0.0 a 10.255.255.255 172.16.0.0 a 172.31.255.255 192.168.0.0. a 192.168.255.255 Las direcciones IP se dividen en clases que dependen del tamaño asignado para la parte de red y el tamaño que corresponde a la parte de la máquina.
Según el tamaño asignado a cada parte se podrán o crear más redes o albergar más dispositivos en cada red creada. Las clases existentes son: -
Clase A: El primer bit es siempre cero, con lo que comprende las direcciones entre 0.0.0.0 a 126.255.255.255. Las direcciones de 127.x.x.x están reservadas para el servicio de loopback o localhost.
-
Clase B: Los dos primeros bits del primer octeto son ‘10’. Las direcciones que pertenecen a esta clase están comprendidas entre 128.0.0.0 y 191.255.255.255.
10
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
-
Clase C: Los tres primeros bits del primer octeto son ‘110’. Las direcciones están comprendidas entre 192.0.0.0 y 223.255.255.255.
-
Clase D: Los cuatro primeros bits del primer octeto son ‘1110’. Las direcciones están comprendidas entre 224.0.0.0 y 239.255.255.255. Se utilizan para grupos multicast. Las restantes direcciones son para experimentación. A este último grupo se les puede encontrar como Clase E.
Actualmente, para la diferenciación entre la parte de red y la parte de máquina no se utilizan las clases, sino que lo que se utiliza es la máscara. La máscara identifica con un ‘1’ binario la parte que es de red y con un ‘0’ binario la parte que es de máquina. Por lo tanto, para identificar una máquina, además de la dirección IP es necesario especificar una máscara de red: IP: 172.16.1.20 Máscara: 255.255.255.0 Se ha visto que las direcciones IP 127.X.X.X estaban reservadas y que no se pueden utilizar para identificar a ningún dispositivo. Del mismo modo existen otras direcciones de máquina que no se pueden utilizar, éstas son la dirección de red y la dirección de braodcast. La dirección de red es aquella en que la parte que identifica al dispositivo dentro de la red es toda ceros. Esta dirección no se puede utilizar ya que identifica a una red y, por lo tanto, nunca debe identificar a un dispositivo en concreto. IP: 172.16.1.0 Máscara: 255.255.255.0 La dirección de bradcast es aquella que los bits que identifican al dispositivo dentro de la red son todo unos. Esta dirección tampoco se puede usar ya que es la que se utiliza cuando se quiere enviar alguna información a todas las máquinas que pertenecen a una red en concreto. IP: 172.16.1.255 Máscara: 255.255.255.0
3.3.5 Puertos Tanto TCP como UDP utilizan puertos para pasarse información con las capas superiores. Con la definición de un puerto, es posible acceder a un mismo destino, un host, y aplicar sobre él distintos servicios. Con la utilización de los puertos los servidores son capaces de saber qué tipo de petición a nivel de aplicación le están solicitando, si es http o ftp, y pueden mantener más de una comunicación simultánea con diferentes clientes.
11
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
Si se quiere acceder a la web de www.osstmm.org cuya IP es 62.80.122.203, como el servidor de WEB está en el puerto 80, lo que se está estableciendo es una conexión al denominado socket 62.80.122.203:80 Para entenderlo mejor, se puede hacer la analogía siguiente: pensemos que la dirección IP es como el puerto de Barcelona, donde llegan muchos barcos, y los puertos de las direcciones IP son cada uno de los muelles en los que van a parar cada barco. Para poder mantener una coherencia en los números de los puertos la IANA, organismo internacional regulador, establece que los puertos inferiores a 1024 se utilizan para los servicios comunes y el resto de números de puertos es para asignaciones dinámicas de programas o servicios particulares. A continuación se listan los puertos más utilizados:
Asignación de Puertos Valor
Nombre 0
Descripción Reserved
1-4
Unassigned
5
rje
Remote Job Entry
7
echo
Echo
9
discard
Discard
11
systat
Active Users
13
daytime
Daytime
15
netstat
Who is Up or NETSTAT
17
qotd
Quote of the Day
19
chargen
Character Generator
20
ftp-data
File Transfer [Default Data]
21
ftp
File Transfer [Control]
22
ssh
SSH Remote Login Protocol
23
telnet
Telnet
25
smtp
Simple Mail Transfer
37
time
Time
39
rlp
Resource Location Protocol
42
nameserver
Host Name Server
43
nicname
Who Is
53
domain
Domain Name Server
67
bootps
Bootstrap Protocol Server
68
bootpc
Bootstrap Protocol Client
69
tftp
Trivial File Transfer
70
gopher
Gopher
75
any private dial out service
77
any private RJE service
79
finger
Finger
12
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
Asignación de Puertos Valor
Nombre
Descripción
80
www-http
World Wide Web HTTP
95
supdup
SUPDUP
101
hostname
NIC Host Name Server
102
iso-tsap
ISO-TSAP Class 0
110
pop3
Post Office Protocol - Version 3
113
auth
Authentication Service
117
uucp-path
UUCP Path Service
119
nntp
Network News Transfer Protocol
123
ntp
Network Time Protocol
137
netbios-ns
NETBIOS Name Service
138
netbios-dgm
NETBIOS Datagram Service
139
netbios-ssn
NETBIOS Session Service
140-159
Unassigned
160-223
Reserved
3.3.6 Encapsulación Para enviar, por ejemplo, un mail desde un ordenador a otro la información irá pasando una serie de transformaciones, es decir, la capa superior generará una serie de datos que será recogida por la capa inmediatamente inferior. La capa inferior cogerá la información que le han pasado y le añadirá una cabecera para poder agregar información suficiente para que la capa del mismo nivel del destino pueda entender qué debe hacer con aquella información. A este procedimiento recursivo se le conoce con el nombre de encapsulación. Cada capa hace una encapsulación de la anterior, hasta llegar a la última capa, la de enlace, que hace posible la transmisión de los datos por el medio físico de la LAN: cable, radio, etc. En el siguiente esquema se explica la encapsulación de una forma más gráfica:
Cuando la información encapsulada llega al destino, éste sólo tiene que desencapsular la información realizando el procedimiento contrario.
13
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
3.4. Ejercicios 3.4.1 Ejercicio 1: Netstat El comando Netstat permite visualizar el estado de los puertos de un ordenador. Para poderlo ejecutar se tiene que abrir una ventana de MS-Dos y teclear: netstat En la salida por pantalla se pueden ver las conexiones actuales establecidas. Si se quiere que la salida esté en formato numérico se debe ejecutar: netstat –n Si lo que se desea es ver el estado tanto de las conexiones establecidas como de los puertos que están activos se debe ejecutar: netstat –an Para saber todas las opciones que se pueden añadir al comando netstat se puede ejecutar: netstat -h Se debe identificar qué puertos se usan de forma local y cuáles de forma remota. La segunda y la tercera columna determinan la dirección local y la remota. ¿Por qué los números de puertos remotos son diferentes a los números locales? A continuación abrir el explorador con la página: http://193.145.85.202 ¿Qué conexión/conexiones nuevas aparecen? Abrir otro explorador con la página: http://193.145.85.203 Si se vuelve a ejecutar el comando netstat: -
¿Por qué el protocolo http aparece en varias líneas?
-
¿Qué diferencias existen entre cada una de ellas?
-
¿Si hay varios exploradores abiertos como es el caso, cómo sabe para quién va la información de cada una de las páginas?
-
¿Necesita diferenciarla?
-
Comenta la respuesta.
3.4.2 Ejercicio 2: Puertos y protocolos Durante toda la lección se ha comentado que para diferenciar el servicio se usan diferentes puertos. ¿Cómo es que cuando se utiliza el navegador no se especifica ningún puerto? ¿Qué protocolos se utilizan? ¿Es posible que algún protocolo se utilice en más de una ocasión?
14
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
3.4.3 Ejercicio 3: Mi primer servidor Para poder realizar este ejercicio primero es necesario conseguir el programa ‘netcat’ para windows. Se podrá conseguir si se accede a la página: http://www.atstake.com/research/tools/network_utilities/ Una vez se haya conseguido el programa se debe descomprimir, abrir una ventana de MSDos, acceder al directorio donde se encuentre y teclear: nc –h Con esto se pueden ver las múltiples opciones que se pueden especificar en el netcat. Si se desea crear un pequeño servidor: nc -l -p 1234 Al ejecutar este comando se está haciendo que se abra el puerto 1234 y se permitan conexiones entrantes. Seguidamente teclear desde otra ventana de MS-Dos: netstat –a Se comprueba que ha aparecido un nuevo servicio escuchando en el puerto 1234. Para salir del servidor, se puede utilizar: CTRL-C Para poder decir que se ha implementado un servidor se necesita establecer el cliente asociado. Para ello se debe abrir una ventana de MS-Dos y, teniendo el servidor funcionando, ejecutar nc localhost 1234 Con este comando se realizará una conexión hacia nuestro dispositivo utilizando el puerto 1234. Si ahora se escribe cualquier palabra en cualquiera de las dos ventanas de MS-Dos, tanto cliente como servidor, se verá como esa información se transmite hacia el otro. Si se quiere que cada vez que se realice una conexión hacia el servidor se transmita al cliente cierta información, se deberá crear un fichero texto con la información que queramos transmitir, por ejemplo: “Bienvenido al servidor de Hacker High School”. Una vez creado dicho fichero, con el nombre test, se deberá activar el servidor con el comando: nc -l -p 1234 < test Desde otra ventana de MS-Dos se intenta acceder al servidor: nc localhost 1234 En el momento que se conecta se puede observar cómo en el cliente aparece el texto introducido en el fichero test. A partir de este punto la relación cliente/servidor es la misma que en el caso anterior. ¿Qué protocolo se ha usado para conectarte al servidor? ¿Permite netcat hacer lo mismo con otro protocolo?
15
LECCIÓN 3 – PUERTOS Y PROTOCOLOS
3.5. Lecturas recomendadas Si se desea tener más información sobre los temas que se han tratado en esta lección se pueden consultar los siguientes links, donde se ve de una forma más detallada toda la temática expuesta: http://www.oreilly.com/catalog/fire2/chapter/ch13.html http://www.oreilly.com/catalog/puis3/chapter/ch11.pdf http://www.oreilly.com/catalog/ipv6ess/chapter/ch02.pdf http://info.acm.org/crossroads/xrds1-1/tcpjmy.html http://www.garykessler.net/library/tcpip.html http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/ip.htm http://www.redbooks.ibm.com/redbooks/GG243376.html
16
LECCIÓN 4 SERVICIOS Y CONEXIONES
LECCIÓN 4 - SERVICIOS Y CONEXIONES
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a esponsorizarlo a través de la compra de una licencia, una donación o una esponsorización. All works copyright ISECOM, 2004.
2
LECCIÓN 4 - SERVICIOS Y CONEXIONES
Índice
“License for Use” Information................................................................................................................ 2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................4 4.1. Introducción......................................................................................................................................5 4.2. Servicios.............................................................................................................................................6 4.2.1 HTTP y la Web..............................................................................................................................7 4.2.2 E-mail – POP y SMTP...................................................................................................................8 4.2.3 IRC................................................................................................................................................9 4.2.4 FTP................................................................................................................................................9 4.2.5 Telnet y SSH...............................................................................................................................12 4.2.6 DNS.............................................................................................................................................12 4.2.7 DHCP......................................................................................................................................... 13 4.3. Conexiones..................................................................................................................................... 14 4.3.1 ISPs............................................................................................................................................. 14 4.3.2 Servicio de telefonía tradicional............................................................................................14 4.3.3 DSL..............................................................................................................................................15 4.3.4 Cable Modems........................................................................................................................ 15 4.4. Lecturas recomendadas...............................................................................................................16 Glosario...................................................................................................................................................17
3
LECCIÓN 4 - SERVICIOS Y CONEXIONES
Contribuciones Guiomar Corral, La Salle URL Barcelona Jaume Abella, La Salle URL Barcelona - ISECOM Pete Herzog, ISECOM Chuck Truett, ISECOM Marta Barceló, ISECOM Kim Truett, ISECOM
4
LECCIÓN 4 - SERVICIOS Y CONEXIONES
4.1. Introducción El objetivo de esta lección se basa en dar a los estudiantes un conocimiento sobre los servicios básicos que utilizan las redes para proporcionar e intercambiar información. Asimismo, en esta lección se presentarán algunos de los métodos que utilizan los ordenadores personales y las redes de área local para conectarse con otras redes; es decir, se analizarán distintas formas de conexión entre ordenadores y redes que conforman lo que se conoce como Internet.
5
LECCIÓN 4 - SERVICIOS Y CONEXIONES
4.2. Servicios Si tienes un ordenador personal, sabrás que existe cierta información útil en tu ordenador, aunque puede ser que no demasiada. También sabes que muchas más personas, incluso millones de personas también tienen ordenadores, por lo que sus ordenadores también pueden tener cierto tipo de información útil. Igualmente, es muy fácil suponer que muchas de esas personas puedan tener información en sus ordenadores que podría ser interesante para ti. Pero el problema radica en cómo puedes acceder a toda esa información útil que estará en los ordenadores de otras personas. Los propios ordenadores pueden comunicarse entre ellos de manera fácil, usando sus puertos y utilizando distintos protocolos de comunicación diseñados para ello, pero esto no es de mucha utilidad para tí. Esto es debido a que es muy difícil entender las cadenas de bits que se intercambian los ordenadores entre ellos. Es necesario que exista alguna forma para que el ordenador pueda interpretar la informacion que recibe de los otros ordenadores y la presente de manera que el usuario pueda entenderla. Los programas que utilizan los ordenadores para traducir los datos de manera que puedas entenderlos y sean útiles son lo que llamaremos servicios. Estos servicios permiten ver páginas web, intercambiar correos electrónicos, chatear e interaccionar con ordenadores remotos de muchas otras formas. Tu ordenador es el ordenador local y utiliza programas llamados servicios para interpretar la información que recibes. Los otros ordenadores son los ordenadores remotos y utilizan programas llamados servidores para proporcionar esta información a tu ordenador.
6
LECCIÓN 4 - SERVICIOS Y CONEXIONES
4.2.1 HTTP y la Web Cuando se habla de ‘Internet’, lo primero en lo que piensan la mayoría de personas es en la World Wide Web (WWW). Pero la World Wide Web, o simplemente la Web, no es Internet. En realidad, es un método que utiliza Internet para intercambiar información entre ordenadores. La web utiliza http, que son las siglas de Hypertext Transfer Protocol, y los servicios conocidos como navegadores web y servidores web para intercambiar información en forma de páginas web entre ordenadores locales y remotos. En el ordenador local dispones del navegador web. Se envía la información del ordenador remoto a tu ordenador local mediante el protocolo http. El navegador web interpreta esta información y la muestra en tu ordenador local en forma de páginas web. La parte hipertexto del protocolo http se refiere a la forma no lineal de presentar la información. Los textos se suelen leer de manera lineal: la palabra 2 va después de la palabra 1, la frase 3 sigue a la frase 2, el párrafo 4 va después del párrafo 5, etc. En cambio, la idea del hipertexto se basa en permitir ver la información de manera no lineal. Esta es la gran diferencia entre el hipertexto y los métodos antiguos a la hora de presentar la información. Con el hipertexto, las palabras y las ideas se pueden conectar, no sólo con las palabras que las rodean directamente, sino también con otras palabras, ideas o imágenes. Además, el hipertexto no está solo restringido a la Web. La mayoría de procesadores de texto permiten crear páginas en formato web o http para guardar localmente. Estas páginas se puede leer utilizando tu navegador web y funcionan como cualquier página web, con la particularidad que están guardadas en tu ordenador local, en vez de estar en un ordenador remoto. En tu ordenador local utilizas un programa cliente llamado navegador web. Al contrario de lo que puedes pensar, en el mercado existen distintos navegadores web, disponibles tanto para Windows como para Linux. Por ejemplo, existe el navegador Internet Explorer de Microsoft, el navegador Netscape, los navegadores Mozilla y Mozilla Firefox…
Figura 1: Logos de Microsoft Internet Explorer, Netscape, Mozilla y Mozilla Firefox También puedes crear tu propia página web. La manera más fácil para hacerlo es utilizar uno de los procesadores de texto más comunes como, por ejemplo, OpenOffice, Microsoft Word o Word Perfect. Estos programas permiten crear páginas web sencillas, combinando texto, hipertexto e imágenes. Muchas personas han creado páginas web útiles, ingeniosas e innovadoras simplemente con estas herramientas. Pero estas páginas no son ‘flashy’, es decir, no tienen contenidos flash. ‘Flashy’ significa que la página web dispone de animaciones, instrucciones que se ejecutan sin la interacción del usuario (scripts), etc. Esto también significa invertir grandes cantidades de dinero en un programa de diseño de páginas web selecto. Estos programas incluyen otros programas y te permiten realizar muchas cosas, aunque la creación de páginas es más compleja. Una vez diseñadas y realizadas las páginas, necesitas un ordenador para poderlas tener guardadas y que puedan ser consultadas. El ordenador remoto tiene que tener instalado un servidor web. Es posible que el servidor web esté instalado en tu propia casa, exactamente en tu propio ordenador, pero esta opción tiene varios inconvenientes. La primera desventaja es lo que se llama persistencia: la
7
LECCIÓN 4 - SERVICIOS Y CONEXIONES
información que se guarda en un servidor web solo está disponible si este servidor está enchufado, funcionando correctamente y tiene una conexión abierta. Por ello, si quieres tener un servidor web funcionando en tu propia habitación, tendrías que dejar el ordenador encendido todo el tiempo; además, tendrías que asegurarte que el programa servidor web funcione correctamente todo el tiempo, por lo que deberías resolver todos los problemas hardware, controlar virus, gusanos y otros ataques, así como pelearte con los inevitables fallos del propio programa. Por otro lado, deberías mantener una conexión a Internet siembre abierta. Es por ello que muchas personas prefieren pagar a alguien para que les haga todo este trabajo. Es lo que se denomina web hosting. Una empresa de web hosting almacena tu página web en sus ordenadores y se ocupa de todo. Una empresa de web hosting perfecta debería tener múltiples servidores redundados y una política de copias de seguridad periódica, de manera que no se pierda el servicio por culpa de fallos de hardware; también debería tener un equipo de soporte para mantener el funcionamiento del servicio y protegerlo de ataques de hackers o fallos de programa; además, debería tener un número de conexiones abiertas a Internet. Así pues, tu único trabajo se basa en diseñar tu página web, almacenarla en el servidor de la compañía de hosting, apagar tu ordenador, descansar y tu página seguirá estando disponible para el mundo entero. También es posible encontrar organizaciones que ofrecen un hospedaje de web gratuito. Algunas de estas organizaciones obtienen beneficios por anuncios publicitarios, de manera que cualquiera que quiera visitar tu página web, primero debe ver dichos anuncios, aunque no tiene que comprar nada.
4.2.2 E-mail – POP y SMTP Seguramente, el segundo aspecto más visible de Internet es el correo electrónico. En tu ordenador, utilizas un cliente de correo electrónico, que se conecta a un servidor de correo. Cuando configuras tu cuenta de correo electrónico, dispones de un nombre único en forma de usuario@dominio. También debes configurar una contraseña para poder acceder a tu correo electrónico. El protocolo SMTP, que se utiliza para enviar correos electrónicos, no necesita ninguna contraseña. Esto no era un inconveniente cuando se diseñó el protocolo, puesto que Internet era un mundo pequeño sin problemas, pero ahora se ha convertido en un agujero que permite el uso no autorizado de servidores de correo y otras artimañas como el llamado ‘email spoofing’, donde alguien envía un correo electrónico que parece que venga de otra dirección. Sin embargo, otros servidores de correo minimizan este defecto implementado un paso de autenticación intermedio. Otro aspecto importante a destacar es que, aunque el correo esté protegido mediante contraseñas, el correo electrónico no es una buena manera para enviar información segura. Muchos clientes POP y servidores necesitan comunicar tu contraseña sin encriptar a tu servidor de correo. Esto no significa que cualquiera que reciba un correo tuyo también recibe tu contraseña; pero sí significa que cualquiera con un poco de conocimiento y algunas herramientas como sniffers o analizadores de protocolos puede descubrir tu password. (Las ideas para securizar tu correo están explicadas en la lección 7: Seguridad del correo electrónico)
8
LECCIÓN 4 - SERVICIOS Y CONEXIONES
4.2.3 IRC IRC son las siglas de Internet Relay Chat. IRC es donde la naturaleza irregular de Internet se muestra de manera más clara. En IRC, cualquiera que tenga algo que decir tiene la oportunidad de decirlo. Puede ser que estés familiarizado con los chat rooms utilizados en ciertos servicios online. IRC es como un chat room donde no hay reglas ni hay estándares. Puede ser que en un canal IRC encuentres aquello que estabas buscando o puede ser que encuentres algo que nunca habías pensado que existía. Todas las reglas que has oído sobre chat rooms también son aplicables a los canales IRC. Nunca le digas a nadie tu propio nombre. Nunca des tu número de teléfono, tu dirección o tus números de cuentas bancarias. Pero pásatelo bien! Ejercicios En la lección 0 puedes encontrar ejercicios básicos sobre chats. Los siguientes ejercicios son una continuación de los ejercicios anteriores. A.
Busca 3 canales IRC sobre seguridad a los que sí puedas acceder. ¿Cómo puedes apuntarte a una conversación pública? ¿Qué deberías hacer para conversar privadamente con una sola persona a la vez?
B.
¿Puedes intercambiar ficheros en estos canales IRC? ¿Cómo podrías hacerlo? ¿Intercambiarías siempre ficheros por un canal IRC? ¿Por qué?
4.2.4 FTP FTP son las siglas de File Transfer Protocol. Tal como su nombre indica, este protocolo permite transmitir ficheros entre un ordenador local y otro remoto. Aunque se puede utilizar para transferencia de ficheros privados, se suele asociar normalmente a servidores ftp anónimos gratuitos que ofrecen acceso público a colecciones de ficheros. Anonymous ftp ha sido uno de los métodos más utilizados por la mayoría de usuarios de ordenadores para intercambiar ficheros en Internet. Aunque se utilizan muchos servidores ftp anónimos para distribuir ficheros de manera ilegal y posiblemente infectados de virus, otros servidores se utilizan de manera legal para distribuir programas y ficheros. Se pueden encontrar servidores que ofrecen servicios ftp anónimos mediante distintos métodos, incluso mediante herramientas de búsqueda en Internet. Actualmente existen numerosos servidores ftp anónimos que permiten acceder a sus ficheros utilizando el protocolo ftp mediante un navegador web. Ejercicios Anonymous FTP Tanto Windows como Linux disponen de un cliente ftp básico, basado en la línea de comandos; para acceder a él, abre un prompt de comandos o una ventana de terminal y teclea: ftp
9
LECCIĂ&#x201C;N 4 - SERVICIOS Y CONEXIONES
En el prompt ftp>, puedes escribir help, para obtener una lista de comandos disponibles. ftp> help Commands may be abbreviated.
Commands are:
!
delete
literal
prompt
send
?
debug
ls
put
status
append
dir
mdelete
pwd
trace
ascii
disconnect
mdir
quit
type
bell
get
mget
quote
user
binary
glob
mkdir
recv
verbose
bye
hash
mls
remotehelp
cd
help
mput
rename
close
lcd
open
rmdir
Algunos comandos importantes son: ftp> open <dominio.nombre> Que permite conectarte al servidor ftp llamado dominio.nombre. ftp> ls o bien ftp> dir Que lista los contenidos del directorio de trabajo remoto. ftp> cd <newdir> Que cambia el directorio de trabajo remoto al directorio llamado newdir. ftp> get <filename> Que descarga un fichero llamado filename del ordenador remoto al ordenador local. ftp> mget <file1> <file2> <file3> Que descarga los ficheros llamados file1, file2 y file3 del ordenador remoto al ordenador local. ftp> close Que te desconecta del servidor ftp remoto.
10
LECCIÓN 4 - SERVICIOS Y CONEXIONES
ftp> quit Que cierra tu cliente ftp local. Para conectarse a un servicio anonymous ftp, primero debes abrir tu cliente ftp local: ftp Utiliza el comando open para conectarte al servidor. El comando: ftp> open <anon.server> conecta tu cliente ftp con el servidor anonymous ftp llamado anon.server. Cuando el servidor ftp remoto hace su conexión, se identificará a tu cliente local y luego pedirá un nombre de usuario. Connected to anon.server. 220 ProFTPD Server (Welcome . . . ) User (anon.server:(none)): Para la mayoría de servidores ftp anónimos, puedes entrar la palabra anonymous como nombre de usuario o username. El servidor ftp remoto reconocerá que te estás conectando como un usuario anónimo y te dará instrucciones sobre el código a utilizar como contraseña. 331 Anonymous login ok, send your complete email address as your password. Password: En muchos casos, el servidor remoto no valida la dirección de correo entrada como contraseña, por lo que no te denegará el acceso al servidor aunque entres una dirección incorrecta. Después de introducir la contraseña, el servidor remoto enviará un mensaje de bienvenida a tu ordenador local. 230Welcome to ftp.anon.server, the public ftp server of anon.server. We hope you find what you're looking for. If you have any problems or questions, please send email to ftpadmin@anon.server Thanks! 230 Anonymous access granted, restrictions apply. Ahora, ya puedes utilizar los comandos ls, dir, cd y get para descargar ficheros desde el servidor remoto a tu ordenador local. Utilizando estos ejemplos, comprueba si puedes descargarte un fichero desde un servidor anonymous ftp. Utiliza tu navegador web y busca una herramienta para encontrar un
11
LECCIÓN 4 - SERVICIOS Y CONEXIONES
servidor ftp anonymous que tenga una copia de “Alicia en el País de las Maravillas”; luego, utilizando el cliente ftp de línea de comandos (no tu navegador web) intenta descargarte el fichero.
4.2.5 Telnet y SSH Telnet permite a un usuario local enviar una gran variedad de comandos a un ordenador remoto. Este hecho permite que el usuario local pueda dar instrucciones a la máquina remota para que realice ciertas funciones y devuelva los datos al ordenador local, casi como si se estuviera sentado delante del teclado del ordenador remoto. Tanto Windows como Linux disponen de un cliente telnet básico; para acceder a él, solo hay que abrir un prompt de comandos o una ventana de emulación de terminal y teclear: telnet. Para acceder a un servidor telnet, será necesario que el administrador del sistema te proporcione una cuenta y una contraseña, debido a que el programa telnet te permite realizar un gran número de acciones. Telnet se utilizaba en el pasado para que los administradores de sistema pudieran acceder y controlar remotamente los servidores, así como para proporcionar soporte a los usuarios a distancia. Telnet también se puede utilizar para otras muchas tareas como, por ejemplo, enviar y recibir correos electrónicos, ver el código fuente de páginas web,… aunque también hay que decir que telnet es una de las maneras más difíciles de conseguirlo y hay herramientas más fáciles para hacer estas mismas tareas. Telnet se puede utilizar para cometer muchas acciones ilegales e inmorales, pero también hay razones legítimas para utilizarlo. Puedes utilizar telnet para consultar tu correo electrónico y ver, no sólo el tema del correo, sino también las primeras líneas, lo que te facilitará decidir si borrar o no dicho correo sin tener que descargar todo el mensaje.
4.2.6 DNS De la misma manera que cuando quieres llamar a un amigo necesitas saber su número de teléfono, cuando quieres conectarte a cierto ordenador remoto necesitas saber su identificación. Los ordenadores se identifican mediante las direcciones llamadas IP y es muy importante que no exista ninguna dirección duplicada, de la misma manera que no existen dos personas con el mismo número de teléfono. Las direcciones IP son números muy manejables para los ordenadores pero nosotros preferimos utilizar nombres. Por ejemplo, para acceder a la web de Enginyeria La Salle simplemente recordamos que su nombre es www.salleurl.edu. En cambio, nuestro ordenador también debe conocer qué dirección IP tiene el servidor web de Enginyeria La Salle. Así pues, los ordenadores deben conocer la equivalencia entre direcciones IP y nombres. Una posibilidad sería que tu ordenador almacenase la equivalencia nombre-dirección IP de todos los ordenadores del mundo, pero esto no es demasiado viable. Por ello se utiliza el protocolo DNS. DNS son las siglas de Domain Name Service y es el servicio que se encarga de traducir los nombres de dominio que conoces a las direcciones IP que necesita tu ordenador y viceversa. De esta manera, cuando tecleas el nombre www.nombrededominio.extension en tu navegador web, tu propio navegador contacta con el servidor DNS que tengas configurado en tu sistema (normalmente suele ser la
12
LECCIÓN 4 - SERVICIOS Y CONEXIONES
dirección de tu propio ISP). Si tu ISP tiene ya la dirección IP correspondiente al nombre que le pides, se la envía a tu ordenador. Si no tiene hecha la resolución, el ISP hará una petición de búsqueda directamente a los servidores DNS del dominio o a los servidores raíz de la extensión, para obtener la dirección IP final. Cuando el ISP tenga la dirección, se la enviará a tu ordenador y así podrás acceder a la página web que habías solicitado.
Ejercicios Para profundizar sobre los conocimientos adquiridos de DNS: a.
Accede a una ventana de MS-DOS.
b.
Identifica la dirección IP de tu máquina. ¿Qué comando has utilizado? ¿Qué dirección IP tienes?
c. Identifica la dirección IP del servidor DNS que tienes configurado. ¿Qué comando has utilizado? ¿Qué dirección IP tiene el servidor DNS? d.
Haz un ping a www.isecom.org . dirección IP contesta al ping?
¿Recibes una respuesta afirmativa? ¿Qué
e.
Entra en la configuración de red de tu ordenador y borra la dirección del servidor DNS que tengas configurada (te lo habías apuntado en el paso c, así que no hay problema).
f.
Vuelve a hacer un ping a www.isecom.org. ¿Recibes la misma respuesta que en el paso d? ¿Por qué?
g.
Haz un ping a la dirección IP que habías apuntado en el paso d. ¿Recibes la misma respuesta que en el paso d? ¿Por qué?
h.
Entra otra vez en la configuración de red de tu ordinador y configura la dirección del servidor DNS que tenías configurada previamente. Vuelve a hacer los pasos f y g. ¿Qué respuestas obtienes ahora?
4.2.7 DHCP DHCP (Dynamic Host Configuration Protocol) es el protocolo de configuración dinámica de hosts. Tal como indica su nombre, este protocolo permite la configuración de los parámetros de red de las estaciones de manera dinámica. Esto es muy útil a la hora de configurar grandes redes de ordenadores, puesto que no hace falta configurar cada ordenador individualmente. Simplemente es necesario disponer de un servidor DHCP, donde se configuran los parámetros de red que se asignarán a los clientes. Cuando cada cliente se conecte a la red, lo primero que hará es pedirle los parámetros de configuración al servidor DHCP. A partir de entonces, el cliente ya tendrá toda la configuración de red actualizada para poder trabajar.
13
LECCIÓN 4 - SERVICIOS Y CONEXIONES
4.3. Conexiones ¿Qué son los módems y para qué sirven? Los módems trabajan a velocidades de bits/segundo. Una velocidad de transmisión alta es aconsejable, aunque también depende de la tarea a realizar. Hay ciertas aplicaciones, como por ejemplo la conexión a un servidor telnet, en las que también serviría un módem anticuado de hace más de veinte años que funcionase a una velocidad de 300 bits/segundo (suponiendo que tu velocidad de escribir con el teclado no fuese muy buena). Sin embargo, aplicaciones que necesitan mucho ancho de banda como por ejemplo, la transmisión de vídeo pueden llegar a colapsar incluso los cable modems más potentes.
4.3.1 ISPs Realmente, cuando te conectas a Internet, no sólo estás llamando a Internet. Necesitas acceder a un servidor que conectará tu ordenador a Internet. Este servidor se encargará de hacer todo el trabajo duro, estando allí todo el tiempo. La presencia de un ISP en Internet es constante y tiene servidores donde se ejecutan los servicios que utilizarás. Entonces, tú mismo puedes ejecutar dichos servicios. Podrías disponer de un servidor de correo en tu propio ordenador local, pero esto requeriría que tu ordenador estuviera enchufado y conectado a la red durante todo el tiempo, simplemente esperando a aquellos instantes esporádicos de intercambio de información. Sin embargo, un ISP refuerza los esfuerzos de un gran número de usuarios, ya que el servidor de correo estará trabajando continuamente. Además, los ordenadores de los proveedores de servicios de Internet o ISPs, estarán conectados con otros ordenadores de Internet utilizando conexiones de alta velocidad. Los ordenadores de los ISPs utilizan conexiones de alta velocidad para conectarse a puntos de acceso de red, llamados NAP (Network Access Point). Además, dichos NAPs se interconectan utilizando conexiones de mucha más alta velocidad, que forman la columna vertebral de Internet.
4.3.2 Servicio de telefonía tradicional El servicio de telefonía tradicional también es conocido como POTS (Plain Old Telephone Service) y todavía es el método más ampliamente utilizado para acceder a Internet. Su primer inconveniente es su baja velocidad, pero en muchos casos se utiliza este sistema debido a su amplia disponibilidad. La mayoría de proveedores de servicio de Internet tienen un gran número de números de acceso local. Y casi todo el mundo tiene una línea de teléfono en casa. En teoría, con un módem analógico y un bolsillo lleno de monedas, podrías conectarte desde casi cualquier cabina de teléfono pública. Pero el servicio de telefonía tradicional es lento. Los módems analógicos más rápidos funcionan a una velocidad de 56kbps. Pero este dato, en realidad, no es cierto del todo. Las restricciones de potencia limitan la velocidad máxima de bajada a 53kbps y, realmente, esta velocidad efectiva es mucho menor. Sin embargo, el servicio de telefonía está ampliamente disponible y los proveedores de servicios de Internet basados en acceso telefónico son bastante baratos e, incluso en algunas situaciones, proporcionan un acceso gratuito. No querrías comerciar con películas
14
LECCIÓN 4 - SERVICIOS Y CONEXIONES
piratas utilizando un acceso telefónico porque es inmoral, ilegal y, además, ocuparía tu línea de teléfono durante toda la noche e, incluso durante toda la tarde, pero podrías enviar sin ningún problema correos de texto simpáticos a tus amigos. Y si utilizas telnet, incluso podrías trabajar con un ordenador antiguo basado en DOS.
4.3.3 DSL DSL o Digital Subscriber Line es un método que permite enviar un gran volumen de información sobre los mismos cables que ya utiliza actualmente el teléfono tradicional. La mayor ventaja que presenta respecto a los módems analógicos es que transmite a mucha mayor velocidad y se trata de una conexión permanente. Además, permite realizar o recibir llamadas telefónicas al mismo tiempo que estás conectado a Internet. Su mayor desventaja es que debes estar lo suficientemente cerca de la centralita de telefonía para que el sistema funcione. Ejercicios Para profundizar sobre los conocimientos adquiridos sobre DSL: a. Utilizando alguna herramienta de búsqueda, encuentra 2 proveedores de Internet que utilicen tecnología DSL. b. ¿Qué otros servicios, además de Internet, proporcionan estos proveedores de servicio (telefonía, TV,…)?
4.3.4 Cable Modems Los cable modems son dispositivos que no utilizan la línea telefónica tradicional para acceder a Internet. Algunos operadores de comunicaciones han desplegado redes de fibra óptica alternativas a la red de telefonía tradicional. El cable modem hace referencia a un modem que opera sobre la red de televisión por cable. Como ventaja, presenta mayores velocidades que la conexión de modem sobre la telefonía tradicional. Pero el principal inconveniente radica en que es necesario que la red de cable llegue hasta la casa del usuario y este tipo de redes todavía no está demasiado extendido, debido a la problemática que comporta su desplegamiento. Ejercicios Para profundizar sobre los conocimientos adquiridos sobre Cable Modems: a. Utilizando alguna herramienta de búsqueda, encuentra 2 proveedores de Internet que utilicen cable modems en casa del cliente. b. ¿Qué otros servicios, además de Internet, proporcionan estos proveedores de servicio (telefonía, TV,…)?
15
LECCIÓN 4 - SERVICIOS Y CONEXIONES
4.4. Lecturas recomendadas Cómo funciona el E-mail: http://computer.howstuffworks.com/email.htm Un IRC FAQ: http://www.irchelp.org/irchelp/new2irc.html Un FTP FAQ Basico (antiguo, pero extenso): http://www.faqs.org/faqs/ftp-list/faq/ Otro FTP FAQ (también antiguo): http://www.ibiblio.org/pub/Linux/docs/faqs/FTP-FAQ Un resumen de SMTP (con un enlace al RFC 821, que describe el protocolo): http://www.freesoft.org/CIE/Topics/94.htm Un resumen complementario de POP3 (con un enlace al RFC 1725): http://www.freesoft.org/CIE/Topics/95.htm Un resumen sobre Telnet: http://www.dmine.com/bbscorner/telover.htm Consluta de correo con Telnet: http://wiki.linuxquestions.org/wiki/Retrieving_mail_manually_using_telnet SSH – una alternativa más segura que Telnet: http://www.openssh.com/ Información básica sobre DNS: http://hotwired.lycos.com/webmonkey/webmonkey/geektalk/97/03/index4a.html Información más detallada sobre DNS: http://www.microsoft.com/technet/itsolutions/network/deploy/confeat/domain.mspx Un conjunto de comandos DNS, testeos y búsquedas: http://www.dnsstuff.com/ Un DHCP FAQ detallado: http://www.dhcp-handbook.com/dhcp_faq.html Un artículo largo sobre DCHP, con información sobre NAT y routers: http://hotwired.lycos.com/webmonkey/00/39/index3a.html?tw=backend Un resumen sobre Cable Modems: http://electronics.howstuffworks.com/cable-modem.htm
16
LECCIÓN 4 - SERVICIOS Y CONEXIONES
Glosario Anonymous FTP – Uno de los métodos mediante el cual los ficheros de un ordenador quedan disponibles para que el público general pueda descargarselos. Cliente – Programa en sel ordenador local que se utiliza para intercambiar datos con un ordenador remoto, ver servidor. DHCP – Dynamic Host Configuration Protocol. Protocolo de configuración dinámica de hosts que permite la configuración de los parámetros de red de las estaciones de forma dinámica. DNS – Domain Name System. Protocolo que traduce los nombres de dominio de los nodos de red en direcciones IP, y vicecersa. DSL – Digital Subscriber Line. Línea de abonado digital. Esta tecnología permite transmitir voz y datos a gran velocidad simultáneamente utilizando la línea telefónica tradicional de cobre. E-mail - Servicio de correo en lnternet, que permite comunicaciones rápidas y sencillas con otro usuario, siempre y cuando, este disponga de otra dirección de e-mail. FTP – File Transfer Protocol. Protocolo de transferencia de ficheros utilizado para que los ordenadores locales puedan intercambiar ficheros con ordenadores remotos. Hipertexto – Sistema de organización y presentación de datos que permite al usuario moverse con gran facilidad entre ítems relacionados. IRC - Internet Relay Chat. Sistema de conversación en tiempo real para usuarios de Internet. IRC-BOT - Robot o programa que se conecta a IRC como cualquier usuario normal. Normalmente se ejecuta desde sistemas que están conectados a Internet las 24 horas del día y con un ancho de banda superior a la de conexión telefónica normal. ISP – Proveedor de servicios de Internet Modem – Acrónimo del término MODulador-DEModulador. Dispositivo que transforma las señales digitales del ordenador en una señal analógica y viceversa, que le permite al ordenador transmitir y recibir información por la línia telefónica. Página Web – Documento que se visualiza mediante un navegador web. Es de formato hipertexto e incluye textos, gráficos, sonido, vídeo, enlaces a otros textos u otras direcciones de Internet… POTS – plain old telephone service. Servicio de telefonía básico. Servidor – Programa en un ordenador remoto que se utiliza para proporcionar datos al ordenador local, ver cliente. Servicios – Los servicios de red permiten a los ordenadores locales intercambiar información con ordenadores remotos. SSH – Secure Shell. Protocolo diseñado para sustituir servicios remotos poco seguros Telnet – Protocolo que permite a un usuario local acceder a un ordenador remoto y utilizar sus recursos. Navegador Web – Programa que permite acceder a servidores web y visualizar las páginas web alojadas en ellos. Servidor Web – Ordenador donde están almacenadas las páginas web a visualizar. World Wide Web – Servicio de transmisión y presentación de documentos hipertexto.
17
LECCIÓN 5 IDENTIFICACIÓN DE SISTEMAS
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a esponsorizarlo a través de la compra de una licencia, una donación o una esponsorización. All works copyright ISECOM, 2004.
2
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
Índice
“License for Use” Information................................................................................................................ 2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................4 5.1. Introducción......................................................................................................................................5 5.2. Identificación de un servidor..........................................................................................................6 5.2.1 Identificación del propietario de un dominio........................................................................6 5.2.2 Identificación de la dirección IP de un dominio...................................................................6 5.3. Identificación de servicios.............................................................................................................. 7 5.3.1 Ping y Traceroute.......................................................................................................................7 5.3.2 Obtención del banner..............................................................................................................7 5.3.3 Identificación de servicios a partir de puertos y protocolos................................................8 5.4. Identificación de un sistema........................................................................................................ 10 5.4.1 Escaneo de ordenadores remotos........................................................................................10 5.5. Lecturas recomendadas...............................................................................................................13
3
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
Contribuciones Chuck Truett, ISECOM Jaume Abella, La Salle URL Barcelona – ISECOM Guiomar Corral, La Salle URL Barcelona Pete Herzog, ISECOM Marta Barceló, ISECOM Kim Truett, ISECOM
4
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
5.1. Introducción Es obvio que qualquiera que se siente en el teclado de tu ordenador puede obtener información sobre el mismo, incluyendo el sistema operativo y los programas que se están ejecutando, pero también es posible para alguien que utiliza una conexión de red recoger información sobre un ordenador remoto. Esta lección describe algunas de las formas en las que se puede obtener esta información. Saber como se recoge esta información te ayudará a asegurar que tu ordenador local esté a salvo de estas actividades.
5
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
5.2. Identificación de un servidor Hay un buen número de fuentes útiles en la web que te ayudarán a recoger información sobre nombres de dominio y direcciones IP.
5.2.1 Identificación del propietario de un dominio El primer paso para identificar un sistema remoto es determinar el nombre de dominio y su dirección IP. Haciendo una búsqueda de Whois (whois lookup), puedes descubrir información valiosa, incluyendo el propietario del dominio e información de contacto, que puede incluir direcciones y números de teléfono. Has de saber que ahora hay unos cuantos registradores de nombres de dominio, y que no todas la bases de datos whois contienen toda la información de todos los dominios. Puede que tengas que buscar en más de una base de datos whois para encontrar la información que estás investigando.
5.2.2 Identificación de la dirección IP de un dominio Hay unas cuantas formas de determinar la dirección IP de un dominio. La dirección puede estar contenida en la información de whois o puede que tengas que buscar en un DNS o Servidor de Nombres de Dominio. (Hay motores de búsqueda que proporcionan un buen número de recursos para el descubrimiento de direcciones IP de nombres de dominio). Una vez se dispone de la dirección IP, se puede acceder a los registros de diversos miembros de la Number Resource Organization (http://www.arin.net/ y http://www.ripe.net/), para obtener información sobre cómo se distribuyen las direcciones IP. Los números IP se asignan a los proveedores de servicios y a las redes en grandes agrupaciones. Conocer en qué grupo está contenida la dirección IP y quién tiene los derechos de ese grupo puede ser de gran ayuda. Esto puede ayudarte a determinar información sobre el servidor o el proveedor de servicios que utiliza el servidor web. Ejercicios: Escoge un nombre de dominio válido (isecom.org) y realiza una búsqueda de whois para encontrar quién es el propietario de ese dominio (http://www.whois.com -> “isecom.org”+Go -> Whois Lookup). ¿Qué otra información está disponible? ¿Cuando se creó el dominio? ¿Cuando expirará? ¿Cuando fue actualizada por última vez? Encuentra la dirección IP para este nombre de dominio. Utilizando los whois lookups de diversos miembros de la Number Resource Organization, determina a quién se ha asignado esta dirección IP. (Empieza con la pagina www.arin.net, que también tiene enlaces a otros miembros de la NRO -> ripe). ¿Cual es el margen de direcciones IP que también tiene registrado esta entidad?
6
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
5.3. Identificación de servicios Una vez se ha establecido el propietario y la dirección IP de un dominio, entonces se puede empezar a buscar información sobre el servidor al que este dominio se refiere.
5.3.1 Ping y Traceroute Ahora que sabes a quién pertenece el dominio y a quién se ha asignado el número IP, puedes comprobar si el servidor web está actualmente activo. El comando ping te dirá si hay un ordenador o servidor asociado con ese nombre de dominio o IP. El comando ping dominio o ping direcciónip te dirá si hay un ordenador activo en esa dirección. Si el resultado del comando ping indica que se están recibiendo los paquetes ping enviados, entonces puedes asumir que el ordenador está activo. Otro comando, tracert (en Windows) o traceroute (en Linux) muestra los pasos que realiza la información a medida que viaja desde tu ordenador al remoto. Trazando la ruta que realizan los paquetes a veces té ofrecerá información adicional sobre los ordenadores de la red donde está situado el objetivo de tu traza. Por ejemplo, ordenadores con direcciones IP similares muy a menudo formarán parte de la misma red. Ejercicios: Haz un ping a un website o dirección IP (ping www.isecom.org o ping 216.92.116.13). Si obtienes una respuesta exitosa, haz ping sobre la dirección IP consecutiva (.14). ¿Ha sido positivo el resultado? ¿A qué dominio pertenece esta nueva dirección IP? Utiliza tracert o traceroute para trazar la ruta desde tu ordenador local hasta la IP que has utilizado en el ejercicio previo. ¿Cuántos pasos se necesitan? ¿Alguno de los ordenadores listados tiene direcciones IP similares?
5.3.2 Obtención del banner El próximo paso para identificar al sistema remoto es intentar conectarse utilizando telnet o FTP. El servidor programa para estos servicios mensajes de texto de bienvenida llamados banners. Un banner puede mostrar claramente y con precisión qué programa se está ejecutando para este servicio. Por ejemplo, cuando te conectas a un servidor FTP anónimo, podrías obtener el mensaje siguiente: Connected to anon.server. 220 ProFTPD Server (Welcome . . . ) User (anon.server:(none)):
7
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
El número 220 es un código para FTP que indica que el servidor esta preparado para recibir un nuevo usuario y el mensaje de texto ProFTP Server identifica el programa FTP que se está ejecutando en el ordenador remoto. Utilizando un motor de búsqueda, puedes aprender qué sistema operativo utiliza y otros detalles sobre sus requerimientos, capacidades, limitaciones y defectos. El principal defecto en el uso de esta técnica de obtención de banners sobre un sistema es que los administradores de sistemas inteligentes pueden poner banners engañosos. Un banner que muestre “Estonoesasuntotuyo” no puede ser obviamente confundido, pero un sistema Unix con un banner que muestra “WS_FTP Server” (FTP Server basado en Windows) va a complicar mucho cualquier intento de obtención de datos que se intente.
5.3.3 Identificación de servicios a partir de puertos y protocolos También se puede determinar qué programas están funcionando en un sistema mirando qué puertos (TCP y UDP) están abiertos y qué protocolos los utilizan. Puedes empezar mirando tu propio ordenador. Abre un shell MS-DOS o linea de comandos (Windows: ejecutar -> cmd) y ejecuta el programa netstat usando el sufijo –a (o todos): netstat -a El ordenador mostrará la lista de puertos abiertos y algunos de los servicios que utilizan estos puertos. Active Connections Proto Local Address
Foreign Address
State
TCP
YourComputer:microsoft-ds
YourComputer:0
LISTENING
TCP
YourComputer:1025
YourComputer:0
LISTENING
TCP
YourComputer:1030
YourComputer:0
LISTENING
TCP
YourComputer:5000
YourComputer:0
LISTENING
TCP
YourComputer:netbios-ssn
YourComputer:0
LISTENING
TCP
YourComputer:1110
216.239.57.147:http
TIME_WAIT
UDP
YourComputer:microsoft-ds
*:*
UDP
YourComputer:isakmp
*:*
UDP
YourComputer:1027
*:*
UDP
YourComputer:1034
*:*
UDP
YourComputer:1036
*:*
UDP
YourComputer:ntp
*:*
UDP
YourComputer:netbios-ns
*:*
UDP
YourComputer:netbios-dgm
*:*
8
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
A partir de aquí puedes ver muchos de los programas que se están ejecutando en tu ordenador local, muchos de los cuales ni siquiera sabes que están funcionando. Otro programa, llamado fport, proporciona información similar a la de netstat, pero detalla, además, qué programas están utilizando estos puertos y protocolos. (fport está disponible gratuitamente en www.foundstone.com). Otro programa, llamado nmap (proviene de network mapper), analizará más concienzudamente los puertos abiertos de tu ordenador. Cuando nmap se ejecuta, muestra una lista de puertos abiertos y los servicios o protocolos que utilizan estos puertos. También puede ser capaz de determinar que sistema operativo está usando un ordenador. Por ejemplo, si se ejecuta nmap en tu ordenador local, podrías observar el siguiente resultado: Por
State
Service
22/tcp
open
ssh
68/tcp
open
dhcpclient
139/tcp
open
netbios-ssn
445/tcp
open
microsoft-ds
Device type: general purpose Running: Linux 2.4X|2.5.X OS details: Linux Kernel 2.4.0 – 2.5.20 Uptime 1.024 days (since Sat Jul 4 12:15:48 2004) Nmap está disponible para descargar en www.insecure.org. Ejercicios Ejecuta netstat en tu ordenador local, utilizando el sufijo –a. netstat -a ¿Qué puertos están abiertos? Utilizando un motor de búsqueda web (www.google.com) ¿Puedes encontrar a qué servicios pertenecen estos puertos? (este sería un buen ejercicio para realizar en casa para comprobar si se están ejecutando servicios innecesarios o potencialmente peligrosos, como FTP o Telnet). Ejecuta nmap utilizando los sufijos –sS (para escaneo SYN Stealth) i –O (para que intente adivinar el sistema operativo) con la dirección IP 127.0.0.1 como objetivo del escaneo. nmap -sS -O 127.0.0.1 La dirección IP 127.0.0.1 especifica el host local (o ordenador local). (Nota: esta dirección es diferente de la que utilizan otros ordenadores en Internet para conectarse contigo; en cualquier máquina la dirección IP 127.0.0.1 se refiere siempre al ordenador local). ¿Qué puertos abiertos encuentra nmap?¿Qué servicios y programas utilizan estos puertos? Intenta ejecutar nmap mientras tienes abierta una página web de Internet o un cliente de Telnet. ¿Cambia esto los resultados?
9
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
5.4. Identificación de un sistema Ahora que sabes cómo identificar un servidor, cómo escanear los puertos abiertos y utilizar esta información para determinar qué servicios se estan ejecutando, puedes poner esta información junta para identificar (fingerprint) un sistema remoto, estableciendo cual debe ser el sistema operativo y qué servicios están ejecutándose en ese ordenador remoto.
5.4.1 Escaneo de ordenadores remotos Utilizar una dirección IP o un nombre de dominio que no sea 127.0.0.1 como argumento para nmap permite escanear puertos abiertos de ordenadores remotos. Esto no quiere decir que haya puertos abiertos o que los encuentres, pero permite buscarlos. Por ejemplo, imagina que has estado recibiendo una gran cantidad de e-mails de spam y quieres descubrir información sobre la persona que los está enviando. Mirando las cabeceras de cualquiera de estos e-mails, puedes ver que muchos de estos e-mails se han originado desde la misma dirección IP: 256.92.116.13 (ver “Lección 9: Seguridad del e-mail” para ver más detalles al respecto). Un whois lookup muestra que la dirección forma parte de un bloque asignado a un gran ISP, pero no te da información sobre esta dirección en particular. Si utilizas nmap para escanear el ordenador de esa dirección, podrías obtener los siguientes resultados. nmap -sS -O 256.92.116.13 Starting nmap 3.50 ( http://www.insecure.org/nmap ) at 2004-07-03 20:13 Eastern Daylight Time Interesting ports on 256.92.116.13: (The 1632 ports scanned but not shown below are in state: closed) PORT
STATE
SERVICE
21/tcp
open
ftp
22/tcp
open
ssh
23/tcp
open
telnet
25/tcp
open
smtp
80/tcp
open
http
110/tcp
open
pop3
113/tcp
open
auth
135/tcp
filtered msrpc
136/tcp
filtered profile
137/tcp
filtered netbios-ns
10
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
138/tcp
filtered netbios-dgm
139/tcp
filtered netbios-ssn
143/tcp
open
imap
144/tcp
open
news
161/tcp
filtered snmp
306/tcp
open
unknown
443/tcp
open
https
445/tcp
filtered microsoft-ds
513/tcp
open
login
514/tcp
open
shell
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi). TCP/IP fingerprint: SInfo(V=3.50%P=i686-pc-windows-windows%D=7/3%Time=40E74EC0%O=21%C=1) TSeq(Class=TR%IPID=RD%TS=1000HZ) T1(Resp=Y%DF=Y%W=FFFF%ACK=S++%Flags=AS%Ops=MNWNNT) T2(Resp=N) T3(Resp=N) T4(Resp=N) T5(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=) T6(Resp=N) T7(Resp=N) Uptime 1.877 days (since Thu Jul 01 23:23:56 2004) Nmap run completed -- 1 IP address (1 host up) scanned in 775.578 seconds Los puertos marcados como filtered son conocidos como vulnerables a ser atacados, por lo que no es una sorpresa encontrarlos listados como filtrados. Lo más interesante es que los puertos 21, 22 y 23 –por FTP, SSH y Telnet- están listados como abiertos. La última cosa que hace nmap es intentar identificar el sistema operativo que se está ejecutando en el ordenador escaneado. En este caso, las pruebas que ha realizado nmap no son concluyentes al respecto (“no exact OS matches”), aunque como nmap muestra que los puertos de FTP y Telnet están abiertos, puedes intentar conectarte a través de cada uno de estos puertos para ver si devuelve un banner. Cuando te conectas a través de FTP podrías ver un banner como el siguiente: 220 ftp316.pair.com NcFTPd Server (licensed copy) ready. Cuando te conectas a través de Telnet podrías ver un banner como el siguiente:
11
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
FreeBSD/i386 (ttyp7) Una búsqueda rápida vía web (www.google.com) muestra que NcFTPd es un programa de Unix y que FreeBSD es un tipo de sistema operativo basado en Unix, así que es probable que el servidor este ejecutando alguna versión del sistema operativo FreeBSD. No se puede estar completamente seguro (se pueden modificar estos banners), pero es aceptable pensar que es una pista admisible. Así pues, utilizando nmap, conjuntamente con FTP y Telnet, has determinado que el servidor que ha estado enviando e-mails de spams utiliza un sistema operativo basado en Unix – probablemente FreeBSD- y está configurado para enviar y recibir una gran cantidad de información a través de múltiples servicios, incluyendo FTP, Telnet, http, SMTP y POP3.
12
LECCIÓN 5 – IDENTIFICACIÓN DE SISTEMAS
5.5. Lecturas recomendadas Nmap: http://www.insecure.org/nmap/ Más sobre Nmap: http://www.networkmagazine.com/shared/article/showArticle.jhtml?articleId=870 2942&classroom Fport: http://www.foundstone.com/index.htm?subnav=resources/navigation.htm&subc ontent=/resources/proddesc/fport.htm Sitios web detallando puertos y los servicios que los utilizan: http://www.chebucto.ns.ca/~rakerman/port-table.html http://www.chebucto.ns.ca/~rakerman/port-table.html#IANA http://www.iana.org/assignments/port-numbers http://www.networksorcery.com/enp/protocol/ip/ports00000.htm Diversos DNS lookups: http://www.dnsstuff.com/ Ping: http://www.freesoft.org/CIE/Topics/53.htm
13
LECCIÓN 6 MALWARE
LECCIÓN 6 – MALWARE
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a patrocinarlo a través de la compra de una licencia, una donación o un patrocinio. Todos los Derechos Reservados ISECOM, 2004.
2
LECCIÓN 6 – MALWARE
Índice “License for Use” Information............................................................................................................... 2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................4 6.0 Introducción.......................................................................................................................................5 6.1 Virus ....................................................................................................................................................6 6.1.1 Introducción...............................................................................................................................6 6.1.2 Descripción.................................................................................................................................6 6.1.2.1 Virus de Sector de Arranque (Boot Sector Viruses).......................................................6 6.1.2.2 Virus de Archivos Ejecutables..........................................................................................6 6.1.2.3 Virus Residentes en Memoria (Terminate and Stay Resident - TSR)............................ 7 6.1.2.4 Virus Polimórfico................................................................................................................ 7 6.1.2.5 Virus de Macro.................................................................................................................. 7 6.2 Gusanos..............................................................................................................................................8 6.2.1 Introducción...............................................................................................................................8 6.2.2 Descripción.................................................................................................................................8 6.3 Troyanos y Spyware...........................................................................................................................8 6.3.1 Introducción...............................................................................................................................8 6.3.2 Descripción.................................................................................................................................8 6.4 Rootkits y Backdoors.........................................................................................................................9 6.4.1 Introducción...............................................................................................................................9 6.4.2 Descripción.................................................................................................................................9 6.5 Bombas Lógicas y Bombas de Tiempo........................................................................................ 10 6.5.1 Introducción.............................................................................................................................10 6.5.2 Descripción...............................................................................................................................10 6.6 Contramedidas...............................................................................................................................10 6.6.1 Introducción.............................................................................................................................10 6.6.2 Anti-Virus....................................................................................................................................11 6.6.3 NIDS (Sistemas de detección de intrusiones de red).......................................................... 11 6.6.4 HIDS (Sistemas de detección de intrusiones de host)......................................................... 11 6.6.5 Firewalls (Cortafuegos)............................................................................................................11 6.6.6 Sandboxes (Cajas de arena)................................................................................................. 11 6.7 Sanos Consejos de Seguridad.......................................................................................................12 Más Información................................................................................................................................... 13
3
LECCIÓN 6 – MALWARE
Contribuciones Simon Biles, Computer Security Online Ltd. Kim Truett, ISECOM Pete Herzog, ISECOM Marta Barceló, ISECOM Frank Craig, RAN Ingeniería de Sistemas SRL Jaume Abella, La Salle URL - ISECOM
4
LECCIÓN 6 – MALWARE
SSON 6 – MALWARE
6.0 Introducción “Malware” son aquellos programas o partes de ellos que tienen un efecto malicioso en la seguridad de tu ordenador. Este término engloba muchas definiciones las cuales de seguro ya has oído hablar como “Virus”, “Worm (gusano)” y “Trojan (troyano)” y otras de las que posiblemente no hayas oído hablar como “Rootkit”, “Logicbomb (bomba lógica)” y “Spyware”. Este capítulo presentará, definirá y explicará cada una de estas subclases de malware, brindará ejemplos y explicará algunas de las contramedidas que pueden ser puestas en práctica para restringir los problemas que causa el malware.
5
LECCIÓN 6 – MALWARE
6.1 Virus 6.1.1 Introducción Virus – este es el tipo de malware del cual la gente está más concienzada. La razón de que se conozca como “virus” es solamente histórica. Al mismo tiempo que se dio a conocer la aparición del primer virus informático los medios publicaban artículos acerca de la distribución del virus del SIDA. Los paralelismos que se daban entre ambos, la propagación debido a la interacción con un medio infectado, la dependencia de un medio transmisor y la eventual “muerte” de todo anfitrión infectado fomentaron esta definición. Este paralelismo hizo creer, y aún lo hace, que la gente podría llegar a infectarse con un virus informático.
6.1.2 Descripción Los virus son programas auto replicantes que al igual que un virus biológico se adjuntan a otro programa, o en el caso de virus “macro” se adjuntan a otro archivo. El virus se ejecuta solamente cuando se ejecuta el programa o se abre el archivo infectado. Esto es lo que diferencia a los virus de los gusanos: si no se accede al programa o archivo entonces el virus no se ejecutará y por lo tanto no se replicará. Existen distintos tipos de virus aunque la forma más común de encontrarlos hoy en día es en el formato “virus macro”, mientras otros como los virus de sector de arranque (boot sector) sólo se encuentran en “cautividad”.
6.1.2.1 Virus de Sector de Arranque (Boot Sector Viruses) El virus de sector de arranque fue el primer virus en ser creado. Se esconde en el código ejecutable del sector de arranque de los discos de arranque, lo que significaba que para infectar un ordenador había que iniciarlo desde un diskette de arranque infectado. Hace mucho tiempo atrás (15 años aproximadamente) iniciar el ordenador desde un diskette de arranque era algo bastante usual, lo que significó que los virus se distribuían rápidamente, antes de que la gente se diera cuenta de lo que estaba ocurriendo. Este tipo de virus (y también los demás) deben dejar una marca digital para evitar que se infecte repetidamente el mismo objetivo. Es esta firma la que permite que ciertos programas (como por ejemplo los antivirus) detecten la infección.
6.1.2.2 Virus de Archivos Ejecutables El virus de Archivos Ejecutables se adjunta a archivos del tipo .exe o .com. Algunos virus buscaban programas que formaran parte específicamente del sistema operativo y por ello se ejecutaban cada vez que se encendía el ordenador, aumentando así sus posibilidades de una exitosa propagación del virus. Existían unas cuantas maneras de adjuntar un virus a un archivo ejecutable, aunque algunas funcionaban mejor que otras. El método más simple y menos sutil era la de sobrescribir la primer parte del archivo con código de virus, lo que significaba que el virus se ejecutaba pero el resto del programa no funcionaba correctamente. Esto era una clara señal que había una infección – especialmente si el programa era una parte esencial del sistema operativo.
6
LECCIÓN 6 – MALWARE
6.1.2.3 Virus Residentes en Memoria (Terminate and Stay Resident - TSR) La sigla TSR viene del DOS y significa que un programa se carga en memoria y queda residente en segundo plano permitiendo al ordenador trabajar en primer plano de manera normal. Estos virus más avanzados podían interceptar llamadas al sistema operativo (system calls) que podrían exponer su existencia y respondían con respuestas falsas, evitando de esta manera su descubrimiento y/o limpieza. Otros se adjuntaban al comando ‘dir’ e infectaban todas las aplicaciones listadas en el directorio. Algunos hasta detenían (o borraban) los programas anti-virus.
6.1.2.4 Virus Polimórfico Los primeros virus eran bastante fáciles de detectar ya que poseían una cierta firma digital dentro de ellos para evitar una re-infección o simplemente porque poseían una estructura específica que permitía su detección. Luego aparecieron los virus polimórficos. Poli (muchas) Mórficos (formas). Estos virus se modificaban cada vez que se replicaban, reordenando su código, cambiando de encriptación, generando un nuevo código que parecía totalmente distinto al original. Esto creó un gran problema ya que las firmas a detectar eran cada vez más pequeñas y los más avanzados solo se detectaban mediante algoritmos que comparaban combinaciones. Esto se acentuó por la aparición de kits de generación de virus polimórficos que se distribuyeron en la comunidad de autores de virus que permitían generar cualquier virus como polimórfico.
6.1.2.5 Virus de Macro Los virus de Macro hacen uso de la habilidad de muchos programas de ejecutar código. Los programas como Word y Excel poseen versiones de lenguaje de programación Visual Basic limitados en funciones pero muy poderosos. Esto permite la automatización de tareas repetitivas y la configuración automática de ciertos parámetros. Estos lenguajes de macros se utilizan maliciosamente para adosar código viral a los documentos los cuales copiarán el código viral a otros documentos, lo que resulta en una propagación del virus. Aunque Microsoft ha desactivado esa propiedad en las nuevas versiones, Outlook (el programa de correo) ejecutaba cierto tipo de código adosado a los mensajes de correo de manera automática apenas eran abiertos. Eso significaba que los virus se propagaban rápidamente enviándose a toda la lista de direcciones de correo que había en el ordenador infectado. Esto ya ha sido solucionado en las últimas versiones del producto. Ejercicios: 1) Utilizando Internet intenta encontrar un ejemplo de cada tipo de virus definido previamente. 2) Investiga el virus Klez : - ¿cual es su “carga destructiva” (payload)? - el virus Klez es muy conocido por su técnica de SPOOFING. ¿Qué es SPOOFING y como es utilizado por el virus Eles? - acabas de enterarte que tu ordenador está infectado con el virus Klez. Investiga como eliminar el virus.
7
LECCIÓN 6 – MALWARE
3) Acabas de recibir un mensaje de correo con el asunto “Warning about your email account” (advertencia acerca de tu cuenta de correo). El cuerpo del mensaje explica que tu uso indebido del correo electrónico resultará en la pérdida de tus privilegios de Internet y que deberías ver el archivo adjunto para más información. Pero que a ti te conste tú no has hecho nada raro con el correo electrónico. ¿Sospechas? Deberías. Investiga esta información y determina que virus se encuentra adjunto al mensaje.
6.2 Gusanos 6.2.1 Introducción Los Gusanos son antecesores a los Virus. El primer gusano fue creado muchos años antes del primer virus. Este gusano hacía un uso indebido del comando finger de UNIX para rápidamente detener el acceso a Internet (que era sustancialmente menor en esos días). La siguiente sección trata el tema de los gusanos.
6.2.2 Descripción Un gusano es un programa que una vez ejecutado se replica sin necesidad de la intervención humana. Se propagará de anfitrión en anfitrión haciendo uso indebido de un servicio(s) desprotegido(s). Atravesará la red sin la necesidad de que un usuario envíe un archivo o correo infectado. Debes tener en cuenta que la mayoría de los sucesos que han aparecido en los medios últimamente se deben a gusanos y no a virus. Ejercicios: 1) Utilizando Internet, intenta encontrar información del primer gusano que se haya creado. 2) Averigua cual es la vulnerabilidad que utilizan el gusano Code Red y Nimda para propagarse.
6.3 Troyanos y Spyware 6.3.1 Introducción El primer Caballo de Troya fue creado por los Griegos hace miles de años (piensa en la película Troya si la has visto). El concepto básico es que dentro de un sistema que parece seguro se introduce algo malicioso pero disfrazado como sano. Este disfraz podrá ser desde el anticipo de un juego bajado de Internet hasta un mensaje de correo electrónico prometiendo imágenes pornográficas de tu celebridad preferida. Esta sección cubre en detalle los troyanos y el spyware.
6.3.2 Descripción Los Troyanos son códigos maliciosos que intentan mostrarse como algo útil o apetecible para que uno lo ejecute. Una vez ejecutados intentarán instalar un backdoor o rootkit (ver sección
8
LECCIÓN 6 – MALWARE
6.4), o aún peor, intentarán marcar un número de teléfono de acceso a Internet de alto coste, lo que te costará mucho dinero. Spyware es código que se instala clandestinamente casi siempre de sitios de Internet que tú puedas visitar. Una vez instalado buscará en tu ordenador información que considere de valor. Esto podrán ser o estadísticas de tu utilización de Internet o hasta tu número de tarjeta de crédito. Algunas versiones de Spyware inadvertidamente se dan a conocer porque hacen aparecer avisos en tu escritorio de manera irritante. Ejercicios: 1) Mediante Internet encuentra un ejemplo de troyanos y spyware.
6.4 Rootkits y Backdoors 6.4.1 Introducción A menudo cuando un ordenador ha sido vulnerado por un hacker, él mismo intentará instalar un método para poder accederlo fácilmente a voluntad. Existen muchas variaciones de estos programas algunos de los cuales se han vuelto bastante famosos – ¡busca en Internet “Back Orifice” !
6.4.2 Descripción Rootkits y backdoors son códigos maliciosos que elaboran metodologías para permitir el acceso a un ordenador. Van desde los más simples (un programa escuchando en un puerto determinado) hasta los más complejos (un programa que esconderá sus procesos en memoria, modificará los archivos de registros y escuchará en un puerto). A menudo un backdoor será tan simple como crear un usuario que tiene privilegios de super-usuario con la esperanza de que no se note. Esto se debe porque un backdoor está diseñado para evitar el control normal de autenticación de un sistema. Tanto el virus Sobig como el virus MyDoom instalan backdoors como parte de su carga destructiva. Ejercicios: 1) Encuentra en Internet ejemplos de rootkits y backdoors. 2) Investiga acerca de “Back Orifice” y compara sus funcionalidades con las de los programas de acceso remoto promocionados por Microsoft.
9
LECCIÓN 6 – MALWARE
6.5 Bombas Lógicas y Bombas de Tiempo 6.5.1 Introducción Algunos programadores o administradores de sistemas pueden ser bastante peculiares. Se ha sabido de ciertos sistemas donde se han ejecutado algunos comandos en base a la ocurrencia de ciertas condiciones específicas. Por ejemplo: se puede crear un programa donde si el administrador no entra en el sistema en tres semanas él mismo empezará a borrar bits al azar del disco. En el año 1992 se dio un caso que cobró notoriedad en la compañía General Dynamics que involucró a un programador. El programador creó una bomba lógica que se activaría una vez que se fuera y que borraría información crítica. Él esperaba que la compañía le pagara una buena suma para volver y arreglar el problema. Sin embargo otro programador descubrió la bomba lógica antes que explotara y el programador malicioso fue sentenciado y multado con 5.000 US$. Aparentemente el juez fue benevolente ya que los cargos por los que fue sentenciado podían tener una sentencia de prisión y hasta 500.000 US$ de multa.
6.5.2 Descripción Las Bombas lógicas y bombas de tiempo son programas que no poseen rutinas de replicación y no pueden crear accesos remotos, pero son o forman parte de aplicaciones que causarán daño o modificaciones a los datos si son activados. Pueden ser entes individuales o formar parte de gusanos o virus. Las bombas de tiempo están programadas para liberar su carga destructiva en un momento determinado. Las bombas lógicas están programadas para liberar su carga destructiva cuando ocurren determinados eventos. El principio de una bomba de tiempo también se puede aplicar en programaciones no maliciosas. Por ejemplo el concepto de bomba de tiempo nos permite evaluar un programa por un período de tiempo, normalmente treinta días, después del cual el programa cesa de funcionar. Este es un ejemplo de programación no maliciosa que involucra el concepto de bomba de tiempo. Ejercicios: 1) ¿Que otros usos razonables (y legales) pueden darse a los conceptos de bomba de tiempo y bomba lógica? 2) Piensa como puedes detectar un programa de este tipo en tu ordenador.
6.6 Contramedidas 6.6.1 Introducción Existen muchos métodos por los cuales se puede detectar, eliminar y prevenir el malware. Algunos métodos no son más que sentido común mientras otros involucran cierta tecnología. La siguiente sección resalta algunos de estos métodos e incluye una breve explicación y brinda ejemplos.
10
LECCIÓN 6 – MALWARE
6.6.2 Anti-Virus El software anti-virus está disponible en varias versiones comerciales y también en Open Source. Todas funcionan con la misma metodología. Poseen una base de datos de las firmas de los virus y las comparan con los archivos del sistema para ver si existe alguna infección. A menudo con los virus actuales las firmas son muy pequeñas y pueden dar falsos positivos, es decir, detecciones que aparentan ser virus y no lo son. Algunos programas anti-virus utilizan una técnica conocida como “heurística”, que significa que en base al concepto de qué forma debiera tener un virus pueden determinar si un programa desconocido se adecua a este concepto. Recientemente los anti-virus han cruzado el umbral de los sistemas de prevención de intrusiones de host, verificando que no se produzcan anomalías en el funcionamiento de los programas estándar.
6.6.3 NIDS (Sistemas de detección de intrusiones de red) Los sistemas de detección de intrusiones de red son similares a los anti-virus pero aplicado al tráfico de la red. Buscan en el tráfico de red firmas o comportamientos debidos a un virus o gusano. Pueden alertar al usuario atacado o detener el tráfico de red que intenta distribuir el malware.
6.6.4 HIDS (Sistemas de detección de intrusiones de host) Los sistemas de detección de intrusión de host, tal como Tripwire, son capaces de detectar cambios realizados sobre archivos en un servidor. Es razonable esperar que un archivo una vez compilado no necesite ser modificado. Luego, mediante el control de sus características, tales como tamaño, fecha de creación y control de integridad pueden detectar inmediatamente si ha ocurrido algo irregular.
6.6.5 Firewalls (Cortafuegos) Los gusanos se propagan por la red conectándose a servicios vulnerables en cada sistema. Además de asegurarte que estos servicios vulnerables no se estén ejecutando en tu ordenador el siguiente paso es verificar que tu firewall no permita conexiones a estos servicios. Muchos firewalls modernos realizan algún tipo de filtrado de paquetes similar a un NIDS lo cual frenará los paquetes que coincidan con ciertas firmas. (Analizaremos los firewalls con más detalle en la sección 7.1.2).
6.6.6 Sandboxes (Cajas de arena) El concepto de sandboxes es simple: una aplicación o programa tiene su propio entorno para ejecutarse y no puede afectar al resto del sistema. Este concepto se implementa como estándar en el lenguaje de programación Java y también puede implementarse a través de otras utilidades como chroot en Linux. Esto restringe el daño que un malware pueda ocasionarle al sistema operativo anfitrión simplemente restringiéndole los accesos requeridos. Otra opción es la de crear un ordenador virtual completo mediante un producto como VMWare. Esto aísla al ordenador virtual del sistema anfitrión limitando el acceso del mismo según lo haya configurado el usuario. Ejemplo – http://www.vmware.com – VMWare virtual machines
11
LECCIÓN 6 – MALWARE
Ejercicios: 1. El juego de las coincidencias: investiga cada una de las siguientes referencias y asocia el tipo de contramedida que le corresponda: 1. http://www.vmware.com
a. NIDS
2. http://www.tripwire.org
b. Antivirus
3. http://www.snort.org
c. Firewalls
4. http://www.checkpoint.com
d. Sandboxes
5. http://www.sophos.com
e. HIDS
2. Investiga “Spybot Search and Destroy” y determina de que tipo de malware protege. 3. Averigua como funcionan los NIDS y HIDS. 4. Analiza las soluciones de Firewalls en la red. 5. Busca “chroot” en Internet e infórmate acerca de este tipo de “cárcel” o “caja de arena”. LESSON 6 – MALWARE
6.7 Sanos Consejos de Seguridad Existen varios procedimientos simples que minimizarán tu exposición al Malware. Descarga información únicamente de sitios confiables (esto significa no W4R3Z, por
favor) No abras nunca ficheros anexados de un e-mail de gente que no conozcas. No dejes las macros activadas por defecto en tus aplicaciones. Mantén tu sistema operativo y aplicaciones actualizadas con las últimas versiones. Si descargas o instalas software acompañado de un checksum – comprueba dicho
checksum. LESSON 6 – MALWARE
12
LECCIÓN 6 – MALWARE
Más Información Sitios de proveedores de Anti-Virus http://www.sophos.com http://www.symantec.com http://www.fsecure.com http://www.mcafee.com Todos estos sitios poseen bases de datos donde enumeran las propiedades de troyanos, virus y otros malware. También hay descripciones de sus funcionamientos http://www.cess.org/adware.htm http://www.microsoft.com/technet/security/topics/virus/malware.mspx http://www.zeltser.com/sans/gcih-practical/revmalw.html http://www.securityfocus.com/infocus/1666 http://www.spywareguide.com/ http://www.brettglass.com/spam/paper.html http://www.lavasoft.nu/ - AdAware Cleaning Software (Freeware Version) http://www.claymania.com/removal-tools-vendors.html http://www.io.com/~cwagner/spyware.html http://www.bo2k.com/ http://www.sans.org/rr/catindex.php?cat_id=36
13
LECCIÓN 7 ATTACK ANALYSIS
LECCIÓN 7 – ATTACK ANALYSIS
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a patrocinarlo a través de la compra de una licencia, una donación o un patrocinio. Todos los Derechos Reservados ISECOM, 2004.
2
LECCIÓN 7 – ATTACK ANALYSIS
Índice “License for Use” Information............................................................................................................... 2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................4 7.0 Introducción.......................................................................................................................................5 7.1 Netstat y Cortafuegos –firewall - de aplicaciones de hospedaje..............................................5 7.1.1 Netstat.........................................................................................................................................5 7.1.2 Cortafuegos (Firewalls)..............................................................................................................6 7.1.3 Ejercicios......................................................................................................................................7 7.2 Analizadores de paquetes...............................................................................................................8 7.2.1 Analizando..................................................................................................................................8 7.2.2 Decodificando el tráfico de red............................................................................................10 7.2.3 Analizando otras computadoras...........................................................................................12 7.2.4 Sistemas de Detección de Intrusos –IDS por sus siglas en inglés........................................12 7.2.5 Ejercicios....................................................................................................................................12 7.3 Redes y Sistemas Tipo Señuelo (Honeypots y Honeynets)......................................................... 13 7.3.1 Tipos de Sistemas Tipo Señuelo.............................................................................................. 13 7.3.2 Construyendo un Sistema Tipo Señuelo................................................................................14 7.3.3 Ejercicios....................................................................................................................................15 Lecturas Recomendadas.....................................................................................................................16
3
LECCIÓN 7 – ATTACK ANALYSIS
Contribuciones Pete Herzog, ISECOM Chuck Truett, ISECOM Marta Barceló, ISECOM Kim Truett, ISECOM Rafael Acosta Serrano, T&E Solutions José María Fernández Ardavín, T&E Solutions Jaume Abella, La Salle, URL - ISECOM
4
LECCIÓN 7 – ATTACK ANALYSIS
7.0 Introducción Existen muchos programas dentro de tu computadora que intentan abrir conexiones de red. Algunos de estos programas tienen razones válidas para hacerlo (tu explorador de Internet no funcionaría muy bien sin una conexión de red), pero otros son escritos por personas con motivos que van desde lo cuestionable hasta lo criminal. Si deseas proteger tu computadora necesitas aprender a como detectar accesos a la red e identificar el origen del acceso y el motivo de éste. No todo intento de acceso a la red es un ataque, pero si no sabes diferenciar a un amigo de un desconocido podrías fácilmente dejar la puerta abierta.
7.1 Netstat y Cortafuegos –firewall - de aplicaciones de hospedaje Para poder identificar un ataque necesitas conocer qué aplicaciones y qué procesos corren normalmente en tu computadora. Con sólo mirar en un ambiente gráfico como Windows o Linux no es posible conocer que procesos corren debajo de la superficie. Puedes utilizar Netstat y un Cortafuegos para ayudarte a identificar aquellos programas que puedan permitírseles conectar a la red.
7.1.1 Netstat El comando “netstat” muestra el estado de las conexiones de red. Netstat puede proporcionarte información sobre qué puertos están abiertos y qué direcciones IP los están utilizando, qué puertos están siendo utilizados por un protocolo en particular, el estado de un puerto, e información acerca de los procesos o programas que utilizan dicho puerto. Escribe sobre la línea de comando: netstat –aon (para Windows) ó netstat –apn (para Linux) netstat desplegará información similar a ésta: Active Connections Proto
Local Address
Foreign Address
State
PID
TCP
0.0.0.0:1134
0.0.0.0:0
LISTENING
3400
TCP
0.0.0.0:1243
0.0.0.0:0
LISTENING
3400
TCP
0.0.0.0:1252
0.0.0.0:0
LISTENING
2740
TCP
257.35.7.128:1243
64.257.167.99:80
ESTABLISHED
3400
TCP
257.35.7.128:1258
63.147.257.37:6667
ESTABLISHED
3838
TCP
127.0.0.1:1542
0.0.0.0:0
LISTENING
1516
TCP
127.0.0.1:1133
127.0.0.1:1134
ESTABLISHED
3400
TCP
127.0.0.1:1134
127.0.0.1:1133
ESTABLISHED
3400
TCP
127.0.0.1:1251
127.0.0.1:1252
ESTABLISHED
2740
TCP
127.0.0.1:1252
127.0.0.1:1251
ESTABLISHED
2740
5
LECCIÓN 7 – ATTACK ANALYSIS
Ahora necesitas relacionar el número en la columna “PID” - indicador del proceso - con los nombres de los procesos que están corriendo. En Windows, debes abrir el Administrador de Tareas presionando las teclas CTRL+ALT+DEL de manera simultánea (si no se muestra la columna PID da un click sobre Ver, Seleccionar Columnas y selecciona PID.) En Linux ve al intérprete de comandos y escribe “ps auxf” para ver el estado del procesador. En el caso de nuestro ejemplo de resultados, listados en la figura anterior, encontramos que el PID 3400 corresponde a nuestro explorador de Internet y el PID 2740 corresponde a nuestro cliente de correo. Ambos sabemos que están siendo ejecutados y que tienen una razón válida para establecer una conexión a Internet. Sin embargo, el PID 3838 corresponde a un programa llamado 6r1n.exe, y el PID 1516 corresponde a un programa llamado buscanv.exe con los cuales no estamos familiarizados. Sin embargo, no por el hecho de que no reconozcas el nombre de un programa no quiere decir que no tenga una razón válida para estarse ejecutando en el sistema. El siguiente paso será averiguar en Internet en cualquier máquina de búsqueda qué hacen estos programas. En nuestra búsqueda descubrimos que “buscanv.exe” debe estar corriendo para el funcionamiento de nuestro programa de antivirus. Por otra parte encontramos que “6r1n.exe” puede ser un troyano. Viendo otra vez la lista de resultados del netstat, podemos ver que el puerto asociado con el programa “6r1n.exe” es el 6667, el cual es un puerto IRC comúnmente utilizado por troyanos para tener acceso remoto. En este punto, comenzaremos la investigación de métodos para remover el troyano.
7.1.2 Cortafuegos (Firewalls) Ahora, te puedes sentar en tu computadora y correr el comando netstat una y otra, y otra, y otra vez para mantener una vigilancia constante de los datos que entran y salen de tu computadora, o puedes utilizar un cortafuego para que lo haga por ti. Un cortafuego monitorea el tráfico de la red en tu computadora y utiliza un número de reglas o filtros para determinar si un programa tiene o no permiso para acceder a la red. Un cortafuego puede filtrar los datos de acuerdo a la dirección IP y los nombres de dominio, puertos y protocolos, o incluso datos transmitidos. Esto significa que puedes hacer cosas como: Bloquear o permitir toda información proveniente de una dirección IP específica Bloquear o permitir toda información proveniente de un dominio específico Cerrar o abrir puertos específicos Bloquear o permitir ciertos protocolos Bloquear o permitir paquetes de datos con alguna cadena de datos específica. También puedes combinar esta serie de reglas para un control más cuidadoso de los datos que son permitidos a través de la red. Por ejemplo, tú puedes:
6
LECCIÓN 7 – ATTACK ANALYSIS
Permitir datos que provengan de www.ibiblio.com a través de los puertos 20 o 21 solamente. Permitir datos que provengan de www.google.com que usa el protocolo UDP Permitir datos que provengan de www.yahoo.com sólo a través del puerto 80 y sólo si el paquete contiene la cadena de texto “No desperdiciaré el ancho de banda”. No es necesario que gastes tu tiempo configurando todas las reglas de un cortafuego, puedes tomar ventaja de que algunos cortafuegos establecen ciertas reglas por sí solos. Después de que hayas instalado un cortafuego, vas a ser inundado de peticiones de control de acceso y tienes que determinar que programa, puede o no, hacer uso de la red. (Es posible que el programa del cortafuego proporcione la opción de dejar que él mismo determine que programas pueden hacer uso de la red, pero no aprenderías nada, ¿es lo que quieres?). Este proceso será similar al que utilizamos para identificar los procesos con netstat. Un programa llamado “iexplorer.exe” es obviamente Microsoft Internet Explorer y, si tú lo usas como tu explorador de Internet el cortafuego debe permitirle acceder a la Internet, pero un programa llamado “cbox.exe” puede ser cualquier cosa. No tienes otra opción más que ir a tu explorador y averiguar en el motor de búsqueda de tu preferencia de qué es el programa. (Claro que antes de hacer esto, le tienes que indicar a tu cortafuego que permita el acceso de tu explorador a la Internet). Un cortafuego puede darte la opción de permitir el acceso a un programa de manera repetida o sólo por una ocasión. Algunos programas, tales como tu explorador de Internet, deberán tener acceso a la red en cualquier momento, pero con otros programas – como aquéllos que requieren verificar actualizaciones – puedes aprender mucho acerca de cómo funciona tu computadora dejando que te pregunte cada vez que un programa trate de pedir acceso. Los cortafuegos están disponibles como programas individuales (incluyendo versiones de distribución libre para las plataformas Windows y Linux) o existen versiones que vienen junto con programas de antivirus. Adicionalmente, Windows XP contiene dentro de su arquitectura un cortafuego instalado, pero, en el caso del explorador de Internet de Windows, es un objetivo para la gente que busca explotarlo – los defectos en otros cortafuegos pueden no encontrase, pero los existentes en un cortafuego de Microsoft serán encontrados y explotados.
7.1.3 Ejercicios Abre una línea de comando en tu computadora y teclea: netstat –aon (para Windows) ó netstat –apn (para Linux) Encuentra los números PID y trata de determinar que programas se están ejecutando en el sistema. (Esto es algo que puedes hacer también en tu casa.)
7
LECCIÓN 7 – ATTACK ANALYSIS
7.2 Analizadores de paquetes Netstat te dirá qué programas están conectados a la red, pero no te dirá que datos del programa se están enviando. Un analizador de paquetes, sin embargo, te brinda la facultad de registrar y estudiar los datos de los programas que están siendo enviados a través de la red.
7.2.1 Analizando Un analizador de paquetes registrará el tráfico de la red en tu computadora, permitiéndote observar todos los datos. Tcpdump (y en su versión para Windows, windump) están considerados como el arquetipo de los analizadores de paquetes, sin embargo utilizaremos Ethereal para nuestros ejemplos, debido a que tiene una interficie gráfica muy sencilla, permitiéndote registrar y guardar los registros en un archivo de manera rápida. Si no tienes Ethereal, podrás bajarlo de www.ethereal.com. Para los usuarios de Windows, para utilizar Ethereal en una plataforma Windows, deberás bajar e instalar el controlador de captura de paquetes Winpcap. Winpcap está disponible en la página de descargas de Ethereal, o bien, lo encontrarás directamente en la página www.winpcap.polito.it para descargarlo. Cierra cualquier otra aplicación que se esté ejecutando e inicia Ethereal. En el menú haz click en View>Autoscroll in Live Capture. Luego, haz click en Capture y Start para ir al menú de Capture Options. En esta pantalla, asegúrate de que esté activado el campo de “Capture packets in promiscuous mode”, y que tanto los tres apartados bajo “Name Resolution” estén activados, así como el apartado de “Update list of packets in real time”.
8
LECCIÓN 7 – ATTACK ANALYSIS
Ahora da un click en el botón de “OK”. En teoría, nada debería pasar por ahora. Verás una pantalla de Ethereal que despliega el número de paquetes que están siendo capturados y, detrás de esto, verás la pantalla de Ethereal que despliega los datos de esos paquetes. Verás una pequeña cantidad de tráfico originado por otras computadoras en tu red local tratando de mantener la pista de los otros (ARP, NBNS, ICMP) seguido por una actividad de resolución de nombres DNS por parte de Ethereal. Para ver actividad, tendrás que generarla. Mientras está ejecutándose Ethereal, abre tu explorador de Internet. Minimiza cualquier otra aplicación exceptuando Ethereal y el explorador de Internet. Ordena estas dos ventanas para que puedas verlas de manera simultánea. Ahora, ve a un motor de búsqueda en tu explorador, como www.google.com.
9
LECCIÓN 7 – ATTACK ANALYSIS
Mientras la página es cargada, deberás ver información acerca de los paquetes capturados. Elige un tópico a buscar y búscalo, haz click en alguna de las páginas que te mostró el buscador y observa lo que sucede en Ethereal. Nota: Si Ethereal no reporta algún tipo de tráfico, lo más seguro es que no elegiste la tarjeta de red correcta. Ve al apartado de Interface en Capture Options y elige otra interfaz de red (NIC).
7.2.2 Decodificando el tráfico de red Ahora que ya puedes ver el tráfico de la red que se genera a través de tu computadora, deberás saber como decodificarla para interpretarla. En el programa de Ethereal, el primer paso después de que incluso hayas terminado de capturar paquetes, es ir a la pantalla donde se muestra el resumen de la captura que el programa genera cuando está capturando. Para nuestra sesión de búsqueda web muchos de los paquetes deben ser paquetes TCP (aunque si paraste para ver un video en demanda, el número de paquetes UDP seguramente se incrementó). De cualquier forma, si estás capturando una simple sesión de búsqueda web y aparecen paquetes de tipo ARP o ICMP, ésto podría indicar que hay un problema.
10
LECCIÓN 7 – ATTACK ANALYSIS
Después de que hayas terminado la sesión de captura de paquetes, deberás ver algo similar a esto: No. Time
Source
Destination
Protocol
Info
1 0.000000
257.10.3.250
rodan.mozilla.org
TCP
1656 > 8080 [SYN] Seq=0 Ack=0 Win=16384 Len=0 MSS=1460
2 0.045195
257.10.3.250
rheet.mozilla.org
TCP
1657 > http [SYN] Seq=0 Ack=0 Win=16384 Len=0 MSS=1460
3 0.335194
rheet.mozilla.org
257.10.3.250
TCP
http > 1657 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460
4 0.335255
257.10.3.250
rheet.mozilla.org
TCP
1657 > http [ACK] Seq=1 Ack=1 Win=17520 Len=0
5 0.338234
257.10.3.250
rheet.mozilla.org
HTTP
GET /products/firefox/start/ HTTP/1.1
6 0.441049
rheet.mozilla.org
257.10.3.250
TCP
http > 1657 [ACK] Seq=1 Ack=580 Win=6948 Len=0
7 0.441816
rheet.mozilla.org
257.10.3.250
HTTP
HTTP/1.1 304 Not Modified
8 0.559132
257.10.3.250
rheet.mozilla.org
TCP
9 2.855975
257.10.3.250
rodan.mozilla.org
TCP
1657 > http [ACK] Seq=580 Ack=209 Win=17312 Len=0 1656 > 8080 [SYN] Seq=0 Ack=0 Win=16384 Len=0 MSS=1460
10 4.475529
257.10.3.250
name.server.com
DNS
Standard query PTR 250.3.10.257.in-addr.arpa
11 4.475776
257.10.3.250
name.server.com
DNS
Standard query PTR 205.111.126.207.in-addr.arpa
12 4.475854
257.10.3.250
name.server.com
DNS
Standard query PTR 202.111.126.207.in-addr.arpa
En este ejemplo, estos 12 paquetes ilustran la actividad que el explorador de Internet tiene cuando se conecta a cada página de inicio. La información más fácil de decodificar esta en las columnas de origen y destino. La dirección IP 257.10.3.250 es la computadora local, las otras direcciones han sido resueltas por su nombre a través de Ethereal. Debido a que utilizamos Mozilla Firefox como explorador de Internet, y debido a que tiene como página de inicio la página de Mozilla Firefox, no es de sorprenderse el ver direcciones del dominio de mozilla.org. Las peticiones enviadas a name.server.com fueron probablemente generadas por Ethereal cuando envía peticiones de tipo DNS para resolver direcciones IP a nombres. (Nota: estos accesos producidos por el programa de Ethereal fueron debidos a las opciones configuradas en el apartado de Display Options y el apartado de Name Resolution. Estos apartados fueron activados, para fines de ilustración en éste ejemplo, para obtener una salida más legible. Si deshabilitas estas opciones, no verás éstos datos adicionales). Observar la información de origen y destino pueden ayudarte a detectar alguna actividad no autorizada. Por ejemplo, un nombre de dominio desconocido que aparezca constantemente puede indicarte que tienes un programa de tipo espía – spyware – instalado en tu computadora. La siguiente columna es la de Protocolo, la cual indica qué protocolo están utilizando los paquetes. Otra vez, para saber si algo anda mal, deberás saber qué puedes esperar. En la sesión de exploración web esperamos respuestas TCP y http, y sabes el porqué de los paquetes de tipo DNS. Sin embargo, una gran cantidad de paquetes de tipo ICMP pueden significar que tu máquina está siendo rastreada (mediante el uso de la herramienta PING). La última columna, Información, provee mayor detalle de la información acerca de los paquetes. Los paquetes 2, 3 y 4 muestran el proceso de comunicación TCP – three-handed handshake – de SYN, SYN/ACK, ACK, los cuales indican que se ha establecido una conexión. El paquete 5 muestra un comando HTTP GET seguido por el paquete 7 que indica una respuesta de tipo 304 Not modified.
11
LECCIÓN 7 – ATTACK ANALYSIS
Si deseas mayor información sobre los paquetes, al final de las dos ventanas en la pantalla de Ethereal, se muestran explicaciones más detalladas. La ventana de en medio muestra el detalle del encabezado del paquete. La ventana inferior muestra el volcado ASCII y hexadecimal – hex – de los datos dentro del paquete.
7.2.3 Analizando otras computadoras Algunos de ustedes han mirado en la información de esta sección – y habiéndose fijado en los datos registrados por Ethereal, se preguntarán acerca de las posibilidades del uso de aplicaciones del tipo analizador de paquetes para registrar actividades en las computadoras de otras personas. ¿Es esto posible? Sí – y no. A esto se le denomina modo promiscuo, lo cual permite que un analizador de paquetes pueda monitorear la actividad de la red para todas las computadoras en una red. Esto significa que podrás registrar cualquier actividad de red en otra computadora que se encuentra en tu misma red (dependiendo de cómo está configurado el hardware), pero lo que sí es cierto es que no podrás elegir cualquier otra computadora de manera aleatoria y que mágicamente analices sus datos – las dos computadoras deberán estar conectadas entre sí físicamente, y el hardware y software deberá estar configurado de manera apropiada.
7.2.4 Sistemas de Detección de Intrusos –IDS por sus siglas en inglés Probablemente te habrás dado cuenta de que el uso de un analizador de paquetes puede detectar actividad no autorizada en tiempo real, la cual requiere que estés sentado en frente de tu computadora, observando las salidas del analizador de paquetes y deseando de manera desesperada ver algún tipo de patrón. Un sistema de detección de intrusos realiza éste tipo de tareas por ti. Estos programas combinan la habilidad de registrar actividad de la red a partir de una serie de reglas que le permiten señalar actividades no autorizadas y generar avisos en tiempo real.
7.2.5 Ejercicios 1. Abre la aplicación de Ethereal y comienza a capturar en vivo. Ahora abre tu explorador de Internet y busca descargar un documento en texto plano. Descárgalo y sálvalo en tu disco duro, cierra el explorador y finaliza la sesión de Ethereal. Busca en los paquetes capturados por Ethereal, prestando mucha atención al volcado ASCII al final de la ventana. ¿Qué es lo que ves? Si tienes acceso a una cuenta de correo electrónico, trata de leer tu correo mientras Ethereal realiza una captura de paquetes. ¿Qué es lo que ves? 2. Abre Ethereal. En la pantalla de Capture Options cerciórate que esté marcado el apartado de “Capture packets in promiscuous mode”. Esta opción te permitirá capturar paquetes hacia o provenientes de otras computadoras. Comienza a capturar y ve qué es lo que pasa. ¿Ves algún tráfico que no sea el de tu máquina?
12
LECCIÓN 7 – ATTACK ANALYSIS
¿Qué sabes acerca del hardware que conecta tu computadora a la red? ¿Te conecta a otras computadoras a través de un concentrador, conmutador o encaminador? Trata de indagar en una máquina de búsqueda qué pieza o piezas hardware harían más difícil el capturar paquetes de otras computadoras. ¿Qué hardware lo haría más fácil? 3. Ve al sitio www.snort.org, o utiliza una máquina de búsqueda para investigar sistemas de detección de intrusos. ¿Cuál es la diferencia entre éstos y los cortafuegos? ¿Qué tienen en común con los analizadores de paquetes? ¿Qué tipos de actividad no autorizada pueden detectar? ¿Qué tipos de actividad pueden no ser detectados?
7.3 Redes y Sistemas Tipo Señuelo (Honeypots y Honeynets) A la gente que le gusta observar chimpancés van a un zoológico, debido a que regularmente encontrarían chimpancés ahí. A la gente que le gusta observar pájaros ponen bebedores para aves con la finalidad de que vayan los pájaros hacia ellos. A la gente que le gusta observar peces tienen acuarios, y compran peces para ponerlos ahí. Pero, ¿qué harías para observar a los hackers? Pondrías un sistema tipo señuelo – honeypot. Piénsalo de ésta manera –eres un oso. No sabrás mucho (y más siendo un oso) pero sabes que la miel es deliciosa, y que no hay nada mejor en un verano caluroso que un puñado de miel. De repente, sentado afuera en el campo ves un gran panal lleno de miel, y piensas… “Yum!”. Pero una vez que pones tu garra en el panal, corres el riesgo de quedarte atorado. Si no hay nadie más, dejarás una gran y pegajosa huella por donde camines, y cualquiera que las siga terminaría por descubrir que fuiste tú quien tomó la miel. Más de un oso ha sido descubierto debido a su irresistible adicción a la deliciosa miel. Un sistema tipo señuelo es un sistema informático, red o máquina virtual, con el único propósito de atrapar hackers. En un sistema tipo señuelo existen usuarios no autorizados –no contienen información real almacenada ni algún tipo de aplicación real instalada – por lo que, cualquier acceso y/o cualquier intento de ser utilizados, puede ser identificado como no autorizado. En lugar de verificar registros del sistema para identificar intrusiones al mismo, el administrador del sistema sabe que cada acceso registrado es una intrusión, así que gran parte del trabajo ya está hecho.
7.3.1 Tipos de Sistemas Tipo Señuelo Existen dos tipos de Sistemas Tipo Señuelo: de producción y de investigación. Los Sistemas Tipo Señuelo de Producción son generalmente utilizados como sistemas de avisos. Un Sistema Tipo Señuelo de producción identifica una intrusión y genera una alarma. Pueden mostrar que un intruso ha logrado identificar el sistema o red y que está siendo de su interés, pero no más allá. Por ejemplo, si deseas saber si viven otros osos cerca de tu morada, pondrías diez pequeños tarros de miel. Si al revisarlos a la mañana siguiente encuentras uno o
13
LECCIÓN 7 – ATTACK ANALYSIS
más vacíos, entonces sabrás que los osos han estado cerca del lugar sin conocer nada más de ellos. Los Sistemas Tipo Señuelo de Investigación son utilizados para recolectar información sobre las actividades de los Hackers. Un Sistema Tipo Señuelo de Investigación atrapa a los hackers y los mantiene ocupados mientras están siendo registradas todas sus acciones. Por ejemplo, si –en lugar de documentar simplemente su presencia – deseas estudiar a los osos, entonces te sentarías cerca de un gran, delicioso y pegajoso panal en el campo, pero pondrías cámaras, grabadoras y asistentes de investigación con sus libretas de apuntes y cascos alrededor del panal. Los dos tipos de Sistemas Tipo Señuelo difieren principalmente en su complejidad. Es más fácil que configures y mantengas un sistema de producción debido a su simplicidad y al poco manejo de información que deseas obtener. En un Sistema Tipo Señuelo en producción sólo deseas saber si te están “pegando”; no te interesa saber si los hackers se quedan rondando por ahí. Sin embargo, en un Sistema Tipo Señuelo de investigación desearás que los hackers se queden con la finalidad de ver qué es lo que están haciendo. Esto hace más complejo la configuración y el mantenimiento de un sistema de este tipo, debido a que el sistema deberá parecer como un sistema real, en producción y que ofrece archivos y/o servicios interesantes para los hackers. Un oso que sabe cómo es un panal, gastará sólo un minuto en un panal vacío, pero sólo un panal repleto de deliciosa miel lo mantendrá merodeando el lugar, tanto como te sea necesario para que puedas estudiarlo.
7.3.2 Construyendo un Sistema Tipo Señuelo En el sentido más básico, un sistema de tipo señuelo no es nada más que un sistema informático configurado con la esperanza de que sea comprometido por intrusos. Esencialmente, esto significa que si tú conectas una computadora con un sistema operativo inseguro a la Internet, sólo bastará que te sientes a esperar el momento en que la máquina esté comprometida. ¡Ahora, ya has creado un sistema de tipo señuelo! Pero en realidad, este sistema no es tan útil como parece. Es como si dejaras tu miel en el campo y te fueras a tu casa en la ciudad. Cuando regreses, lo más seguro es que la miel haya desaparecido y no sabrás ni quién, ni cómo, ni porqué desapareció. No aprenderás nada de tu sistema tipo señuelo, a menos de que exista una manera para obtener información de él. Para que te sea útil, incluso en los sistemas más sencillos, deberá tener algún sistema de detección de intrusos. El sistema de detección de intrusos puede ser tan simple como un cortafuego. Generalmente el cortafuego es utilizado para prevenir el acceso de usuarios no autorizados a un sistema, aunque también para registrar todo aquello que sucede y/o saber si una aplicación ha sido detenida. El revisar los archivos de registro producidos por un cortafuego puede brindarte información básica sobre los intentos de acceso al sistema tipo señuelo. Otros sistemas más complejos de tipo señuelo contemplan el uso de hardware, tales como concentradores, conmutadores o encaminadores, a fin de monitorear o controlar accesos futuros a la red. También es común que utilicen analizadores de paquetes para obtener información adicional acerca del tráfico de red.
14
LECCIÓN 7 – ATTACK ANALYSIS
Los sistemas tipo señuelo de Investigación deberán ejecutar programas para simular el uso normal, haciéndoles parecer que el sistema tipo señuelo está siendo accedido por usuarios autorizados, engañando a intrusos potenciales con correos, contraseñas y datos falsos. Este tipo de programas también pueden ser utilizados para disfrazar sistemas operativos, hacerlos parecer como por ejemplo, que una computadora con plataforma Linux esté corriendo Windows. Pero el asunto acerca de la miel – es que es pegajosa, y que siempre existe la posibilidad de que el sistema tipo señuelo se torne en un nido de abejas. Y cuando las abejas regresan a su casa no te gustaría ser el que se le atoró la mano en el panal. Un sistema tipo señuelo mal configurado puede fácilmente convertirse en un punto de lanzamiento de otros ataques. Si un hacker compromete tu sistema tipo señuelo, de manera instantánea realizará un asalto sobre una gran empresa o utilizará tu sistema para distribuir spamm de tipo inundación, y lo más seguro es que tú seas identificado como el responsable. Un sistema tipo señuelo bien configurado puede controlar el tráfico de red entrante y/o saliente de la computadora. Un sistema sencillo de producción podrá permitir la entrada de tráfico a través de tu cortafuego, pero frenará todo el tráfico saliente. Ésta es una sencilla pero de eficaz solución, pero algunos intrusos se percatan rápidamente que no existe tráfico saliente, aunque no todos. Los sistemas tipo señuelo de investigación –que deseen mantener a los intrusos interesados por el mayor tiempo posible – en algunas ocasiones utilizan software que “mutilan”, los cuales auditan el tráfico saliente y desarman los datos potencialmente peligrosos mediante su modificación haciéndolos inofensivos.
7.3.3 Ejercicios Los sistemas tipo señuelo pueden ser herramientas útiles para la investigación y para la identificación de intrusos, pero el utilizarlos para atraparlos y procesarlos es otro asunto. Distintas jurisdicciones tienen diferentes definiciones y estándares, jueces y jurados pueden discrepar en los puntos de vista, por lo que muchas preguntas deberán ser consideradas. ¿Los sistemas tipo señuelo representan un intento de trampa? ¿El registrar las actividades de un hacker resulta, de alguna manera, en la intercepción de la comunicación como en el caso de los teléfonos? Y de acuerdo a preguntas específicas de éstos sistemas –¿puede ser ilegal el comprometer un sistema que esté diseñado para ser comprometido? Estas preguntas todavía tendrán que ser revisadas, estudiadas y probadas a fondo. Discute tus opiniones con respecto a la legalidad del uso de sistemas tipo señuelo para atrapar a hackers involucrados en actividades criminales. ¿Piensas que puede ser una herramienta útil para las agencias protectoras de la ley? ¿Es una trampa? ¿Piensas que constituye un “conocimiento atractivo pero molesto”? Si un hacker compromete un sistema tipo señuelo, ¿quién crees que sería el responsable?
15
LECCIÓN 7 – ATTACK ANALYSIS
Lecturas Recomendadas Netstat http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/enus/netstat.mspx Información General de los Cortafuegos: http://www.howstuffworks.com/firewall.htm http://www.interhack.net/pubs/fwfaq Uno de muchos programas libres tipo cortafuego: http://www.agnitum.com/index.html Protegiendo con cortafuegos – para Linux: http://www.iptables.org Analizadores de Paquetes http://www.robertgraham.com/pubs/sniffing-faq.html Snort y sistemas de detección de intrusos – IDS’s: http://www.linuxsecurity.com/feature_stories/feature_story-49.html http://www.snort.org/docs/lisapaper.txt Sistemas de Tipo Señuelo – Honeypots: http://www.honeypots.net/honeypots/links
16
LECCIÓN 8 DIGITAL FORENSICS
LECCIÓN 8 – DIGITAL FORENSICS
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a patrocinarlo a través de de la compra de una licencia, una donación o un patrocinio. Todos los Derechos Reservados ISECOM, 2004.
2
LECCIÓN 8 – DIGITAL FORENSICS
Índice “License for Use” Information............................................................................................................... 2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................4 8.2. Principios del Forensics.....................................................................................................................6 8.2.1. Introducción..............................................................................................................................6 8.2.2. Evita la contaminación............................................................................................................6 8.2.3. Actúa metódicamente............................................................................................................6 8.2.4. Cadena de Evidencias............................................................................................................6 8.2.5. Conclusiones............................................................................................................................. 6 8.3. Análisis forense individualizado...................................................................................................... 7 8.3.1. Introducción..............................................................................................................................7 8.3.2. Fundamentos sobre discos duros y medios de almacenaje.............................................. 7 8.3.3. Encriptación, Desencriptación y Formatos de Ficheros...................................................... 9 8.3.4 Buscando una aguja en un pajar..........................................................................................11 8.3.4.1 Find....................................................................................................................................11 8.3.4.2 Grep..................................................................................................................................11 8.3.4.3 Strings................................................................................................................................12 8.3.4.4 Awk...................................................................................................................................12 8.3.4.5 El pipe “|”........................................................................................................................12 8.3.5 Haciendo uso de otras fuentes..............................................................................................13 8.4 Network Forensics............................................................................................................................13 8.4.0 Introducción.............................................................................................................................13 8.4.1 Firewall Logs..............................................................................................................................13 8.4.2 La cabecera de los mails....................................................................................................... 14 8.5 Lecturas de interés..........................................................................................................................14
3
LECCIÓN 8 – DIGITAL FORENSICS
Contribuciones Simon Biles – Computer Security Online Ltd. Pete Herzog – ISECOM Chuck Truett, ISECOM Marta Barceló, ISECOM Kim Truett, ISECOM Guiomar Corral - Enginyeria La Salle Jaume Abella - Enginyeria La Salle
4
LECCIÓN 8 – DIGITAL FORENSICS
8.1. Introducción Forensics o el análisis forense está relacionado con la aplicación de técnicas de investigación metódicas para poder reconstruir una secuencia de eventos. La mayoría de personas conocen el concepto de análisis forense por la televisión y las películas, como por ejemplo la serie “CSI ( Crime Scene Investigation )” que es una de las más conocidas. La ciencia del análisis forense ha estado durante mucho tiempo, e incluso todavía lo está, relacionada con la Patología Forense (averiguar las causas de la muerte de personas). La primera descripción detallada que se ha encontrado del análisis forense es respecto a la Patología Forense y data del 1248, en un libro chino llamado Hsi DuanYu (the Washing Away of Wrongs). Este libro describe como distinguir si alguien ha muerto ahogado o estrangulado.1 Digital forensics o el análisis forense digital es un poco menos confuso pero también es menos conocido. Es el arte de recrear qué ha pasado en un dispositivo digital. Al principio, estaba restringido solo a los ordenadores, pero ahora comprende cualquier tipo de dispositivo digital como teléfonos móviles, cámaras digitales e, incluso, dispositivos GPS2. Se ha utilizado para capturar asesinos, secuestradores, infractores, jefes de la Mafia y muchas otras clases de gente poco amistosa. En esta lección, cubriremos dos aspectos del análisis forense (lo sentimos, todos basados en ordenadores – no hay temas de móviles aquí). 1. Así pues, veremos lo que la gente puede llegar a tener en sus propios ordenadores. Esto cubre...
… la recuperación de ficheros borrados
… decodificación elemental
… la búsqueda de cierto tipo de ficheros
… la búsqueda de ciertas frases
… la búsqueda en áreas interesantes del ordenador
2. También veremos lo que un usuario remoto ha estado haciendo en el ordenador de otra persona. Esto cubre...
… la lectura de ficheros log
… la reconstrucción de acciones
… la búsqueda en áreas interesantes del ordenador
… el rastreo de la fuente
1 Aparentemente está relacionado con las marcas dejadas alrededor de la garganta, y el nivel de penetración del agua en los pulmones. 2 Global Positioning System – Sistema que puede comunicar tu posición en cualquier parte del mundo utilizando satélites orbitales.
5
LECCIÓN 8 – DIGITAL FORENSICS
Esta lección se centrará en las herramientas disponibles en Linux. Existen también herramientas disponibles para Windows así como software y hardware dedicado para el análisis forense, pero con la capacidad de Linux para montar y entender un gran número de sistemas de ficheros y sistemas operativos.
8.2. Principios del Forensics 8.2.1. Introducción Existen un gran número de principios básicos que son necesarios independientemente de si estás examinando un ordenador o un cadáver. Esta sección resume la mayoría de estos principios.
8.2.2. Evita la contaminación En televisión salen los examinadores forenses ataviados con batas blancas y guantes, cogiendo todas las pruebas con pinzas y poniéndolas en bolsa de plástico selladas. Todo ello es para prevenir la “contaminación”. Aquí es donde las evidencias se pueden echar a perder, por ejemplo, si alguien coge un cuchillo y deja sus huellas digitales en la hoja del cuchillo (¿te acuerdas de la película del Fugitivo?… Piensa en los problemas que llegó a tener!).
8.2.3. Actúa metódicamente En cualquier cosa que hagas, si tuvieras que ir a un juicio, necesitarías justificar todas las acciones que hayas tomado. Si actúas de una manera científica y metódica, tomando cuidadosas notas de todo lo que haces y cómo lo haces, esta justificación es mucho más fácil. También permite a cualquier otra persona poder seguir tus pasos y verificar que tú no has cometido ningún error que pueda poner en duda el valor de tu evidencia.
8.2.4. Cadena de Evidencias Siempre debes mantener lo que se denomina la “Cadena de Evidencias”. Esto significa que, en cualquier momento del tiempo, desde la detección de la evidencia hasta la presentación final en el juicio, puedes justificar quién ha tenido acceso y dónde ha sido. Esto elimina la posibilidad de que alguien haya podido sabotearlo o falsificarlo de alguna manera.
8.2.5. Conclusiones Ten siempre presentes estas cosas, incluso si tu trabajo no se va a presentar a ningún tribunal. Así podrás maximizar tus habilidades como analista forense.
6
LECCIÓN 8 – DIGITAL FORENSICS
8.3. Análisis forense individualizado 8.3.1. Introducción Esta sección trata sobre el análisis forense en una sola máquina. Para asignarle un nombre mejor, lo llamaremos “stand-alone forensics” o análisis forense individualizado. Probablemente, esta es la parte más común del análisis forense de ordenadores y su papel principal se basa en descubrir qué se ha estado haciendo con un ordenador en particular. El analista forense podría estar buscando una evidencia de fraude, como por ejemplo hojas de balance financieras, evidencia de comunicación con alguien, correos electrónicos o una agenda de direcciones, o evidencia de un tema particular, como imágenes pornográficas.
8.3.2. Fundamentos sobre discos duros y medios de almacenaje Los elementos que componen un ordenador común son, entre otros: el procesador, la memoria, la tarjeta gráfica, la unidad de CD, etc. Uno de los más importantes es el disco duro. Aquí es donde se guarda la mayor parte de la información que el ordenador necesita. El sistema operativo (OS) como Windows o Linux reside aquí, junto con las aplicaciones de usuario como el procesador de texto y los juegos. Aquí también se guarda gran cantidad de información, ya sea de forma deliberada al guardar un fichero, o de forma incidental con del uso de ficheros temporales y cachés. Esto es lo que permite a un analizador forense reconstruir las acciones que el usuario ha llevado a cabo con el ordenador, los ficheros a los que ha accedido y mucho, mucho más. El disco duro puede ser examinado a varios niveles, pero para el propósito de esta lección nos centraremos únicamente en el nivel del sistema de ficheros (file system). Sin embargo, debemos tener en cuenta que los profesionales son capaces de analizar el disco a un gran nivel de detalle para determinar lo que contenía; incluso si ha sido sobrescrito varias veces. El sistema de ficheros (file system) es la implementación en un ordenador de un gabinete de ficheros. Este contiene cajones (las particiones), carpetas (los directorios) y papeles (los ficheros). Los ficheros y los directorios pueden estar ocultos, aunque sólo es una característica superficial que puede ser fácilmente desactivada. Los siguientes ejercicios nos permitirán tener un mejor conocimiento de las bases del almacenaje de información en los discos. Ejercicios Para cada uno de los términos siguientes relacionados con los medios de almacenaje, busca información y aprende cómo funcionan. Tu primer paso en el análisis forense consiste en conocer cómo funciona un equipo de manera normal.
7
LECCIÓN 8 – DIGITAL FORENSICS
1. Disco físico/duro/magnético: Aquí es donde básicamente tu ordenador almacena los ficheros para que permanezcan allí cuando se apaga el ordenador. Explica cómo se utiliza el magnetismo en un disco duro. 2. Pistas: ¿Qué son las ‘pistas’ de un disco duro? 3. Sectores: Esto es un espacio fijo donde se almacenan los datos. Explica cómo. 4. Cluster/Unidad de asignación: Explica porqué, cuando se escribe un fichero en el disco duro, puede ser que ocupe más espacio del que necesita. ¿Qué pasa con el espacio vacío? Si buscas el término “file slack” te ayudará a entender el concepto. 5. Espacio libre/sin asignar: Esto es lo que queda una vez que has suprimido archivos. ¿Pero esos ficheros realmente han desaparecido? Explica cómo se borra un fichero del ordenador. Si buscas las herramientas relacionadas con el borrado o eliminación segura (secure delete), éstas te pueden ayudar. 6. Hash, también conocido como MD5 hash: Explica qué es hash y para qué se utiliza. 7. BIOS: Son las siglas de "Basic Input/Output System". ¿Qué es y donde está en el PC? 8. Sector de arranque: Éste trabaja con las tablas de partición para ayudar a que tu PC encuentre el sistema operativo que debe ejecutar. Hay muchas herramientas para trabajar con las particiones, siendo la estándar la herramienta llamada fdisk. Conocer cómo funcionan estas herramientas es tu primer indicio para entender cómo funcionan las particiones y el sector de arranque. 9. Cyclical Redundancy Check (CRC): También se le conoce como Código de Redundancia Cíclica. Cuando el disco duro te informa de un mensaje de error de lectura o "read error", esto significa que los datos fallaron en el chequeo de CRC. Averigua qué es el chequeo de CRC y qué hace. 10. Firma de fichero: A veces un fichero tiene una firma pequeña de 6 bytes al inicio del fichero que identifica el tipo de fichero. La forma más fácil para verla es abrir el fichero con un editor de texto. Abre 3 ficheros de cada una de las siguientes extensiones con un editor de texto: .jpg, .gif, .exe, .mp3. ¿Cuál es la primera palabra al inicio de cada uno de los ficheros? 11. RAM (Random-Access Memory): También se conoce como simplemente “memoria” y es el emplazamiento temporal para leer y escribir información, ya que es mucho más rápido que escribir en el disco duro. El problema es que se pierde toda la información cuando se apaga el ordenador. Explica cómo trabaja la RAM. Sabiendo que tu ordenador debe de tener entre 64 y 512 Mb de RAM, busca información sobre algún ordenador que tenga más RAM que esa. Actualmente, el disco RAM mayor (un disco duro superrápido emulado en RAM) es de 2.5 Tb (Terabyte). ¿Cuántas veces es mayor que tu PC?
8
LECCIÓN 8 – DIGITAL FORENSICS
8.3.3. Encriptación, Desencriptación y Formatos de Ficheros Muchos de los ficheros que te encontrarás no son descifrables de manera inmediata. Muchos programas tienen sus propios formatos de fichero, mientras que hay otros que utilizan formatos estándar – por ejemplo, los formatos de fotografías estándar - gif, jpeg, etc. Linux proporciona una utilidad excelente para ayudarte a empezar a determinar el tipo de cada fichero. Es lo que se denomina file. Command Line Switch
Efecto No para a la primera coincidencia, continúa Sigue links simbólicos Intenta mirar en el interior de archivos comprimidos.
-k -L -z
Un ejemplo de la utilización del comando file se muestra a continuación: [simon@frodo file_example]$ ls arp.c
nwrap.pl
isestorm_DivX.avi
oprp_may11_2004.txt
krb5-1.3.3
VisioEval.exe
krb5-1.3.3.tar
Windows2003.vmx
krb5-1.3.3.tar.gz.asc [simon@frodo file_example]$ file * arp.c:
ASCII C program text
isestorm_DivX.avi:
RIFF (little-endian) data, AVI
krb5-1.3.3:
directory
krb5-1.3.3.tar:
POSIX tar archive
krb5-1.3.3.tar.gz.asc:
PGP armored data
nwrap.pl: executable
Paul Falstad's zsh script text
oprp_may11_2004.txt: ASCII English text, with very long lines, with CRLF line terminators VisioEval.exe: MS Windows Windows2003.vmx: executable
MS-DOS executable (EXE), OS/2 or a /usr/bin/vmware script text
[simon@frodo file_example]$ A partir de aquí, puedes intentar leer cierto tipo de ficheros. Hay ciertas utilidades de conversión de ficheros disponibles para Linux e, incluso, hay más disponibles en Internet, así como también visualizadores de ficheros para varios formatos. A veces se puede requerir más de un paso para llegar hasta donde realmente se puede trabajar con la información ¡Intenta pensar de forma lateral!
9
LECCIÓN 8 – DIGITAL FORENSICS
De manera ocasional, te podrás encontrar ficheros que han sido encriptados o protegidos con alguna contraseña. La complicación que esto presenta varía según la encriptación proporcionada por ciertas aplicaciones, pero puede dar grandes quebraderos de cabeza incluso a entidades como la NSA (o GCHQ o cualquier agencia estatal o local). También existe un gran número de herramientas disponibles en Internet, que puedes utilizar para romper la encriptación de un fichero. Solo hace falta que mires alrededor del ordenador con el que estás trabajando, para ver que las personas no son muy buenas recordando contraseñas y seguramente habrán dejado escrito en algún papel su contraseña. Además, es muy común que las contraseñas estén relacionadas con sus mascotas, familiares, fechas (aniversarios, nacimientos…), números de teléfono, matrículas y otras combinaciones sencillas (123456, abcdef, qwerty...). Además, las personas son reticentes a utilizar más de una o dos contraseñas para todo, por lo que si consigues una contraseña de algún fichero o aplicación, prueba la misma con otros ficheros porque seguramente será la misma.
Ejercicios Aunque es legal crackear tus propias contraseñas si las has olvidado, en algunos países no es legal intentar resolver cómo se han encriptado los ficheros para protegerlos de ser crackeados. Las películas DVD también están encriptadas para prevenir que se puedan extraer del DVD y se vendan. Aunque es una manera excelente de encriptación, no es legal buscar métodos para averiguar cómo se ha utilizado la encriptación. Esto lleva a tu primer ejercicio: 1. ¿Qué es "DeCSS" y qué relación tiene con la encriptación de DVDs? Busca información sobre "decss" para aprender más. 2. Saber que algo está protegido mediante contraseñas significa aprender cómo abrir ese fichero. Esto es lo que se conoce como “crackear” la contraseña. Busca información sobre cracker distintos tipos de contraseñas. Para hacerlo busca "cracking XYZ passwords" donde XYZ es el tipo de contraseña que estás buscando. Hazlo para el siguiente tipo de contraseñas: a. MD5 b. Windows Administrator c. Adobe PDF d. Excel 3. Si el método de encriptación es demasiado fuerte para romperlo, seguramente será necesario realizar un “ataque de diccionario” o “dictionary attack” (también llamado de “fuerza bruta” o “brute force”). Encuentra qué es un ataque de diccionario y mira si puedes encontrar una herramienta que realice un “ataque de diccionario” contra el fichero de password de UNIX: el “/etc/passwd”.
10
LECCIÓN 8 – DIGITAL FORENSICS
8.3.4 Buscando una aguja en un pajar Los programas comerciales existentes sobre análisis forenses incluyen herramientas de búsqueda de grandes prestaciones, permitiéndole buscar según diferentes combinaciones y permutaciones de factores. Pero para no depender de estas herramientas, en su mayoría de gran coste, haremos uso de nuestro ingenio para realizar ese análisis. Nos ayudaremos de las herramientas básicas que nos proporciona Linux. Las siguientes tablas detallan el uso de los comandos find, grep y strings, y explica como utilizarlas en combinación, una con otra.
8.3.4.1 Find find [path...][expression] find se usa para encontrar archivos que reúnen ciertos criterios dentro del sistema operativo, no está diseñado para mirar dentro de cada archivo. Debe haber un millón de permutaciones de expresiones que se pueden combinar para buscar un archivo. Ejercicio: 1. Lee la página del manual del comando find. En la siguiente tabla completa el “Efecto” para cada una de las “Expresiones”. (Indicación: Cuando se pasa un número como argumento se puede especificar de las siguientes formas: +n para indicar mayor que n; -n para indicar menor que n; n para indicar igual que n). Expresión -amin n -anewer -atime -cnewer -iname -inum -name -regex -size -type -user
Efecto Archivos accedidos hace menos de n minutos
8.3.4.2 Grep grep es una herramienta inmensamente potente. Se utiliza para encontrar ciertas líneas dentro de un archivo. Esto te permite encontrar rápidamente ficheros que contienen cierta información dentro de un directorio o de un sistema de ficheros. También permite buscar ciertas expresiones comunes. Existen algunos patrones de búsqueda que permiten especificar ciertos criterios que la búsqueda debe encontrar. Por ejemplo: encontrar todas las palabras de un diccionario que empiezan por “s” y terminan por “t” para ayudarte a resolver un crucigrama. grep ^s.*t$ /usr/share/dict/words Ejercicios:
11
LECCIÓN 8 – DIGITAL FORENSICS
1. Lee la página del manual del comando grep. 2. Busca por Internet expresiones comunes para el comando grep. Intenta construir una expresión regular que permita encontrar todas las palabras que tengan cuatro letras y contengan una “a”.
8.3.4.3 Strings strings es otra utilidad muy útil. Esta herramienta busca dentro de un fichero cualquier tipo de expresiones o frases que puedan ser leídas (“human readable strings”). Esto nos puede dar gran cantidad de información sobre un fichero específico, y proveer información sobre la aplicación que lo creó, autores, fecha de creación, etc. Ejercicio: 1. Lee la página del manual del comando strings.
8.3.4.4 Awk awk es un lenguaje de programación diseñado para trabajar con frases. Se utiliza para extraer información de un comando y usarla como parámetros de otro. Por ejemplo, para extraer del comando ps únicamente el nombre de los programas que se están ejecutando, deberíamos usar: ps | awk '{print $4}' Ejercicio: 1. Lee la página del manual del comando awk.
8.3.4.5 El pipe “|” Todos los comandos anteriores pueden combinarse usando el comando “pipe” (enlace) de UNIX, el cual se representa con el símbolo “|”. Esto nos permite coger el resultado de un comando para proveer de parámetros a otro. Por ejemplo, para encontrar en el directorio actual todos los ficheros mpg, utilizaremos: ls | grep mpg Ejercicios: 1. Usando el comando ls, el comando grep y el comando pipe, encuentra en el directorio actual todos los ficheros que fueron creados este mes. 2. Usando el comando ps y el comando awk, muestra el nombre de todos los programas que se están ejecutando.
12
LECCIÓN 8 – DIGITAL FORENSICS
8.3.5 Haciendo uso de otras fuentes Existen muchas más vías para examinar la manera en que se ha utilizado un ordenador. Casi todas las aplicaciones que se ejecutan en un ordenador registran datos adicionales más allá de los que se necesitan para correr la aplicación. Se pueden incluir los archivos temporales que utiliza, los archivos temporales de Internet, etc. Ejercicios: 1. Qué es el “browser cache”? Encuentra el lugar donde el explorador que utilizas guarda su cache. 2. Qué son los “browser cookies”? Encuentra el lugar donde el explorador que utilizas guarda sus “cookies”. 3. Busca información acerca de las “cookies” del explorador. ¿Qué tipo de “cookies” son y qué tipo de información hay en ellas guardas? 4. Tu ordenador usa directorios temporales donde guardar archivos por defecto para el usuario. Se conocen como “Datos de aplicación” (Application Data). Busca los directorios temporales que tienes disponibles en tu ordenador. A menudo se suelen llamar como “tmp” o “temp”, pero hay muchos más que desconoces, que también son temporales. Una buena manera de encontrarlos es haciendo un FIND de los archivos que contengan la fecha de hoy. Desaparecen estos archivos al reiniciar el ordenador?
8.4 Network Forensics 8.4.0 Introducción Network forensics (forensics de red) se usa par buscar donde se encuentra un ordenador y para saber si un archivo en particular se ha enviado desde un ordenador en concreto. El network forensics es bastante complicado, pero se van a tratar los temas básicos que se puedan aplicar al día a día.
8.4.1 Firewall Logs ¿Quién se conecta a mi ordenador? El firewall es una utilidad que hace que se bloqueen las conexiones entre dos puntos de la red. Existen diferentes tipos de firewalls. Sin tener en cuenta el tipo ni la tarea del firewall, descubriremos que los archivos “logs” serán los que nos ayuden más. Solamente utilizando los logs, podremos encontrar la manera o conducta con la que nos atacan nuestro firewall, para así combatirles. Ejercicios: 1. Visita la web http://www.dshield.org. Esta web contiene los archivos logs de multitud de firewalls de todo el mundo, con los que se puede contrastar los diferentes ataques que sufren y los patrones que siguen dichos ataques. Esto
13
LECCIÓN 8 – DIGITAL FORENSICS
ayuda a los profesionales a verificar si su red estará bien protegida si sufre algún tipo de ataque como el que ya se ha realizado en otro lugar. Haz una leida por la web y explica cómo se ha realizado este gràfico de proporciones y su significado. 2. En la misma web, lee el apartado “Fight back” y las respuestas de los emails recibidos. Intenta explicar su propósito.
8.4.2 La cabecera de los mails Los e-mails contienen además de la información propia, una información acerca de cada ordenador por el que ha ido pasando hasta llegar al ordenador tuyo. Esta información se encuentra en la cabecera. A veces, hay más información en las cabeceras, pero no es tarea fácil ver esta información. Los clientes de correo tienen diferentes maneras de ver dicha información. Lo realmente interesante es saber como ha sido escrita esta información para atrás. En lo más alto de la lista esta tu ordenador, y según van avanzando las líneas, te vas alejando de tu ordenador hasta llegar finalmente al ordenador que te ha enviado el correo. Ejercicios 1. Visita la web http://www.samspade.org y ves a la sección “The Library”. Después de leer esta sección deberías ser capaz de saber leer las cabeceras de los e-mails. Échale un vistazo también a los e-mails falsificados y al abuso de emails. Explica los diferentes métodos para poder hacer daño mediante el uso del correo electrónico. 2. Determina como averiguar las cabeceras de los e-mails que recibes propios. ¿Tienen algún campo en particular que no te pertenezca? Analízala e intenta explicar cada uno de los campos que hay en ella.
8.5 Lecturas de interés Los siguientes links están en inglés: http://www.honeynet.org/papers/forensics/ http://www.honeynet.org/misc/chall.html - Some forensic exercises. http://www.porcupine.org/forensics/ - The classics http://www.computerforensics.net/ http://www.guidancesoftware.com/corporate/whitepapers/index.shtm#EFE http://www.forensicfocus.com/ http://www.securityfocus.com/infocus/1679 http://www.linuxsecurity.com/feature_stories/feature_story-139.html http://www.linuxsecurity.com/feature_stories/feature_story-140.html http://www.securityfocus.com/incidents http://staff.washington.edu/dittrich/talks/blackhat/blackhat/forensics.html http://www.openforensics.org/ http://fire.dmzs.com/ http://www.sleuthkit.org/ http://www.fbi.gov/hq/lab/fsc/backissu/oct2000/computer.htm
14
LECCIÓN 9 SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a patrocinarlo a través de la compra de una licencia, una donación o un patrocinio. Todos los Derechos Reservados ISECOM, 2004.
2
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
Índice “License for Use” Information................................................................................................................ 2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................4 9.0 Introducción.......................................................................................................................................5 9.1 ¿Cómo funciona el correo electrónico?...................................................................................5 9.1.1 Cuentas de correo electrónico......................................................................................... 5 9.1.2 POP y SMTP............................................................................................................................5 9.1.3 Correo Web..........................................................................................................................7 9.2 Utilización segura del Correo Parte 1: Recibiendo...................................................................7 9.2.1 Spam, Phishing y Fraude.....................................................................................................7 9.2.2 Correo HTML..........................................................................................................................8 9.2.3 Seguridad en Archivos Anexados......................................................................................8 9.2.4 Encabezados Falsos / Forged headers.............................................................................8 9.3 Utilización Segura del Correo Parte 2: Enviando.................................................................... 11 9.3.1 Certificados Digitales.........................................................................................................11 9.3.2 Firmas Digitales...................................................................................................................12 9.3.3 Obteniendo un certificado.............................................................................................. 13 9.3.4 Encriptación / Cifrado.......................................................................................................13 9.3.5 ¿Cómo funciona?..............................................................................................................13 9.3.6 Desencriptación.................................................................................................................14 9.3.7 ¿Es el cifrado irrompible?..................................................................................................14 9.4 Seguridad en las Conexiones....................................................................................................15 Lecturas Recomendadas................................................................................................................16
3
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
Contribuciones Stephen F. Smith, Lockdown Networks Chuck Truett, ISECOM Marta Barceló, ISECOM Kim Truett, ISECOM Rafael Acosta Serrano, T&E Solutions Jaume Abella - Enginyeria La Salle
4
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
9.0 Introducción Todo el mundo hace uso del correo electrónico. Es la segunda aplicación más utilizada sobre la Internet además del explorador. Lo que no te percatas es del nivel significativo de ataques existentes derivados del uso del correo electrónico. Y en lo concerniente a tu privacidad, el mal uso del e-mail estriba en comprometer y/o divulgar el contenido del mensaje, o proporcionar información spammer acerca de ti. El propósito de éste módulo es proveerte de información sobre cómo funciona el e-mail, la utilización segura de la herramienta, ataques basados en e-mail y las estrategias de seguridad para el e-mail. LESSON 9 – E-MAIL SECURITY
9.1 ¿Cómo funciona el correo electrónico? Al igual que el correo aéreo es enviado por aire, el ´e´-mail es enviado a través del medio “e”-lectrónico en y entre las redes que conforman la Internet. Cuando envías un correo electrónico desde tu computadora, los datos son enviados a un servidor SMTP. El servidor SMTP busca el servidor POP3 correcto y envía tu e-mail a ese servidor, donde espera a que el receptor pueda recuperarlo.
9.1.1 Cuentas de correo electrónico Las cuentas de correo electrónico están disponibles a través de varias fuentes. Puedes conseguir una a través de tu escuela, trabajo o de un proveedor de servicios de Internet (ISP por sus siglas en inglés). Cuando obtienes una cuenta de e-mail, te darán una cuenta de correo que consta de dos partes usuario@nombre.dominio. La primera parte, el nombre del usuario, te identifica en tu red, diferenciándote de otros usuarios de la misma red. La segunda parte, el nombre de dominio, se utiliza para identificar tu red. El nombre de usuario deberá ser único dentro de tu red, al igual que el nombre del dominio deberá ser único entre todas las redes de la Internet. Sin embargo, los nombres de usuarios no son únicos fuera de sus redes; es posible que dos usuarios en dos redes distintas puedan compartir el mismo nombre. Por ejemplo, un usuario con la dirección bill@bignetwork.net no podrá utilizar el mismo nombre de usuario en la red bignetwork. Sin embargo, bill@bignetwork.net y bill@smallnetwork.net son direcciones válidas de correo electrónico que pueden referir a usuarios distintos. Una de las primeras cosas que harás cuando configures tu cuenta de correo es incorporar tu dirección de correo electrónico en tu cliente de correo. El cliente de correo es el programa que utilizarás para enviar y recibir e-mail. El cliente de correo de Microsoft Outlook Express es el más conocido (puesto que es una distribución gratuita dentro del sistema operativo de Microsoft). Sin embargo existen otros clientes disponibles para la plataforma Windows y Linux, incluyendo a Mozilla, Eudora, Thunderbird y Pine.
9.1.2 POP y SMTP Después de que tu cliente de correo conoce tu dirección de correo electrónico, necesitará saber dónde buscar el correo entrante y a dónde enviar el saliente. Tus correos entrantes estarán en una computadora llamada servidor POP. El servidor POP – generalmente con la sintaxis pop.smallnetwork.net o mail.smallnetwork.net – tiene un archivo asociado con tu correo electrónico, el cual contiene correos que te han sido enviados por otros usuarios. POP hace referencia a post office protocol.
5
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
Tus correos salientes serán enviados a una computadora llamada servidor SMTP. Este servidor –generalmente con la sintaxis smtp.smallnetwork.net – buscará el nombre de domino contenido en la dirección de correo electrónico en cualquiera de los correos que envíes, después realizará una búsqueda por DNS a fin de determinar a qué servidor POP3 deberá enviar el correo. SMTP hace referencia a simple mail transfer protocol. Cuando inicias un cliente de correo electrónico, una serie de acciones se llevan a acabo: 1. el cliente abre una conexión de red hacia el servidor POP 2. el cliente envía tu contraseña secreta al servidor POP 3. el servidor POP envía tu correo entrante a tu computadora 4. el cliente envía tu correo saliente al servidor SMTP. Algo que debes considerar en primera instancia es que no envías tu contraseña al servidor SMTP. SMTP es un viejo protocolo, diseñado en la temprana edad de la creación del correo electrónico, tiempo en el que casi todos en la Internet se conocían personalmente. El protocolo fue escrito asumiendo que quien lo utilizaba era de confianza, por lo que el SMTP no verifica el usuario para asegurarse de que en realidad tú eres tú. La mayoría de los servidores SMTP utilizan otros métodos para autenticar usuarios, pero –en teoría- cualquier persona puede utilizar cualquier servidor SMTP para enviar correo. (Para mayor información, ver sección 9.2.4 Encabezados Falsos - Forged Headers.) La segunda consideración es que cuando envías tu contraseña secreta a un servidor POP la envías en formato de texto plano. Podrá estar escondida o enmascarada por pequeños asteriscos en el monitor de tu computadora, sin embargo es transmitida a través de la red en un formato legible. Cualquier persona que esté monitorizando el tráfico en la red –con un analizador de paquetes – será capaz de ver claramente tu contraseña. Puedes sentirte seguro de que tu red es segura, pero la realidad es que tienes poco control sobre lo que está ocurriendo en cualquier otra red por la cual pasan tus datos. La tercera consideración que debes de saber, y tal vez la más importante, es que –al igual que tu contraseña –tus correos electrónicos son transmitidos y almacenados en formato de texto plano. Es posible que estén monitorizados en cualquier momento en que son transferidos del servidor a tu computadora. Todo esto apunta hacia una verdad: el correo electrónico no es un método seguro para transferir información. Lo que sí es cierto es que es excelente para reenviar bromas, enviar advertencias de tipo spunkball, etc. Sin embargo, si no te sientes cómodo gritando hacia la ventana de tu vecino, tal vez deberías pensar quizá dos veces antes de ponerlo en un correo electrónico. ¿Te suena paranoico? Bueno, sí es paranoico, pero no necesariamente lo hace no verdadero. Muchas de nuestras comunicaciones de correo tratan acerca de detalles insignificantes. Nadie excepto tú, Bob y Alice, se preocupan por tus planes para la cena del próximo martes. Y si Carol desea saber desesperadamente dónde cenarán el próximo martes, las probabilidades son pocas de que ella pueda tener un analizador de paquetes corriendo en cualquiera de las redes por donde pasa tu correo electrónico. Pero, si se sabe que una compañía utiliza el correo electrónico para el manejo de transacciones de tarjetas de crédito, no es poco probable que alguien esté intentando o tenga un método para analizar esos números de tarjetas de crédito fuera del tráfico de la red.
6
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
9.1.3 Correo Web Una segunda opción para el correo electrónico es el uso de cuentas de correo basadas en Web. Esto te permitirá utilizar el explorador web para chequear tu correo. Desde que el correo de estas cuentas normalmente es almacenado en el servidor de correo web –no en tu computadora – es más conveniente utilizar estos servicios desde varias computadoras. Es posible que tu proveedor de servicios de internet (ISP) te permita acceder a tu correo electrónico a través de POP o vía Web. Sin embargo, deberás recordar que las páginas web son almacenadas de manera temporal o local en computadoras locales. Si chequeas tu correo a través de un sistema basado en web en una máquina que no sea la tuya, existe la posibilidad de que tus correos puedan ser consultados por otros que utilicen la misma computadora. Las cuentas de correo basadas en web puedes obtenerlas de manera fácil y gratuita. Esto significa que te brindan la oportunidad de tener varias identidades en línea. Tú puedes, por ejemplo, tener una dirección de correo electrónico exclusivamente para tus amigos, y otra para tus familiares. Esto es considerado como aceptable, mientras no pretendas defraudar a alguien. Ejercicios: 1. Puedes aprender bastante acerca de cómo se obtienen los correos POP mediante el uso del programa telnet. Cuando utilizas telnet en lugar de un cliente de correo, tienes que teclear todos los comandos a mano (comandos que un cliente de correo generalmente los utiliza de manera automática). Utilizando un buscador web, encuentra las instrucciones y comandos necesarios para acceder a una cuenta de correo utilizando un programa telnet. ¿Cuáles son las desventajas de utilizar éste método para recuperar correo? ¿Cuáles son algunas de las ventajas potenciales? 2. Encuentra tres organizaciones que ofrecen servicios de correo basados en web. ¿Qué ofrecen, si es que prometen algo, con respecto a la seguridad al enviar o recibir un correo utilizando sus servicios? ¿Hacen algo por autenticar a sus usuarios? 3. (Posiblemente tarea) Determina el servidor SMTP de la cuenta de correo que utilizas frecuentemente.
9.2 Utilización segura del Correo Parte 1: Recibiendo Todo mundo hace uso del correo electrónico y, para sorpresa de muchos, el correo puede ser utilizado en tu contra. El correo nunca deberá ser manejado como una tarjeta postal, en donde cualquiera puede leer su contenido. Nunca pongas en una cuenta común de correo electrónico algo que no desees que sea leído. Se ha dicho que existen estrategias para asegurar tu correo. En esta sección cubriremos la utilización segura y sana del correo y cómo proteger tu privacidad en línea.
9.2.1 Spam, Phishing y Fraude A todo mundo le gusta tener un correo. Hace tiempo, en una galaxia no muy lejana, solías tener el correo únicamente de la gente que conocías, existiendo aspectos que cuidabas. Ahora tienes el correo de gente que nunca escuchaste y que preguntarán sobre dónde comprar software, drogas, bienes raíces, por no mencionar aquel en donde te ayudan a obtener 24 millones de dólares desde Nigeria. A este tipo de anuncios no solicitados se les denomina spam. Es sorprendente para mucha gente que este tipo de correos que reciben, puede proporcionar mucha información de quien envía el correo, cuándo fue abierto el
7
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
correo y cuántas veces ha sido leído, si ha sido reenviado, etc. Este tipo de tecnología – llamada web bugs – es utilizada tanto por los spammers como por los que realmente envían el correo. También, el contestar un correo o hacer click en un enlace para desuscribirse de una lista puede decirle a quien lo envía que han alcanzado una dirección existente o viva. Otro tipo de preocupación en materia de invasión de privacidad es el creciente ataque conocido como “phishing”. ¿Has recibido algún correo donde te piden firmar y verificar tu cuenta de correo bancaria o de E-bay? Cuidado, porque es un truco para robar información de tu cuenta. Para que estés seguro de éste tipo de ataques, existen otras estrategias sencillas para protegerte, descritas más adelante.
9.2.2 Correo HTML Una de las preocupaciones en material de seguridad con los correos basados en HTML es el uso de los web bugs. Los web bugs son imágenes escondidas en tu correo que enlazan hacia el servidor de quien lo envía, y puede proveerles notificación de que han recibido o abierto el correo. Otro defecto con los correos HTML es que quien lo envía puede incluir enlaces en el correo que identifican a la persona que hace click en ellos. Esto puede proporcionar información a quien lo manda acerca del estado del mensaje. Como regla, debes de utilizar un cliente de correo que te permita deshabilitar la descarga automática de imágenes anexadas o embebidas. Otro problema relacionado con los scripts en el correo es que ejecutan una aplicación, si es que tu explorador no ha sido parcheado contra vulnerabilidades de seguridad. Para los clientes basados en web, tienes la opción de deshabilitar la descarga automática de imágenes, o la visualización del mensaje en modo texto. Cualquiera de ellas es una buena práctica de seguridad. La mejor manera de protegerte contra los ataques de privacidad y seguridad basados en correo HTML es el uso de correos en modo texto. Si necesitas utilizar correo HTML, ¡ten cuidado!
9.2.3 Seguridad en Archivos Anexados Otra preocupación real es la relacionada con los archivos anexados a los correos. Los atacantes pueden enviar malware –software malicioso por sus siglas en inglés-, virus, caballos de Troya y todo tipo de programas desagradables. La mejor defensa contra correos con malware es el no abrir un correo si no conoces a quien lo envía. Nunca abras un archivo con extensión .exe o .scr, ya que éstos son extensiones que ejecutan archivos que pueden infectar tu máquina con cualquier virus. Una buena medida de prevención es que cualquier archivo que recibas deberás salvarlo a tu disco duro y posteriormente analizarlo con un programa de antivirus. Ten cuidado con los archivos que parecen ser comunes, como los archivos zip. Algunos atacantes pueden disfrazar un archivo sólo cambiando el icono u ocultando la extensión del archivo, por lo que tal vez no sepas que es un ejecutable. LESSON 9 – E-MAIL SECURITY
9.2.4 Encabezados Falsos / Forged headers Ocasionalmente recibirás correos que parecen ser enviados por alguien que conoces, o por el “Administrador”, “Postmaster” o “Equipo de Seguridad” de tu escuela o ISP. El tema del correo puede ser “Returned Mail” o “Hacking Activity”, o cualquier otro tema interesante. Es muy común que sea un archivo anexado. El problema es que requiere alrededor de 10
8
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
segundos de trabajo y poco conocimiento técnico para falsear una dirección de correo electrónico (también, dependiendo de donde vivas, puede ser ilegal.) Para hacer esto, haces un cambio simple en la configuración de tu cliente de correo y allí donde te pregunta teclear tu dirección de correo (bajo Opciones, Configuración o Preferencias) tecleas cualquier otra cosa. De ahora en adelante todos tus mensajes tendrán una dirección de remitente falsa. ¿Esto significa que ya estás a salvo de ser identificado? No, no realmente. Cualquier persona con la habilidad de leer el encabezado de un correo y que realice una búsqueda podrá imaginarse tu identidad a partir de la información contenida en el encabezado. Lo que significa que un spammer puede ser quien él deseé. Por lo que si Fanni Gyotoku [telecommunicatecreatures@cox.net] te vende una antena mágica para tu celular que resulta ser una caja de cereales cubierta por una hoja de lata, puedes quejarte directamente con cox.net, pero no te sorprendas cuando te digan que no existe tal usuario. Muchos de los proveedores de internet autentican a los que envían correos, lo que significa que debes ser tú quien dices ser para enviar un correo a través de su servidor SMTP. El problema radica cuando los hackers y spammers corren un servidor SMTP en su propio ordenador y, por lo tanto, no necesitan autenticarse al enviar un correo, y pueden hacer que luzca como ellos deseen. La única manera segura de saber si un correo sospechoso es legítimo o no es conocer a quien envía el correo y llamarle. Nunca contestes un mensaje que sospeches ha sido falseado, ya que le diría a quien lo envía que ha alcanzado una dirección existente. También puedes fijarte en la información que aparece en el encabezado a fin de determinar de dónde viene el correo, tal como aparece en el siguiente ejemplo:
Este es un correo electrónico de alguien que no conozco, con un archivo anexado sospechoso. Normalmente borraría éste correo pero quiero saber de dónde viene realmente. Me fijo en el encabezado. Utilizo Outlook 2003 como cliente de correo, y para ver el encabezado necesito ir a Ver>Opciones y así podré ver la información del encabezado como aparece abajo: Microsoft Mail Internet Headers Version 2.0 Received: from srv1.mycompany.com ([192.168.10.53]) by mx1.mycompany.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.0); Mon, 9 Aug 2004 11:20:18 -0700 Received: from [10.10.205.241] (helo=www.mycompany.com)
9
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
by srv1.mycompany.com with esmtp (Exim 4.30) id 1BuEgL-0001OU-8a; Mon, 09 Aug 2004 11:15:37 -0700 Received: from kara.org (67.108.219.194.ptr.us.xo.net [67.108.219.194]) by www.mycompany.com (8.12.10/8.12.10) with SMTP id i79IBYUr030082 for <sales@mycompany.com>; Mon, 9 Aug 2004 11:11:34 -0700 Date: Mon, 09 Aug 2004 14:15:35 -0500 To: "Sales" <sales@mycompany.com> From: "Sales" <sales@innovonics.com> Subject: Message-ID: <cdkdabgurdgefupfhnt@mycompany.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="--------cfwriebwwbnnfkkmojga" X-Scan-Signature: 178bfa9974a422508674b1924a9c2835 Return-Path: sales@innovonics.com X-OriginalArrivalTime: 09 Aug 2004 18:20:18.0890 (UTC) FILETIME= [868FEAA0:01C47E3D] ----------cfwriebwwbnnfkkmojga Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: 7bit ----------cfwriebwwbnnfkkmojga Content-Type: application/octet-stream; name="price_08.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="price_08.zip" ----------cfwriebwwbnnfkkmojga— Ahora, la parte en la que estoy interesado está subrayada arriba. Fíjate que el campo de “Received” es de kara.org con una IP que parece ser una línea DSL de xo.net, la cual no concuerda con innovonics.com, el supuesto remitente. Además, si busco el servidor de correo innovonics.com utilizando nslookup, la dirección que me muestra es la siguiente: C:\>nslookup innovonics.com Server: dc.mycompany.com Address: 192.168.10.54 Non-authoritative answer: Name: innovonics.com Address: 64.143.90.9 Entonces, mi sospecha era correcta, éste es un correo que contiene algún malware en un archivo ejecutable a través de un archivo zip. El malware ha infectado la computadora de la persona que tiene la línea DSL, el cual se conoce como un zombie, ya que envía copias del malware a todos aquellos que tiene en su agenda. ¡Qué bueno que verifiqué ésto! Ejercicios: 1. Citibank y PayPal son dos de los objetivos más comunes de correos phishing. Investiga qué están haciendo Citibank o PayPal para evitar/controlar el phishing. 2. Investiga si tu banco o emisor de tarjeta de crédito ha publicado una declaración acerca del uso de correo e información personal. 3. (posiblemente tarea) Investiga un correo spam que hayas recibido y mira si puedes determinar cual es la fuente real.
10
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
9.3 Utilización Segura del Correo Parte 2: Enviando El envío de correo es un poco más cuidadoso. Existen algunos puntos que puedes considerar para cerciorarte de que la conversación es segura. El primer punto es asegurarte de que la conexión es segura (para mayor información ver sección 9.4 Seguridad en las Conexiones). También existen métodos que te permiten firmar de manera digital tus mensajes, lo que garantiza que el mensaje proviene de tí y que no ha sido modificado durante el trayecto. Y para mayor seguridad, puedes encriptar tus mensajes a fin de que nadie pueda leerlos. Las firmas digitales prueban de dónde viene el correo, y que no ha sido alterado en el trayecto. Si adoptas el hábito de utilizar firmas digitales para correos importantes, tendrás mucha credibilidad en caso de que en alguna ocasión tengas que negar algún correo falseado que aparente ser tuyo. PGP en particular ofrece niveles de encriptación tan complejos que requieren computadoras de gran potencia para ser descifrados.
9.3.1 Certificados Digitales Un certificado digital es único para cada individuo, como si fuese una licencia para conducir o un pasaporte, el cual se compone de 2 partes, una llave pública y una privada. El certificado es único para una persona y típicamente los certificados son expedidos por una Autoridad Certificadora confiable o CA. La lista de Autoridades Certificadoras en quien confías es distribuida automáticamente (si eres un usuario Microsoft Windows) a través de la actualización de Windows, y la lista es accesible en tu explorador a través de: Herramientas>opciones de internet>contenido>certificados. Puedes ir a éste apartado para ver los certificados instalados en tu máquina (tuyos o de otros) y otras autoridades certificadoras en las cuales confías.
11
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
Puedes deshabilitar la actualización automática de CAs, y elegir quitar todos los CAs de la lista, aunque no es recomendable. Las instrucciones de cómo hacer esto se encuentra disponible en el sitio web de Microsoft.
9.3.2 Firmas Digitales Una firma digital es generada por tu software de correo usando tu llave privada a fin de garantizar la autenticidad del correo. El propósito de la firma es doble. El primero es certificar que proviene de ti: es lo que se llama “no repudio”. El segundo es asegurar que el contenido no ha sido alterado, lo que se llama “integridad de datos”. La manera en que un programa de correo cumple con este cometido es mediante la ejecución de un proceso que, a partir del contenido de tu mensaje, genera un resumen del mismo –message digest-. Éste último, si el algoritmo matemático que se utiliza es lo suficientemente fuerte, posee los siguientes atributos.
El mensaje original no puede ser reproducido a partir del resumen. Cada resumen es único.
Después de que el resumen ha sido creado, es cifrado con tu llave privada. El resumen cifrado es anexado al mensaje original junto con tu llave pública. El recipiente abre el mensaje, y el resumen es desencriptado con tu llave pública. El resumen es comparado con el resumen idéntico generado por el programa de correo del recipiente. Si concuerdan, es correcto. Si no, tu cliente de correo te avisará que el mensaje ha sido modificado. Existen 2 tipos de función de firma/cifrado, S/MIME y PGP. S/MIME es considerada como la mejor opción para el gobierno y corporaciones, tal vez por que utiliza menos recursos del modelo de autenticación de la autoridad certificadora, y porque es de fácil implantación a través del cliente de Microsoft Outlook Express. PGP es muy común dentro de las comunidades de usuarios finales, debido a que está basada en un esquema web de confianza no-centralizado, en donde la confianza de los usuarios es validada a través de un sistema “amigo del amigo”, en el cual acuerdas que, si tu confías en mí, entonces puedes confiar en aquellos que yo confío, y porque los miembros de las comunidades no les interesa si toma cuatro horas el saber como funciona PGP con Thunderbird – ellos consideran este tipo de retos como recreación.
12
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
9.3.3 Obteniendo un certificado Si estás interesado en obtener un certificado digital o un ID digital, necesitas contactar a una Autoridad Certificadora (Verisign y thawte son las más conocidas, a pesar de que algunos buscadores pueden encontrar otras). Ambas requieren que les proveas de tu identificación a fin de comprobarles que eres tú quien dices ser. Puedes obtener un certificado gratuito de thawte, pero requiere una cantidad significativa de información personal, incluyendo identificación oficial (como el pasaporte, identificación para pago de impuestos o licencia de manejo). Verisign pide una cuota por su certificado y requiere que pagues esta cuota a través de una tarjeta de crédito, sin embargo pide menos información. (Presuntamente, Verisign reenvía los datos con la compañía de la tarjeta de crédito a fin de validar tu información personal). Estas peticiones de información pueden parecer intrusivas, pero recuerda, estás pidiendo a éstas compañías que certifiquen tu confianza e identidad. Y – como siempre – chequea con tus familiares o representantes antes de proveer cualquier tipo de información (si no, tendrán grandes cargos en sus tarjetas de crédito). La mayor desventaja al utilizar una autoridad certificadora es que tu llave privada está disponible para un tercero: la autoridad certificadora. Y si la autoridad certificadora se ve comprometida, entonces tu ID digital está comprometido.
9.3.4 Encriptación / Cifrado Como una medida adicional de seguridad, puedes cifrar tu correo electrónico. El cifrado puede convertir el texto de tu correo en un lío mutilado de números y letras que sólo pueden ser interpretados por aquellos recipientes confiados. Tus secretos más profundos y tu peor poesía estarán escondidos para todo el mundo excepto para aquellos ojos en quien confías. Sin embargo, debes recordar que, mientras esto te suene atractivo –y para todos nosotros que no deseamos ser expuestos a la pésima poesía –algunos gobiernos no lo aprueban. Sus argumentos pueden o no ser válidos (puedes discutir esto entre tus amigos), pero la validez no es el punto. El punto es que, dependiendo de las leyes del país en el que vives, el envío de correo cifrado puede ser un crimen, independientemente del contenido.
9.3.5 ¿Cómo funciona? La encriptación o cifrado es un poco complicada, por lo que intentaré explicarlo de una manera no muy técnica: Jason desea enviar un mensaje cifrado, por lo que lo primero que hace Jason es ir con una Autoridad Certificadora y obtener un Certificado Digital. Este Certificado tiene dos partes, una llave pública y una llave privada. Si Jason desea recibir y enviar mensajes cifrados con su amiga Kira, ambos deberán intercambiar sus llaves públicas. Si tú obtienes una llave pública de una Autoridad Certificadora, en la cual has decidido confiar, la llave puede ser verificada de manera automática a esa autoridad certificadora. Esto significa que tu programa de correo verificará que el certificado es válido, y que no ha sido revocado. Si el certificado no proviene de una autoridad en la que confías, o es una llave PGP, entonces necesitarás verificar la huella de la llave. Típicamente esto se hace por separado, mediante el intercambio cara a cara de la llave o por la huella de los datos.
13
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
Asumamos ahora que tanto Kira como Jason están utilizando esquemas de cifrado compatibles, y han intercambiado mensajes firmados. Esto significa que ambos poseen la llave pública del otro. Cuando Jason desea enviar un mensaje cifrado, el proceso de cifrado comienza convirtiendo el texto del mensaje de Jason en un código pre-enmascarado. Éste código es generado utilizando una fórmula matemática llamada algoritmo de encriptación. Existen varios tipos de algoritmos, sin embargo, para el correo, el S/MIME y el PGP son los más comunes. El código enmascarado del mensaje de Jason es cifrado por el programa de correo utilizando la llave privada de Jason. Entonces, Jason utiliza la llave pública de Kira para cifrar el mensaje, por lo que sólo Kira podrá desencriptarlo con su llave privada, terminando así el proceso de encriptación.
9.3.6 Desencriptación Ahora, Kira ha recibido el mensaje cifrado de Jason. Esto típicamente se indica con un icono de un candado en la bandeja de entrada de ella. El proceso de desencriptación es manejado por el software de correo, pero lo que hay detrás es algo como esto: el programa de correo de Kira utiliza su llave privada para descifrar el código encriptado preenmascarado y el mensaje encriptado. Entonces el programa de correo de Kira obtiene la llave pública de Jason donde estaba almacenada (recuerda, intercambiamos llaves anteriormente). Esta llave pública es utilizada para desencriptar el código pre enmascarado del mensaje. Si el posteo del código enmascarado es igual al código pre enmascarado, el mensaje no ha sido alterado durante su trayecto. Nota: si pierdes tu llave privada, todos tus archivos encriptados no te serán útiles, por lo que es importante que tengas un procedimiento para realizar el respaldo (backup) tanto de tu llave privada como pública.
9.3.7 ¿Es el cifrado irrompible? De acuerdo a los números el nivel de encriptación ofrecido por, por ejemplo, PGP es irrompible. Aunque seguramente un millón de computadoras trabajando para romperlo podrían eventualmente romperlo de manera exitosa, pero no antes de que el millón de chimpancés terminaran el guión para Romeo y Julieta. El número teórico detrás de este tipo de encriptación involucra la descomposición en factores de los productos de un gran número de números primos y el desafío del hecho de que los matemáticos han estudiado los números primos por años, por lo que no hay una manera fácil de hacerlo. Pero la encriptación y la privacidad es más que sólo números. Sin embargo, si alguien tiene acceso a tu llave privada, tendrá acceso a todos tus archivos encriptados. La encriptación sólo funciona si y sólo si es parte de un esquema grande de seguridad, el cual ofrece protección tanto a tu llave privada como a tu pass-phrase o contraseña de encriptación/desencriptación. Ejercicios: 1. ¿La encriptación de correo es legal en el país donde vives? Encuentra otro país donde sea legal y otro donde no lo sea.
14
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
2. Los escritores de ciencia ficción han imaginado dos tipos de futuros, uno en donde la gente vive de manera transparente, es decir, sin secretos, y otro en donde tanto los pensamientos como las comunicaciones de todos son completamente privadas. Phil Zimmerman, creador de PGP, cree en la privacidad como una fuente de libertad. Lee sus pensamientos en ¿porqué necesitas PGP? en http://www.pgpi.org/doc/whypgp/en/. Luego, del escritor de ciencia ficción David Brin, en su artículo titulado 'A Parable about Openness' que puedes encontrar en http://www.davidbrin.com/akademos.html, hace referencia a una serie de puntos donde aboga por la franqueza como una fuente de libertad. Discute éstos dos puntos de vista. ¿Cuál prefieres? ¿Cuál crees que tendrá mayor aceptación? ¿Cómo crees que será el futuro de la privacidad?
9.4 Seguridad en las Conexiones Lo último, pero no menos importante, es la seguridad en las conexiones. Para el correo web, asegúrate de utilizar una conexión SSL hacia tu proveedor de correo. Un pequeño candado deberá aparecer en la barra de la parte inferior de tu explorador. Si estás utilizando POP y un cliente de correo, asegúrate de que has configurado tu cliente de correo para utilizar SSL con POP en el puerto 995 y SMTP en el puerto 465. Esto encripta tu correo desde tu máquina hasta el servidor, además de proteger tu usuario y contraseña POP / SMTP. Tu proveedor deberá tener un how-to en su sitio web para saber como configurarlo. Si no te ofrecen una conexión segura de POP / SMTP, ¡cambia de proveedor! Ejercicio: Si tienes una cuenta de correo electrónico, averigua si tu cuenta está utilizando una conexión SSL. ¿Cómo verificarías esto en tu cliente de correo? ¿Tu proveedor proporciona información sobre una conexión SSL? LESSON 9 – E-MAIL SECURITY
15
LECCIÓN 9 – SEGURIDAD DEL CORREO ELECTRÓNICO (E-MAIL)
Lecturas Recomendadas ¿Alguien puede leer mi correo electrónico? http://www.research.att.com/~smb/securemail.html Página libre de PGP del MIT http://web.mit.edu/network/pgp.html Noticias generales sobre aspectos de privacidad en la Internet: Centro de Información de Privacidad Electrónica http://www.epic.org/ y Electronic Frontier Foundation http://www.eff.org/ Más acerca de PGP http://www.openpgp.org/index.shtml ¿Cómo el leer un E-mail puede comprometer tu Privacidad? http://email.about.com/od/staysecureandprivate/a/webbug_privacy.htm Evitando los Virus del E-mail http://www.ethanwiner.com/virus.html Una breve descripción de preguntas de seguridad en E-mail (con un pequeño aviso al final) http://www.zzee.com/email-security/ Una breve descripción de preguntas de seguridad en E-mail (sin aviso) http://www.claymania.com/safe-hex.html Precauciones de E-mail basado en Windows http://www.windowsecurity.com/articles/Protecting_Email_Viruses_Malware.html http://computer-techs.home.att.net/email_safety.htm Diferencias Entre Virus de Linux y Windows (con información sobre porqué los programas de Email de Linux son más seguros) http://www.theregister.co.uk/2003/10/06/linux_vs_windows_viruses/
16
LESSON 10 WEB SECURITY AND PRIVACY
LESSON 10 – WEB SECURITY AND PRIVACY
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
2
LESSON 10 – WEB SECURITY AND PRIVACY
Table of Contents “License for Use” Information............................................................................................................... 1 Contributors..............................................................................................................................................1 10.1 Fundamentals of Web Security..................................................................................................... 1 10.1.1 How the web really works.......................................................................................................1 10.1.2 Rattling the Locks....................................................................................................................1 10.1.3 Looking through Tinted Windows - SSL................................................................................. 1 10.1.4 Having someone else do it for you – Proxies....................................................................... 1 10.2 Web Vulnerabilities..........................................................................................................................1 10.2.1 Scripting Languages................................................................................................................1 10.2.2 Common Web Application Problems................................................................................... 1 10.2.3 Guidelines for Building Secure Web Applications................................................................1 10.3 HTML Basics – A brief introduction................................................................................................1 10.3.1 Reading HTML...........................................................................................................................1 10.3.2 Viewing HTML at its Source.....................................................................................................1 10.3.3 Links ..........................................................................................................................................1 10.3.4 Proxy methods for Web Application Manipulation............................................................. 1 10.4 Protecting your server.....................................................................................................................1 10.4.1 Firewall.......................................................................................................................................1 10.4.2 Intrusion Detection System (IDS).............................................................................................1 10.5 Secure Communications................................................................................................................1 10.5.1 Privacy and Confidentiality....................................................................................................1 10.5.2 Knowing if you are communicating securely......................................................................1 10.6 Methods of Verification.................................................................................................................1 10.6.1 OSSTMM.....................................................................................................................................1 Exercises...............................................................................................................................................1 Further Reading.......................................................................................................................................1
3
LESSON 10 – WEB SECURITY AND PRIVACY
Contributors Simon Biles Pete Herzog, ISECOM Bill Matthews Hernán Marcelo Racciatti Chris Ramirez P. Shreekanth Kim Truett , ISECOM Marta Barceló, ISECOM Dario Riquelme Zornow
4
LESSON 10 – WEB SECURITY AND PRIVACY
10.1
Fundamentals of Web Security
What you do on the World Wide Web is your business. Or so you would think. But it's just not true. What you do on the web is about as private and anonymous as where you go when you leave the house. Again, you would think that it's your business and many, including ISECOM, would agree with you. However, consider a private investigator following you around town, writing down what you saw and who you spoke with. The focus of this lesson is to get you learn how to protect yourself on the web and to do that, you will have to learn where the dangers are. The World Wide Web works in a very straight-forward manner. Once connected to the Internet through you ISP, you open a browser, tell it a website, and you get that website on your screen. However, the truth is in the details. How does the web really work? A quick trip to the World Wide Web Consortium (W3C), those fine folks who make standards for the web, will teach you all you want to know about the web. http://www.w3.org. Even the history of the web: http://www.w3.org/History.html The problem is, will definitions and standards teach you how to be safe? Apparently not. The people who want to hurt you do not necessarily follow the standards.
10.1.1 How the web really works The steps involved in connecting to the Internet and then to the web are very detailed even if it does seem to be smooth from the user end. So what happens for real when you just want to get to the ISECOM website? Assuming you are already connected to the internet, here are the steps that occur in order: 1. You open your browser. 2. You type in the URL (website name). 3. Website name saved in History Cache on the hard disk. 4. Your computer looks up the name of the address to your default DNS server to find the IP address. 5. Your computer connects to the server at the IP address provided at the default web port of 80 TCP if you used “HTTP://” or 443 TCP if you used “HTTPS://” at the front of the web server name (by the way, if you used HTTPS then there are other steps involved using server certificates which we will not follow in this example). 6. Your computer requests the page or directory you specified with the default often being “index.htm” if you don't specify anything. But the server decides t's default and not your browser. 7. The pages are stored in a cache on your harddisk. Even if you tell it to store the information in memory (RAM), there is a good chance it will end up somewhere on your disk either in a PAGEFILE or in a SWAPFILE. 8. The browser nearly instantaneously shows you what it has stored. Again, there is a difference between “perceived speed” and “actual speed” of your web surfing which is actually the difference between how fast something is downloaded (actual) and how fast your browser and graphics card can render the page and graphics and show them to you (perceived). Just because you didn't see it doesn't mean it didn't end up in your browser cache.
5
LESSON 10 – WEB SECURITY AND PRIVACY
The history of the World Wide Web ( just “web” from now on ) started at CERN1 in 1989. It was conceived by Tim Berners-Lee and Robert Cailliau who built a basic hypertext based system for sharing information. Over the next few years Tim Berners-Lee continued to develop the system until in 1993 CERN announced that the web was free for anyone to use, and the web as we know it now exploded onto the scene. The Web is a client and server based concept, with clients such as Internet Explorer, Firefox, Mozilla, Opera, Netscape and others connecting to web servers such as IIS and Apache which supply them with content in the form of HTML2 pages. Many companies, organizations and individuals have collections of pages hosted on servers delivering a large amount of information to the world at large. So why do we care about web security then? Web servers often are the equivalent to the shop window of a company. It is a place where you advertise and exhibit information, but this is supposed to be under your control. What you don't want to do is leave the window open so that any passer by can reach in and take what they want for free, and you ideally want to make sure that if someone throws a brick, that the window doesn't shatter ! Unfortunately web servers are complex programs, and as such have a high probability of containing a number of bugs, and these are exploited by the less scrupulous members of society to get access to data that they shouldn't be seeing. And the reverse is true as well. There are risks also associated with the client side of the equation like your browser. There are a number of vulnerabilities which have been discovered in the last year which allow for a malicious web site to compromise the security of a client machine making a connection to them.
10.1.2 Rattling the Locks Standard HTML pages are transferred using HTTP3, this standard TCP based protocol is plain text based and this means that we can make connections to a server easily using tools such as “telnet” or “netcat”. We can use this facility to gain a great deal of information about what software is running on a specific server. For example : simon@exceat:~> netcat www.computersecurityonline.com 80 HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Fri, 07 Jan 2005 10:24:30 GMT Server: Apache/1.3.27 Ben-SSL/1.48 (Unix) PHP/4.2.3 Last-Modified: Mon, 27 Sep 2004 13:17:54 GMT ETag: "1f81d-32a-41581302" Accept-Ranges: bytes Content-Length: 810 Connection: close Content-Type: text/html By entering “HEAD / HTTP/1.0” followed by hitting the “Return” key twice, I can gain all of the information above about the HTTP Server. Each version and make of HTTP Server will return different information at this request – an IIS server will return the following : 1 Centre Européen pour la Recherche Nucléaire (European Centre for Nuclear Research) 2 Hyper Text Markup Language 3 Hyper Text Transfer Protocol
6
LESSON 10 – WEB SECURITY AND PRIVACY
simon@exceat:~> netcat www.microsoft.com 80 HEAD / HTTP/1.0 HTTP/1.1 200 OK Connection: close Date: Fri, 07 Jan 2005 11:00:45 GMT Server: Microsoft-IIS/6.0 P3P: CP="ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI" X-Powered-By: ASP.NET X-AspNet-Version: 1.1.4322 Cache-Control: public, max-age=9057 Expires: Fri, 07 Jan 2005 13:31:43 GMT Last-Modified: Fri, 07 Jan 2005 10:45:03 GMT Content-Type: text/html Content-Length: 12934 You can take this further and obtain more information by using the “OPTIONS” request in the HTTP request as follows : simon@exceat:~> netcat www.computersecurityonline.com 80 OPTIONS / HTTP/1.0 HTTP/1.1 200 OK Date: Fri, 07 Jan 2005 10:32:38 GMT Server: Apache/1.3.27 Ben-SSL/1.48 (Unix) PHP/4.2.3 Content-Length: 0 Allow: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, TRACE Connection: close This will give you all of the allowed HTTP commands that the server will respond to. Doing all of this by hand is rather tedious, and matching it manually against a database of know signatures and vulnerabilities is more than anyone would want to do. Fortunately for us, some very enterprising people have come up with an automated solution called “nikto”. “Nikto” is a Perl script which carries out various tests automagically ! The options are as follows: -Cgidirs+ -cookies -evasion+ -findonly -Format -generic -host+ -id+ -mutate+ -nolookup -output+ -port+ -root+ -ssl -timeout -useproxy
Scan these CGI dirs: 'none', 'all', or a value like '/cgi/' print cookies found ids evasion technique (1-9, see below) find http(s) ports only, don't perform a full scan save file (-o) Format: htm, csv or txt (assumed) force full (generic) scan target host host authentication to use, format is userid:password mutate checks (see below) skip name lookup write output to this file port to use (default 80) prepend root value to all requests, format is /directory force ssl mode on port timeout (default 10 seconds) use the proxy defined in config.txt
7
LESSON 10 – WEB SECURITY AND PRIVACY
-Version print plugin and database versions -vhost+ virtual host (for Host header) (+ means it requires a value) These options cannot be -debug -dbcheck -update -verbose
abbreviated: debug mode syntax check scan_database.db and user_scan_database.db update databases and plugins from cirt.net verbose mode
IDS Evasion Techniques: 1 Random URI encoding (non-UTF8) 2 Directory self-reference (/./) 3 Premature URL ending 4 Prepend long random string 5 Fake parameter 6 TAB as request spacer 7 Random case sensitivity 8 Use Windows directory separator (\) 9 Session splicing Mutation Techniques: 1 Test all files with all root directories 2 Guess for password file names 3 Enumerate user names via Apache (/~user type requests) 4 Enumerate user names via cgiwrap (/cgi-bin/cgiwrap/~user type requests)
“Nikto” is quite comprehensive in its reporting as you can see from the following scan : exceat:/# ./nikto.pl -host www.computersecurityonline.com --------------------------------------------------------------------------- Nikto 1.34/1.29 www.cirt.net + Target IP: 217.30.114.2 + Target Hostname: www.computersecurityonline.com + Target Port: 80 + Start Time: Fri Jan 7 12:23:56 2005 --------------------------------------------------------------------------- Scan is dependent on "Server" string which can be faked, use -g to override + Server: Apache/1.3.27 Ben-SSL/1.48 (Unix) PHP/4.2.3 - Server did not understand HTTP 1.1, switching to HTTP 1.0 + Server does not respond with '404' for error messages (uses '400'). + This may increase false-positives. + Allowed HTTP Methods: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, TRACE + HTTP method 'PUT' method may allow clients to save files on the web server. + HTTP method 'CONNECT' may allow server to proxy client requests. + HTTP method 'DELETE' may allow clients to remove files on the web server. + HTTP method 'PROPFIND' may indicate DAV/WebDAV is installed. This may be used to get directory listings if indexing is allowed but a default page exists. + HTTP method 'PROPPATCH' may indicate DAV/WebDAV is installed. + HTTP method 'TRACE' is typically only used for debugging. It should be disabled. + Apache/1.3.27 appears to be outdated (current is at least Apache/2.0.50). Apache 1.3.31 is still maintained and considered secure. + Ben-SSL/1.48 appears to be outdated (current is at least 1.55) + PHP/4.2.3 appears to be outdated (current is at least 5.0.1) + PHP/4.2.3 - PHP below 4.3.3 may allow local attackers to safe mode and gain access to unauthorized files. BID-8203. + Apache/1.3.27 - Windows and OS/2 version vulnerable to remote exploit. CAN-2003-0460 + Apache/1.3.27 - Apache 1.3 below 1.3.29 are vulnerable to overflows in mod_rewrite and mod_cgi. CAN-2003-0542. + /~root - Enumeration of users is possible by requesting ~username (responds with Forbidden for real users, not found for non-existent users) (GET). + /icons/ - Directory indexing is enabled, it should only be enabled for specific directories (if required). If indexing is not used all, the /icons directory should be removed. (GET) + / - TRACE option appears to allow XSS or credential theft. See http://www.cgisecurity.com/whitehat-mirror/WhitePaper_screen.pdf for details (TRACE) + / - TRACK option ('TRACE' alias) appears to allow XSS or credential theft. See http://www.cgisecurity.com/whitehat-mirror/WhitePaper_screen.pdf for details (TRACK) + /CVS/Entries - CVS Entries file may contain directory listing information. (GET)
8
LESSON 10 – WEB SECURITY AND PRIVACY
+ /images/ - index of image directory available (GET) + /manual/ - Web server manual? tsk tsk. (GET) + /cgi-bin/cgiwrap - Some versions of cgiwrap allow anyone to execute commands remotely. (GET) + /cgi-bin/cgiwrap/~adm - cgiwrap can be used to enumerate user accounts. Recompile cgiwrap with the '--with-quiet-errors' option to stop user enumeration. (GET) + /cgi-bin/cgiwrap/~bin - cgiwrap can be used to enumerate user accounts. Recompile cgiwrap with the '--with-quiet-errors' option to stop user enumeration. (GET) + /cgi-bin/cgiwrap/~daemon - cgiwrap can be used to enumerate user accounts. Recompile cgiwrap with the '--with-quiet-errors' option to stop user enumeration. (GET) + /cgi-bin/cgiwrap/~lp - cgiwrap can be used to enumerate user accounts. Recompile cgiwrap with the '--with-quiet-errors' option to stop user enumeration. (GET) + /cgi-bin/cgiwrap/~root - cgiwrap can be used to enumerate user accounts. Recompile cgiwrap with the '--with-quiet-errors' option to stop user enumeration. (GET) + /cgi-bin/cgiwrap/~xxxxx - Based on error message, cgiwrap can likely be used to find valid user accounts. Recompile cgiwrap with the '--with-quiet-errors' option to stop user enumeration. (GET) + /cgi-bin/cgiwrap/~root - cgiwrap can be used to enumerate user accounts. Recompile cgiwrap with the '--with-quiet-errors' option to stop user enumeration. (GET) + /css - Redirects to http://www.computer-security-online.com/css/ , This might be interesting... + 2449 items checked - 15 item(s) found on remote host(s) + End Time: Fri Jan 7 12:25:36 2005 (100 seconds) --------------------------------------------------------------------------• 1 host(s) tested
Using the other options you can fine tune Nikto to do exactly what you need to achieve, including stealth, mutation and cookie detection.
10.1.3 Looking through Tinted Windows - SSL It wasn't too long before everyone realized that HTTP in plain text wasn't much good for security. So the next variation was to apply encryption to it. This comes in the form of SSL4, and is a reasonably secure 40 or 128 bit public key encryption method. Using a 40 bit key is a lot less secure than the 128 bit and, with specialized hardware, may well be brute force breakable within a period of minutes, where as the 128 bit key will still take longer that the age of the Universe to break by brute force. There are however more complex technical attacks using something called a known cyphertext attack – this involved calculating the encryption key by analyzing a large number of messages ( > 1 million ) to deduce the key. In any case, you aren't going to be rushing to try and crack 128 bit encryption – so what can we learn about SSL HTTP Servers? Quite a lot actually. As the SSL merely encrypts the standard HTTP traffic, if we set up an SSL tunnel, we can query the server as we did in section 1.1. Creating an SSL tunnel is quite straight forward, and there is a utility called “stunnel” purely for this purpose. Enter the following into a file called stunnel.conf, (replacing ssl.enabled.host with the name of the SSL server that you want to connect to: client=yes verify=0 [psuedo-https] accept = 80 connect = ssl.enabled.host:443 TIMEOUTclose = 0 Stunnel will then map the local port 80 to the remote SSL Port 443 and will pass out plain text, so you can connect to it using any of the methods listed above :
4 Secure Sockets Layer
9
LESSON 10 – WEB SECURITY AND PRIVACY
simon@exceat:~> netcat 127.0.0.1 80 HEAD / HTTP/1.0 HTTP/1.1 200 OK Server: Netscape-Enterprise/4.1 Date: Fri, 07 Jan 2005 10:32:38 GMT Content-type: text/html Last-modified: Fri, 07 Jan 2005 05:32:38 GMT Content-length: 5437 Accept-ranges: bytes Connection: close
10.1.4 Having someone else do it for you – Proxies Proxies are middlemen in the HTTP transaction process. The client requests the proxy, the proxy requests the server, the server responds to the proxy and then the proxy finally passes back the request to the client, completing the transaction. Proxy servers are vulnerable to attacks in themselves, and are also capable of being a jumping off point for launching attacks onto other web servers. They can however increase security by filtering connections, both to and from servers.
10.2 Web Vulnerabilities The simplicity of giving someone something that they ask for is made much more complex when you're in the business of selling. Web sites that sell to you, companies selling products, bloggers selling ideas and personality, or newspapers selling news, requires more than just HTML-encoded text and pictures. Dynamic web pages that help you decide what to ask for, show you alternatives, recommend other options, upsell add-ons, and only give you what you pay for require complex software. When we say goodbye to websites and hello to web applications we are in a whole new world of security problems.
10.2.1 Scripting Languages Many scripting languages have been used to develop applications that allow businesses to bring their products or services to the web. Though this is great for the proliferation of businesses, it also creates a new avenue of attack for hackers. The majority of web application vulnerabilities come not from bugs in the chosen language but in the methods and procedures used to develop the web application as well as how the web server was configured. For example, if a form requests a zip code and the user enters “abcde”, the application may fail if the developer did not properly validate incoming form data. Several languages can be used for creating web applications, including CGI’s, PHP and ASP. Common Gateway Interface (CGI): Whatis.com defines a CGI as “A standard way for a web server to pass a web user’s request to an application program and to receive data back to forward to the user.” CGI is part of the web’s Hypertext Transfer Protocol (HTTP). Several languages can be used to facilitate the application program that receives and processes user data. The most popular CGI applications are: C, C++, Java and PERL.
10
LESSON 10 – WEB SECURITY AND PRIVACY
PHP – Hypertext Preprocessor (PHP): PHP is an open-source server-side scripting language where the script is embedded within a web page along with its HTML. Before a page is sent to a user, the web server calls PHP to interpret and perform any operations called for in the PHP script. Whereas HTML displays static content, PHP allows the developer to build pages that present the user with dynamic, customized content based on user input. HTML pages that contain PHP scripting are usually given a file name with the suffix of “.php”. Active Server Pages (ASP): Web pages that have an .asp Active server pages (ASP), are database drive dynamically created Web page with a .ASP extension. They utilize ActiveX scripting -- usually VB Script or Jscript code. When a browser requests an ASP, the Web server generates a page with HTML code and immediately sends it back to the browser – in this way they allow web users to view real time data, but they are more vulnerable to security problems.
10.2.2 Common Web Application Problems Web applications do not necessarily have their own special types of problems but they do have some of their own terms for problems as they appear on the web. As web application testing has grown, a specific security following has grown too and with that, a specific classification of web vulnerabilities. Common web application problems are classified below according to the OSSTMM Risk Assessment Values (http://www.isecom.org/securitymetrics.shtml), a specific way to measure security by how it affects how things work.
RAV
What it means
Authenticatio These are the identification and n authorization mechanisms used to be certain that the person or computer using the web application is the correct person to be using it.
NonRepudiation
Web Examples Every time you login to a web page that has your personal data then you are authenticating. Authentication often means just giving a login and password. Sometimes it means giving an identification number or even just coming from n acceptable IP Address (white-listing).
A record that proves that the data Although you may not see it, most web sent to or from the web application applications keep track of purchases was really sent and where. you make from a particular IP address using a particular browser on a particular operating system as a record that it was most likely smeone on your computer who made that purchase. Without specific “authentication” they can't guarantee 100% it was you though.
Confidentialit A way to assure that y communication with the web application cannot be listened in on by another person.
The HTTPS part of interaction with a web application provides pretty good confidentiality. It does a decent job of making your web traffic with the web app from being publicly readable.
11
LESSON 10 – WEB SECURITY AND PRIVACY
RAV
What it means
Web Examples
A way to assure that the way you contact and communicate with the web application cannot be pre-determined by another person.
While it is very rare, it is not unimaginable that a web application that contains very private information would not even show you it is there unless you come from the right place and know the right secret combination to get the web app to be accessible. One way is to have to click a picture in 5 different places in a specific order to get to the login screen. Another manner is called port-knocking and it means that the server requires a specific sequence of interactions before it opens a port, such as the HTTP port, to the user.
Indemnificati These are ways to assure that the on web application has legal protection or at the least, can be financially protected with insurance.
Some web sites clearly print on the login screen that it's for authorized personnel only. If someone steals a login and password or even brute-forces it open, the attacker, if caught, cannot say he didn't know it was private.
Integrity
This is a record of the validity of the communication with the web application to assure that what is sent and then received by the other is the same thing and if it changed, both the web pplication and the user have a record of the change.
Some web apps provide a “HASH” with files to be downloaded. This HASH is a number generated from that specifc file. When you download the file, you can check the HASH you generate from the file against the one they post. This is to assure that some attacker is not trying to trick you with a different file either replaced or through deception, such as in Cross Site Scripting.
Safety
This is how we protect the web application from it's own security devices. If security fails, we need to make sure that it does not affect the operation of the web application as a whole.
It is very possible to have an application use a daemon that can re-initialize itself or even prevent an attack from crashing any part of itself by presenting itself only virtually. You can also find scenarios where a web app uses an intrusion detection mechanism that “stops” attacks by blocking the attacker by IP address. In this case, we can't say Safety exists if the security device is configured to prevent an attacker from spoofing the web app's own resources and causing this defense to block important traffic. Instead, it is considered either a misconfiguration of the defense or in some cases a weakness of design. Don't confuse a poorly made or “accidental” defense with a designed loss control.
Privacy
12
LESSON 10 – WEB SECURITY AND PRIVACY
RAV
What it means
Web Examples
Usability
A way to prevent the user from having to make security decisions about interacting with the web application. This means that proper security is built in and the user doesn't have to choose which or what security mechanisms to turn on or off.
When a web app requires use of HTTP over SSL (HTTPS) then we can say that it is using Usability as part of security. However, if it lets you choose to interact with it less securely, for example, to send your credit card number by insecure email rather than post it via a form by way of HTTPS, then it is NOT exercising Usabilty.
Continuity
This is how we keep a service based on a web application from failing to work no matter what problem or disaster occurs.
Often times a web app that receives a lot of traffic will have a reverse proxy in front of it which directs the traffic to one of many mirrored web servers. This way, if one goes down, service is not interrupted. Another example is a web application that caches its website to many different servers over the internet so when you visit one, you are nt actually going to the originating web server. If a cache goes down or gets corrupted, then the traffic will get redirected to another cache or the originating website.
Alarm
A notification, either immediate or A basic form of alarm is the log file delayed, regarding a problem with generated by the web server. The bad any of these mechanisms. thing about an alarm is that you can choose to ignore it. This is especially true if it sounds all the time (think of the story of the boy who cried “wolf”. Or in the case of a log file, it may not sound at all. Alarm is only as good as your reaction time to it.
Exercises: 1. Open up google and type in “inurl:search.asp” or “inurl:search.php”. With any of the websites which come up, attempt to type in the following in the search field <script>alert (“hello”)</script>. What happens? Try this for several sites. 2. In google, type in “inurl:login.asp” ond “inurl:login.php”. With any of the websites which come up, attempt to type in special characters (@#$^&) for both the username and password. What happens? Try this for several sites. 3. Knowing the types of security mechanisms a web application may have, open your favorite, interactive website and try to identify if it has security mechanisms which conform to any of the RAV classifications. 4. Commonly discussed web vulnerabilities are Cross Site Scripting (XSS) and SQL injection. What are they and how does an attacker use them to steal data or information from a web application?
13
LESSON 10 â&#x20AC;&#x201C; WEB SECURITY AND PRIVACY
10.2.3 Guidelines for Building Secure Web Applications While there are many opinions and most of the details to building with security in mind come from the logic of the programmer and their skill with the programming language, these basic guidelines are also derived from materials available from the OSSTMM (http://www.osstmm.org). 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Assure security does not require user decisions. Assure business justifications for all inputs and outputs in the application. Quarantine and validate all inputs including app content. Limit trusts (to systems and users). Encrypt data. Hash the components. Assure all interactions occur on the server side. Layer the security. Invisible is best- show only the service itself. Trigger it to alarm. Security awareness is required for users and helpdesks.
Exercises: 1. Give examples for any three of the above guidelines. 2. Give three types of technologies that one could apply to a web application as an alarm.
10.3 HTML Basics â&#x20AC;&#x201C; A brief introduction HTML is a set of instructions that explains how information is to be presented from a web server (Apache, Internet Information Server) to a browser (Firefox, Opera). It is the heart of the World Wide Web. HTML can do much more than just display data on a web page. It can also provide data entry forms, where data can be entered for processing by a higher level language (Perl, PHP, etc). In a business setting this is where HTML is at its most useful but in a hacker setting, this is where HTML is at its most vulnerable.
10.3.1 Reading HTML HTML is communicated with a series of tags or markups. Each opening tag, <h1>, for instance, must have a closing tag, </h1>. This tells the browser to stop the markup described by the preceding tag. Opening and closing tags are a part of well-formed HTML. Take, for example, the code: <html> <head><title>Hello World</title></head> <body> <h1>Hello World!</h1> </body>
14
LESSON 10 – WEB SECURITY AND PRIVACY
</html> Figure 1: HTML Code We are telling the browser this is an HTML document with the tag <html> and we have a title of 'Hello World' with the <title> tag. The <body> tag tells our browser “here is where the information you will be displaying goes.” Finally, the <h1> tags tells the browser to display the information in “Heading 1” style. The tags that are preceded with a '/' are merely the closing tag, this tells the browser to stop displaying the contents described by the opening tag. Exercise 1: Cut and paste the code in figure one and paste it into a text file called hello.html. Open that file in your browser of choice and you should see something similar to this:
15
LESSON 10 – WEB SECURITY AND PRIVACY
10.3.2 Viewing HTML at its Source All modern browsers contain a way to view the underlying HTML code that generated the web page you are looking at. In most cases, this is the “view source” option under the “view” menu in your browser. Exercise 2: Choose View --> View Source in your browser while surfing your favorite web page.
Illustration 1View Menu
16
LESSON 10 – WEB SECURITY AND PRIVACY
The results should be something pretty similar to this:
Illustration 2Source viewed in text editor
HTML code is visible to anyone with a web browser. This is why it is very important when coding web pages to not try to hide passwords or important information in the HTML source code. As you can see, its not very secret.
10.3.3 Links Links (or hyper-links) are really the heart of HTML page building. The biggest strength of HTML is the ability to link to other documents. A link, in the context of HTML is denoted as <a href=”www.yahoo.com”>www.yahoo.com</a> The link will appear as www.yahoo.com on your website. This will take visitors of your site to Yahoo. Links can be checked and followed followed by so-called link checker programs. These programs search HTML source code for the <a href=></a> tags and then create a file or index of the found links. Spammers will often use this technique to find email addresses or contact forms they can use to spread their mass emails. Link checkers can also be used to check your website for “broken” links or links that don't go anywhere. This can happen a lot even in relatively small sites. Exercise 1: Create a link Create a link to www.hackerhighschool.org that displays as Hacker High School on your web page. Bonus exercise: Use the tool
17
LESSON 10 â&#x20AC;&#x201C; WEB SECURITY AND PRIVACY
1. Find and download a link checking program 2. Run that program against www.hackerhighschool.org and document how many broken links you find.
10.3.4 Proxy methods for Web Application Manipulation An HTTP proxy server serves as a middle man between a web server and a web client (browser). It intercepts and logs all connections between them and in some cases can manipulate that data request to test how the server will respond. This can be useful for testing applications for various cross-site scripting attacks (provide reference link here), SQL Injection attacks and any other direct request style attack. A proxy testing utility (SpikeProxy, WebProxy, etc), will assist with most of these tests for you. While some have an automation feature, you will quickly learn that it is actually a weak substitute for a real person behind the wheel of such tools. Exercise 1: Choose your software 1. Download a proxy utility 2. Install the software according to the README file 3. Change your browser setting to point to the new proxy â&#x20AC;˘ This is usually port 8080 on localhost for these tools but read the instructions to be sure. Once the proxy server is installed and your browser is pointed at it, surf around the site your testing. Remember, be sure to use a website that you have permission to test. Once you have surfed around, point your browser to the proxy's admin page (for SpikeProxy, it http://www.immunitysec.com/resources-freesoftware.shtml) and begin testing the site. From the admin interface you can have the tool brute force the site's authentication methods or test for cross-site scripting. (Actually, we recommend using Mozilla or Firefox and http://livehttpheaders.mozdev.org/ and http://addneditcookies.mozdev.org/ together to modify headers and cookies on the fly without the need for a seperate proxy port. Not only does it really simplify things, it's a much more powerful tool set as we teach it in ISECOM's OSSTMM Professional Security Tester class (OPST). But since you will need to know about setting up proxies for other things, like ad and spam filters, privacy filters, etc. We thought you should actually set one up for real and Spike is a good one to try.) A proxy server can be a powerful tool in helping you determine how solid a web application is. For penetration tests or vulnerability assessments, you must have a good proxy tool in your toolbox. There are detailed tutorials available on using SpikeProxy at http://www.immunitysec.com/resources-papers.shtml.
10.4 Protecting your server There are several steps that can be taken to protecting your server. These include ensuring that your software is always updated and patched with any security updates that are available from the manufacturer. This includes ensuring that your OS and web servers are updates as well. In addition, Firewalls and Intrusion detections systems can help protect your server, as discussed below.
18
LESSON 10 â&#x20AC;&#x201C; WEB SECURITY AND PRIVACY
10.4.1 Firewall Firewalls originally were fireproof walls used as barriers to prevent fire from spreading, such as between apartment units within a building. The same term is used for systems (hardware and software) that seeks to prevent unauthorized access of an organization's information. Firewalls are like security guards that, based on certain rules, allow or deny access to/from traffic that enters or leaves an organization (home) system. They are important systems safe guards that seek to prevent an organizationâ&#x20AC;&#x2122;s system from being attacked by internal or external users. It is the first and most important security gate between external and internal systems. Firewalls are generally placed between the Internet and an organizationâ&#x20AC;&#x2122;s information system. The firewall administrator configures the firewall with rules allowing or denying information packets from entering into or leaving the organization. The rules are made using a combination of Internet Protocol (IP) address and Ports; such rules are made depending on the organization needs e.g. in a school, students are allowed in based on identity card. The rule to the security guard in a school would be to allow all persons that carry a valid identity card and deny everyone else. However the security guard would have another rule for exiting from the school; the rule would be to allow everyone exit except small children unless accompanied by adults. A similar system is followed for firewall configuration depending on the nature of the organization, the criticality of information asset, cost of security, security policy and risk assessment. The firewall just like a security guard cannot judge the contents of the information packet; just like the guard allows all persons with a valid identity card irrespective of nature of the persons, firewall allows entry or exit based mainly on IP address and Port numbers. Hence an entry or exit is possible by masking IP address or Port. To mitigate this risk, organizations use Intrusion Detection System, which is explained in the next section. There are various kinds of firewall depending on the features that it has viz. packet filter (operates on IP packets), stateful firewall (operates based connection state) or application firewall (using proxy). Example of a firewall rule could be: Block inbound TCP address 200.224.54.253 from port 135. (An imaginary example); such rule would tell a computer connected to Internet to block any traffic originating from the computer with an IP address 200.224.54.253 using Port 135. Important activities relating to firewalls are initial configuration (creating initial rules), system maintenance (additions or change in environment), review of audit logs, acting on alarms and configuration testing.
10.4.2 Intrusion Detection System (IDS) Imagine in a school that has proper security guards; how will the authorities detect entry of unauthorized persons? The authorities would install burglar alarm that will ring on entry of unauthorized persons. This is exactly the function of intrusion detection system in computer parlance. Firewall (security guard or fence) and IDS (burglar alarm or patrolling guard) work together; while firewall regulates entry and exits, IDS alerts/denies unauthorized access.
19
LESSON 10 â&#x20AC;&#x201C; WEB SECURITY AND PRIVACY
So how does IDS help? Just like burglar alarms, IDS alerts the authorized person (alarm rings) that an authorized packet has entered or left. Further, IDS can also instantly stop such access or user from entering or exiting the system by disabling user or access. It can also activate some other script; IDS can for example prevent or reduce impact of denial of service by blocking all access from a computer or groups of computer. IDS can be host based or network based; host based IDS are used on individual computers while network IDS are used between computers. Host based IDS can be used to detect, alert or regulate abnormal activity on critical computers; network IDS is similarly used in respect of traffic between computers. IDS thus can also be used to detect abnormal activity. IDS like patrolling guard regularly monitors network traffic to detect any abnormality e.g. high traffic from some computers or unusual activity on a server, e.g. user logged onto application and involved in malicious activity. IDS compare any event with historical data to detect any deviation. On detection of deviation, IDS act depending on the rule created by IDS administrator such as alerting, storing such intrusion in audit logs, stopping user from doing any activity or generating script for starting a string of activities. IDS can also detect deviation based on its database of signatures â&#x20AC;&#x201C; any deviation to signature is detected and acted uponthis action is similar to anti virus software. IDS is also used for detection of any activity on critical resource or for forensic by quietly watching the suspect. Exercises: 1. Are both firewall and Intrusion Detection System required in an organization for securing its information system? If yes why? If not, why not? 2. Think of an example of a specific use of firewall rules that is applicable to the front desk person in a school; does she need to access Internet? If not, how will the rule be enforced? 3. Can a student access the school score database that contains complete information on examination scores of all students. How will this be controlled? How will this be detected in case an external party using Internet unauthorizedly accesses it?
10.5 Secure Communications Generally, the concept associated with security communications are the processes of computer systems that creates confidence and reduces risks. For electronic communications, three requirements are necessary to ensure security. A) Authenticity b) Integrity c) Non repudiation. Authenticity: This concept has to do with ensuring that the source of a communication is who it claims to be. It is not difficult to falsify electronic mail, or to slightly vary the name of a web page, and thus redirect users, for example http://www.diisney.com appears to be the Disney web page, but it has 2 letters "i" and can be confusing. In this case, you are actually transferred to a gambling site and the communications are not safe. Integrity: That a communication has Integrity means that what was sent, is exactly what arrives, and has not undergone alterations (voluntary or involuntary) in the passage. Non repudiation: If the conditions of authenticity and Integrity are fulfilled, non-repudiation means that the emitter cannot deny the sending of the electronic communication.
20
LESSON 10 â&#x20AC;&#x201C; WEB SECURITY AND PRIVACY
For example, if a Web site grants a prize to me, and I can prove it - that is to say, if a Web site sends a discount coupon, and I verify that the Web site is authentic, and that nobody manipulated the information in the way, the site cannot deny that the coupon was sent. The form used to assure these conditions from a Web site is called an electronic certificate. Maintaining the conditions of security gives us tranquillity in our electronic communications, and allows to assure the principle the privacy in the cyberspace.
10.5.1 Privacy and Confidentiality Most web sites receive some information from those who browse them - either by explicit means like forms, or more covert methods like cookies or even navigation registries. This information can be helpful and reasonable â&#x20AC;&#x201C; like remembering your book preferences on Amazon.com and, therefore,in order to ensure security to the person who browses, many sites have established declarations of Privacy and Confidentiality. Privacy refers keeping your information as yours â&#x20AC;&#x201C; or limiting it to close family or your friends, or your contacts, but at the most, those who you have agreed to share the information. No one wants their information shared everywhere without control, for that reason, there are subjects declared as private, that is to say, that of restricted distribution. On the other hand, the confidentiality talks about that a subject's information will stay secret, but this time from the perspective of the person receiving that information. For example, if you desire a prize, but you do not want your information distributed, you declare that this information is private, authorize the information to a few people, and they maintain confidentiality. If for some reason, in some survey, they ask to you specifically for that prize, and you respond that if you have it, you would hope that that information stays confidential, that is to say, who receive the information keep it in reserve. We could generalize the definition of confidentiality like "that the information received under condition of privacy, I will maintain as if it was my own private information". It is necessary to declare the conditions of the privacy of information handling, to give basic assurances of security. Also it is recommended that you read the conditions established by the web site you visit in their privacy policy. Exercise: 1. Review the conditions of privacy of world-wide suppliers of WebMail: Google and Hotmail and of manufacturer like General Motors motors http://www.gm.com/privacy/index.html. Are they equal? Of those, who will share the information that I give? What measures will I be able to take if they do not observe these rules?
10.5.2 Knowing if you are communicating securely
21
LESSON 10 â&#x20AC;&#x201C; WEB SECURITY AND PRIVACY
Even with conditions of Privacy and Confidentiality, somebody can still intercept the communications. In order to give conditions discussed at the beginning of this section, a layer of security has been previously discussed called SSL, which uses digital certificates to establish a safe connection (is to say that it fulfills the authenticity, integrity and non repudiation) and provides a level with encryption in communications (this is to hide information so that if somebody takes part of the information, they cannot access it, because the message is encypted so that only the sender that sends it and the receiver, with a correct certificates, is able to understand it). This layer is called Security Socket Layer, SSL, and is visible through two elements within the web browser. The communications is considered to be safe when the web address URL changes from HTTP to https, this change even modifies the port of the communication, from 80 to 443. Also, in the lower bar of the navigator, a closed padlock appears, which indicates conditions of security in the communications. If you put mouse on this padlock, a message will apepar detailing the number of bits that are used to provide the communications (the encryption level), which as of today, 128 bits is the recommended encryption level. This means that a number is used that can be represented in 128 bits to base the communications. A type of called trick phishing exists (http://www.antiphishing.org/) in which a Web mimics the page to make seem from a bank (they copy the graphics, so that the clients enter their data, trusting that it is the bank, although it is not it). In order to avoid these situations, the authenticity of the site should be verified, and checked that the communications are safe (https and the closed padlock), and to the best of your knowledge, it verifies the certificate.
10.6 Methods of Verification At this point, you have had opportunity to know the foundations the security in the Web, the main aspects related to some of the vulnerabilities found commonly in the web servers used to lodge the different sites with which we routinely interact when browsing in Internet, and the form in which different defects in the development of web applications, affect the security and/or the privacy of the users in general. On the other hand, you have learned some of the technologies on which we rely to protect our servers and also our privacy. However, probably at this moment, you are realizing questions such as: I am safe, now that I have taken the corresponding actions? Is my system safe? The developers that have programmed some of the functionalities that I have used in my Web site, have they taked care of ensuring aspects to the security? How I can verify these aspects? As probably you have thought, it is not enough to apply manufacturer updates or trust the good intentions of the developer, when your security or privacy is concerned. In the past, there have been several cases in which manufacturer's patches corrected one vulnerability, but causing another problem in the system, or once patched discovered a new vulnerability. Due to this and other reasons, you will have to consider, that is absolutely necessary to verify frequently the implemented systems, in order to the system "remains" safe. Luckily, many people have developed in their own time, some "Methods of Verification", most of which are available free, so that we all may take advantage of the benefits of its use. Such they are based on the experience of hundreds of professionals, and include numerous "good practices" regarding implementing technology in safe form. Therefore, it is recommended, that you adopt these methodologies at the time of making your tasks of verification.
22
LESSON 10 â&#x20AC;&#x201C; WEB SECURITY AND PRIVACY
An example of these, the OSSTMM is discussed briefly below.
10.6.1 OSSTMM The OSSTMM, which is an abbreviation for "Open Source Security Testing Manual Methodology" is one of the methodologies of testing security that is widely used. As described in its introduction, although certain individual tests are mentioned, these are not particularly revolutionary, the methodology altogether represents a standard of essential reference, for anyone wanting to carry out a test of security in an ordered format and with professional quality. The OSSTMM, is divided in several sections. In the same way, it is possible to identify within it, a series of specific testing modules, through which each dimension of security is tested and integrated with the tasks needed to ensure security. This sections include: Personnel Security, Data Network Security, Telecommunications Security, Wireless Communications Security, and Physical Security, and the sections of this methodology detail security from the point of view of WHICH test to do, WHY to do it and WHEN to do it. The OSSTMM by itself details the technical scopes and traditional operation of security, but , and this is perhaps one of the very important aspects, not the exact tests, rather it presents, what should be tested, the form in which the test results must be presented/displayed, the rules for testers to follow to assure best results, and also, incorporates the concept of security metrics with RAVs (Risk Assessment Values) to put a factual number on how much security you have. The OSSTMM is a document for professionals but it is never too early to try to understand it and learn how it works. The concepts are very thorough and it's written in an easy-to-comprehend style. Exercises 1. Patching is a common problem today where web administrators are currently needing to patch code as new vulnerabilities are discovered. Research for a case in where a new problem occurred when installing a new security patch. Discuss about the possibilities and consequences that an administrator, who has a new patch to install, realizes that this will open a breach in its system that already was resolved. Should the patch still be installed? In relation to this subject, would it matter whether you have the source code and not? 2. Go to http://cve.mitre.org and go to search for CVEs. Enter the name of a web server (ie Apache) into the search field. When did the latest vulnerability get released? How often have vulnerabilities come out (weekly, monthly, etc.)? In reference to question number one, is patching a realistic solution to security? Why or why not? What other security measures can be used if you decide not to play the cat and mouse game of patching? 3. Download a copy of the OSSTMM and review the methodology concepts. What aspects would you emphasize from this methodology? How you think that this methodology can integrate with your verifications of security? 4. What you can find out of the RAVs?
23
LESSON 10 â&#x20AC;&#x201C; WEB SECURITY AND PRIVACY
Further Reading http://www.osstmm.org http://www.oreilly.com/catalog/websec2/chapter/ch08.html http://www.w3.org/Security/Faq/ http://www.privacyalliance.org/ http://www.perl.com/pub/a/2002/02/20/css.html http://www.oreilly.com/catalog/webprivp3p/chapter/ch01.pdf http://www.defenselink.mil/specials/websecurity/ http://www.epic.org/ http://www.cgisecurity.com/ http://www.eff.org/privnow/
Here are some sites to check out if you want more information on creating your own web pages or HTML in general. http://www.htmlgoodies.com/ http://www.htmlhelp.com/ http://www.w3schools.com/
24
LECCIÓN 11 PASSWORDS
LESSON 11 - PASSWORDS
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a esponsorizarlo a través de la compra de una licencia, una donación o una esponsorización. All works copyright ISECOM, 2004.
2
LESSON 11 - PASSWORDS
Índice “License for Use” Information............................................................................................................... 2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................4 11.1. Introducción....................................................................................................................................5 11.2. Tipos de Passwords.........................................................................................................................6 11.2.1. Cadenas de caracteres....................................................................................................... 6 11.2.2. Cadenas de caracteres más un token...............................................................................6 11.2.3. Passwords biométricos.......................................................................................................... 6 11.3. Historia de las Contraseñas...........................................................................................................7 11.3.1. Ejercicio 1................................................................................................................................7 11.4. Construcción de passwords robustos..........................................................................................8 11.4.1. Ejercicio 1................................................................................................................................8 11.4.2. Ejercicio 2................................................................................................................................8 11.5. Cifrado de los passwords.............................................................................................................. 9 11.5.1. Ejercicio 1................................................................................................................................9 11.5.2. Ejercicio 2................................................................................................................................9 11.5.3. Ejercicio 3..............................................................................................................................10 11.6. Password Cracking (password Recovery) ................................................................................11 11.6.1. Ejercicio.................................................................................................................................11 11.7. Protección contra el descifrado de passwords ......................................................................12 11.7.1. Ejercicio.................................................................................................................................12 Lecturas de ampliación en Internet...................................................................................................13
3
LESSON 11 - PASSWORDS
Contribuciones Kim Truett, ISECOM Chuck Truett, ISECOM J. Agust铆n Zaballos, La Salle URL Barcelona Pete Herzog, ISECOM Jaume Abella, La Salle URL Barcelona - ISECOM Marta Barcel贸, ISECOM
4
LESSON 11 - PASSWORDS
11.1. Introducción Uno de los principales personajes de la película MATRIX RELOADED es el “hacedor de llaves”. El hacedor de llaves es un personaje críticamente importante, protegido por MATRIX y buscado incansablemente por Neo, porque es el encargado de fabricar y mantener las llaves que dan acceso a las diferentes zonas de MATRIX. MATRIX representa un mundo generado por ordenador y las llaves que dan acceso a las diferentes estancias son passwords o contraseñas. En la película se utilizan passwords de propósito general, passwords para las puertas traseras o back doors y passwords maestros que dan acceso a cualquier parte. Los passwords son las llaves con las que se controla el acceso, manteniendo a los indeseables lejos de ti. En definitiva, los passwords controlan el acceso a la información (por ejemplo con los passwords en los documentos), restringen el acceso a los recursos (por ejemplo con los passwords en las páginas web) o implementan la autenticación (demostrando que tú eres quien dices ser).
5
LESSON 11 - PASSWORDS
11.2. Tipos de Passwords Existen principalmente tres tipos de passwords. Los que necesitan algo que sé, los que implican algo que tengo y los que añaden algo que soy. 11.2.1. Cadenas de caracteres En el nivel más básico, las contraseñas son cadenas de caracteres, números y símbolos. Tener acceso a un teclado proporciona un método para introducir este tipo de passwords. Las contraseñas pueden ir de las más sencillas, como los tres números para acceder a ciertas plazas de garaje, hasta las más complicadas combinaciones de caracteres, números y símbolos que se recomienda emplear para proteger la información más sensible. 11.2.2. Cadenas de caracteres más un token En el siguiente nivel, los passwords requieren una cadena de caracteres, números y símbolos más un token o ficha de algún tipo. Un ejemplo típico es el de los cajeros automáticos. Para acceder a éstos se necesita una tarjeta y un número personal identificativo o PIN. Se consideran más robustos ya que si pierdes o olvidas alguno de los dos requerimientos tu acceso será denegado. 11.2.3. Passwords biométricos El tercer nivel de complejidad son los passwords biométricos. Consisten en utilizar alguna característica física no reproducible, como las huellas digitales o el aspecto de la cara, para permitir el acceso. Un ejemplo es el escáner de retina en el cual el interior del ojo se fotografía para la posterior identificación del sujeto. La retina contiene un patrón único de distribución de vasos sanguíneos fácilmente apreciable y que se puede utilizar para la identificación del individuo. Los passwords biométricos son los que se consideran más sofisticados y más seguros de todos los passwords. Sin embargo, un password que se pueda transportar en el dedo o en el ojo no tiene porqué ser más seguro que uno transportado en la cabeza si el software está bien configurado.
6
LESSON 11 - PASSWORDS
11.3. Historia de las Contraseñas En las versiones más antiguas de MS Excel y Word, se guardaban las contraseñas en forma de texto llano o nativo (sin ningún tipo de cifrado) en la cabecera de los documentos protegidos. Si se conseguía acceder a la cabecera del documento se podía leer la contraseña. Esto es válido para todas las versiones anteriores a Office 2000. El sistema operativo Windows llegó a guardar las contraseñas con un formato de texto llano en un archivo oculto. En el caso de olvidar el password se podía anular simplemente borrando el archivo oculto con lo que desaparecía el password. Pronto, Microsoft y Adobe empezaron a usar passwords, pero sólo para denotar que los documentos necesitaban de una passwords para ser abiertos, no para leer la información. Esto significaba que si el documento se abría con otra aplicación, como por ejemplo el bloc de notas (notebook) el password no era necesario y la información podía ser leída sin problemas. Microsoft Access 2.0 podía ser abierto como un fichero de texto fácilmente, simplemente renombrando el fichero con extensión “.txt”. Haciendo esto se podía leer perfectamente la información contenida en la base de datos. Los ficheros Adobe PDF 4.0 y anteriores se podían imprimir y, muchas veces, visualizar también usando lectores PDF de Linux o el Ghostview para Windows. Las redes inalámbricas (wireless networks) tienen un problema con la encriptación, ya que la clave de encriptación se puede calcular una vez se ha capturado un elevado volumen de la información que se transmite por el aire. Actualmente, con la capacidad de cálculo que tienen los ordenadores, cada vez se tarda menos en “crackear” los passwords. La seguridad de los sistemas Bluetooth se considera muy fiable, una vez el sistema está configurado. El problema es que bluetooth transmite un único password entre los dispositivos para establecer la conexión y éste se envía como texto llano. Si esa contraseña es interceptada, toda transmisión futura durante esa sesión puede descifrarse fácilmente. 11.3.1. Ejercicio 1 Descárgate de Internet un fichero PDF e intenta abrirlo con otro programa que no sea el Acrobat Reader. Puedes leer correctamente la información que contiene dicho documento?
7
LESSON 11 - PASSWORDS
11.4. Construcción de passwords robustos Un password robusto es aquél que: Ø No puede encontrarse en un diccionario Ø Contiene números, letras y símbolos Ø Contiene letras mayúsculas y minúsculas Ø Cuanto más largo, más robusto es Con un password de 2 letras y 26 letras en el alfabeto, contando además con 10 números (ignorando los símbolos), hay 236 posibles combinaciones (687,000,000 posibilidades). Si aumentamos la longitud del password a 8 caracteres, ya disponemos de 836 combinaciones (324,000,000,000,000,000,000,000,000,000,000 posibilidades). Hay muchos generadores de passwords robustos disponibles en Internet, pero éstos generarán un password que es casi imposible de recordar. Intente emplear, en cambio, una cadena aparentemente aleatoria de letras o números que usted pueda recordar fácilmente. Por ejemplo: Ys=#1pt! (Yo soy el numero uno para ti) ArJuAg1p (Ariadna, Juan Agustín y 1 perro – miembros de la familia) LxRzDg24 (Alex Ruiz Diego – consonantes del nombre completo y la edad) 11.4.1. Ejercicio 1 Crea un password robusto que puedas recordar que obtenga una buena puntuación en la siguiente página web: http://www.securitystats.com/tools/password.php 11.4.2. Ejercicio 2 Busca en Internet 3 páginas web de bancos o cajas de ahorro y averigua el tipo de password con el que se accede a la información restringida y si recomiendan algún tipo de password o PIN (longitud, alfanumérico, DNI,…).
8
LESSON 11 - PASSWORDS
11.5. Cifrado de los passwords El cifrado o encriptación de los passwords es un tópico no muy usual. Aunque es importante distinguir si hablamos de passwords encriptados o no encriptados, lo que realmente marca la diferencia es el método de encriptación que se utiliza. Esto es debido a que muchas veces, lo que nos parece un fichero encriptado es, simplemente, un fichero “codificado”. Esto hace que para nosotros el fichero no sea leíble directamente, pero si que lo podríamos entender o traducir fácilmente usando un ordenador. Además, incluso un fichero encriptado podría haber sido generado mediante una clave débil (fácil de adivinar) o un esquema de encriptación poco robusto. Por estas razones es importante que, en el caso de encriptar cualquier tipo de información, seas consciente de que estas usando un esquema de encriptación confiable el cual ha sido probado y verificado a fondo. Por otro lado, debes asegurarte de que tu password es también un password robusto. Un buen sistema de encriptación no sirve de nada sin un buen password. Y viceversa.
11.5.1. Ejercicio 1 Hemos encriptado una serie de nombres de frutos usando un método de encriptación muy básico llamado “ROT13”. Busca por Internet en que consiste este método y trata de descifrar las palabras: a) gbzngr b) anenawn c) cvñn d) cren e) znamnan
11.5.2. Ejercicio 2 Busca algun sitio web donde puedas descifrar automáticamente estas palabras.
9
LESSON 11 - PASSWORDS
11.5.3. Ejercicio 3 Existen muchos sistemas de encriptación, pero realmente, muchos de ellos son simplemente sistemas de codificación. Sabes cual es la diferencia? La mayoría de nosotros seguramente no sabrá responder a esta pregunta. Realmente, la diferencia está en que los sistemas de codificación no necesitan un password para ser decodificados. De los siguientes sistemas de encriptación, identifica cuales son realmente tipos de encriptación y cuales son esquemas de codificación. a) Twofish b) MIME c) RSA d) CAST e) AES f) BASE64 g) IDEA h) TripleDES i) ROT13 j) TLS
10
LESSON 11 - PASSWORDS
11.6. Password Cracking (password Recovery) El Password Cracking o el descifrado de contraseñas para propósitos ilegales es, evidentemente, ilegal. Pero si es su propio password el que quiere descifrar, entonces estamos hablando de su información. Si de lo que se trata es de que un individuo está utilizando un password para proteger algo, y entonces se olvida de éste, se necesita una recuperación de contraseña o password recovery. El descubrimiento de passwords consiste en seguir unas técnicas básicas: Echar una mirada alrededor: los passwords se guardan a menudo debajo de los teclados, bajo las alfombrillas del ratón o se cuelgan en las hojas “post-it” personales. La fuerza bruta: simplemente se prueban passwords de forma secuencial hasta que uno funciona. Los ataques de diccionario automatizados: estos programas cruzan una serie de palabras pertenecientes a un diccionario hasta que una de éstas funcione como una contraseña válida. Hay muchos programas disponibles en Internet que nos pueden ayudar con la recuperación de passwords introducidos en diferentes tipos de documentos. Sin embargo, cuanto más nueva es la versión del programa más fiable éste se vuelve y, por consiguiente, más difícil es obtener los passwords descifrados que usan, o encontrar un programa que nos ayude en la recuperación del password. 11.6.1. Ejercicio Averigua tres tipos de programas que se suelan emplear en desarrollar documentos de todo tipo (de texto, hojas de cálculo, compresores de archivos) y que permitan la utilización de passwords para proteger el acceso a los contenidos. A continuación busca algún programa o método en Internet que facilite la recuperación de passwords de este tipo de archivos.
11
LESSON 11 - PASSWORDS
11.7. Protección contra el descifrado de passwords Estas son algunas recomendaciones para evitar el descifrado de tus passwords: 1. Utiliza contraseñas robustas que no puedan extraerse con un ataque de diccionario. 2. No anuncies el password cerca del ordenador. 3. Configura el sistema para que en el caso de que se produzcan tres intentos fallidos el sistema se quede bloqueado. La contraseña debería restablecerse entonces. Esto no se aplica a documentos protegidos con password o a los archivos .zip comprimidos ya que no suelen disponer de la opción de bloqueo. 4. Cambia las contraseñas regularmente. 5. Usa una variedad suficiente de contraseñas para diferentes ordenadores. ¿Significa esto que se necesita crear una única contraseña para cada cosa? No. Se puede mantener un password maestro para las cosas sin importancia (quizás para la cuenta que le exigieron que creara para TheSIMS.com o para su cuenta en el periódico local). Pero utiliza passwords robustos para lo que realmente necesite estar seguro. 11.7.1. Ejercicio Analizad en grupos el resto de recomendaciones que se describen en el siguiente enlace: http://www.securitystats.com/tools/password.php
12
LESSON 11 - PASSWORDS
Lecturas de ampliaci贸n en Internet http://www.password-crackers.com/pwdcrackfaq.html http://docs.rinet.ru/LomamVse/ch10/ch10.htm http://www.ja.net/CERT/Belgers/UNIX-password http://www.crypticide.com/users/alecm/-security.html http://www.securitystats.com/tools/password.php http://www.openwall.com/john/ http://www.atstake.com/products/lc/ http://geodsoft.com/howto/password/nt_password_hashes.htm
13
LECCIÓN 12 LEGALIDAD Y ÉTICA EN INTERNET
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
“License for Use” Information The following lessons and workbooks are open and publicly available under the following terms and conditions of ISECOM: All works in the Hacker Highschool project are provided for non-commercial use with elementary school students, junior high school students, and high school students whether in a public institution, private institution, or a part of home-schooling. These materials may not be reproduced for sale in any form. The provision of any class, course, training, or camp with these materials for which a fee is charged is expressly forbidden without a license including college classes, university classes, trade-school classes, summer or computer camps, and similar. To purchase a license, visit the LICENSE section of the Hacker Highschool web page at www.hackerhighschool.org/license. The HHS Project is a learning tool and as with any learning tool, the instruction is the influence of the instructor and not the tool. ISECOM cannot accept responsibility for how any information herein is applied or abused. The HHS Project is an open community effort and if you find value in this project, we do ask you support us through the purchase of a license, a donation, or sponsorship. All works copyright ISECOM, 2004.
Información sobre la “Licencia de Uso” Las lecciones y cuadernos de trabajo siguientes son de acceso público y están disponibles bajo las siguientes condiciones de ISECOM: Todos los trabajos del proyecto “Hacker Highschool” son proporcionados para su uso no comercial con estudiantes de escuelas primarias, secundarias, bachilleratos y ciclos formativos dentro de las actividades académicas propias de la institución. Dichos materiales no pueden ser reproducidos con fines comerciales de ningún tipo. La impartición con estos materiales de cualquier clase, curso o actividad de formación para el que sea necesario pagar un importe, queda totalmente prohibida sin la licencia correspondiente, incluyendo cursos en escuelas y universidades, cursos comerciales o cualquier otro similar. Para la compra de una licencia visite la sección “LICENSE” de la página web del proyecto “Hacker Highschool” en www.hackerhighschool.org/license. El proyecto HHS es una herramienta de aprendizaje y, como tal, la formación final debe proceder realmente de la influencia del instructor y no basarse únicamente en el uso de la herramienta. ISECOM no puede aceptar bajo ningún concepto responsabilidad alguna sobre la forma de aplicar, ni sus consecuencias, de cualquier información disponible dentro del proyecto. El proyecto HHS es un esfuerzo de una comunidad abierta, por lo que si encuentra útil este proyecto le invitamos a patrocinarlo a través de la compra de una licencia, una donación o un patrocinio. Todos los Derechos Reservados ISECOM, 2004.
2
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
Índice “License for Use” Information................................................................................................................ 2 Información sobre la “Licencia de Uso”.............................................................................................. 2 Contribuciones........................................................................................................................................4 12.1. Introducción....................................................................................................................................5 12.2. Delitos transfronterizos versus Derechos locales.........................................................................5 12.3. Delitos relativos a las TIC’s.............................................................................................................6 12.3.1. Delitos relacionados con la pornografía.............................................................................7 12.3.2. Descubrimiento y revelación de secretos: Correo Electrónico........................................ 8 12.3.3. Descubrimiento y revelación de secretos: Secretos de Empresa.................................... 8 12.3.4. Delitos relacionados con instrumentos tecnológicos para la manipulación de accesos y/o contenidos.................................................................................................................... 9 12.3.5. Daños en programas o documentos electrónicos, soportes o sistemas informáticos.. 9 12.3.6. Delitos por agresión a la propiedad intelectual...............................................................10 12.4. Prevención de Delitos y Tecnologías de doble uso.................................................................11 12.4.1. Los sistemas globales de vigilancia: el concepto “COMINT”......................................... 11 12.4.2. El sistema “ECHELON”...........................................................................................................11 12.4.3. El sistema “CARNIVORE”...................................................................................................... 12 12.4.4. Ejercicio 1...............................................................................................................................13 12.4.5. Ejercicio 2...............................................................................................................................14 12.5. Hacking Ético................................................................................................................................14 12.5.1. Ejercicio..................................................................................................................................15 12.6. Los 10 delitos y fraudes más usuales en Internet......................................................................15 12.6.1. Ejercicio..................................................................................................................................16 12.7. Lecturas recomendadas.............................................................................................................16
3
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
Contribuciones Francisco de Quinto, Piqué Abogados Asociados Jordi Saldaña, Piqué Abogados Asociados Jaume Abella, Enginyeria La Salle (URL) – ISECOM Marta Barceló, ISECOM
4
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
12.1. Introducción Las nuevas tecnologías, al configurarse como nuevo paradigma que invade todos los ámbitos de la actividad humana, no podían por menos de incidir también en el lado oscuro de dicha actividad: la conducta delictiva o criminal de los individuos de los grupos organizados. Por este motivo hemos reservado la última de las lecciones del HHS a analizar varios aspectos relacionados con la legalidad y la ética en Internet, analizando las numerosas conductas que pueden desembocar en delitos y las consecuencias que estas pueden provocar.
12.2. Delitos transfronterizos versus Derechos locales Las nuevas tecnologías, al configurarse como nuevo paradigma que invade todos los ámbitos de la actividad humana, no podían por menos de incidir también en el lado oscuro de dicha actividad: la conducta delictiva o criminal de los individuos de los grupos organizados. Por sus especiales características dos son las fórmulas a través de las que las Tecnologías de la Información y las Comunicaciones (TICs) se relacionan con el delito: 1. Por un lado, las tecnologías ofertan la posibilidad de renovar las tradicionales formas de delinquir. Entraríamos aquí en figuras delictivas tipificadas tradicionalmente en los códigos penales pero que tienen una nueva forma de materializarse. Por poner dos ejemplos podemos citar el blanqueo de capitales y la pornografía infantil. 2. Por otro lado, por la fuerza de su propia innovación, las TICs han propiciado la aparición de nuevas figuras delictivas que, por su novedad, están en proceso de incorporación a los códigos penales de los diferentes países. A modo de ejemplo podemos citar las agresiones a la salud pública por antenas de telefonía o los ataques mediante virus. Otra característica a destacar de las TICs es su desubicación espacial, la cual afecta mucho al entorno en general, pero sin duda cobra su máxima expresión en el ámbito del “Derecho” que desde los orígenes siempre ha presentado una clara vocación territorial tanto en lo que respecta a la autoridad judicial que juzga (JURISDICCIÓN COMPETENTE) como en lo relativo a la norma que se debe aplicar al juzgar (LEY APLICABLE). Ambos conceptos son aún hoy en día marcadamente geográficos. En síntesis podemos decir que las TICs son globales y esencialmente transfronterizas y, por el contrario, la ley y los tribunales están limitados por definición a un determinado estado o territorio. Además, el fenómeno de la desubicación es en realidad mucho más acusado de lo que aparenta. A pesar de que no seamos conscientes de ello, una información bidireccional on-line entre un usuario en Barcelona y un Web Site alojado en un ISP de California puede pasar por más de 10 ISPs distintos domiciliados en los puntos más dispares del mundo. Ante esta diversidad de domicilios y nacionalidades cabe preguntarse ¿Qué ley se aplicará en caso de litigio? ¿Cuál de entre todos los posibles será el Tribunal idóneo para entender del caso?
5
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
A modo de ejemplo cabe citar el reciente convenio del Consejo de Europa sobre cibercrimen, firmado el 23 de Noviembre de 2001 en Budapest por 30 países entre los que figuran, lógicamente, los 15 socios de la U.E., Estados Unidos, Canadá, Japón y Sudáfrica entre otros. El convenio de Budapest instaura el PRINCIPIO DE TERRITORIALIDAD para definir la jurisdicción competente. La firma de este Convenio es la culminación de cuatro años de trabajo que se han plasmado en un documento de 48 artículos que se organizan en torno a cuatro categorías: 1. Infracciones contra la confidencialidad 2. Falsificación y fraude informático 3. Infracciones relativas a los contenidos 4. Violaciones de la propiedad intelectual Una vez descrito el especialmente complejo marco de regulación y sanciones de la actividad criminal en Internet, es obligado cerrar a modo de primera conclusión las tres principales dificultades para alcanzar el mínimo consenso internacional deseable sobre la materia: 1ª DIFICULTAD: CONFLICTO DE JURISDICCIÓN. Elegir el tribunal competente para juzgar un delito multinacional y transfronterizo. Este problema no está definitivamente resuelto por ninguno de los sistemas judiciales conocidos. 2ª DIFICULTAD: CONFLICTO DE rigidez con que tropezará su concreto que debe juzgar. De criterios jurídicos tradicionales entorno virtual.
LEYES. Una vez elegido el tribunal la primera actividad es elegir la ley aplicable al caso nuevo nos vemos obligados a concluir que los no son operativos para su aplicación en el
3ª DIFICULTAD: EJECUCIÓN DE SENTENCIA EXEQUATOR. Una vez el tribunal competente ha emitido sentencia ésta debe ser ejecutada, previsiblemente en países distintos del foro que la ha dictado. Para ello se debe contar con un compromiso supra-nacional de reconocimiento y aceptación de sentencias. Esta problemática es todavía más complicada de solucionar que las dos anteriores.
12.3. Delitos relativos a las TIC’s La clasificación de las conductas delictivas es uno de los principios imprescindibles en materia penal y en España tenemos la gran suerte de que el Código Penal vigente se promulgó hace relativamente poco tiempo. En efecto, el conocido como Código Penal Belloch se aprobó el 23 de noviembre de 1995 (Ley Orgánica del código Penal 10/1995) y en su exposición de motivos se reconoce la necesidad de introducir nuevas figuras delictivas para adaptar los criterios penales a las exigencias sociales actuales. Entre otras podemos destacar la siguiente clasificación de las acciones potencialmente delictivas en los seis apartados siguientes: 1. Manipulación en los datos e informaciones contenidas en los archivos o soportes físicos informáticos ajenos. 2. Acceso a los datos y/o utilización de los mismos por quien no está autorizado para ello.
6
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
3. Introducción de programas o rutinas en otros ordenadores para destruir información, datos o programas. 4. Utilización del ordenador y/o los programas de otras personas, sin autorización, con el fin de obtener beneficios propios y en perjuicio de otro. 5. Utilización del ordenador con fines fraudulentos. 6. Agresión a la “privacidad” mediante la utilización y procesamiento de datos personales con fin distinto al autorizado. El delito tecnológico se caracteriza por las dificultades que entraña descubrirlo, probarlo y perseguirlo. En efecto, son delitos que en la mayoría de los casos no se denuncian, para evitar la alarma social o el desprestigio por un fallo en la seguridad. Las víctimas prefieren sufrir las consecuencias del delito e intentar prevenirlo para el futuro antes que iniciar un procedimiento judicial. Esta situación dificulta enormemente el conocimiento del número de delitos cometidos y la planificación de las adecuadas medidas legales sancionadoras o preventivas. Además resulta difícil tipificar penalmente situaciones sometidas a un constante cambio tecnológico. Pese a las críticas que pueda recibir, se puede considerar que el nuevo Código Penal es una herramienta de gran valor para jueces, juristas y abogados a quienes permitirá efectuar construcciones jurídicas artificiosas para penar conductas socialmente reprochables que necesitan tener su cabida en el Código Penal del siglo XXI. A continuación analizaremos algunos casos concretos de tipificación de delitos relacionados con las TIC’s, analizando parte de los artículos donde quedan reflejados, así como las penas que puedan llegarse a imponer.
12.3.1. Delitos relacionados con la pornografía Artículo 189. 1. Será castigado con la pena de prisión de uno a tres años: a) El que utilizare a menores de edad o a incapaces con fines o en espectáculos exhibicionistas o pornográficos, tanto públicos como privados o para elaborar cualquier clase de material pornográfico, o financiare cualquiera de estas actividades. A destacar que en el artículo anterior así como en el artículo 186 se hace referencia a venta, difusión o exhibición POR CUALQUIER MEDIO de material pornográfico genérico a menores de edad, o material elaborado mediante utilización de menores de edad o incapaces. Ejercicio:
Busca por Internet algún caso famoso de pornografía infantil a través de Internet, y coméntalo en clase.
¿Cuál ha sido la sentencia aplicada a los autores (si la ha habido)?
¿Cual es el perfil de usuario que comete este tipo de delito?
7
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
¿Por qué crees que hay gente que se dedica a estas prácticas?
12.3.2. Descubrimiento y revelación de secretos: Correo Electrónico Artículo 197. 1. El que, para descubrir secretos o vulnerar la intimidad de otro, sin su consentimiento, se apodere de sus papeles, cartas, mensajes de correo electrónico o cualesquiera otros documentos o efectos personales o intercepte sus telecomunicaciones o utilice artificios técnicos de escucha, transmisión, grabación o reproducción del sonido o de la imagen, de cualquier otra señal de comunicación, será castigado con las penas de prisión de uno a cuatro años y multa de doce a veinticuatro meses. Ejercicio:
Busca por Internet algún caso de interceptación del correo electrónico y que haya causado polémica.
¿Cuáles crees que son las causas de dicha polémica?
¿Cuál ha sido la sentencia aplicada a los culpables (si la ha habido)?
12.3.3. Descubrimiento y revelación de secretos: Secretos de Empresa Artículo 278. 1. El que, para descubrir un secreto de empresa se apoderare por cualquier medio de datos, documentos escritos o electrónicos, soportes informáticos u otros objetos que se refieran al mismo, o empleare alguno de los medios o instrumentos señalados en el apartado 1 del artículo 197, será castigado con la pena de prisión de dos a cuatro años y multa de doce a veinticuatro meses. 2. Se impondrá la pena de prisión de tres a cinco años y multa de doce a veinticuatro meses si se difundieren, revelaren o cedieren a terceros los secretos descubiertos. Ejercicio:
Busca por Internet algún caso de descubrimiento y revelación de secretos de empresa, relacionado con alguna multinacional famosa.
¿Cuál ha sido la sentencia aplicada a los autores (si la ha habido)?
¿Cuáles crees que son las causas que han llevado a los autores a realizar dichas acciones?
8
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
12.3.4. Delitos relacionados con instrumentos tecnológicos para la manipulación de accesos y/o contenidos Estafa con manipulación informática. Artículo 248. 1. Cometen estafa los que, con ánimo de lucro, utilizaren engaño para producir error en otro, induciéndolo a realizar un acto de disposición en perjuicio propio o ajeno. 2. También se consideran reos de estafa los que, con ánimo de lucro y valiéndose de alguna manipulación informática o artificio semejante, consigan la transferencia no consentida de cualquier activo patrimonial en perjuicio de terceros. Ejercicio:
Busca por Internet algún caso que pueda clasificarse en este tipo de delito.
¿Cuál ha sido la sentencia aplicada a los autores (si la ha habido)?
¿Cuáles crees que son las causas que han llevado a los autores a realizar dichas acciones?
12.3.5. Daños en programas o documentos electrónicos, soportes o sistemas informáticos Artículo 264. 1. Será castigado con la pena de prisión de uno a tres años y multa de tres a veinticuatro meses el que por cualquier medio destruya, altere, inutilice o de cualquier otro modo dañe los datos, programas o documentos electrónicos ajenos contenidos en redes, soportes o sistemas informáticos. Ejercicio:
Busca por Internet algún caso que pueda clasificarse en este tipo de delito.
¿Cuál ha sido la sentencia aplicada a los autores (si la ha habido)?
¿Cuáles crees que son las causas que han llevado a los autores a realizar dichas acciones?
9
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
12.3.6. Delitos por agresión a la propiedad intelectual Artículo 270. 1. Será castigado con pena de prisión de seis meses a dos años o de multa de seis a veinticuatro meses quien, con ánimo de lucro y en perjuicio de terceros, reproduzca, plagie, distribuya o comunique públicamente, en todo o en parte, una obra literaria, artística o científica, o su transformación, interpretación o ejecución artística fijada en cualquier tipo de soporte o comunicada a través de cualquier medio, sin la autorización de los titulares de los correspondientes derechos de propiedad intelectual o de sus cesionarios. 2. La misma pena se impondrá a quien intencionadamente importe, exporte o almacene ejemplares de dichas obras o producciones o ejecuciones sin la referida autorización. Ejercicio:
Busca por Internet algún caso que pueda clasificarse en este tipo de delito y coméntalo en clase con los compañeros.
Comenta si las siguientes acciones pueden considerarse delito según el artículo anterior: o
Fotocopiar un libro en su totalidad
o
Copiar un CD de música que no hayamos comprado
o
Hacer una copia de un CD de música que sí hayamos comprado
o
Descargar música MP3 o películas en DIVX desde Internet
10
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
12.4. Prevención de Delitos y Tecnologías de doble uso La única manera solvente para prevenirse ante la agresión criminal en el ámbito de las TICs es aplicar razonablemente las medidas de seguridad que se han explicado a lo largo de las lecciones anteriores. También resulta extraordinariamente importante que la aplicación de dichas medidas se haga de tal forma que resulte prácticamente imposible que por nuestra parte se incurra en conductas delictivas o dudosas. No podemos cerrar este apartado sin antes exponer la realidad de que en ocasiones determinadas tecnologías revisten un doble papel y son susceptibles de ser utilizadas para la seguridad y, a la vez, para la agresión. Se trata de las llamadas TECNOLOGÍAS DE DOBLE USO, cuyos máximos exponentes son la criptografía y las llamadas “COMINT” o tecnologías de interceptación de comunicaciones. Por su trascendencia global exponemos a continuación la realidad de este fenómeno y sus alarmantes consecuencias en todos los órdenes de la actividad humana: política, social, económica, de investigación, etc.
12.4.1. Los sistemas globales de vigilancia: el concepto “COMINT” Recientemente se ha elaborado el término COMINT como resultado de la integración de los términos “COMmunications INTelligence” y supone la aplicación de un sistema envolvente de interceptación de comunicaciones a partir de las posibilidades que brindan el desarrollo y la masiva implantación de las TIC’s. Hoy en día, COMINT representa una amplia actividad económica que se ocupa de facilitar a sus clientes, ya sean públicos o privados, de contenidos inteligentes a la carta en las áreas de la diplomacia, la economía o la ciencia. Supone la superación del obsoleto esquema espionaje/militar y la implantación más o menos abierta de los nuevos objetivos antes citados. Los ejemplos más representativos de estas tecnologías COMINT son los sistemas “ECHELON” y “CARNIVORE” que detallamos a continuación.
12.4.2. El sistema “ECHELON” El sistema tiene sus orígenes en 1947, recién finalizada la II Guerra Mundial, a partir del acuerdo UK/USA con fines claramente militares y de seguridad. Posteriormente se incorporan Canadá, Australia y Nueva Zelanda que actúan en gran medida como suministradores de información y subordinados. El sistema funciona interceptando de forma indiscriminada enormes cantidades de comunicaciones, sea cual sea el medio utilizado para su transporte y almacenamiento, destacando principalmente las siguientes áreas de escucha:
Transmisiones por banda ancha (wideband e Internet).
Facsímil y comunicaciones telefónicas por cable: interceptación de los cables, incluso los submarinos mediante naves equipadas a tal fin.
Telefonía móvil e Internet WAP.
Utilización de técnicas de análisis de tráfico.
Sistemas de reconocimiento de voz.
Sistema de reconocimiento de facciones visuales sobre filmaciones anónimas.
11
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
Posteriormente se selecciona la información sensible y valiosa según los fines encargados al Sistema Echelon, con ayuda de diversos métodos de Inteligencia Artificial (AI) para definir y aplicar PALABRAS CLAVE. Cada uno de los cinco componentes del Sistema facilita a los demás “DICCIONARIOS DE PALABRAS CLAVE” que se incorporan en los aparatos de interceptación de las comunicaciones y de este modo actúan como “filtro automático”. Lógicamente las “palabras” y los “diccionarios” son cambiantes en el tiempo y de acuerdo con los intereses particulares de los países integrantes del Sistema. En un principio ECHELON tuvo una clara vocación militar y de seguridad en el entorno de la Política de Bloques que se materializó en la Guerra Fría siguiente hasta los años ochenta. Posteriormente se reconvirtió en un sistema dual en el que oficialmente se persigue la prevención del crimen internacional organizado (terrorismo, mafias, tráfico de armas y drogas, dictaduras, etc.) pero que en la práctica su incidencia llega a la Economía Global y Políticas Comerciales de empresas y Zonas de Influencia Económica. En los últimos tiempos ECHELON viene operando con una estructura en estrella de cinco puntas en torno de dos núcleos. Los dos núcleos son estructuras de la NSA (National Security Agency): uno en los Estados Unidos, que coincide con su “cuartel general” en Fort Meade (Maryland), y otro en Inglaterra, al norte de Yorkshire, conocido como Meanwith Hill. Los puntos de la estrella están ocupados por las estaciones de seguimiento de los socios colaboradores:
USA (2): Sugar Grove y Yakima.
New Zealand (1): Wai Pai.
Australia (1): Geraldtown.
UK (1): Morwenstow (Cornwell). Existía otra en Hong Kong que finalizó lógicamente con la cesión del territorio a China.
12.4.3. El sistema “CARNIVORE” El último de los grandes sistemas globales de interceptación y espionaje es el patrocinado por el FBI americano y conocido como CARNIVORE, con una finalidad aparente de luchar contra el crimen organizado y refuerzo de la seguridad USA. La potencialidad de su tecnología y lo versátil y fácil de la aplicación de sus áreas de escucha y atención, ha propiciado el choque frontal entre este novísimo sistema y las organizaciones políticas (Congreso Federal) y medios de comunicación. Fue desarrollado en el primer semestre del año 2.000, y constituye un sistema automático para intervenir las comunicaciones por Internet aprovechando uno de los principios fundamentales de la red: la descomposición de la información en “paquetes” o grupos de datos uniformes. El sistema llamado CARNIVORE es capaz de detectar e identificar estos “paquetes de información” a través de su implantación en un servidor de un determinado sospechoso. Todo ello en defensa de la seguridad nacional y para reforzar la lucha contra el crimen organizado y tecnológico. Las asociaciones en defensa de los derechos humanos de U.S.A. no han tardado nada en poner el grito en el cielo, por lo que sin duda se trata de una nueva agresión a la privacidad y confidencialidad de las transacciones de información a través de las TIC’S. En este sentido el Electronic Privacy Information Center (EPIC) ha pedido a un Juez Federal que el F.B.I. permita el acceso de los ISP’S al sistema de vigilancia, si realmente no se va a utilizar éste al margen de la ley.
12
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
A principios de agosto de 2.000 el Tribunal de Apelación del distrito de Columbia rechazó un proyecto de ley impulsado por el F.B.I. para intervenir las telecomunicaciones (fundamentalmente telefonía móvil o celular) sin necesidad de solicitar permiso judicial previo, mediante un proyecto de la Comisión Federal de Telecomunicaciones que pretendía forzar a las empresas de telefonía móvil a instalar dispositivos en los aparatos y así conseguir la localización automática de las llamadas. Ello hubiera encarecido un 45% el coste de fabricación de los aparatos. Con estos dos ejemplos vemos cómo se concretan las pretensiones del F.B.I. de generar un Echelon doméstico, centrado en Internet y en la telefonía móvil, conocido como CARNIVORE. El proyecto ha sido ampliamente rechazado por diferentes instancias judiciales de U.S.A. y por el propio Congreso, por lo que sin duda supone de agresión a los Derechos Humanos de los ciudadanos americanos, por lo menos en su versión inicial. El proyecto se está reconduciendo, al menos formalmente, incluyendo en su estructura la previa autorización judicial, como requisito para que la información obtenida así pueda ser aceptada como prueba en juicio.
12.4.4. Ejercicio 1 Circula por Internet un chiste relacionado con estos sistemas COMINT. Os lo adjuntamos en esta lección para que podáis reflexionar en clase con el resto de compañeros: Un viejo árabe musulmán irakí afincado en Chicago desde hace más de 40 años, quiere plantar patatas en su jardín, pero arar la tierra es un trabajo muy pesado para él. Su único hijo, Ahmed, está estudiando en Francia. El hombre viejo le manda un mail a su hijo explicándole el problema: "Querido Ahmed: Me siento mal porque no voy a poder plantar mi jardín con patatas este año. Estoy muy viejo para arar la tierra. Si tú estuvieras aquí, todos mis problemas desaparecerían. Sé que tú levantarías y removerías toda la tierra por mí. Te quiere papá. " Pocos días después recibe un mail de su hijo: "Querido padre: Por todo lo que más quieras, no toques la tierra de ese jardín. Ahí es donde tengo escondido aquello. Te quiere Ahmed. " A las 4 de la madrugada siguiente aparecen la policía local, agentes del FBI, de la CIA, los S.W.A.T, los RANGERS, los MARINES, Steven Seagal, Silvester Stallone y alguno más de élite y representantes del Pentágono que remueven toda la tierra del jardín buscando materiales para construir bombas, ántrax, lo que sea. No encuentran nada y se van. Ese mismo día, el hombre recibe otro mail de su hijo: "Querido padre: Seguramente la tierra ya estará lista para plantar las patatas. Es lo mejor que pude hacer dadas la circunstancias. Te quiere Ahmed."
13
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
12.4.5. Ejercicio 2 Busca en Internet información sobre los sistemas ECHELON y CARNIVORE, así como su aplicación en las redes y sistemas TIC de tu país, e intenta contestar a las siguientes preguntas:
¿Qué significa el término “ECHELON”? ¿Qué otras denominaciones recibe?
¿Qué elementos componen el sistema ECHELON?
¿Qué elementos componen el sistema CARNIVORE?
Busca un ejemplo de controversia atribuida al sistema ECHELON y relacionada con personalidades famosas.
Busca algún ejemplo de aplicación de CARNIVORE relacionado con algún TERRORISTA mundialmente conocido.
¿Cuál es tu opinión sobre la “legalidad” de dichos sistemas?
12.5. Hacking Ético Aunque en esta lección hemos hablado únicamente de conductas delictivas, delitos y sus sanciones, debemos dejar muy claro que ser un hacker no significa por definición ser un delincuente. Actualmente, son muchas las empresas que contratan los servicios de los llamados “Hackers éticos” para detectar las vulnerabilidades de sus sistemas informáticos y conseguir así mejorar las medidas de defensa. Los hackers éticos, con sus conocimientos, ayudan a definir los perímetros de defensa, realizan ataques “controlados” y consentidos previamente por la organización para comprobar las defensas de ésta, y se forman constantemente para aprender nuevas técnicas de ataques, exploits, vulnerabilidades, etc. Como decia Sun Tzu en el libro “El arte de la Guerra”, “Para desplegar una defensa eficaz, la actitud ha de ser la de un ataque a fondo”. La metodología del hacking ético se divide en varias fases: 1. Planificación del ataque 2. Acceso a Internet 3. Test y ejecución del ataque 4. Recogida de datos 5. Análisis 6. Evaluación y diagnóstico 7. Informe final Una de las herramientas que utilizan los hackers éticos es la metodología OSSTMM (Open Source Security Testing Methodology Manual). Es una metodología para el testeo de cualquier sistema de seguridad, desde guardias y puertas hasta torres de comunicaciones
14
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
móviles y satélites. Actualmente es aplicada y utilizada por importantes organizaciones como: –
Instituciones Financieras Españolas
–
Departamento del Tesoro de U.S. para testeo de instituciones financieras americanas
–
U.S. Navy & Air Force
–
Etc.
12.5.1. Ejercicio
Busca información sobre Hackers Éticos así como el papel que desempeñan actualmente en las empresas especializadas en seguridad informática.
Busca información sobre la metodología OSSTMM y otras metodologías parecidas.
Busca información sobre “certificaciones” relacionadas con el Hacking Ético.
12.6. Los 10 delitos y fraudes más usuales en Internet Como cierre y a modo de ejemplo reproducimos el resumen elaborado por la Comisión Federal de Comercio de los Estados Unidos respecto de los delitos más frecuentes en la Red. LOS 10 FRAUDES MÁS USUALES EN COMERCIO ELECTRÓNICO
1. SUBASTAS: subastar lo que no está disponible, no entregar el objeto, …
2. LETRA PEQUEÑA: Ofertar horas gratis de conexión, a cambio de conexión por un año (revocable). Luego la letra pequeña complica las bajas.
3. TARJETAS DE CRÉDITO: Falsificación o uso fraudulento de las mismas.
4. CAMBIO DE DIAL: Cambiar una conexión a Internet por una telefónica 906 sin informar al usuario.
5. ALBERGUE DE PÁGINAS WEB: Gratuito en período de prueba pero que luego se hace imposible de revocar.
6. PIRÁMIDES FINANCIERAS de dudosa legalidad.
7. VACACIONES GRATIS en lugares paradisíacos.
8. OFERTAS DE EMPLEO dudosas a cambio de aportar algo o comprar algo.
9. INVERSIONES de alto riesgo y sin garantías.
10. CURAS MILAGROSAS. Productos milagrosos de dudosa efectividad.
15
LECCIÓN 12 – LEGALIDAD Y ÉTICA EN INTERNET
12.6.1. Ejercicio Piensa detenidamente las siguientes preguntas y coméntalas luego con el resto de los compañeros:
Después de analizar todo lo comentado en esta lección, ¿crees que has cometido alguna vez alguna acción que pueda ser considerada como delito?
¿Crees que has sido alguna vez víctima de alguno de los delitos comentados a lo largo de la lección?
Comenta en voz alta alguna conclusión a la que hayas podido llegar después de haber trabajado esta lección.
12.7. Lecturas recomendadas Si se desea tener más información sobre los temas que se han tratado en esta lección se pueden consultar los siguientes links, donde se ve de una forma más detallada toda la temática expuesta: http://www.perantivirus.com/sosvirus/hackers/carnivor.htm http://compnetworking.about.com/od/networksecurityprivacy/l/aa071900a.htm http://webs.ono.com/usr016/Agika/6temas_relacionados/echelon.htm http://www.guardiacivil.org/telematicos/formatos/ciberdelincuencia.pdf http://noticias.juridicas.com/base_datos/Penal/lo10-1995.html http://www.isecom.org/
16