jueves, 20 de octubre de 2011

Seguridad en Redes:Protección de datos en una red

Diseño de un sistema de seguridad
  • El proceso de diseñar un sistema de seguridad podría decirse que es el encaminado a cerrar las posibles vías de ataque, lo cual hace imprescindible un profundo conocimiento acerca de las debilidades que los atacantes aprovechan, y del modo en que lo hacen.
  • Además, existe una gran variedad de ataques posibles a vulnerabilidades pero en la practica se utiliza una combinación de éstas.
  • Los intrusos, antes de poder atacar una red, deben obtener la mayor información posible acerca de esta; intentan obtener la topología, el rango de IPs de la red, los S.O, los usuarios, etc.
Soluciones
Soluciones de seguridad
Herramientas de seguridad
  • protocolos seguros (IPsec, SSL, SSH)
  • almacenamiento de claves (tarjetas inteligentes)
  • certificados (X.509, PGP)
¿A qué nivel se gestiona la seguridad?
  1. Sistema operativo: contraseñas, permisos de archivos, criptografía
  2. Protocolos y aplicaciones de red: permisos de acceso, filtrado de datos, criptografía
  3. Identificación de personal: dispositivos de identificación personal, criptografía
Gestión de Seguridad

 
DEFINICIONES TECNICAS
Además de los virus, existen otros tres enemigos de gran parecido: los gusanos, los troyanos y los backdoors. Aunque a efectos prácticos se suelen considerar también como virus, tienen alguna diferencia con ellos.

Virus
  • Los virus son programas con unas características muy peculiares que se introducen en los ordenadores de formas muy diversas: a través del correo electrónico, Internet, disquetes, etc. Tienen dos características diferenciales:
    • Se reproducen infectando otros ficheros o programas.
    • Al ejecutarse, realizan acciones molestas y/o dañinas para el usuario.
  • El término virus informático se debe a su enorme parecido con los virus biológicos.
  • Del mismo modo que los virus biológicos se introducen en el cuerpo humano e infectan una célula, que a su vez infectará nuevas células al inyectar su contenido en ellas, los virus informáticos se introducen en los ordenadores e infectan ficheros insertando en ellos su "código". Cuando el programa infectado se ejecuta, el código entra en funcionamiento y el virus sigue extendiéndose.
  • Además, ambos tipos de virus presentan síntomas que avisan de su presencia y, mientras que los virus biológicos son micro-organismos, los virus informáticos son micro-programas.
Peligros y modos de ataque
  • Sniffing : consiste en escuchar los datos que atraviesan la red, sin interferir con la conexión a la que corresponden, principalmente para obtener passwords, y/o información confidencial. Protección: basta con emplear mecanismos de autenticación y encriptación.
  • Barrido de puertos: utilizado para la detección de servicios abiertos en máquina tanto TCP como UDP (por ejemplo un telnet que no esté en el puerto 23, ..). Protección: filtrado de puertos permitidos y gestión de logs y alarmas.
  • Bug de fragmentación de paquetes: con longitudes ilegales (más pequeñas o más grandes) de fragmentos, con solape entre ellos o saturación con multitud de fragmentos pequeños (ejemplo ping de la muerte) Protección: actualmente en los routers se limita el tráfico ICMP, incluso se analiza la secuencia de fragmentación, o bien parchear el SSOO
  • Explotar bugs del software: aprovechan errores del software, ya que a la mayor parte del software se le ha añadido la seguridad demasiado tarde, cuando ya no era posible rediseñarlo todo y con ello puede adquirir privilegios en la ejecución, por ejemplo buffers overflow (BOF o desbordamiento de pila) Además, muchos programas corren con demasiados privilegios. La cadena o secuencia de órdenes para explotar esta vulnerabilidad del software se conoce como exploit. Ataque: los hackers se hacen con una copia del software a explotar y lo someten a una batería de pruebas para detectar alguna debilidad que puedan aprovechar. Protección: correcta programación o incluir parches de los últimos servicios.
  • Desbordamiento de pila: sobre la entrada de datos en un programa privilegiado que no verifica la longitud de los argumentos a una función, y se sobreescribe la pila de ejecución modificando la dirección de retorno (para que salte donde nos interese).
    Las funciones strcpy, strcat, gets, son potencialmente vulnerables.
  • Spoofing : intento del atacante por ganar el acceso a un sistema haciéndose pasar por otro que dispone de los privilegios suficientes para realizar la conexión (red de confianza). El ataque que más se suele utilizar sobre conexiones TCP es el conocido como adivinación del número de secuencia (ISN), y además el suplantado se deja fuera de servicio con un ataque DoS, para que no cierre la conexión cuando la máquina atacada reconoce la conexión.
    Ataque: Se basa en la idea de que si un atacante puede predecir el número inicial de secuencia de la conexión TCP generado por la máquina destino, entonces el atacante puede adoptar la identidad de máquina "confiada".
    Otros ataques son ARP spoofing (que una IP suplantada tenga asociada la MAC del atacante), DNS spoofing (el nombre del suplantado tenga la IP del atacante ), donde el intruso se anticipa a alguna pregunta ARP o DNS.
    Protección: encriptación del protocolo, evitar que entren direcciones IP origen desde el exterior propias de la red interna, evitar redes de confianza, utilizar algoritmos complejos (aleatorios) para generar ISN, evitar un excesivo número de sesiones medio abiertas.
  • Hijacking : consiste en robar una conexión después de que el usuario ha superado con éxito el proceso de identificación ante el sistema. Para ello debe sniffear algún paquete de la conexión y averiguar las direcciones IP y los puertos. El ordenador desde el que se lanza el ataque ha de estar en alguna de las dos redes extremo de la conexión, o al menos en la ruta entre ambas.
    Ataque: En un momento determinado, el intruso se adelanta una respuesta en la conexión TCP (con los ISN correctos, lo cual lo obtiene por sniffing) y por tanto el que estaba conectado no cumple con los ISN debido a que el intruso mandó información válida y queda excluido de la conexión, tomando el control el intruso. Protección: uso de encriptación o uso de una red conmutada.
  • Ingeniería social: son ataques que aprovechan la buena voluntad de los usuarios de los sistemas atacados. Un ejemplo de ataque de este tipo es el siguiente: se envía un correo con el remite "root" a un usuario con el mensaje "por favor, cambie su password a “informatica". El atacante entonces entra con ese password. A partir de ahí puede emplear otras técnicas de ataque. O incitando a ver determinadas páginas web, descargar fotos, ...Protección: educar a los usuarios acerca de qué tareas no deben realizar jamás, y qué información no deben suministrar a nadie, salvo al administrador en persona. Utilizar autentificación fuerte.
  • Acceso físico: a los recursos del sistema, pudiendo entrar en consola, adquirir información escrita, etc Protección: políticas de seguridad
  • Adivinación de passwords: la mala elección de passwords por parte de los usuarios permiten que sean fáciles de adivinar o bien que el propio sistema operativo tenga passwords por defecto. Ejemplo: muchos administradores utilizan de password “administrador” ;-)
  • Confianza transitiva : en sistemas Unix existen los conceptos de confianza entre hosts y entre usuarios, y por tanto pueden conectarse entre sí diferentes sistemas o usuarios sin necesidad de autentificación de forma “oficial”. Son autorizaciones y permisos locales bien definidos entre usuarios y máquinas.
  • Ejemplo en Linux las aplicaciones r* (rsh, rlogin, rcp,...) utilizan el fichero /etc/hosts.equiv o el fichero en $HOME/.rhost como método de autentificación. Otras aplicaciones son las X Windows, los RPC, ... Ataque: cualquier atacante que tome el control de una máquina o bien suplante la IP (spoofing), podrá conectarse gracias a la confianza entre hosts y/o entre usuarios.
  • Caballo de Troya : un programa que se enmascara como algo que no es, normalmente con el propósito de conseguir acceso a una cuenta o ejecutar comandos con los privilegios de otro usuario. Protección: revisión periódica de compendios, firma digital, comprobación del sistema de ficheros (ejemplo aplicación “tripware”), etc
  • Denegación de servicios : estos ataques no buscan ninguna información si no a impedir que sus usuarios legítimos puedan usarlas. Ejemplos:
    • agotar el ancho de banda del enlace de una red determinada de forma que la máquina atacada se satura agotando la lista de escucha de “listen”
    • mail bombing, generación conexiones http o ftp masivas (inundación de paquetes SYN TCP), a veces con dirección origen inexistente para que no pueda realizar un RST, conocido como SYN flooding (inundación)
    • pings (o paquetes UDP al puerto 7 de echo) a direcciones broadcast con dirección origen la máquina atacada, conocido como Smurf, Fraggle
    Protección: evitar por reglas las diferentes situaciones creadas, limitar tráfico ICMP en routers, evitar contestación a broadcasts,
  • Ataques dirigidos por datos : son ataques que tienen lugar en modo diferido, sin la participación activa por parte del atacante en el momento en el que se producen. El atacante se limita a hacer llegar a la víctima una serie de datos que al ser interpretados ejecutarán el ataque propiamente dicho, como por ejemplo un virus a través del correo electrónico o código JavaScript maligno. Protección: firma digital e información
  • Enrutamiento fuente: los paquetes IP admiten opcionalmente el enrutamiento fuente, con el que la persona que inicia la conexión TCP puede especificar una ruta explícita hacia él. La máquina destino debe usar la inversa de esa ruta como ruta de retorno, tenga o no sentido, lo que significa que un atacante puede hacerse pasar por cualquier máquina en la que el destino confíe (obligando a que la ruta hacia la máquina real pase por la del atacante). Protección: dado que el enrutamiento fuente es raramente usado, la forma más fácil de defenderse contra ésto es deshabilitarlo en el router.
  • ICMP Redirect: con la opción redirect, alguien puede alterar la ruta a un destino para que las conexiones en las que esté interesado pasen por su máquina, de forma que pueda intervenirlas. Los mensajes redirect deben obedecerlos sólo los hosts, no los routers, y sólo cuando estos provengan de un router de una red directamente conectada. Protección: filtrado de paquetes.
  • Modificación de los protocolos de routing: RIP, BGP, ... de forma que redicciona la información por otras rutas del atacante. Protección: utilizar rutas estáticas o protocolos de routing con encriptación
Tendencias de seguridad
Todas las líneas actuales de investigación en seguridad de redes comparten una idea:
“la concentración de la seguridad en un punto, obligando a todo el tráfico entrante y saliente pase por un mismo punto, que normalmente se conoce como cortafuegos o firewall, permitiendo concentrar todos los esfuerzos en el control de tráfico a su paso por dicho punto”
Metodología de seguridad
La primera tarea a realizar en una red es redactar la política de seguridad. Tras ello, conocer la estructura (topologia, accesos) de la red y finalmente, auditar la red para ver su estado en búsqueda de detección de vulnerabilidades.
Este proceso de detección de vulnerabilidades consiste en:
  • Examen de hosts y elementos de la red, por vulnerabilidades conocidas
  • Puertos abiertos (observar servicios conocidos según /etc/services)
  • Chequeo de la estructura de ficheros e integridad del sistema en el caso de servidores (por ejemplo con herramientas como tripwire)

Cortafuegos
Consiste en un dispositivo formado por uno o varios equipos que se sitúan entre la red de la empresa y la red exterior (normalmente la Internet), que analiza todos los paquetes que transitan entre ambas redes y filtra los que no deben ser reenviados, de acuerdo con un criterio establecido de antemano, de forma simple.
Para que no se convierta en cuello de botella en la red, deben de procesar los paquetes a una velocidad igual o superior al router.
Crea un perímetro de seguridad y defensa de la organización que protege.
Su diseño ha de ser acorde con los servicios que se necesitan tanto privados como públicos (WWW, FTP, Telnet,...) así como conexiones por remotas.
Al definir un perímetro, el cortafuegos opera también como NAT (Network Address Traslation) y Proxy (servidor multipasarela).
Tipo de filtrado en los cortafuegos
Tipo de filtrado:
  • -a nivel de red, con direcciones IP y la interfaz por la que llega el paquete, generalmente a través de listas de acceso (en los routers)
  • -a nivel de transporte, con los puertos y tipo de conexión, a través de listas de acceso (en los routers)
  • -a nivel de aplicación, con los datos, a través de pasarelas para las aplicaciones permitidas analizando el contenidos de los paquetes y los protocolos de aplicación (ejemplo servidor proxy o pasarela multiaplicación, Private Internet Exchange (PIX) de Cisco y/o CBACs Context Based Access Control)

Listas de acceso
Son una técnica de filtrado de paquetes, que consiste en una lista de órdenes ejecutadas secuencialmente a la llegada/salida de cada paquete en las interfaces del router, con las opciones de permit o deny al cumplir la condición especificada en la secuencia según la información de la cabecera del paquete IP y de transporte. Al realizarse en el propio router, suelen ser rápidas frente a otra técnica de filtrado.
Ejemplo:
  • permit tcp 192.168.0.0 0.0.255.255 host 172.16.1.2 eq 443
  • deny any any
Incoveniente: al procesarse los paquetes de forma independiente, no se guarda información de contexto (no se almacenan históricos de cada paquete), ni se puede analizar a nivel de capa de aplicación, dado que está implementado en los routers. Además, son difíciles de seguir en ejecución
Recomendaciones:
  • situar los filtros lo más cerca posible del elemento a proteger
  • no filtrar el mismo tráfico más de una vez

Ejemplo cortafuego con Zona Desmilitarizada

Cortafuego con DMZ conmutada

Productos Comerciales
  • Comerciales
    • Firewall-1 (Check Point)
    • IBM Firewall (International Bussines Machines)
    • Gauntlet (Trusted Information Systems)
  • Libre Distribución
    • FWTK (Trusted Information Systems)

Detección de intrusos: IDS
Las vulnerabilidades de los diferentes sistemas dentro de una red son los caminos para realizar los ataques.
En muchas ocasiones, el atacante enmascara el ataque en tráfico permitido por el cortafuegos y por tanto para delatarlo se necesita un IDS. Son complementarios.
Características deseables para un IDS son:
  • continuamente en ejecución y debe poderse analizar él mismo y detectar si ha sido modificado por un atacante
  • utilizar los mínimos recursos posibles
  • debe de adaptarse fácilmente a los cambios de sistemas y usuarios, por lo que en ocasiones poseen inteligencia para adaptarse (aprender por su experiencia) y configurarse.
Tipos de IDS según localización
  • NIDS (Network Intrusion Detection System): detecta los paquetes armados maliciosamente y diseñados para no ser detectados por los cortafuegos. Consta de un sensor situado en un segmento de la red y una consola. Ventaja: no se requiere instalar software adicional en ningún servidor. Inconveniente: es local al segmento, si la información cifrada no puede procesarla
  • HIDS (Host Intrusion Detection System): analiza el tráfico sobre un servidor. Ventajas: registra comandos utilizados, es más fiable, mayor probabilidad de acierto que NIDS.
Tipos de IDS según modelos de detección
  • Detección de mal uso: verifica sobre tipos ilegales de tráfico, secuencias que previamente se sabe se utilizan para realizar ataques (conocidas como exploits)
  • Detección de uso anómalo: verifica diferencias estadísticas del comportamiento normal de una red, según franjas horarias, según la utilización de puertos (evitaría el rastreo de puertos)
Tipos de IDS según naturaleza
  • Pasivos: registran violación y genearan una alerta
  • Reactivos: responden ante la situación, anulando sesión, rechazando conexión por el cortafuegos, etc

0 comentarios:

Publicar un comentario