Post on 08-May-2018
transcript
Herramientas para sobrevivir en una red
0. Introducción Pretendemos estudiar en profundidad y de forma práctica las comunicaciones que
establecen ente sí los programas de ordenador, y aprender a intervenir y controlar los aspectos
clave que afectan a la seguridad. Esto incluye tanto la comunicación interna entre procesos de
un ordenador, desde que lo encendemos, como entre equipos en una red (local, inalámbrica,
Internet ...).
Nuestro punto de vista será siempre el de un Administrador que pretende mantener un buen
nivel de servicio y de seguridad en sus Sistemas y debe, por tanto, dedicar largo tiempo a
preparar las armas que día a día evitarán el peligro (y que nos permitirán también sobrevivir al
desastre cuando algún día, inevitablemente ocurra).
Nos limitaremos a utilizar software corriente en el mercado (cortafuegos, antivirus,
analizadores etc.) que encontremos traducidos al castellano. No abusaremos, por tanto, de
herramientas extremadamente especializadas y complejas, ni de versiones exclusivamente en
inglés. Además, nuestras prácticas se centrarán en Windows como PC cliente y se extenderán a
Linux, en algún caso, como servidor.
Para todas las prácticas seguiremos una misma metodología, muy sencilla, para ver como
funcionan “en vivo” los mecanismos que estudiamos: partiremos de un estado en que todos los
servicios y funciones están cerrados e iremos abriéndolos, uno por uno, observando y
controlando los resultados.
Al final conoceremos bien los sistemas, servicios, protocolos y puertos implicados, y nos
habremos familiarizado con un juego de herramientas suficiente para controlar cada caso. Para
cada herramienta construiremos cuidadosamente varios scripts de configuración preparados para
distintos escenarios corrientes, que podremos cargar y utilizar en cualquier momento para
afrontar los incidentes que se presentan habitualmente.
En fin, espero que nuestros objetivos queden mas claros tras el próximo capítulo, en que
estudiaremos a fondo un cortafuegos (y prepararemos escripts de configuración reutilizables
para varios escenarios frecuentes).
Como base mínima común para todas las herramientas, necesitaremos familiarizarnos al
menos con los puertos y servicios que se resumen a continuación:
Descripción Protoc Sal /
Ent
Local Proceso local Remo IP /
Zona DHCP UDP Todas (*) 67-68 c:\windows\system32\svchost.exe 67-68 Subred
DHCP(2) UDP Todas 67-68 c:\windows\system32\services.exe 67-68 Subred
DNS TCP-UDP Salientes c:\windows\system32\svchost.exe 53 Servid.
DNS
DNS UDP Resp
entrantes
c:\windows\system32\svchost.exe 53 Servid.
DNS
NTP-Sincroniz
horaria
UDP Todas 123 c:\windows\system32\svchost.exe 123 Servid.
hora
Kerberos TCP-UDP Salientes c:\windows\system32\lsass.exe 88 Servid.
Kerberos
Kerberos UDP Resp
entrantes
c:\windows\system32\lsass.exe 88 Servid.
Kerberos
LDAP TCP-UDP Salientes c:\windows\system32\lsass.exe
c:\windows\system32\Winlogon.exe
(389);326
8
Servid.
Ldap
LDAP UDP Resp c:\windows\system32\lsass.exe 389 Servid.
entrantes c:\windows\system32\Winlogon.exe Ldap
RPC TCP Salientes c:\windows\system32\lsass.exe 1025-
1026
Dominio
RPC-epmap TCP-UDP Salientes c:\windows\system32\lsass.exe 135 Dominio
RPC-epmap TCP-UDP Entrantes 135 Todo
SLP-Service
Location
Protocol
UDP Todas 427 system 427 Todo
SSDP (UPNP) TCP-UDP Salientes 1900 Todo
SSDP (UPNP) TCP-UDP Entrantes 1900 Todo
ICSLAP
(UPNP)
TCP-UDP Salientes 2869 Todo
ICSLAP
(UPNP)
TCP-UDP Entrantes Todo
IGMP IGMP Todas Todo
NETBIOS
Servicio de
nombres
Acceso impr
arch remotos
TCP-UDP Salientes dgm(138) Todo
TCP-UDP Entrantes ds(445);
138-139
Todo
UDP Entrantes 137-138 system Subred
UDP Salientes system 137-138 Subred
UDP Resp
entrantes
137-138 system Subred
TCP-UDP Todas ns(137) Subred
TCP Salida system ssn(139);d
s(445)
Subred
ICMP
Esta tabla contiene practicamente toda la información de detalle necesaria para configurar a
medida un cortafuegos personal, o un juego de filtros para un sniffer. De echo todos ellos
generan por defecto juegos de reglas equivalentes a este (salvo pequeñas variantes mas o menos
afortunadas en cada caso).
Es curioso apreciar, además, que todas estas herramientas tienen la misma carencia (al
menos los que hemos podido ver hasta ahora): nos obligan a permitir o bloquear el protocolo
ICMP al completo, sin permitirnos distinguir por tipo de mensaje: Teniendo en cuenta que
algunos tipos de mensajes ICMP son muy útiles (e inofensivos) y otros en cambio son realmente
peligrosos, esta carencia es, muchas veces, un inconveniente serio. Curiosamente el ICS de
Windows XP, que ni siquiera llega a ser propiamente un firewall, resuelve bastante bien este
asunto (aunque sin beneficio para nadie, claro está, porque en conjunto es un producto inutil).
En una red con un único PC y un router, si el PC se mantiene conectado y silencioso debe
recibir sólo tráfico de este estilo:
Veamos que significa esta captura: El router de esta red local tiene dirección IP 192.168.1.169 y
está enviando cada 30 segundos un broadcast (a todos los equipos), lo que es propio de los
routers RIP.
Otro ejemplo: cuando pedimos una página web desde el navegador veremos en primer lugar
la consulta que se hace al servidor DNS, así:
1. Cortafuegos personal en un PC.
1.1. Introducción.
Siguiendo la filosofía que hemos propuesto antes, debemos partir de un PC (bajo Windows)
plenamente operativo, pero configurado de modo que:
No intente iniciar ninguna comunicación con el exterior (esto no es fácil de conseguir, o
al menos no lo es sin desactivar todos los dispositivos de red)
Nos informe de cualquier comunicación entrante que reciba y la rechace sin responder.
Después iremos abriendo y supervisando, una por una:
Comunicaciones con Router, DNS, DHCP etc.
Programas autorizados para navegación, correo, descargas, actualizaciones de software
etc., cada uno con sus opciones de seguridad específicas.
Clientes P2P como Emule o BitTorrent.
Otros servicios en modo cliente (conectar a unidades de red, a escritorio remoto etc.).
Servicios en modo servidor (compartir impresoras y archivos, permitir administración
remota etc.).
1.2. Creando una configuración inicial.
Partiremos de un PC doméstico estándar bajo Windows. Nosotros hemos utilizado un
portátil corriente, con Windows XP, que se conectaba a Internet con wireless de forma
habitual y con Ethernet ocasionalmente.
Deshabilitamos (o simplemente detenemos) los servicios y programas instalados que
inicien o acepten comunicaciones con el exterior. Por ejemplo, puede ser suficiente:
o En Conexiones de Red, deshabilitarlas todas excepto Conexiones de red
inalambricas, así
o Desinstalar el servicio “Compartir impresoras y archivos para redes Microsoft”.
o En la configuración de IP de la tarjeta que queda activa, desactivar Netbios sobre
TCP/IP y Búsqueda de LMHOSTS, así:
o En la consola de Administración de servicios locales, asegúrese de que están
deshabilitados (o al menos detenidos) servicios como el Firewall de
Windows/Conexión compartida a Internet(ICS), Host de Dispositivo Plug and
Play Universal e Inicio de sesión en Red, para evitar que generen ruido en el
tráfico que queremos examinar.
o Ahora debemos instalar un cortafuegos que nos permita configurar reglas de
filtrado detalladas. La elección de un buen cortafuegos es siempre un asunto
discutible, claro está. Nosotros hemos elegido (manteniendo alguna reserva) el
que viene integrado en ESET SMART SECURITY, debido a que:
Es un software muy difundido en el ámbito popular, totalmente en
castellano y para el que podemos encontrar suficiente documentación.
No requiere, por tanto, conocimientos profundos que serían asequibles
sólo a unos pocos especialistas.
La configuración por defecto es quizá demasiado permisiva (aunque no
más que muchos cortafuegos domésticos), pero nos ofrece flexibilidad
suficiente para configurar nuestras propias reglas de una forma sencilla.
Después de la instalación, debemos configurar el cortafuegos de forma
totalmente restrictiva: deberá denegar y registrar todo intento de
comunicación, entrante o saliente, que se reciba. Para ello haremos algo
parecido a esto:
En la configuración de las Zonas, seguimos con la filosofía de confianza mínima. En particular
nos conviene simplificar quitando de la Zona de Confianza al bucle loopback de IPV6 (::1).
En la zona de configuración de reglas, pedimos edición de Todas las reglas (incluidas las de
sistema):
Por fin, daremos a la lista de reglas el siguinte tratamiento:
Desactivamos todas las reglas permisivas (flechas en verde) o neutras (flechas naranja) que
podamos. Observe que algunas no pueden desactivarse aquí, pero es posible desactivar el
protocolo asociado en otra parte del programa, mientras que otras son absolutamente
inamovibles, para el funcionamiento del propio servicio de cortafuegos ESET.
Además desactivamos también todas las opciones de protección antivirus, antiespía y correo
electrónico, pues estas opciones hacen que el cortafuegos desvíe y capture parte del tráfico
(para poder analizarlo) y esto falsea los datos originales que queremos conocer.
1.3. Primer análisis: Anuncios del router.
Ya podemos comenzar la inspección del tráfico (en Herramientas > Archivos de registro >
Registros del cortafuegos), y esto es lo que vemos:
Como ya se ha dicho antes, esto corresponde a los anuncios que cada 30 segundos hace el router
RIP, dirigidos a toda la subred. Podemos por tanto permitirle el paso, lo haremos añadiendo una
nueva regla:
Observe que establecemos una regla lo más restrictiva posible: sólo acepta tráfico de este router
concreto, y vamos a registrarlo todavía, hasta convencernos de que es exactamente lo que
queremos.
Para distinguir nuestras reglas de las que originalmente ha creado ESET, comenzaremos
siempre sus nombre con la palabra “Mi”.
Bien, ahora volvemos a inspeccionar los registros, a ver que sale:
Efectivamente, se obtiene el resultado esperado. Podemos pues dejar de registrar este evento y
pasar a otras cosas.
1.4. Primera travesía con el navegador.
Vayamos pues a nuestra por ahora única regla personalizada y desactivemos Registrar
actividad. Todo se queda muy tranquilo durante un rato, así que nos decidimos a arrancar un
navegador, por ejemplo Internet Explorer (no porque nos guste ese especialmente, más bien al
contrario). En la barra de direcciones tecleamos http://www.google.es y obtenemos un mensaje
que nos resulta conocido:
Tras intentar acceder a alguna otra página, con el mismo resultado, veamos lo que ha registrado
el cortafuegos:
Obviamente se trata de consultas al servidor DNS. Podemos observar que la consulta DNS la
hace el svchost.exe, y establecemos ya la regla correspondiente, saliente y entrante, Que por
cierto resultan ser mucho mas restrictivas (y por tanto mas seguras) que las instaladas por
defecto en el cortafuegos, que han de ser por fuerza mucho más generales. Sin más demora
añadiremos a continuación reglas para permitir que Internet Explorer (y sólo él, por el
momento) pueda navegar.
Una vez comprobado que funciona correctamente podremos completar la funcionalidad del
navegador añadiendo puertos para ftp, telnet etc.
Después, mismas acciones para otros navegadores, como Firefox.
1.5. Configuración paranoica
En este punto hemos logrado la configuración mínimamente permisiva para navegar, pero
es tan restrictiva y poco funcional que no nos sirve en absoluto para el uso diario habitual que
damos al ordenador. En cambio le daremos un uso mas concreto: con sólo unos retoques (para
aumentar aún más el nivel de vigilancia sobre tráfico e intrusiones) obtendremos finalmente una
excelente herramienta de vigilancia y diagnostico, que guardaremos a buen recaudo para usar
cuando la necesitemos.
Bien, vamos con los detalles:
Comprobar que de las reglas originales de ESET estén habilitadas las de bloqueo y no otras.
Asegurarnos de que se registra el tráfico bloqueado, así como las intrusiones y los ataques
de gusanos:
Revisar las reglas “permitir” para confirmar que también el tráfico permitido será registrado.
Añadir reglas que nos avisen en tiempo real ante la presencia de protocolos no esperados, es
decir, una regla por cada uno de la siguiente lista
Como ejemplo veamos una de estas reglas:
Conectar el Proxy interno incorporado en ESET (que examinará el contenido de los
paquetes http y pop3).
Observe que podemos pedir al Proxy que análice:
Cualquier tráfico de puertos http y pop3, cualquiera que sea la aplicación o regla utilizada.
En otro lugar podemos especificar que puertos son considerados http y pop3.
Cualquier tráfico de aplicaciones consideradas navegadores y clientes de correo, sea del
puerto que sea. También ahora podemos especificar (en otros lugares) que programas deben
ser incluidos es ambas listas:
Nosotros elegimos analizar tanto puertos como aplicaciones, como hemos mostrado antes:
Por último, es preciso añadir una regla que permita operar al propio Proxy, de lo contrario
este no podrá redireccionar el tráfico para su análisis. En efecto, con las reglas que tenemos
ahora obtenemos:
Finalmente nuestro cortafuegos esta listo, lo hemos convertido en una sencilla (pero
potente) herramienta de análisis y diagnostico para nuestra red. Puesto que extrema las medidas
de inspección y desconfianza podemos llamarle configuración paranoica.
Vamos a exportar esta configuración, de modo que podamos importarla y usarla cuando
la necesitemos: