Tema 5 :  Seguridad en Redes II

Las amenazas que pueden aparecer en una red son:
Sniffing (escuchar): Cabe la posibilidad de que un atacante escuche la comunicación a través de una red, por lo que si se cifra la información, aunque se escuche no sirve de nada.

Spoofing (suplantación):  Ataque a la autenticidad, se puede producir de dos maneras, una es que alguien averigua un password y entra con el a un sistema, y la otra forma es mandar un mail con el nombre de otro.

Hijacking (suplantación de conexión): Cuando se inicia una conexión entre A y B, y ya se ha realizado una autentificación, el atacante suplanta a A, quedando entonces conectado sin necesidad de autentificarse. Para evitar esto, se puede cifrar la comunicación, entonces el suplantador se encuentra con que no puede seguir la conversación con B.
Otro sistema es el que utiliza PPP (point to point protocol) con chap. El chap no transmite el password, sino que se consigue con un reto, y para evitar el hijacking cada unos segundos lanza un nuevo reto de autentificación, y en caso que se haya suplantado falla y entonces se desconecta.

Denied of Service (denegación de servicio): Consiste en atacar un punto de la red para dejarlo sin la prestación de algún servicio.

Intrusión: Alguien ataca un servidor para poder entrar en él (podria considerarse como una variante del spoofing)

Los ataques por intrusión y denied of service son los más comunes en internet, y suelen ser a causa de fallos en el software, aunque los denied of service tambien se producen a causa del diseño y en algunas ocasiones de forma involuntaria, por ejemplo si se diseña un servidor para atender 100 conexiones y recibe 100.000 a la vez.

Nuke: Se utiliza para dejar sin servicio, y lo que hace es un ataque a una aplicación o a un sistema operativo para dejarlo sin funcionamiento.

Otro ataque común es al DNS (servidor de nombres / IP), ya que a través de esta aplicación se puede entrar en sistema, pero lo que más normalmente se pretende es dar una información incorrecta (IP difrente a la que corresponde), aunque estos ataques no son muy comunes porque son complicados.
 

Firewalls

Para evitar ataques desde el exterior se utilizan los firewalls, que establecen una barrera entre dos puntos de una red. Se estructuran en dos tecnicas, que son el filtrado de paquetes y la generación de servicios.

El filtrado de paquetes consiste en decidir que paquetes se va a permitir entrar en la red y cuales no, por ejemplo en base a la IP de origen y destino o  basandose en el puerto origen y destino.
 


El firewall funciona de dos maneras diferentes, dependiendo del escenario en el que se encuentre: Si los IP locales son variables para internet o no.

Si son IP validas, el firewall decide que paquetes entran o salen de la red (para el firewall son lo mismo, los trata igual), a esto se le llama forwarding. Tambien si la maquina presta unos servicios tiene un input y un output, que son necesarios para el forwarding.

Si no admite un paquete, puede descartarlo, que simplemente es "destruirlo", dando la sensación a quien lo ha enviado que la maquina está apagada, otra forma de tratar los paquetes no admitidos es devolverlo, para que el emisor sepa que se están rechazando los paquetes.

A nivel de IP se filtran las direcciones de origen y destino, y a nivel TCP el  puerto, aunque los firewalls pueden tener otras restricciones.
El administrador tiene que decidir que politica  de seguridad ha de seguir, si abierta o cerrada, y después elegir las reglas. Para configurar el firewall puede ser de muchas formas según el sistema, que pueden ir desde modo texto a través de un telnet hasta una interface grafica.

El Linux trae un firewall que varia según la versión del kernel:  2.0 -> ipfirewalln
                                                                                                         2.2 -> ipchains
                                                                                                         2.4 -> iptables (algunos tambien llevan ipchains)

La sintaxis seria: nombre -F -a accept -s % -d % 23 -P tcp
donde el nombre seria iptables o ipchains ... (la sintaxis varia de unos a otros pero más o menos es lo mismo).
-F  -> significa forwarding
-a  -> add y sirve para añadir la regla al final, si se pone -i la inserta. Cuando se ejecutan las reglas van en el orden en que se encuentran.
Como se especifica el puerto, se tiene que poner -P para indicar el protocolo (en este caso tcp).

Si se pone -I -P accept, significaria que para entradas (-I = Input) aceptar.

Para politicas de denegar y que funcione el telnet (sabemos que se conecta al puerto 23, pero en nuestro ordenador solo sabemos que sale por un puerto mayor a 1024) podriamos escribir:

-I -P deny
-I -a accept -s % -d L / 32 1024-65535 -k -P tcp

L es la IP local, y 32 los bits a tener considerados para la dirección (en este caso todos).
-k sirve para decirle que solo acepte los paquetes de retorno.