Beruflich Dokumente
Kultur Dokumente
1.- Introducción.
Una frase muy utilizada en informática viene a decir que “a un sistema al que
se le proporcione basura a la entrada, nos dará basura a la salida”. El tratamiento
automático de los datos ignora su significado y atiende tan sólo a su contenido y
estructura. Ello implica que el control informático debe vigilar no sólo el valor de
la información sino también su forma. El control de los datos a la entrada es
fundamental y en la auditoría se examinará la forma en que se han establecido los
programas de control de datos en las diferentes aplicaciones productivas,
verificando que, estos programas permitan detectar:
Selección de paquetes.
BIBLIOGRAFIA.
Auditoria Informática.
Gonzalo Alonso Rivas.
Ediciones DÍAZ DE SANTOS, S.A.
1. Introducción
1.1. Definición de firewall
Un cortafuegos o firewall es un sistema de defensa basado en el hecho de que
todo el tráfico de entrada o salida a la red debe pasar obligatoriamente por un
sistema de seguridad capaz de autorizar, denegar, y tomar nota de todo aquello
que ocurre, de acuerdo con una política de control de acceso entre redes.
En definitiva, se trata de cualquier sistema empleado para "separar" una máquina o una
subred del resto, protegiéndola de servicios y protocolos que puedan suponer una amenaza
a la seguridad desde el exterior. El espacio protegido por un cortafuegos se
denomina perímetro de seguridad, mientras que la red externa recibe el nombre
de zona de riesgo.
Los cortafuegos son uno de las dos enfoques básicos que se han dado al aspecto
de la seguridad en redes telemáticas. Por una parte se trata de la defensa en
profundidad de los servidores que vayan a ser accedidos desde las redes públicas
(proteger cada una de las máquinas susceptibles de ser accedidas por personas no
autorizadas) y por otra parte, defensa del perímetro de seguridad respecto del
exterior, es decir, llevar toda la carga correspondiente a la seguridad en la red
corporativa al elemento de conexión de dicha red con el exterior o con las redes
en las que se encuentren las personas que pueden querer acceder a nuestros
recursos de forma no autorizada. En este último aspecto es donde aparece el
concepto de firewall.
Host
3 - Valoración económica
El coste económico del firewall (instalación, puesta a punto y mantenimiento)
debe estar en función del valor económico de lo que se desea proteger.
- Mínima complejidad
- Máxima seguridad
Cuanto más simple sea el host bastión (ofrece menos servicios), más fácil será su
mantenimiento y por tanto mayor su seguridad. Es vital la seguridad de dicha
máquina para que el firewall funcione correctamente. Si su seguridad se viera
comprometida, la amenaza se trasladaría a todos los equipos que se encuentran
dentro del perímetro de seguridad.
3. Componentes de un cortafuegos
En todo cortafuegos existen tres componentes básicos para los cuales se ha de
implementar los mecanismos necesarios para hacer cumplir la política de
seguridad:
Los sistemas de filtrado de paquetes encaminan los paquetes entre los hosts de
una red interna y los hosts de una red externa. De modo selectivo, permiten o
bloquean ciertos tipos de paquetes de acuerdo a una política de seguridad, como
se puede ver en la figura 3.1.2. El tipo de router que se usa en el filtrado de
paquetes se conoce con el nombre de screening router.
Figura 3.1.1.: Filtrado de paquetes
El funcionamiento es el siguiente:
- Bloquear todas las conexiones hacia y desde ciertos sistemas que no nos den
confianza.
- Permitir los servicios de email y FTP, pero bloquear los servicios peligrosos
como TFTP, el sistema X Window, RPC y los servicios "r" (rlogin, rsh, rcp, ...).
Por ejemplo, supongamos que se tienen las reglas de filtrado de la tabla 3.1.1,
con lo que se pueden dar los siguientes casos:
Servicio Puerto Servicio Puerto Servicio Puerto Servicio Puerto Servicio Puerto
bootp 67,68 shell 514 dns 53 ntp 123 echo 7
tftp 69 syslog 514 gopher 70 imap 143 discard 9
rpc 111 ftp 20,21 http 80 snmp 161 systat 11
rexec 512 telnet 23 pop 109,110 timed 525 finger 79
rlogin 513 smtp 25 uucp 117,540 printer 515 who 513
rsh 514 time 37 nntp 119 rip 520 whois 43
Tabla 3.1.3.: Puertos correspondientes a diferentes servicios.
Podríamos definir una regla que no dejara pasar ningún paquete proveniente de
Internet, cuyo destino fuese nuestro ordenador y, más concretamente, el puerto
80 (HTTP) de nuestro ordenador. En la tabla 3.1.3 se muestran algunos de los
servicios junto con los puertos correspondientes, que pueden interesar vigilar.
Características:
El filtrado de paquetes cuenta con una serie de puntos fuertes que se indican a
continuación:
Por el contrario, también cabe indicar una serie de debilidades del filtrado de
paquetes:
- Definir las reglas de filtrado puede convertirse en una tarea muy complicada, ya
que existen muchos aspectos en la especificación de los servicios de Internet y de
los protocolos que, si no se conocen a fondo para su correcta configuración,
pueden dejar abierta la puerta a ataques variados (ataques de falsificación de
dirección IP origen, ataques de enrutamiento de origen, ataques de
fragmentación, etc.).
- Cuanto mayor sea el número de reglas, menor será el rendimiento del screening
router, que en principio está diseñado únicamente para enrutar paquetes, no para
tomar decisiones acerca de si debería o no debería hacerlo.
Con los proxies de aplicación se cuenta con una serie de ventajas sobre seguridad
como por ejemplo las siguientes:
- Sólo permiten la utilización de servicios para los que existe un proxy, por lo que
el administrador de red tiene un control absoluto sobre los servicios soportados
por el proxy.
Por otra parte, a la hora de instalar una pasarela de aplicación nos encontramos
con los siguientes inconvenientes:
- Los cortafuegos más antiguos requerían que el usuario de la red interna
instalara software especial de cliente para cada uno de los servicios habilitados.
Otros requerían que, empleando el software de cliente habitual, se siguieran
ciertas indicaciones de uso. De este modo, nuevas aplicaciones de Internet
exigían escribir e instalar nuevos servicios proxy en el firewall y nuevos clientes
proxy en los ordenadores de los usuarios. Hoy en día, los cortafuegos de
aplicación son completamente transparentes para los usuarios finales.
- Para una total seguridad, se requiere un mecanismo adicional que restrinja las
comunicaciones directas entre las máquinas de la red interna y las del exterior,
como es el filtrado de paquetes.
Este motor de inspección cuenta con una serie de ventajas como las que se
describen a continuación:
4. Tipos de cortafuegos
Un firewall actúa en los niveles 3 (nivel de red) a 7 (nivel de aplicación) del
modelo de referencia OSI. Según la forma de implementar la política de
seguridad de la organización, se distinguen tres tipos de cotafuegos dependiendo
del nivel en el que se implementa:
Se pueden considerar como filtros de paquetes, ya que lo que hacen es filtrar los
intentos de conexión, fundamentalmente en base a las direcciones IP de origen y
destino, el puerto de destino de los paquetes IP y el protocolo. Puesto que
analizar este tipo de información resulta sencillo, este tipo de cortafuegos suelen
ser muy rápidos y trasparentes al usuario.
2. - Cortafuegos a nivel 4 del modelo de referencia OSI (nivel de transporte o
nivel de TCP en redes TCP/IP)
En este caso, distinguen si los paquetes corresponden a un inicio de conexión o
bien se trata de paquetes cuyas conexiones ya están establecidas.
3. - Cortafuegos a nivel 7 del modelo de referencia OSI (nivel de aplicación)
Los cortafuegos de este tipo actúan a modo de proxy para las diferentes
aplicaciones que va a controlar.Dicho control se realiza interceptando las
comunicaciones a nivel del protocolo de comunicaciones propio de cada servicio;
se conocen los detalles del protocolo de comunicaciones del servicio
interceptado, se analiza su correcto funcionamientoy se añaden los pasos de
control precisos de cada servicio.
De este modo, se pueden implementar políticas de seguridad para los protocolos
como las siguientes:
- para el protocolo SMTP, se puede indicar la dirección de destino que tiene que
tener el correo entrante o la dirección de origen que tiene que tener el correo
saliente.
- para el protocolo HTTP, se pueden evitar los controles ActiveX o applets de
Java de las páginas que se descarguen los usuarios, o incluso denegarles el acceso
a ciertas URLs.
- para el protocolo FTP, se puede permitir el acceso a servidores únicamente a
determinado directorio y sólo para enviar o descargar ficheros.
Este tipo de cortafuegos puede suponer una mayor carga de trabajo, pero se
consigue un control más fuerte de todo el proceso de comunicación de los
servicios habilitados.
5. Utilidades de un firewalll
Un cortafuegos ofrece los aspectos que se describen a continuación:
1- Aislamiento de Internet.
7. Arquitecturas de firewalls
7.1. Cortafuegos de filtrado de paquetes
7.2. Arquitectura Dual-Homed Host
7.3. Screened Host
7.4. Screeened Subnet
7.5. Otras arquitecturas
Sin embargo, los chokes presentan más desventajas que beneficios para la red
protegida, puesto que no disponen de un sistema de monitorización sofisticado y
el administrador no distingue entre si el router está siendo atacado o si su
seguridad se ha visto comprometida. Por otra parte, las reglas de filtrado pueden
llegar a ser complejas de establecer y por lo tanto, se hace difícil comprobar su
correción.
Por otra parte, hay que añadir los drivers aporpiados para las interfaces trabajen
adecuadamente, es decir, Ethernet, PP y SLIP. En el caso de que se quieran
emplear las opciones más avanzadas de IPTables, es necesario una
configuración apropiada en el kernel. Seguidamente se muestran las opciones
disponibles en el kernel 2.4.9 para este propósito:
CONFIG_IP_NF_CONNTRACK: Para usar NAT y Masquerading.
Llega un paquete
No se tiene
El paquete pasa Se tiene activado
activado el
a la chain INPUT el reenvío
reenvío
El El paquete pasa
El paquete se El paquete no se
paquete no se a la chain
acepta acepta
acepta FORWARD
El proceso El
El
esperando el paquete
paquete
paquete lo no se
se acepta
recibe. acepta
Un programa
decide enviar
paquetes
Los paquetes
Los paquetes se
pasan RED
aceptan
a la chain
OUTPUT
Los paquetes no
se aceptan
- nombre completo:
'moon.act.uji.es'
- dirección IP específica:
'150.128.82.211'
- direcciones IP desde 150.128.82.0 a 150.128.82.255:
'150.128.82.0/24'
- cualquier dirección:
'0/0'
Comando y
Significado
ejemplo
-A, --append
$iptables -A Añade una regla al final de la chain indicada.
INPUT ...
-D, --delete
$iptables -D Borra una regla de la chain indicada.
INPUT ...
-R, --replace
Reemplaza una regla de una chain determinada, cuyo
$iptables -R
INPUT 1 ... número se indica, por la que se especifica seguidamente.
-I, --insert
Añade una regla a una chain determinada con el número
$iptables -I
INPUT 1 ... indicado.
-F, --flush
Vacia la chain indicada o bien todas las chains si no se
$iptables -F
INPUT especifica ninguna.
-L, --list Lista las entradas de una chain determinada o bien todas
$iptables -L las chains en ausencia de la especificación de una chain
INPUT determinada.
-N, --new-
chain Indica al kernel la creación de una nueva chain con el
$iptables -N nombre especificado.
nueva
-Z, --zero
Identifica todos los contadores de una determinada chain
$iptables -Z
INPUT o de todas si no se especifica ninguna.
-X, --delete-
chain
Borra la chain indicada, que no debe tener ninguna regla.
$iptables -X
nueva
-P, --policy
Indica al kernel que establezca una política por defecto en
$iptables -P
INPUT DROP una chain determinada.
-E, --rename-
chain Canvia el nombre a una chain creada por el propio
$iptables -E usuario.
nueva kiss
Para indicar todos los interfaces que empiecen por una cadena se emplea: "-i
cadena+". Por otra parte, para indicar todos los interfaces excepto el especificado
se utiliza: "-i ! interfaz". El uso del interrogante para indicar todos las
posibilidades de un parámetro excepto el indicado se puede dar en todas las
opciones de especificado de una regla.
Comando y
Significado
ejemplo
-p, --protocol
$iptables -A Indica un protocolo determinado para los paquetes que
OUTPUT -p ICMP se desean filtrar. Ejemplos: TCP, UDP e ICMP.
...
-s, --src --
source
$iptables -A Indica un filtrado basado en la direccion fuente de los
OUTPUT -s paquetes (dirección IP).
150.128.40.100
...
-d, --dst --
destination
$iptables -A Indica un filtrado basado en la direccion destino de los
OUTPUT -d paquetes (dirección IP).
150.128.40.100
...
-in, --in-
interface El filtrado se basa en la interfaz de donde proviene el
$iptables -A paquete.
INPUT -i eht0
-out, --out-
interface
El filtrado se basa en la interfaz a donde se dirigen los
$iptables -A
FORWARD -o paquetes.
eht0
-sport, --source-prot
$iptables -A INPUT -p TCP --sport 22 Indica el puerto fuente.
$iptables -A INPUT -p UDP --sport 53
-sport, --source-prot
$iptables -A INPUT -p TCP --sport 22 Indica el puerto destino.
$iptables -A INPUT -p UDP --sport 53
Ejemplo:
Si se hace un ping a anubis.uji.es se está enviando tantos paquetes ICMP del
tipo 8 (petición de eco) como se indique con el parámetro "-c" y se recibirán los
paquetes ICMP del tipo 0 (respuesta del eco) como se observa en la figura 8.2..
$ping -c 5 anubis.uji.es
PING anubis.uji.es (150.128.40.100): 56 data bytes
64 bytes from 150.128.40.100: icmp_seq=0 ttl=253
time=1.1 ms
64 bytes from 150.128.40.100: icmp_seq=1 ttl=253
time=1.0 ms
64 bytes from 150.128.40.100: icmp_seq=2 ttl=253
time=1.4 ms
64 bytes from 150.128.40.100: icmp_seq=3 ttl=253
time=1.0 ms
64 bytes from 150.128.40.100: icmp_seq=4 ttl=253
time=1.0 ms
-f | --fragment
Ejemplo:
Si se quieren ignorar todos los fragmentos que se envien a anubis se emplearía
la orden:
$ipchains -A output -f -d anubis.uji.es -j DROP
Ejemplo:
Supongamos que se desea eliminar la regla anteriormente definida. Si se trata
de la única regla que hemos definido en la chain INPUT, bastará con la orden:
$iptables -D INPUT 1
Si en un momento dado, el usuario decide borrar una lista de reglas que haya
creado anteriormente, en primer lugar ha de vaciar la lista con el siguiente
comando:
$iptables [-F | --flush ] nombre_chain
Ejemplo:
Se establecen polícas por defecto de denegar:
$ iptables -P INPUT DROP
$ iptables -P OUTPUT DROP
$ iptables -P FORWARD DROP
$ iptables -L
Chain input (policy DROP):
Chain forward (policy DROP):
Chain output (policy DROP):
target prot opt source destination ports
DROP icmp ------ anywhere anywhere any -> any
Hay que tener en cuenta que el usuario nunca podrá borrar ninguna de las chains
predefinidas (INPUT, OUTPUT, FORWARD), aunque por le contrario si será
posible vaciarlas.
Especificaciones de destino
A parte de las acciones pre-compiladas (DROP y ACCEPT) a llevar a cabo en una
regla, el usuario puede definir chains que se especifiquen como acción. Las
chains definidas por el usuario pueden a su vez "saltar" a otras chains definidas
por él mismo (la regla de una chain tiene como acción otra chain).
Ejemplo:
Supongamos que la chain INPUT está formada por las reglas especificadas en la
tabla xx y el usuario ha definido una nueva lista de reglas
llamada own_test como se puede ver en la tabla xx:
Chain INPUT
Tabla 8.4.
Chain own_test
Rule1: -s 192.168.1.1 -j
DROP
Tabla 8.5.