Herramientas para sobrevivir en una...

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

Transcript of Herramientas para sobrevivir en una...

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:

Protección restrictiva para nuestra subred.

F

i

j

a

m

o

s

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:

Así que añadimos la siguiente:

Y comprobamos que ahora el Proxy ya puede hacer su trabajo:

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: