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.
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.