You are on page 1of 66

Cap tulo 13

Sistemas de deteccin de intrusiones o


Los Sistemas de deteccin de intrusiones (IDS, Intrusion Detection System) son bsicamente sniers o a modicados que pueden ver todo el trco de la red e intentan detectar un trco potencialmente daino, a a n alertndonos de ello cuando aparezca. a La forma principal de conseguirlo es examinando el trco de entrada e intentndolo comparar con a a una base de datos de actividades dainas conocidas denominadas rmas. Esta utilizacin de las rmas es n o muy similar a la forma en que funcionan los programas antivirus. La mayor de los tipos de ataques tienen una apariencia muy distintiva a nivel TCP/IP. Un IDS puede a denir ataques basndose en las direcciones IP, los nmeros de puertos, el contenido y cualquier nmero a u u de criterios. Existe otra forma de realizar una deteccin de intrusin en el nivel del sistema comprobando la inteo o gridad de los archivos clave y asegurndose de que no se ha realizado ningn cambio en dichos archivos. a u Tambin existen otras tecnolog emergentes que combinan el concepto de deteccin de intrusin y e as o o cortafuegos o realizan una accin posterior ms all de la pura deteccin. o a a o Esta seccin esta basada en el libro [How05]. o

13.1.

Tipos de IDS

Existen tres tipos diferenciados de IDS: NIDS: IDS de red, basado en rmas IDS basado en actividad anmala o IPS: IDS que responde a las alertas con acciones automticas a En las siguientes secciones se explican en detalle.

13.1.1.

NIDS (Network Intrusion Detection System)

Un sistema deteccin de intrusin de red (NIDS, Network Intrusion Detection System) puede protegero o nos contra los ataques que entran a travs del cortafuegos hasta la LAN Interna. Los cortafuegos pueden e estar mal congurados, permitiendo la introduccin de trco no deseado en nuestra red. Incluso cuando o a funcionan correctamente, los cortafuegos normalmente dejan pasar algn trco de aplicacin que puede u a o ser peligroso. Lo que llega a los puertos del cortafuegos, y est permitido por las reglas, se env a los a a servidores internos provocando un trco potencialmente daino. Un NIDS puede comprobar dicho trco a n a y marcar los paquetes sospechosos. Congurado correctamente puede hacer una doble comprobacin de las o reglas de nuestro cortafuegos y proporcionarnos una proteccin adicional para los servidores de aplicacin. o o Aunque es util para protegernos contra ataques externos, una de las ventajas principales de un NIDS es cazar los ataques y la actividad sospechosa de or genes internos. El cortafuegos nos proteger de muchos a ataques externos, sin embargo, cuando el atacante se encuentra en la red local puede hacer muy poco.

214

Servidor Linux para conexiones seguras de una LAN a Internet

Slo puede ver el trco que lo atraviesa desde el exterior y son ciegos respecto a la actividad de la LAN. o a Podemos pensar en los NIDS y en los cortafuegos como dispositivos de seguridad complementarios, el cerrojo de la puerta principal y el sistema de seguridad de nuestra red. Uno protege nuestro per metro y el otro nuestro interior. Hay una buena razn para vigilar nuestro trco interno de red. Las estad o a sticas demuestran que un setenta por ciento de los incidentes en cr menes informticos provienen de un origen interno. Por mucho a que nos guste pensar que nuestros compaeros no van a hacer nada para daarnos, a veces no es el caso, n n los intrusos internos no siempre son piratas informticos que trabajan por la noche. Pueden ser desde a un administrador de sistemas contrariado, un empleado descuidado o hasta la seora de la limpieza. El n simple hecho de descargar un archivo o de abrir un archivo adjunto de un mensaje de correo electrnico o puede cargar un troyano que crear toda una brecha en nuestro cortafuegos para todo tipo de fechor a as. Con un NIDS, podemos captar este tipo de actividad as como otros problemas en cuanto se producen. Bien ajustado, puede ser el sistema de alarma de nuestra red.

13.1.2.

IDS (Deteccin de actividades anmalas) o o

En lugar de utilizar rmas estticas, que slo pueden captar una actividad daina cuando se dene a o n expl citamente, estos sistemas de nueva generacin registran los niveles normales para distintos tipos de o actividad en nuestra red. Si observa una sbita oleada de trco FTP, nos avisar. El problema con este u a a tipo de sistemas es que son muy propensos a los falsos positivos, stos se producen cuando se dispara una e alerta aunque la actividad que est marcando es normal y permitida en nuestra LAN, por ejemplo una a persona que est descargando un archivo particularmente grande activar la alarma. a a As mismo se tarda mucho en que un IDS de deteccin de anomal desarrolle un modelo preciso de o as la red. Al principio, el sistema generar tantas alertas que es casi intil. a u Adicionalmente, estos tipos de sistemas de deteccin de intrusin pueden ser engaados por alguien que o o n conozca bien la red. Si los piratas informticos son sucientemente furtivos y hbiles utilizarn protocolos a a a usados en nuestra LAN y no activarn este tipo de sistemas. a Sin embargo, una gran ventaja es que no tiene que actualizar rmas continuamente. A medida que esta tecnolog madure y se haga ms inteligente, probablemente se convierta en una forma muy popular a a de detectar intrusiones. Un ejemplo de IDS basado en actividades anmalas y de libre distribucin es Spade, un mdulo gratuito o o o para el NIDS Snort.

13.1.3.

IPS (Intrusion Prevention System)

Un nuevo tipo de NIDS denominado Sistema de prevencin de intrusin (IPS, Intrusion Prevention o o System) se est publicitando como la solucin para la seguridad de las empresas. Este tipo de sistemas a o respondern a las alertas a medida que se generen. Esto puede realizarse trabajando con un cortafuegos o a con un enrutador, escribiendo reglas personalizadas en el momento que se detecta el problema, bloqueando e interrogando la actividad de las direcciones IP sospechosas o incluso contraatacando al sistema ofensivo. Aunque esta nueva tecnolog se encuentra en una constante evolucin, todav est muy lejos de poder a o a a proporcionar el anlisis y el juicio de una persona. El hecho es que cualquier sistema que dependa al cien a por cien de una mquina y de su software, tarde o temprano podr ser burlado por algn intruso. a a u Un ejemplo de IPS de libre distribucin es Inline Snort de Jed Haile, un mdulo gratuito para el NIDS o o Snort.

13.2.

Ubicacin del NIDS o

Para elegir la ubicacin del NIDS hay que valorar el grado de interoperabilidad con el resto de nuestras o protecciones de red. Existen varias posibilidades y cada una tiene distintas ventajas e inconvenientes.

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o 1.

215

En la red LAN local, detrs del cortafuegos: Es el lugar ms comn, ofrece la mejor proteccin frente a a u o a las amenazas externas e internas. Al escuchar el cable local, podemos detectar la actividad interna de otros usuarios (como la actividad entre estaciones de trabajo o el uso il cito de un programa). Tambin refuerza el cortafuegos, detectando una actividad sospechosa que de alguna manera ha e conseguido pasar los ltros del cortafuegos. De hecho, se pude utilizar un IDS para probar un cortafuegos y comprobar lo que permite pasar. Sin embargo, este sistema generar muchas alertas basadas en el trco de red de Windows, por lo que a a debemos estar preparados para realizar muchos ajustes en este rea. As mismo, si nos encontramos a en una LAN conmutada, necesitaremos la capacidad de reejar todos los puertos sobre un puerto monitor para poder permitir al IDS escuchar todo el trco LAN. a

2.

En el segmento DMZ : Podemos colocar un sensor Snort en la DMZ para registrar la actividad que entra en los servidores pblicos. Como esos servidores son los ms expuestos y normalmente repreu a sentan recursos valiosos, es buena idea supervisarlos con un IDS. El problema de esta conguracin o es ordenar todas las alertas. Aunque todas ellas puedan ser alertas vlidas, con el nivel de ataque de a trco general actual en Internet, cualquier IP pblica es atacada de forma aleatoria todos los d a u as. Reaccionar ante ello intentando localizar dichas alertas ser excesivo y contraproducente. a Por lo tanto, cmo podemos saber qu alertas son slo gusanos que estn atacando a nuestro o e o a servidor y qu alertas estn realmente avisndonos de un intruso real?. Una forma de hacerlo es e a a reduciendo el nmero de rmas a un pequeo nmero que slo se activen si el host est realmente u n u o a comprometido, por ejemplo, reglas espec cas a las aplicaciones que se estn ejecutando en el host, a como MySQL.rules, web-iis.rules o reglas relacionadas con la administracin de conexiones. o

3.

Entre el ISP y el cortafuegos: Esta conguracin ltrar todo el trco entrante y saliente de la o a a LAN y DMZ. Lo bueno es que capturar todos los ataques tanto a los servidores pblicos como a a u la LAN interna. Lo malo es que no podrmos ver ningn trco interno y el volumen general de las e u a alertas puede ser bastante alto, debido al trco de ataque general subyacente. a Igual que en el ejemplo anterior, se puede probar a reducir las alertas y dejar slo las que realmente o van a mostrar algn problema para este segmento. As mismo, al situarlo entre el sensor ISP y el u cortafuegos, puede crear un cuello de botella y un punto de errores para nuestro trco de red. a

Todas las formas puede ser vlidas para utilizar un IDS y no hay razn para que no podamos seguir a o las tres, siempre que tengamos el hardware y el tiempo necesario para hacerlo.

13.3.

El problema de los falsos positivos de NIDS

Uno de los problemas principales con los sistemas de deteccin de intrusin es que suelen generar o o muchos falsos positivos. Un falso positivo se produce cuando el sistema genera una alerta basndose a en lo que cree que es una actividad daina o sospechosa pero en realidad es un trco normal en esa n a LAN. Generalmente, cuando establecemos un NIDS con sus conguraciones predeterminadas, va a buscar todo lo que sea ligeramente inusual. La mayor de los sistemas de deteccin de intrusin de red tienen a o o grandes bases de datos predeterminadas con miles de rmas de posibles actividades sospechosas. Los suministradores de IDS no tienen forma de saber la apariencia de nuestro trco de red, por lo que lo a incluyen todo. Existen otras muchas fuentes de falsos positivos, dependiendo de la conguracin de nuestra red y o de su nivel de actividad. Un NIDS con una instalacin predeterminada puede generar cientos de falsos o positivos en un solo d algo que puede conducir a un sensacin de desesperacin en el administrador a, o o del sistema. La reaccin normal, es que las alertas de estos sistemas se ignoran a menudo debido a su o falta de ecacia. Sin embargo, con poco esfuerzo y utilizando las tcnicas descritas en este cap e tulo un IDS puede convertirse en una herramienta util, en lugar de en la versin electrnica de la nia del exorcista. o o n Las causas ms comunes de los falsos positivos se describen en los siguientes apartados. a
Jose Antonio Escart Vigo, Junio 2005. n

216

Servidor Linux para conexiones seguras de una LAN a Internet

Actividad del sistema de supervisin de red o


Muchas empresas utilizan sistemas de supervisin de redes (NMS, Network Monitorig System) como o HP OpenView o WhatsUp Gold para tener registros de la actividad de sus sistemas. Estos programas generan mucha actividad de sondeo y descubrimiento en nuestra red. Normalmente utilizan SNMP o algn protocolo similar para obtener el estado, pero pueden tambin u e utilizar pings y pruebas ms intrusivas. De forma predeterminada, la mayor de los sistemas de deteccin a a o considerarn hostil esta actividad, o al menos, sospechosa. Un NMS en una red grande puede generar a miles de alertas por hora, si se ha establecido en el IDS marcar este tipo de actividad. Se puede evitar haciendo que nuestro NIDS ignore la actividad desde y hacia la IP del NMS. Tambin podemos eliminar e este tipo de alertas de la base de datos de nuestro NIDS, si no consideramos estas alertas importantes.

Escaneado de vulnerabilidad y escneres de puertos de red a


Si estamos realizando una prueba de vulnerabilidad de red o un escaneado de puertos utilizando programas como Nessus o Nmap, nuestro NIDS se volver loco cada vez que se ejecuten dichos programas. a Estos programas estn diseados para hacer exactamente lo que hacen los piratas informticos. De hecho, a n a probablemente exista una alerta para la mayor de los complementos del programa Nessus. Una vez ms, a a podemos deshabilitar el informe de la direccin IP de nuestro servidor Nessus o Nmap dentro del NIDS. o Una mejor manera de controlar esta situacin es apagar nuestro IDS durante los escaneados programados. o As la IP del escner seguir protegida contra un ataque cuando no est escaneando y nuestra base de , a a e datos de alertas no se cargar con datos de nuestra actividad de escaneado. a

Actividad de usuario
La mayor de los sistemas de deteccin de intrusin de redes se conguran para marcar diversas a o o actividades de usuario peligrosas, como compartir archivos punto a punto, mensajer instantnea, etc. a a Sin embargo, si permitimos este tipo de actividad, bien por pol tica formal o simplemente sin imponer las pol ticas existentes, se mostrarn como alertas en nuestro registros. a Este ser un buen momento para imponer o crear pol a ticas contra su utilizacin ya que podemos o demostrar cunto ancho de banda y tiempo consumen, sin mencionar las implicaciones de seguridad. a Aunque si pretendemos seguir permitiendo esta actividad, deber amos comentar estas reglas para no rellenar los registros con alertas innecesarias.

Comportamientos parecidos a los troyanos o gusanos


Normalmente, virus, gusanos y troyanos viven para la red. Intentan ejecutar diversas actividades por la red, incluyendo la infeccin de nuevas mquinas y el env en masa de mensajes de correo electrnico. o a o o Estas actividades las puede detectar un NIDS, sin embargo, estas rmas tambin pueden ser activadas e por una actividad normal de nuestra red. Podr amos desactivar las alertas que reconocen esta actividad, aunque exista un trco potencialmente daino, para evitar vernos agobiados por los falsos positivos. a n

Cadenas largas de autenticacin bsica o a


Este tipo de alerta busca las cadenas de registro web largas, algunos ataques utilizan este mtodo para e conseguir un desbordamiento de memoria y obtener acceso al sistema. Sin embargo, hoy en d muchas webs llenan este campo de informacin. Aunque, si desactivamos la a, o regla para evitar falsos positivos, puede viajar cdigo daino por nuestra red y pasar inadvertido para el o n NIDS.

Actividad de autenticacin de base de datos o


Algunos sistemas de deteccin de intrusin de red buscan actividades administrativas sobre bases de o o datos. La teor es que el uso de bases de datos no deber de tener demasiada actividad administrativa a a en curso y ello podr ser seal de que alguien estn intentando sabotearla. Sin embargo, muchas bases a n a
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

217

de datos tienen trabajos en proceso y mucha actividad administrativa incluso si no se estn consultando. a Esta actividad, aunque leg tima, generar muchas de estas alertas. a Si nuestras bases de datos estn en constante desarrollo, probablemente deberemos desactivar dichas a alertas, al menos hasta que se estabilicen y tengan un uso normal.

13.4.

Obtener lo mximo del IDS a

Para darnos cuenta del verdadero potencial de un sistema de deteccin de intrusin necesitaremos o o seguir unas pautas antes y despus de la instalacin. e o

13.4.1.

Conguracin apropiada del sistema o

Si simplemente instalamos un IDS y lo activamos con una conguracin predeterminada, rpidamente o a nos inundarn miles de alertas de falsos positivos. Podemos ajustarlo despus de estar activo, pero nos a e ahorraremos mucho tiempo y esfuerzo congurndolo cuidadosamente de antemano. No debemos confora marnos con las conguraciones por defecto, hay que ajustarlas al perl de nuestra LAN. La mayor de los sistemas de deteccin agrupan las alertas en categor Es preciso examinar cada a o as. grupo para comprobar si es relevante en nuestra red. Si hay un grupo de rmas basadas en Unix pero no tenemos ningn sistema Unix, podemos desactivar con seguridad esas alertas. Algunos tienen alertas u que buscan la utilizacin de mensajer instantnea o la utilizacin de software punto a punto. Si ya o a a o tenemos sistemas que ltran estas actividades o las permitimos en nuestro sistema, es mejor desactivar esas alarmas. Tenemos que repasar los grupos de alertas con detalle. Por ejemplo, desearemos utilizar la mayor de las alertas basadas en Windows, pero existirn algunas irrelevantes para nuestra red o que a a causen falsos positivos, esas las podemos desactivar. Tambin podemos excluir algunos hosts del examen. Si efectuamos desde una mquina constantes e a sondeos SNMP por nuestra red o frecuentemente estamos iniciando sesin como administrador remoto, o generaremos alertas que no merece la pena proteger. Aunque reduzcamos el nivel de proteccin proporcionado y podamos dejar sin proteccin alguna mquio o a na cr tica, podemos hacer el IDS ms efectivo y merecer la pena asumir ese riesgo. Tardar algunas horas a a en congurar nuestro sistema antes de activarlo puede ahorrarnos mucho tiempo y frustracin en el futuro. o Si vamos a ejecutar un IDS es mejor que nos tomemos el tiempo necesario para hacerlo funcionar correctamente.

13.4.2.

Ajuste del IDS

Cuando ya se est ejecutando, incluso el IDS ms meticulosamente congurado empezar a generar a a a alertas. Al principio, si nos tomamos el tiempo necesario para analizarlas y empezamos a desactivar las reglas que no nos importen en nuestra red, podremos reducir rpidamente el nmero de falsos positivos a u que est produciendo el IDS. a Tambin nos proporcionar un conocimiento de cmo est trabajando nuestra red y del tipo de trco e a o a a que se est revisando, algo util para cualquier administrador de redes. a Es preciso reservar un tiempo semanal para modicar las conguraciones IDS. En algunos sistemas es relativamente fcil marcar una alerta como falso positivo mientras que en otros podemos encontrarnos con a ms dicultades. En general, se tardan algunos meses antes de que un IDS est ajustado correctamente a e para enviar alertas utiles sobre una actividad procesable.

13.4.3.

Herramientas de anlisis IDS a

Los sistemas de deteccin normalmente ofrecen a los administradores varios mtodos de noticacin o e o de una alerta. En su nivel ms bsico, las alertas pueden simplemente enviarse a un archivo de registro para una a a revisin posterior, algo que no es muy recomendable ya que requiere que el administrador revise o los registros. Si no se supervisan diariamente, pueden pasar d o semanas antes de descubrir los as intentos de intrusin. o
Jose Antonio Escart Vigo, Junio 2005. n

218

Servidor Linux para conexiones seguras de una LAN a Internet La otra alternativa es enviar un mensaje de correo electrnico o una pgina, a la persona apropiada o a siempre que se genere una alerta. Sin embargo, incluso en un sistema bien ajustado, puede ser molesto recibir correos varias veces al d As mismo, las alertas de correo electrnico no estarn en a. o a un formato en el que se puedan comparar con alertas pasadas o analizadas de otra forma. La mejor solucin para controlar las alertas IDS es insertarlas en una base de datos, para permitir un o anlisis ms profundo. Existe una herramienta de libre distribucin para los sistemas de deteccin a a o o de intrusiones denominada Analysis Console for Intrusion Database (ACIDlab, vase seccin 13.8). e o

13.5.

IDS Snort (NIDS)

Es una herramienta desarrollada por Martin Roesch, aunque ahora ya cuenta con 30 desarrolladores ms en su equipo principal, sin contar con los que escriben reglas y otras partes del software. Existen a muchos recursos disponibles para Snort y todos ellos son recursos gratuitos disponibles en Internet. Snort es principalmente un IDS basado en rmas, aunque con la adicin del mdulo Spade, puede o o realizar una deteccin de actividad de anomal Existen tambin otros mdulos de complemento como o as. e o Inline Snort que permite a Snort realizar acciones predeterminadas ante determinadas alertas. Para obtener ms informacin sobre el programa, estos mdulos o otros podemos consultar la web: a o o http://www.snort.org O consultar la informacin que podemos obtener en nuestro sistema Debian: o #apt-get install snort-doc

13.5.1.

Caracter sticas bsicas a

Libre distribucin: Snort es de libre distribucin y portable a casi cualquier sistema operativo o o Unix/Linux. Tambin existen versiones disponibles para Windows y otros sistemas operativos. e Ligero: Debido a que el cdigo se ejecuta de una forma eciente, no requiere mucho hardware, lo o que permite poder analizar trco en una red de 100 Mbps a una velocidad cercana al cable, algo a bastante incre si pensamos lo que hace con cada paquete. ble Snort personaliza reglas: Snort ofrece una forma fcil para ampliar y personalizar el programa esa cribiendo nuestras propias reglas o rmas. Existe mucha documentacin que puede ayudarnos a o aprender a hacer reglas (vase seccin 13.5.9), sin mencionar la cantidad de foros sobre el tema. e o

13.5.2.

Instalacin o

Para instalarlo simplemente realizaremos el apt del paquete: #apt-get install snort Los archivos importantes de snort son los siguientes: /etc/snort/snort.conf : Archivo de conguracin por defecto o /etc/snort/snort.<host>.conf: Archivo de conguracin para el host o /etc/snort/snort.<dispositivo>.conf : Archivo de conguracin para un dispositivo de red concreto o /etc/snort/rules/* : Archivos de reglas

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

219

13.5.3.

Modos de ejecucin o

Snort se ejecuta desde la l nea de comandos, en tres modos diferentes: Snier de red Registro de paquetes IDS La mayor de los usuarios lo ejecutaran en este ultimo modo para obtener las ventajas de IDS, pero a tambin hay usos para los dos primeros modos. e Modo de snier de paquetes En este modo, Snort acta como un snier, mostrando el contenido sin ltrar en el cable. Evidenteu mente. Si lo unico que necesitamos es un snier podr amos utilizar Tcpdump o Ethereal (ms completos). a Sin embargo, el modo snier de paquetes es bueno para asegurarse de que todo funciona correctamente y Snort esta viendo los paquetes. En este modo tenemos las siguientes opciones: Opcin o -v -d -e Descripcin o Imprime en la pantalla los encabezados de los paquetes TCP/IP en Ethernet Igual que la opcin anterior pero adems imprime los datos de la capa de aplicacin o a o Igual que la opcin anterior pero adems imprime la capa de enlace de datos o a

Hay que incluir al menos el comando -v para utilizar el modo snier de paquetes. Estos serian algunos ejemplos de su uso: #snort -v #snort -vde Pulsamos CTRL+C para salir y veremos un resumen de la sesin de escucha de la red. o La siguiente salida, es una conexin a una pgina web desde el servidor: o a
#snort -v Running in packet dump mode Initializing Network Interface eth0 --== Initializing Snort ==-Initializing Output Plugins! Decoding Ethernet on interface eth0 --== Initialization Complete ==-,,_ o" )~ -*> Snort! <*Version 2.3.2 (Build 12) By Martin Roesch & The Snort Team: http://www.snort.org/team.html (C) Copyright 1998-2004 Sourcefire Inc., et al.

06/09-13:09:39.402225 195.149.189.15:80 -> 192.168.0.11:3516 TCP TTL:62 TOS:0x0 ID:47630 IpLen:20 DgmLen:52 DF ***A***F Seq: 0xB744B52F Ack: 0x34B0D324 Win: 0x1974 TcpLen: 32 TCP Options (3) => NOP NOP TS: 217975842 8827642 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 06/09-13:09:39.442220 192.168.0.11:3516 -> 195.149.189.15:80 TCP TTL:64 TOS:0x0 ID:24732 IpLen:20 DgmLen:52 DF ***A**** Seq: 0x34B0D324 Ack: 0xB744B530 Win: 0x736 TcpLen: 32 TCP Options (3) => NOP NOP TS: 8837681 217975842 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 06/09-13:09:43.433979 192.168.0.11:3516 -> 195.149.189.15:80 TCP TTL:64 TOS:0x0 ID:24734 IpLen:20 DgmLen:52 DF ***A***F Seq: 0x34B0D324 Ack: 0xB744B530 Win: 0x736 TcpLen: 32 TCP Options (3) => NOP NOP TS: 8841673 217975842 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 06/09-13:09:43.819445 195.149.189.15:80 -> 192.168.0.11:3516 TCP TTL:253 TOS:0x0 ID:0 IpLen:20 DgmLen:52 DF ***A**** Seq: 0xB744B530 Ack: 0x34B0D325 Win: 0x1974 TcpLen: 32 TCP Options (3) => NOP NOP TS: 217976284 8841673 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ .......................................................................... ..........................................................................

Jose Antonio Escart Vigo, Junio 2005. n

220

Servidor Linux para conexiones seguras de una LAN a Internet

========================================================================== Snort received 263 packets Analyzed: 263(100.000%) Dropped: 0(0.000%) ========================================================================== Breakdown by protocol: TCP: 247 (93.916%) UDP: 12 (4.563%) ICMP: 0 (0.000%) ARP: 4 (1.521%) EAPOL: 0 (0.000%) IPv6: 0 (0.000%) IPX: 0 (0.000%) OTHER: 0 (0.000%) DISCARD: 0 (0.000%) ========================================================================== Action Stats: ALERTS: 0 LOGGED: 0 PASSED: 0 ========================================================================== Snort exiting

Modo de registro de paquetes Este modo es similar al anterior pero nos permite registrar paquetes olfateados al disco para su utilizacin y anlisis futuros. Para ejecutar Snort en el modo de registro de paquetes, simplemente lo o a ejecutamos con los mismos comandos que en el modo snier de paquetes, pero aadiendo un modicador n adicional: -l logpath, reemplazando logpath con la ruta de acceso en la que deseamos que Snort registre los paquetes (tiene que ser un directorio). Por ejemplo: #snort -vde -l /var/log/snort Crear archivos de registro en el directorio /var/log/snort. Snort registra paquetes por direccin IP y a o crea un directorio independiente para cada IP registrada. Si estamos registrando trco en una red local a grande con muchas direcciones, esto puede escaparse rpidamente a nuestro control. a Podemos utilizar otra conguracin para indicarle a Snort que registre los paquetes de la LAN en la o que se encuentra con el comando: -h homenet, donde homenet es el rango de direcciones IP en la notacin o de barra inclinada. Esto hace que Snort coloque las direcciones basndose en la direccin IP del paquete a o externo a la LAN, para poder ver con ms facilidad el trco ajeno a la red. Si tanto los antriones de a a destino como de origen son locales, Snort los coloca en el directorio con el nmero de puerto superior, u aparentemente para recoger el host de conexin sobre el host servidor. o Snort utiliza la direccin de origen como nombre del directorio en el que se colocarn los datos de los o a paquetes, cuando registramos alertas de intrusin es importante saber con facilidad de dnde est provio o a niendo el trco de alertas marcado. a Por lo tanto, el comando para el modo de registro de paquetes ser: a #snort -vde -l /var/log/snort -h 192.168.0.0/24 Esta declaracin especica una red interna en el rango comprendido entre 192.168.0.1 y 192.168.0.254. o Tambin podemos utilizar la opcin: -b para registrar todos los datos en un solo archivo binario, e o apropiado para su lectura posterior con un snier de paquete (como Ethereal o Tcpdump). Si se realiza as el registro, no es necesario especicar la red local al utilizar el modicador -b ya que registrar los a archivos secuencialmente en un gran archivo. Este mtodo es mucho ms rpido para registrar redes de e a a muchos registros o si Snort funciona en un mquina lenta. Tambin facilita el anlisis con herramientas a e a ms complejas, algo necesario si vamos a buscar sobre una gran cantidad de datos de red capturados. a Modo de deteccin de intrusin (IDS) o o Este modo lo utiliza Snort para registrar paquetes sospechosos o que merecen una consideracin eso pecial. Slo necesitamos un modicador adicional a la declaracin anterior para que Snort entre en este o o modo. El modicador: -c congle, le indica a Snort que utilice un archivo de conguracin para dirigir o los paquetes que registra. Este archivo determina la conguracin de Snort, se incluye un archivo predeo
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o terminado, pero debemos realizar cambios antes de ejecutarlo, para que reeje nuestro perl de red. Por lo tanto, si escribimos: #snort -de -l /var/log/snort -h 192.168.0.0/24 -c /etc/snort/snort.conf

221

Ejecutaremos Snort en modo IDS utilizando el archivo de conguracin snort.conf predeterminado. o Hay que tener en cuenta que no hemos utilizado el modicador -v para ejecutar Snort en modo IDS. Cuando intentamos comparar todos los paquetes con las rmas, obligar a Snort a escribir tambin las e alertas en la pantalla puede causar que algunos paquetes se omitan, especialmente en redes con mucho trco. Tambin podemos omitir el modicador -e si no necesitamos registrar las capas de enlace de datos. a e Si omitimos el modicador -l, Snort de forma predeterminada utilizar /var/log/snort como su directorio a de registro. Tambin podemos utilizar el modicador -b si deseamos registrar un archivo binario para un e anlisis posterior con un programa independiente. a El comando para ejecutar Snort en el modo IDS es: #snort -h 192.168.0.0/24 -c /etc/snort/snort.conf

13.5.4.

Modos de alerta

Ahora que ya estamos registrando los paquetes de alerta, tendremos que decidir el detalle y el formato de la alerta. El cuadro 13.1 incluye una lista con las opciones que podemos usar desde la l nea de comandos, utilizando el modicador -A. Cuadro 13.1: Opciones de alerta del comando Snort Descripcin o Informacin completa de la alerta, incluyendo datos de aplicacin. Es el modo predeo o terminado de alerta y se utilizar cuando no especiquemos nada. a Modo rpido. Registra slo la informacin de encabezado del paquete y el tipo de a o o alerta. Es util para redes muy rpidas pero si se necesita ms informacin forense hay a a o que utilizar el modicador full. Reenv la alerta a un socket a Desactiva las alertas.

Opcin o -A full -A fast

-A unsock -A none

Tambin podemos utilizar las opciones, Syslog, SMB y opciones de salida de bases de datos. Estas e opciones no utilizan el modicador -A desde la l nea de comandos sino mdulos de salida independientes o que ofrecen una variedad ms amplia de opciones de salida. Estas deben congurarse en el tiempo de a compilacin con modicadores aadidos a la declaracin de conguracin. o n o o SMB : Env las alertas al servicio de men emergente de Windows. Para esta opcin hay que a u o descargar las fuentes y compilarlas con la opcin enable-smbalerts. o Para ejecutar Snort con esta conguracin: #snort -c /etc/snort/snort.conf -M workstations o Donde workstations es el nombre del host Windows al que se env las alertas. an Syslog: Env alertas al servidor Syslog de Unix. Este es un servicio, que captura y guardar archivos a de registro, lo que nos ayudar a consolidar registros de red en un lugar unico. Este servicio diculta a a un intruso borrar los rastros de la intrusin. Podemos especicar los formatos Syslog dentro del o archivo de conguracin y enviar ah las alertas incluyendo el modicador -s. o Snort admite directamente cuatro tipos de salida a base de datos: MySQL, PostgreSQL, Oracle y unixODBC. El mdulo de salida de base de datos requiere: parmetros y conguraciones, dentro del o a archivo de conguracin y en tiempo de compilacin. o o
Jose Antonio Escart Vigo, Junio 2005. n

222

Servidor Linux para conexiones seguras de una LAN a Internet

13.5.5.

Optimizar la conguracin o

Ahora que ya sabemos cmo funciona Snort y conocemos los comandos bsicos, tendrmos que editar o a e el archivo de conguracin para convertirlo en un IDS able y obtener los resultados deseados. Muchas o l neas del archivo contienen informacin util para aclarar cada una de las partes de la conguracin. o o Para denir el archivo de conguracin seguiremos los siguientes pasos: o 1. Establecemos nuestra red local : Tendremos que indicarle a Snort las direcciones de nuestra red local para que pueda interpretar correctamente los ataques provenientes del exterior. Para ello utilizaremos la siguiente declaracin: o var HOME_NET addresses Donde debemos de reemplazar addresses con el espacio de direcciones de nuestra red local. Si existen mltiples redes, podemos introducirlas todas separndolas por comas. Podemos incluso introducir u a un nombre de interfaz y utilizar la direccin IP y la mscara de red asignada a dicha interfaz como o a nuestro HOME NET. El formato para hacerlo es: var HOME_NET $ interfacename Donde debemos reemplazar interfacename con la interfaz de red donde est escuchando Snort. a Tambin podemos denir nuestras redes externas con una declaracin similar a HOME NET, reeme o plazndola por EXTERNAL NET. La entrada predeterminada para ambas variables es any. Es a recomendable denir la red interna pero dejar la red externa a any. 2. Conguramos los servidores internos: En el archivo de conguracin podemos denir nuestros sero vidores de red, incluyendo web, mail, dns, telnet, . . . As limitaremos los falsos positivos para los , servicios en esas mquinas. a Tambin podemos especicar los nmeros de puertos para dichos servicios, entonces si nuestros e u usuarios usan ese puerto, no se registrar ninguna alerta. Todas estas opciones de conguracin a o pueden ayudarnos a reducir el nmero de falsos positivos que obtenemos y alertarnos slo con u o informacin que tiene valor real. o 3. Conguramos los decodicadores y procesadores previos de Snort: Diversos modicadores y conguraciones controlan los decodicadores y procesadores previos de Snort en el archivo de conguracin. o Estas rutinas se ejecutan en el trco antes de pasar por ningn conjunto de reglas, normalmente a u para formatearlas correctamente o para tratar con un tipo determinado de trco que sea ms fcil de a a a procesar directamente en lugar de utilizar los conjuntos de reglas. Un ejemplo de este tipo de trco a ser los paquetes fragmentados-defragmentados. Muchos ataques intentan ocultar su verdadera an naturaleza fragmentando los paquetes, en esos casos, esta opcin es muy valiosa. o Otro decodicador es para los paquetes de escaneado de puertos. Como stos suelen entrar en grupos e y con un gran volumen, es mejor procesarlos directamente en masa en lugar de intentar comparar cada paquete con una rma. Esto hace que el IDS sea ms seguro ante una denegacin de servicio. a o Las conguraciones predeterminadas para estos subsistemas son muy generales, a medida que experimentemos con Snort, podremos ajustarlas para obtener un mejor rendimiento y resultados. 4. Conguramos los mdulos de salida: Es un paso importante si deseamos utilizar una base de datos o para controlar las salidas de Snort. Como ya hemos visto anteriormente, existen varios mdulos de o salida que podemos utilizar, dependiendo del formato en el que deseemos los datos: Syslog, Database y el nuevo mdulo denominado Unied, que es un formato binario genrico para exportar datos a o e otros programas.

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o El formato general para congurar los mdulos de salida es: o output module_name: configuration options

223

Siendo module name bien alert syslog, database o alert unied dependiendo del mdulo que cargueo mos. Las opciones de conguracin para cada mdulo de salida son las siguientes: o o Syslog: output alert_syslog: LOG_AUTH LOG_ALERT output alert_syslog: host= hostname:port, LOG_AUTH LOG_ALERT Donde hostaname y port son la direccin IP y el puerto de nuestro servidor Syslog. o Database: output database: log, database_type, user= user_name password= password dbname host= database_address Donde debemos reemplazar database type por una base de datos vlida, user name por un a nombre de usuario vlido en la base de datos y password por la contrasea asociada al usuario. a n La variable dbname identica el nombre de la base de datos en la que se va a realizar el registro. Por ultimo, database address es la direccin IP del servidor que contiene la base de datos. o No se recomienda intentar ejecutar Snort y la base de datos en el mismo servidor, suele provocar una bajada considerable del rendimiento del sistema. Unied : Es un formato binario bsico para registrar los datos y usarlos en el futuro. a Los dos argumentos adminitidos son lename y limit: output alert_unified: filename snort.alert, limit 128 5. Personalizamos los conjuntos de reglas: El archivo snort.conf permite aadir o eliminar clases enteras n de reglas. En la parte nal del archivo podremos ver todos los conjuntos de reglas de alertas. Podemos desactivar toda una categor de reglas comentando la l a nea. Por ejemplo, podr amos desactivar todas las reglas icmp-info para reducir los falsos positivos del trco ping o todas las a reglas NetBIOS si no tenemos mquinas Windows en nuestra red. Tambin podemos encontrar a e disponibles conjuntos de reglas que se han ajustado para entornos espec cos.

13.5.6.

Clases de reglas

La forma ms fcil de limitar el trco de las alertas es desactivar reglas que no se aplican en nuestro a a a sistema, esto lo podemos hacer entrando en la conguracin de Snort. El directorio /etc/snort/rules/ o contiene muchos archivos con la extensin .rules, cada uno de ellos contiene las reglas agrupadas por o categor a. Podemos deshabilitar toda una clase de reglas comentndola en el archivo de conguracin o podemos a o deshabilitar reglas individuales si queremos la proteccin del resto de reglas de la clase. Para comentar o una regla concreta, la buscamos en los archivos .rules apropiados e insertamos un comentario delante de la l nea de dicha regla. Hay que tener en cuenta que normalmente es mejor deshabilitar un sola regla que toda la clase, a no ser que sta no se aplique en nuestra conguracin. e o En el cuadro 13.2 podemos observar una lista con las clases de reglas ms habituales en Snort y una a pequea descripcin de las mismas. n o

Jose Antonio Escart Vigo, Junio 2005. n

224

Servidor Linux para conexiones seguras de una LAN a Internet

Cuadro 13.2: Clases de reglas de Snort (I) Clase de reglas Descripcin o attack-response.rules Son las alertas para paquetes de respuesta comunes despus de que un atae que haya tenido xito. Raramente se informan como falsos positivos y dee bemos dejarlas activadas en la mayor de los casos. a backdoor.rules Estas reglas son signos comunes de una puerta trasera o de un programa troyano en uso. Raramente son falsos positivos. bad-traffic.rules Estas reglas representan el trco de red no estndar que normalmente no a a deber verse en la mayor de las redes. a a chat.rules Localizan transmisiones estndar para muchos programas conocidos de cona versacin. Si la conversacin se permite impl o o citamente o expl citamente estas alertas deben estar deshabilitadas. As mismo, hay que tener en cuenta que estas alertas no son una solucin milagrosa para las conversaciones y o no detectarn todos los tipos de trco de conversaciones. a a ddos.rules Busca tipos de ataques de denegacin de servicio distribuido estndares. En o a DMZ y WAN, estas alertas no sirven de mucho porque si se ha producido un ataque de este tipo probablemente lo sepamos en seguida. Sin embargo, pueden ser muy utiles dentro de una LAN para comprobar si tenemos una mquina zombi en otra red participando en un ataque de denegacin de a o servicio (DoS) sin saberlo. dns.rules Buscan algunos abusos estndar contra servidores DNS. Si no estmos ejea a cutando un servidor DNS propio, podemos desactivarlas. dos.rules Similar al conjunto de reglas anterior. experimental.rules Estn deshabilitadas de forma predeterminada. Generalmente se utilizan a slo para probar nuevas reglas hasta que se desplazan a otra categor o a. exploit.rules Estas reglas son para el trco de abuso estndar, siempre habilitadas. a a finger.rules Estas reglas marcan el trco que tiene que ver con los servidores nger. Si a no estmos ejecutando ninguno de estos servidores, las podemos deshabilia tar. Sin embargo, este tipo de servidores normalmente se ejecutan ocultos al administrador del sistema, por lo que podemos dejarlas habilitadas, ya que no suelen generar falsos positivos. ftp.rules Igual que las reglas anteriores pero buscan abusos de FTP. Una vez ms, a podemos dejarlas habilitadas aunque no tengamos servidores FTP ya que nos avisarn de cualquier servidor FTP ilegal en el sistema. a icmp-info.rules Estas reglas registran el uso de los mensajes ICMP que cruzan la red, por ejemplo, los ping. A menudo producen falsos positivos, podemos desactivar toda la clase a no ser que deseemos estar pendientes del trco ICMP a en nuestra red. Otra clase de trco ICMP daino conocido, icmp.rules, a n captura los escaneados de puertos y similares. icmp.rules Cubre el trco ICMP sospechoso o daino y es poco propenso a generar a n falsos positivos. Sin embargo, es posible que se activen en una red ocupada ejecutando muchos servicios de diagnstico. o imap.rules Reglas correspondientes al uso del protocolo de acceso a mensajes desde internet (IMAP, Internet Message Access Protocol). info.rules Capturan mensajes de errores diversos: Web, FTP y otros servidores. local.rules En este archivo podemos aadir nuestras propias rmas o reglas personalin zadas para la red, el archivo est vac de forma predeterminada. a o misc.rules Reglas que no encajan en ninguna de las restantes categor as. multimedia.rules Registra el uso de software de v deo. Si permitimos las aplicaciones de v deo o utilizamos video-conferencia, debemos deshabilitar estas reglas.

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

225

Clase de reglas mysql.rules

Netbios.rules

nntp.rules oracle.rules other-ids.rules

p2p.rules

policy.rules

pop3.rules porn.rules

rpc.rules

rservices.rules

scan.rules

shellcode.rules

smtp.rules

sql.rules

Cuadro 13.3: Clases de reglas de Snort (II) Descripcin o Vigila el acceso del administrador y otros archivos importantes en una base de datos MySQL. Si no ejecutamos este tipo de base de datos, podemos deshabilitar estas alertas. As mismo, si nuestra base de datos MySQL est en a desarrollo, podr producirse muchos falsos positivos. an Esta clase de reglas nos alerta de diversa actividad NetBIOS en la LAN. Algunas de ellas son exploits evidentes. Sin embargo, otras, como las alertas de sesin NULL, pueden producirse normalmente en una LAN Windows. o Tendrmos que jugar con esta seccin para deducir cules son las reglas e o a apropiadas en nuestra LAN. Reglas relacionadas con el servidor de noticias. Si no ejecutamos noticias de red en los servidores, es mejor deshabilitar estas reglas. Reglas del servidor de base de datos Oracle. Si no tenemos un servidor de este tipo, las deshabilitamos. Estas reglas se relacionan con exploits en los IDS de otros fabricantes. Es muy probable que no tengamos ningn otro NIDS en la LAN, pero si es u as hay que dejarlas habilitadas. Reglas que rigen el uso del software para compartir archivos punto a punto. Estas reglas crearn alertas durante el uso normal de este software, si lo a permitimos, deberemos deshabilitarlas. Este archivo contiene diversas alertas relacionadas con toda la actividad permitida en la LAN, como Go-to-my-pc y otros programas. Debemos revisarlas y habilitar slo las que se aplican en nuestras pol o ticas internas. Para servidores de correo, si tenemos un servidor de este tipo, hay que dejarlas habilitadas. Estas reglas son trampas rudimentarias para la exploracin web relacionada o con la pornograf No constituyen ni mucho menos un reemplazo para los a. buenos sistemas de ltrado de contenido. Esta clase controla las alertas de llamadas a procedimientos remotos (RPC). Aunque creamos no ejecutar ninguno de estos servicios, normalmente se activan como parte de otros programas, por lo que es importante tener cuidado con lo sucede en la LAN. RPC puede habilitar la ejecucin remota o de cdigo y normalmente se utiliza en los troyanos y exploits. o Registra el uso de diversos programas de servicios remotos, como rlogin y rsh. Estas reglas en general, son de servicios inseguros, pero si tenemos que utilizarlos, pueden examinarse con este conjunto de reglas. Alertas para utilizar programas de escaneado de puertos. Los escaneados de puertos son una indicacin extraordinaria de una actividad il o cita. Si utilizamos escneres de puertos, podemos desactivar Snort durante su ejecucin o a o deshabilitar esta regla en concreto para la IP donde se encuentra el escner. a Esta clase busca paquetes que contienen cdigo de montaje, comandos de o bajo nivel tambin conocidos como cdigo shell. Estos comandos normale o mente forman parte integral de muchos exploits como los desbordamientos de memoria. Capturar al momento un cdigo shell es una buena indicacin o o de que se est produciendo un ataque. a Contienen las alertas para el uso del servidor de correo en la LAN. Esta seccin necesitar algn ajuste ya que muchas actividades de servidor de o a u correo normales activarn reglas de esta seccin. a o Reglas para diversos programas de base de datos SQL. Si no ejecutamos ninguna base de datos, podemos deshabilitarlas, pero no es mala idea dejarlas por si existen bases de datos SQL ejecutndose sin que lo sepamos. a

Jose Antonio Escart Vigo, Junio 2005. n

226

Servidor Linux para conexiones seguras de una LAN a Internet

Clase de reglas telnet.rules

tftp.rules

virus.rules

web-attacks.rules web-cgi.rules web-client.rules web-coldfusion.rules web-frontpage.rules web-iis.rules web-php.rules X11.rules

Cuadro 13.4: Clases de reglas de Snort (III) Descripcin o Registra el uso de telnet sobre la red. Normalmente telnet se utiliza en enrutadores o en otros dispositivos de l nea de comandos, por lo que es recomendable realizar el registro incluso si telnet no est en nuestros servia dores. TFTP (FTP trivial) es un servidor FTP alternativo que se ejecuta normalmente en enrutadores. Puede utilizarse para cargar nuevas conguraciones y por consiguiente es mejor que este conjunto de reglas est habilitado. e Contiene las rmas de algunos gusanos y virus conocidos. Esta lista no est completa y no se mantiene con regularidad. No es un reemplazo para a el software de escaneado de virus pero puede capturar algunos gusanos que se transmitan por la red. Todas estas clases se reeren a diversos tipos de actividad web sospechosa. Algunas son genricas, como las clases web-attacks. Otras clases, como e web-iis y web-frontpage, son espec cas de una determinada plataforma de servidor web. Sin embargo, aunque creamos que no estamos ejecutando un servidor web Microsoft o PHP, es mejor dejarlas habilitadas para descubrir cualquier tipo de esta actividad en nuestra LAN de la que debamos preocuparnos. Tendremos que ajustar estos conjuntos de reglas, especialmente si los servidores web se encuentra en un desarrollo activo. Registra el uso del entorno grco X11 en su red. a

13.5.7.

Ejecutar como servicio del sistema

Si vamos a ejecutar Snort en un servidor que se va a utilizar las 24 horas del d siete d a la semana, a, as tendremos que ejecutar Snort inmediatamente al inicio para que, en el caso en el servidor caiga, se pueda volver a cargar Snort y siga protegiendo nuestra LAN. Una forma de conseguirlo es tener una pequea n secuencia de comandos que ejecute Snort con los parmetros de l a nea de comandos en las rutinas de inicio. Deberemos colocar el comando de arranque de Snort. Como por ejemplo: snort -h 192.168.0.0/24 -c /etc/snort/snort.conf & El signo de concatenacin & indica que se debe ejecutar Snort como un proceso en segundo plano. o

13.5.8.

Conguracin grca de Snort, interfaz Webmin o a

Realizar toda la conguracin para Snort desde la l o nea de comandos puede llegar a ser algo tedioso. Aunque todav no existe una interfaz grca para Snort, existe un mdulo para la conocida herramiena a o ta de administracin web Webmin que nos permite realizar ajustes y conguraciones desde un servidor web. o Algunas de las ventajas de este sistema son: Acceso a los archivos de conguracin de Snort, basado en un formulario. o Niveles de acceso de usuario que permiten congurar diferentes usuarios con diferentes derechos. Capacidad para para habilitar y deshabilitar conjuntos de reglas mediante un simple clic. Indicador de estado para todas las reglas y conjuntos de reglas. Enlaces incrustados a bases de datos externas como archNIDS, CVE y Bugtraq. Registro de cambios. Diferentes idiomas.
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o Soporte para ejecutar Snort como servicio utilizando archivos rc.d. Administracin remota segura a travs de SSL (si esta habilitado). o e

227

El mdulo de Snort requiere la versin 0.87 de Webmin o superior. Instalaremos el mdulo con apt: o o o #apt-get install webmin-snort Para acceder al sistema, con SSL y si no hemos cambiado el puerto por defecto: https://localhost:10000 Una vez iniciada la sesin en la pgina de Snort (vase gura 13.1), podremos ver las secciones prino a e cipales del archivo de conguracin, las conguraciones del procesado previo y las opciones de inicio de o sesin en la parte superior de la ventana. Haga clic en cualquiera de las opciones de conguracin para o o introducir su informacin personal para que Webmin realice los cambios apropiados en los archivos de o Snort.

Figura 13.1: Mdulo Webmin de Snort o Todos los conjuntos de reglas aparecen en una lista, podemos ver cules estn habilitados y cuales no. a a Si queremos visualizar dicho conjunto de reglas o modicar una regla individual, hacemos clic en el texto subrayado de color azul para dirigirnos a la pgina Edit RuleSet (editar conjunto de reglas). Aqu se a encuentran todas las reglas individuales dentro de dicho conjunto. Podemos ejecutar acciones en cada regla como deshabilitarla, habilitarla o eliminarla del conjunto. Si existen referencias a bases de datos externas dentro de la alerta, como los nmeros de Vulnerabilidad u o exploit comnes (VCE, Common Vulnerability or Exploit), podemos hacer clic en un hiperv u nculo para abrir ms detalles sobre lo que hace la alerta. En esta interfaz se puede ajustar el conjunto de alertas ms a a fcilmente. a Con el mdulo Webmin Snort tambin podemos congurar usuarios para que puedan acceder a deo e terminadas conguraciones. Esto se realiza mediante el control de usuarios de Webmin, en la seccin o
Jose Antonio Escart Vigo, Junio 2005. n

228

Servidor Linux para conexiones seguras de una LAN a Internet

correspondiente de acceso a Snort. Podemos controlar los archivos de conguracin a los que pueden aco ceder o simplemente dejar que visualicen los archivos sin poder editar ninguno de ellos. Como se puede comprobar, el mdulo Webmin Snort nos proporciona un control de acceso granular para que podamos o delegar las tareas diarias en usuarios con privilegios de administracin, a la vez que seguimos conservando o el control de la conguracin y los cambios. o

13.5.9.

Personalizar reglas

Aunque los conjuntos de reglas estndar incluidos en Snort proporcionan una proteccin adecuada a o contra rmas de ataques conocidas, podemos disear algunas reglas personalizadas espec n cas para que nuestra red obtenga el mejor rendimiento del IDS. Se pueden escribir reglas para: Registra el acceso hacia o desde determinados servidores. Buscar determinados tipos de nombres de archivos espec cos en nuestra organizacin. o Vigilar determinados tipos de trco que no pertenecen a nuestra propia red. a La escritura de reglas de Snort es fcil de aprender y nos permite aadir funcionalidades al programa, a n sin muchos conocimientos de programacin. Como hemos podido comprobar, las reglas de Snort son o simplemente declaraciones de texto dentro de un archivo de reglas. Si deseamos que Snort busque un comportamiento unico que deber ser sospechoso en nuestra red, a podemos codicar rpidamente una regla y probar el resultado. El formato de una regla de Snort es bsia a camente una sola l nea de texto que empieza con una accin (normalmente alert) seguida por diversos o argumentos. Se pueden aadir multiples l n neas simplemente aadiendo una barra inclinada (/) al nal n de cada l nea. Tambin se puede llamar a otros programas utilizando una declaracin de inclusin para e o o obtener una regla ms compleja. a En su forma bsica, una regla de Snort consta de dos partes: a Un encabezado de regla Las opciones de la regla Aqu tenemos un ejemplo: alert tcp any any 192.168.0.0/24 / (content:"|00 05 A4 6F 2E|";msg:"Test Alert";) El encabezado de la alerta es la parte anterior al parntesis de apertura. Esta declaracin contiene la e o accin (en este caso, alert), el protocolo y las direcciones de puertos de origen y destino. La accin es lo o o que va a hacer la regla, si esta es verdadera. Las opciones para las acciones son: alert log pass activate Dynamic Alerta del cumplimiento de la regla. Slo registra el paquete. o Ignora el paquete, es la accin predeterminada en paquetes que no coino ciden con la regla. Alertar y a continuacin activar una regla dinmica. o a Permanecer inactiva hasta que se active, a partir de entonces acta como u una regla normal registro.

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

229

Los protocolos puede ser tcp, udp, icmp o ip, lo que signica cualquier protocolo IP (puede que en un futuro se admitan protocolos no basados en IP, como IPX). Los puertos de origen y destino se explican por s mismos. La direccin de origen es la primera, lis o tada en la notacin de barra inclinada estndar para los rangos IP. Tambin podemos listar mltiples o a e u direcciones individuales y redes separndolas con una coma, sin espacios y escribiendo la declaracin entre a o corchetes, por ejemplo: alert tcp any <> [192.168.0.2,192.168.0.5,192.168.0.10] 80 / (content:"|00 05 A4 6F 2E|";msg:"Test Alert";) Esta sentencia se centra en el trco que proviene de cualquier direccin enlazada para las mquinas a o a 192.168.0.2, 192.168.0.5 y 192.168.0.10 en el puerto 80. Suponiendo que se tratan de nuestros servidores Web, la sentencia buscar el trco entrante con los datos hexadecimales de la seccin de contenido. a a o La segunda parte de una alerta Snort son las opciones de la regla. Aqu es donde podemos especicar ms detalles sobre el tipo de trco que estamos buscando. Podemos buscar segn los campos del encabea a u zado TCP/IP o buscar simplemente la cargar util del paquete. Despus de cada comando debemos incluir e comillas y el valor que se est buscando. Podemos aadir mltiples opciones separndolas con un punto y a n u a coma. El cuadro 13.5 contiene los comandos de opcin vlidos en la confeccin de reglas. o a o

13.6.

Deteccin de intrusiones en el host o

Hemos tratado con detalle la deteccin de intrusiones basadas en redes (NIDS). Sin embargo, existen o otras formas de encontrar intentos de intrusin. o Un mtodo alternativo es buscar signos de intrusin en el propio sistema. Si se ha aprovechado un e o exploit en una mquina, normalmente se alterarn determinados archivos del sistema. Por ejemplo, puede a a cambiar el archivo de contraseas, pueden aadirse usuarios, pueden modicarse archivos de conguracin n n o del sistema o se pueden alterar los permisos de algunos archivos. Normalmente, estos archivos de sistema no deber cambiar mucho. Al buscar modicaciones podemos detectar una intrusin u otra actividad an o inusual. Este mtodo de deteccin de intrusin puede ser mucho ms preciso, produciendo menos falsos posie o o a tivos ya que no se activan a no ser que un sistema est realmente afectado. Algo ms complicado es el e a mantenimiento ya que tenemos que cargar el software en cada sistema que deseamos proteger. Podemos armar que merece la pena el tiempo y el esfuerzo empleados para detectar las intrusiones basadas en hosts y en redes con el n de proteger los sistemas que ejecutan tareas cr ticas. Los mtodos de deteccin de intrusin basados en hosts tienen las siguientes ventajas: e o o Menos falsos positivos. Se registran actividades en lugar de rmas, no necesitan actualizaciones constantes de rmas. Necesitan menos ajustes. Los mtodos de deteccin de intrusin basados en hosts tienen los siguientes inconvenientes: e o o Hay que cargar y administrar el software en cada host a proteger. La alerta tiene lugar despus de que un ataque haya tenido xito. Muy pocas veces los IDS de host e e nos proporcionan un aviso previo.

Jose Antonio Escart Vigo, Junio 2005. n

230

Servidor Linux para conexiones seguras de una LAN a Internet

Opcin o msg logto ttl tos id ipoption fragbits dsize ags seq ack itype icode icmp id icmp seq content content-list oset depth nocase session rpc resp react referernce sid rev classtype priority uricontent tag ip proto sameip stateless regex byte test distance byte test byte jump

Cuadro 13.5: Opciones de personalizacin en las reglas de Snort o Descripcin o Proporciona la descripcin del texto de una alerta. o Registra el paquete para un nombre de archivo espec co de un usuario en lugar de para el archivo de salida estndar. a Prueba el valor del campo TTL del encabezado IP. Prueba el valor del campo TOS del encabezado IP. Prueba el campo ID del fragmento del encabezado IP para un valor espec co. Vigila los campos de opcin IP buscando cdigos espec o o cos. Prueba los bits de fragmentacin del encabezado IP. o Prueba el tamao de carga util del paquete frente a un valor. n Prueba los indicadores TCP para determinados valores. Prueba el campo de nmero de secuencia TCP para un valor espec u co. Prueba el campo de reconocimiento TCP para un valor espec co. Prueba el campo de tipo ICMP frente a un valor espec co. Prueba el campo de cdigo ICMP frente a un valor espec o co. Prueba el campo ICMP ECHO ID frente a un valor espec co Prueba el nmero de secuencia ICMP ECHO frente a un valor espec u co. Busca un patrn en la carga util del paquete. o Busca un conjunto de patrones en la carga util del paquete. Modicador para la opcin de contenido. Establece la compensacin en el intento de o o coincidencia con el patrn. o Modicador para la opcin de contenido. Establece la profundidad de bsqueda para un o u intento de coincidencia con el patrn. o Compara la cadena de contenido anterior sin tener en cuenta las maysculas y las u minsculas. u Descarga la informacin de la capa de aplicacin para una determinada sesin o o o Vigila los servicios RPC en bsqueda de determinadas llamadas de aplicaciones o proceu dimientos. Respuesta activa (por ejemplo, cerrar todas las conexiones). Respuesta activa. Responde con un conjunto de comportamientos cifrados (por ejemplo, bloquear determinados sitios web). Los ID de referencia de ataques externos. ID de regla Snort. Nmero de revisin de regla. u o Identicador de clasicacin de regla. o Identicador de severidad de regla. Busca un patrn en la parte URI del paquete. o Acciones de registro avanzadas para las reglas. Valor de protocolo del encabezado IP. Determina si la IP de origen es igual a la IP de destino. Vlido independientemente del estado del ujo. a Coincidencia de patrn de caracteres comod o n. Evaluacin numrica. o e Obliga a que la coincidencia de patrn relativa omita determinado nmero de bytes en o u el paquete. Prueba numrica del patrn. e o Prueba numrica del patrn y ajuste de compensacin e o o

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

231

13.7.

Integridad de archivos: IDS Tripwire

Originalmente, Tripwire era de libre distribucin. Al nal, los creadores fundaron una empresa para o venderlo y soportarlo comercialmente. Sin embargo, cogieron el cdigo base original y lo distribuyeron o con licencia GPL para que pudiera continuar su desarrollo en la comunidad de la libre distribucin. Esta o versin libre se ha ido actualizando desde su lanzamiento (versin 2.2.1). o o Ambas versiones funcionan creando una base de datos de atributos bsicos, archivos importantes que a deseamos registrar para comprobar los atributos reales, en cualquier momento, frente a los atributos bsicos. Con ello determinaremos si ha cambiado algo. a Uno de los trucos favoritos de los piratas informticos, una vez introducidos en un sistema, es reemplaa zar los archivos binarios clave con versiones de su propia cosecha. As cuando utilizamos comandos como ls o ps, no vemos sus archivos il citos ni la ejecucin de determinados procesos. Tambin podemos utilizar o e Tripwire durante una investigacin forense para descubrir dnde ha estado un intruso, es como seguir las o o huellas digitales de una persona. Para instalar el programa hacemos un apt: #apt-get install tripwire

Congurar Tripwire
Antes de ejecutar Tripwire hay que establecer la pol tica. El archivo de pol ticas es muy importante para el funcionamiento de Tripwire: le indica que archivos debe vigilar y a qu nivel de detalle debe e introducirse. El archivo principal de pol ticas es: /etc/tripwire/twpol.txt. Este no es el propio archivo de pol ticas, sino una copia de la versin cifrada que el programa utiliza. Para obtener una mejor seguridad, o deber amos hacer una copia y eliminarlo, una vez establecidas y probadas sus pol ticas. Este archivo contiene en su parte superior algunas variables, un listado de los diversos archivos y directorios que se chequearan, las directivas y las pol ticas que les aplicaremos. Estas directivas se representan mediante letras de cdigo o nombres de variable, denominadas mscaras o a de propiedad, y representan las propiedades que est registrando Tripwire. a El cuadro 13.6 recoge la lista de los elementos que se pueden registrar para cada archivo y sus letras de cdigo. o Cuadro 13.6: Mscaras de propiedad de Tripwire a Letras de cdigo o a b c d g i l m n p s t u c h m s Atributos registrados Ultimo acceso Bloques asignados Crear/modicar hora Dispositivo ID en el que reside el i-nodo ID de grupo del propietario del archivo Nmero de i-nodo u Si se permite crecer el archivo Modicacin de la fecha y hora impresa o Nmero de enlaces al i-nodo u Leer/escribir/ejecutar permisos en el archivo Tamao del archivo n Tamao del tipo n ID de usuario del propietario del archivo Cdigo CRC32 o Cdigo Haval o Cdigo MD5 o Cdigo SHA/SHS o

Jose Antonio Escart Vigo, Junio 2005. n

232

Servidor Linux para conexiones seguras de una LAN a Internet

Las pol ticas de Tripwire operan sobre el concepto de ignorar los indicadores. Podemos congurar Tripwire para que registre o ignore diferentes propiedades de archivo. Para registrar propiedades utilizamos un signo ms (+) y para ignorarlas un signo menos (-). a El formato para la declaracin de un archivo de pol o ticas es el siguiente: file/directory name -> property mask; Por ejemplo, esta l nea en el archivo de pol ticas: /etc/secreto.txt -> +amcpstu; Producir que Tripwire nos noticase en cualquier momento, cundo se produjo el ultimo acceso, la a a fecha de creacin o modicacin, los permisos, la propiedad o el tamao del tipo de archivo, cambiado en o o n el archivo /etc/secreto.txt. Existen adems diversas mscaras de propiedad predenidas. En el cuadro 13.7 se incluyen dichas a a mscaras plantilla y sus efectos. a Cuadro 13.7: Mscaras de propiedad de plantillas a Mscara de propiedad a $Readonly $Dynamic $Growing $Device $IgnoreAll $IgnoreNone Efectos +pinugtsdbmCM-rlasSH +pinugtd-srlbamcCMSH +pinugtdl-srbamcCMSH +pugsdr-intlbamcCMSH -pinugtsdrlbamcCMSH +pinugtsdrlbamcCMSH

Estas variables predenidas encajan en el comportamiento de diferentes conjuntos de archivos. Por ejemplo, podemos utilizar $Readonly para nuestros archivos de conguracin clave, ya que sus fechas o de acceso estarn continuamente cambiando cuando los programas los utilicen, pero no deseamos que el a contenido o el tamao cambien. Podemos utilizar $Growing para nuestros archivos de registro ya que estn n a constantemente creciendo. El archivo de conguracin de pol o ticas tambin dene algunas variables que son combinaciones de las e conguraciones predeterminadadas anteriores con algunas adiciones o sustracciones, proporcionndonos a un establecimiento rpido para las pol a ticas de diversas clases de archivos. El siguiente cdigo muestra las variables contenidas en el archivo /etc/tripwire/twpol.txt: o
@@section GLOBAL TWBIN = /usr/sbin; TWETC = /etc/tripwire; TWVAR = /var/lib/tripwire; # # File System Definitions # @@section FS # # First, some # SEC_CRIT SEC_BIN SEC_CONFIG

variables to make configuration easier = $(IgnoreNone)-SHa ; = $(ReadOnly) ; = $(Dynamic) ;

# Critical files that cannot change # Binaries that should not change # Config files that are changed # infrequently but accessed # often SEC_LOG = $(Growing) ; # Files that grow, but that # should never change ownership SEC_INVARIANT = +tpug ; # Directories that should never # change permission or ownership SIG_LOW = 33 ; # Non-critical files that are of # minimal security impact SIG_MED = 66 ; # Non-critical files that are of # significant security impact SIG_HI = 100 ; # Critical files that are # significant points of # vulnerability .......................................................................

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

233

Debajo de las mscaras de propiedad, se establecen las pol a ticas para los diversos archivos y directorios del sistema. Podemos empezar con el archivo de pol ticas predeterminado y comprobar su funcionamiento. Hay que tomarse tiempo para examinar a fondo el archivo y comprobar qu archivos se estn registrando. e a Una vez hecho esto, ya estaremos preparados para ejecutar Tripwire.

Inicializar la base de datos bsica a


El primer paso en la ejecucin de Tripwire es establecer la base de datos bsica, creando as la lista o a inicial de rmas frente a las que se deben utilizar las pol ticas. Recordemos que debemos ejecutar Tripwire, idealmente, una vez instalado y congurado el sistema; y despus cuando sospechemos que no funcionan e bien algunos archivos en nuestro sistema. Para establece la base de datos de archivo inicial utilizamos el siguiente comando: #tripwire -m i -v El modicador -m especica el modo a ejecutar, en este caso i para inicializar. El modicador -v le proporciona una salida por pantalla para que podamos ver lo que est sucediendo. Tripwire audita todos los a archivos especicados en nuestro archivo de politicas, crea la datos en /var/lib/tripwire/ <hotsname>.twd y lo cifra utilizando la frase de contrasea de site, especicada anteriormente. n Para que Tripwire sea realmente seguro, debemos hacer una copia de su base de datos bsica en algn a u medio seguro (disquete, CD o cinta). Si lo guardamos localmente siempre existe la posibilidad de que se pueda alterar el archivo, aunque Tripwire tiene algunas protecciones contra este tipo de acciones.

Comprobar la integridad del archivo


Es el modo principal de ejecucin en Tripwire una vez se haya congurado. Compara los atributos o actuales de los archivos especicados con los de la base de datos de Tripwire. El formato es el siguiente: #tripwire -m c file.txt Donde debemos reemplazar le.txt con la ruta de acceso al archivo o a los directorios que deseamos comprobar. Vericar los atributos de dicho archivo, segn las especicaciones del archivo de pol a u ticas y devolver un informe con los cambios producidos. a Por ejemplo podr amos hacer algo as :
# tripwire -m c /bin/* Integrity checking objects specified on command line... Wrote report file: /var/lib/tripwire/report/debian-20050610-210613.twr

Tripwire(R) 2.3.0 Integrity Check Report Report generated by: Report created on: Database last updated on: root vie 10 jun 2005 21:06:13 CEST Never

=============================================================================== Report Summary: =============================================================================== Host name: debian Host IP address: Unknown IP Host ID: None Policy file used: /etc/tripwire/tw.pol Configuration file used: /etc/tripwire/tw.cfg Database file used: /var/lib/tripwire/debian.twd Command line used: tripwire -m c /bin/arch /bin/bash /bin/cat /bin/chgrp /bin/chmod /bin/chown /bin/cp /bin/cpio /bin/csh /bin/date /bin/dd /bin/df /bin/dir /bin/dmesg /bin/dnsdomainname /bin/echo /bin/ed /bin/egrep /bin/false /bin/fgconsole /bin/fgrep /bin/fuser /bin/grep /bin/gunzip /bin/gzexe /bin/gzip /bin/hostname /bin/kill /bin/ln /bin/loadkeys /bin/login /bin/ls /bin/lsmod /bin/lsmod.modutils /bin/lspci /bin/mkdir /bin/mknod /bin/mktemp /bin/more /bin/mount /bin/mountpoint /bin/mt /bin/mt-gnu /bin/mv /bin/nano /bin/netstat /bin/pidof /bin/ping /bin/ps /bin/pwd /bin/rbash /bin/readlink /bin/rm /bin/rmdir /bin/run-parts /bin/sed /bin/setpci /bin/setserial /bin/sh /bin/sleep /bin/stty /bin/su /bin/sync /bin/tar /bin/tcsh /bin/tempfile /bin/touch /bin/true /bin/umount /bin/uname /bin/uncompress /bin/vdir /bin/zcat /bin/zcmp /bin/zdiff /bin/zegrep /bin/zfgrep /bin/zforce /bin/zgrep /bin/zless /bin/zmore /bin/znew

Jose Antonio Escart Vigo, Junio 2005. n

234

Servidor Linux para conexiones seguras de una LAN a Internet

=============================================================================== Rule Summary: =============================================================================== ------------------------------------------------------------------------------Section: Unix File System ------------------------------------------------------------------------------Rule Name --------Root file-system executables (/bin) Total objects scanned: 82 Total violations found: 0 =============================================================================== Object Summary: =============================================================================== ------------------------------------------------------------------------------# Section: Unix File System ------------------------------------------------------------------------------No violations. =============================================================================== Error Report: =============================================================================== No Errors ------------------------------------------------------------------------------*** End of report *** Tripwire 2.3 Portions copyright 2000 Tripwire, Inc. Tripwire is a registered trademark of Tripwire, Inc. This software comes with ABSOLUTELY NO WARRANTY; for details use --version. This is free software which may be redistributed or modified only under certain conditions; see COPYING for details. All rights reserved. Integrity check complete. Severity Level -------------100 Added ----0 Removed ------0 Modified -------0

Actualizar la base de datos


A medida que ajustamos las pol ticas y realizamos cambios importantes en el sistema, podremos actualizar la base de datos para que reeje con precisin el estado vlido de los archivos. Es importante o a no slo que se aadan nuevos archivos y directorios a la base de datos sino tambin que se eliminen los o n e falsos positivos. No se debe actualizar la base de datos si existe alguna posibilidad de que nuestro sistema haya sido comprometido. As se invalidarn las rmas y nos aseguraremos de que la base de datos Tripwire es util. Podemos a actualizar los directorios seleccionados despus de todo, algunos elementos como pueden ser los binarios e del sistema, cambiarn en contadas ocasiones. a Para actualizar la base de datos de Tripwire, utilizaremos el siguiente comando: #tripwire -m u -r path_reporte_anterior Tendremos que reemplazar path reporte anterior con el nombre y ruta de acceso del archivo de informe ms reciente. La ejecucin de este comando nos mostrar todos los cambios que se han producido y las a o a reglas que los detectan. Tendremos una X en los cuadros de los archivos en los que Tripwire haya detectado cambios. Si deja ah la X, Tripwire actualizar la rma para dicho archivo cuando salgamos de ste. Si elimina la X, Tripwire a e supondr que la rma original es la correcta y no la actualizar. Al salir, Tripwire ejecutar dichos cambios. a a a Tambin, podemos especicar -c en el comando para salir realizando la vista previa y dejar que Tripwire e realice los cambios para los archivos que haya detectado.

Actualizar el archivo de pol ticas


Con el tiempo nos daremos cuenta que reglas no estn generando alertas vlidas y necesitaremos elia a minar o cambiar las mscaras de propiedad. Para ello realizaremos los cambios necesarios en el archivo de a pol ticas de Tripwire.

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

235

Una vez guardados ejecutaremos el comando siguiente, para que Tripwire actualice el archivo de pol ticas: #tripwire -m p politica.text Donde debemos reemplazar politica.text con el nuevo archivo de pol ticas. Tripwire nos pedir que a introduzcamos la contrasea local y de site antes de actualizar la pol n tica. Cuando hayamos ajustado sucientemente las pol ticas de Tripwire, podremos crear una tarea que se ejecute diariamente (o con la frecuencia deseada) para revisar el sistema de archivos en busca de archivos modicados.

13.8.

ACIDlab: Analizar alertas IDS

La consola de anlisis para bases de datos de alarmas de intrusin (ACID, Analysis Console for Ina o trusion Databases) es un programa diseado para hacer un mejor uso de los dispositivos de deteccin de n o intrusin. Esta es su pgina ocial: o a http://acidlab.sourceforge.net/ La idea que se esconde detrs de ACID es portar todos los datos de deteccin de intrusin a una a o o base de datos donde se puedan ordenar y organizar por prioridades. Nos proporciona un panel de control basado en web para visualizar y manipular estos resultados. Utiliza cualquier base de datos SQL y cualquier servidor web, admitiendo mltiples sensores para los u datos de entrada. Acepta alertas Snort y archivos de registro ajustados a los registros del sistema. Actualmente, ACID slo funciona directamente con un IDS, Snort, pero podemos importar registros en o la base de datos de ACID desde cualquier dispositivo que produzca una salida en formato tipo archivo de registro utilizando una utilidad denominada Logsnorter, que se encuentra disponible en la web de ACID. Necesitamos cumplir unos requisitos previos para que funcione correctamente: Debemos tener instalados una base de datos, un servidor web y el PHP. Para instalarlo y hacerlo funcionar con Snort, necesitamos comunicar los dos programas a travs de e una base de datos, por ejemplo MySQL. Instalaremos los siguientes paquetes: #apt-get install acidlab acidlab-doc acidlab-mysql Si queremos enlazar Snort a travs de una base de datos MySQL con ACID debemos instalar el paquete: e #apt-get install snort-mysql Sustituir el antiguo Snort por otro que produzca las salidas en una base de datos MySQL. a Es muy recomendable instalar ACID en una mquina independiente de Snort. Colocarlos en la misma a mquina no slo es poco recomendable desde el punto de vista de la seguridad sino que adems inundar de a o a a alertas el sensor Snort hasta hacerlo inservible. El host con ACID debe de ubicarse en un sitio donde no pueda acceder el sensor de Snort.

Conguracin de ACID o
Este es el archivo de conguracin del sistema ACIDlab: o /etc/acidlab/acid_conf.php En la siguiente tabla se puede observar la descripcin de las variables contenidas en el archivo: o

Jose Antonio Escart Vigo, Junio 2005. n

236

Servidor Linux para conexiones seguras de una LAN a Internet

Cuadro 13.8: Variables de conguracin de ACID o Nombre de variable $DBtype $alert_dbname Descripcin o Tipo de base de datos ACID que se va a utilizar. El valor predeterminado es mysql, pero tambin podemos establecer postgresql o mssql. e El IDS desde donde se estn obteniendo las alarmas para ACID. Aca a tualmente solo adminte Snort (snort log), en el futuro admitir otros IDS. El host en el que se va a guardar la base de datos de alerta. Puede ser una direccin IP o un nombre de host. Si se est ejecutando en la misma o a mquina, ser localhost. Para una mejor seguridad y rendimiento, es a a recomendable ejecutar la base de datos en una mquina distinta a la del a servidor web con PHP. Puerto sobre el que se accese a la base de datos. Si es local, slo debemos o introducir para este valor. Nombre de usuario de base de datos que va a utilizar ACID para registrar los datos. Hay que asegurarse de que coincide con el nombre de usuario MySQL creado en la conguracin de la base de datos o La contrasea para el usuario de la base de datos. Una vez ms, hay que n a asegurarse de que coincide con la contrasea MySQL para dicho usuario. n Nombre de la base de datos de Snort. El valor predeterminado es snort archive, a no ser que estemos guardando mltiples bases de dau tos en esta mquina y deseemos escribir nombres ms descriptivos a a Host donde se va a ubicar la base de datos de archivo. Si est en la a misma mquina debe ser localhost. a Puerto para iniciar la sesin en el servidor de base de datos. Introducimos o si estamos iniciando la sesin localmente. o Usuario de base de datos para registrar los datos de archivo. Normalmente es el mismo valor que el de la variable anterior, $alert_user, aunque se pude crear un usuario independiente para registrar los archivos. Contrasea para que el usuario de la base de datos registre los datos de n archivo. Como en el caso anterior, el valor suele ser el mismo que el de $alert_password. Ruta de acceso a los mdulos de creacin de grcos. o o a Formato de archivo de los grcos. El formato predeterminado es png. a Otros formatos vlidos son jpg y gif. a

$alert_host

$alert_port $alert_user

$alert_password $archive_dbname

$archive_host $archive_port $archive_user

$archive_password

$chartlib_path $chart_file_format

Ejecucin de ACID o
Una vez ajustado el archivo de conguracin nos debemos conectar a la direccin: o o http://localhost/acidlab/acid_main.php Se muestra la pgina de conguracin de ACID. A partir de este momento podremos utilizar la interfaz a o web para terminar la conguracin de ACID. o Hacemos clic sobre el boton Create ACID AG para crear una base de datos para los datos Snort. El nombre predeterminado de la base de datos es snort. Una vez hecho esto debemos dirigirnos a: http://localhost/acid La pgina principal de ACID y para ver la base de datos de Snort. a Una vez hecho esto hemos terminado la conguracin de ACID y podemos empezar a utilizarlo para o administrar el sistema IDS.
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

237

Utilizar ACID para ajustar y administrar nuestro NIDS


Antes de que el NIDS sea util debemos ajustarlo a nuestra red para eliminar alertas de falsos positivos. ACID puede ser una herramienta muy valiosa en esa tarea. Cuando ajustamos por primera vez el NIDS, todas las rmas de alerta se activarn y nuestra base de datos empezar a rellenarse con actividad de a a las alertas. La mayor de estas sern falsos positivos, para que los datos de alerta sean importantes en a a nuestra red, tenemos que empezar a eliminar algunas de estas rmas para reducir la actividad errnea y o proporcionar slo los datos procesables. o Cuando tengamos un nmero suciente en la base de datos (al menos unas miles de alertas), podemos u empezar a analizar datos y asi eliminar los tipos de alertas que no nos proporcionen informacin. o Si pulsamos Unique Alerts (Alertas unicas) se mostrarn las alertas ms recientes clasicadas por tipo a a de alerta. En est pgina podemos clasicar y ordenar por los siguientes campos: a a Nombre de la rma (<Signature>). Clasicacin de la alerta (<Classification>). o Nmero total de este tipo de alertas en la base de datos (<Total#>). u Nmero de sensores desde donde proviene la alerta (Sensor#). u Nmero de las diferentes direcciones IP de origen asociadas con dicha alerta (<Src. Addr.>). u Nmero de las diferentes direcciones IP de destino asociadas con dicha alerta (<Dest. Addr.>). u Hora en la que se ha incluido la alerta (<Firt> y <Last>). Hay que examinar las listas para averiguar si realmente es un problema de seguridad o un falso positivo: Se puede apreciar algn tipo de patrn? u o Provienen todas las alertas de la misma direccin IP? o Se dirigen todas las alertas a la misma direccin IP? o Se producen a intervalos regulares o lo hacen de forma aleatoria? Si este anlisis no nos conduce a ninguna conclusin, se puede buscar con ms detalle haciendo clic en a o a las alertas individuales. Basndose en la IP del emisor, podemos utilizar esta informacin para determinar si se trata de a o una direccin que normalmente est accediendo a nuestra red. Tambin podemos mirar ms abajo para o a e a comprobar la parte util del paquete (Se ve en hexadecimal y ASCII). Si determinamos que es un ataque al sistema podemos intentar tomar medidas. Normalmente sern a gusanos automatizados, ataque que se produce docenas de veces al dia. Aun as es mejor estar pendiente de estas alertas para comprobar si la IP persiste. Al menos, podemos asegurarnos de que la mquina atacada a esta protegida contra ese tipo de ataque y enviar una queja al ISP del atacante. Tambin se pueden e ejecutar otras acciones contra la direccin IP que aparece como IP de origen, como una persecucin legal o o o una accin civil, si se ha producido con xito la intrusin. o e o Al menos sabremos exactamente qu tipo de ataques se estn produciendo en nuestra red y lo que e a estn intentando hacer, As nuestra red estar ms protegida y podremos reaccionar si se produce un a , a a ataque.

Jose Antonio Escart Vigo, Junio 2005. n

238

Servidor Linux para conexiones seguras de una LAN a Internet

Figura 13.2: Detalle de una alerta ACID

Otras formas de analizar datos de alerta utlizando ACID


Ahora que disponemos de nuestra base de datos llena de alertas, podremos buscar las respuestas a algunas preguntas que se nos plantean a continuacin. o Quin es el objetivo del ataque? Al utilizar ACID, buscamos las direcciones IP ms comunes ya que e a muestran las direcciones IP que supuestamente son las ms atacadas y, por consiguiente, habr mquinas a a a sobre las que debemos centrar nuestros esfuerzos de proteccin, algo que nos ayudar a diferenciar entre o a los falsos positivos y los positivos reales. Podremos localizar cualquier mquina que est generando un a e gran nmero de alertas desde una aplicacin que se est ejecutando. u o a Un incremento sbito en las alertas hacia una direccin IP determinada puede apuntar que se esta u o iniciando un ataque sobre dicha mquina. A continuacin, podemos ejecutar escneres de vulnerabilidad, a o a comprobar los niveles de seguridad, restringir direcciones de IP origen en el enrutador, etc. Quin est atacando? Buscamos la direccin de origen IP que aparece con ms frecuencia. Para ello e a o a nos debemos dirigir a la lista IP de origen; as podremos ver la IP y el nombre de dominio totalmente calicado (FQDN, Fully Qualied Domain Name) que indica de dnde proviene el ataque. La ordenacin o o por el nmero de alertas permite ver a los peores atacantes, segn la generacin de alertas. Si las direcciones u u o IP con la mayor de las alertas estn en nuestra red, puede existir un culpable interno o una aplicacin a a o que est activando una alerta. e Utilizamos el proceso analizado anteriormente para llegar al detalle de la alerta. Si provienen de direcciones IP externas, tendremos que determinar si se trata de un enlace de trco leg a timo de nuestra red o son ataques reales. Buscamos en las alertas individuales para comprobar lo que esta pasando. Al hacer clic en la direccin se abre una pgina con informacin adicional sobre la direccin y algunas opciones o a o o para analizarla con ms detalle. a Analizando esas salidas podremos encontrar qu organizacin es propietaria de dichas IP. Y podremos e o registrar una queja en su centro de operaciones. As mismo, si comprobamos que determinadas direcciones aparecen una y otra vez, podremos ltrar estas direcciones IP en nuestro cortafuegos.
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

239

Cul es el servicio ms atacado? Al buscar los puertos ms comunes en los que las alertas se estn a a a a recibiendo podemos comprobar cules son los servicios ms atacados. Si comprobamos que hay muchas a a alertas basadas en web, deberemos de tener ms cuidado en el bloqueo de servidores web. a Si las alertas muestran mucha actividad NetBIOS de Windows, tendremos que mirar las pol ticas de contraseas y permisos de Windows. As podremos saber cules son los servicios en los que debemos n a centrar primero nuestra atencin. o

Mantener la base de datos ACID


A medida que crece nuestra base de datos, tendremos que ejecutar algn tipo de tarea de manteniu miento peridico, para evitar que se haga demasiado grande. As mismo, nuestras estad o sticas y grcos a sern ms precisos si archivamos nuestras primeras alertas, que van a contener muchos falsos positivos. a a As mismo, la limpieza de nuestra base de datos de vez en cuando agilizar el proceso de consultas. Para a archivar las alertas, utilizamos el control de consulta que se encuentra en la parte inferior de la pantalla principal. Podemos crear una consulta para las alertas que se desea archivar, por ejemplo, todas las alertas generadas el ultimo ao. Despus seleccionamos Archive Alerts (Archivar alertas) como accin para n e o la consulta. Podemos archivar alertas seleccionando por dato, alerta u otros criterios. Tambin podemos e elegir simplemente copiar las alerta en un archivo o eliminarlas. Las alertas archivadas se situarn en la a propia base de datos, con el nombre establecido en el archivo acid conf.php durante la conguracin. o Debemos archivar todas las alertas desde los primeros meses de funcionamiento cuando estbamos a ajustando el sensor de Snort. A partir de ahora, los datos sern ms importantes para los ataques reales a a frente a los falsos positivos. Es recomendable archivar al menos una vez al ao o quiz trimestralmente, n a dependiendo del volumen de alertas que se estn registrando. Como regla general, no es recomendable e tener ms de 100.000 alertas en la base de datos. a

13.9.

Logcheck: Analizar logs

Leer los logs, de nuestro sistemas es una tarea pesada y requiere bastante tiempo. Si tenemos bastante trabajo como administradores de sistemas, es probable que pasemos d o semanas sin mirarlos. Debido a as esto, no sabemos qu oscuras criaturas pueden estar penetrando nuestro sistema. Adems, cuando leemos e a logs la proporcin de informacin util respecto a la intil es alarmantemente baja . . . o o u Se hace necesario disponer de una herramienta que analize automticamente esa informacin y solo a o extraiga las partes interesantes de esos logs. Hacindolos mucho ms fciles de consultar y, sobre todo, e a a leer. Logcheck revisa peridicamente los logs del sistema , analizando y clasicando cada l o nea y segn difeu rentes niveles de alerta. Reportndolo al administrador del sistema en un formato fcil de leer, descartando a a las l neas que no tengan relevancia. Normalmente estos datos son enviados por correo. Logcheck chequear cada l a nea frente a cuatro niveles de seguridad: Ignorar, actividad inusual, violacin de seguridad y ataque. o Para instalar el programa necesitaremos hacer un apt: #apt-get install logcheck Logcheck opera encontrando expresiones regulares. Itera sobre cada uno de los archivos de log tres veces (para localizar mensajes inusuales, violaciones de seguridad y alertas de ataque) utilizando egrep para buscar los patrones. Podemos consultar el manual de egrep para poder construir reglas ms potentes. a

Archivos que utiliza Logcheck


Al instalar Logcheck nos encontramos en el sistema los siguientes archivos: logcheck.sh: Es el programa que se ejecutar cada vez que sea invocado logcheck. Es un script en a shell normal, e incluye la conguracin en un formato fcil de comprender. o a
Jose Antonio Escart Vigo, Junio 2005. n

240

Servidor Linux para conexiones seguras de una LAN a Internet logcheck.hacking: Tiene la lista de cadenas con las que una l nea ser identicada como intento de a entrar al sistema o de conseguir informacin acerca de l, y por tanto sern reportadas como ataques o e a activos, llamando la atencin de manera especial al administrador. o logcheck.ignore: Tiene la lista de expresiones que son muy comunes y no vale la pena reportarlas al administrador. logcheck.violations: Tiene la lista de expresiones que pueden ser consideradas moderadamente peligrosas, y son etiquetadas como violaciones de seguridad. logcheck.violations.ignore: Permite ser ms espec a co: Si una l nea concuerda con una de las expresiones de logcheck.violations pero tambin concuerda con una de ste archivo, la l e e nea es ignorada. tmp: Es el directorio temporal utilizado por el programa para procesar los datos.

Adems de estos archivos, logcheck instala el programa logtail en /usr/local/bin. Este programa mana tiene la informacin de qu logs han sido analizados y hasta qu punto, para no perder ni repetir l o e e neas. Logcheck por defecto analizar los archivos /var/log/messages, /var/log/secure y /var/log/maillog. a

Opciones de logcheck.sh
En el archivo logcheck.sh encontraremos las siguientes opciones de conguracin: o PATH : Indica dnde buscar el sistema los binarios. Debemos recordar que se ejecutara con una o a llamada desde cron, por lo que no hace dao denirlo, y tal vez limitarlo al m n nimo necesario. SYSADMIN : Es la persona que recibir el reporte por correo. Si no lleva una direccin completa, a o asume que es una direccin local. o LOGTAIL: Indica el path completo para el programa logtail. TMPDIR: Especica el directorio temporal que usar el programa. Este debe ser un directorio a seguro, que no tenga acceso de escritura ms que para el usuario que ejecute Logcheck. a GREP : Indica el nombre del comando grep a ejecutar. En muchos sistemas Unix hay diferentes grep con diferentes caracter sticas, sugerimos instalar el egrep de GNU. MAIL: Es el comando empleado para mandar un correo. T picamente ser mail, aunque en algunos a sistemas puede ser mailx. HACKING FILE : Es el pathname y nombre completo del archivo logcheck.hacking VIOLATIONS FILE : Es el pathname y nombre del archivo logcheck.violations VIOLATIONS IGNORE FILE : Es el pathname y nombre del archivo logcheck.violations.ignore IGNORE FILE : Es el pathname y nombre completo del archivo logcheck.ignore

Ejecucin de logcheck.sh o
Logcheck no es un programa que funcione continuamente, sino que es llamado cada vez que el administrador lo cree adecuado. Como cada reporte ser enviado por correo, lo ms comn es hacerlo cada a a u hora. Para ello es necesario crear una entrada en el crontab de root o de algn usuario que tenga permiso u de leer los archivos localizados en /var/log. La l nea a ser agregada en el crontab ser similar a la siguiente: a 0 * * * * /bin/sh /usr/local/etc/logcheck.sh

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o Con esto, cada hora el administrador recibir un mensaje similar al siguiente: a
From root@hostname.dominio.com Wed Sep 27 21:46:33 2000 Date: Wed, 27 Sep 2000 19:00:04 -0500 From: root <root@hostname.dominio.com> To: root@hostname.dominio.com Subject: hostname.dominio.com 09/27/00:19.00 system check Security Violations =-=-=-=-=-=-=-=-=-= Sep 27 18:23:07 hostname Sep 27 18:23:11 hostname Sep 27 18:23:11 hostname Sep 27 18:23:11 hostname Sep 27 18:23:43 hostname Unusual System Events =-=-=-=-=-=-=-=-=-=-= Sep 27 18:02:26 hostname Sep 27 18:14:40 hostname Sep 27 18:22:19 hostname Sep 27 18:23:07 hostname Sep 27 18:23:11 hostname Sep 27 18:23:11 hostname Sep 27 18:00:12 hostname

241

PAM_pwdb[14075]: authentication failure; (uid=0) -> root for ssh service PAM_pwdb[14075]: (ssh) session opened for user root by (uid=0) sshd[14075]: log: Password authentication for root accepted. sshd[14075]: log: ROOT LOGIN as root from hostname2.dominio.com PAM_pwdb[14075]: (ssh) session closed for user root

proftpd[13963]: hostname.dominio.com (lab1-15.dominio.com [192.168.1.16]) - FTP no transfer timeout, disconnected. proftpd[14030]: hostname.dominio.com (lab1-15.dominio.com [192.168.1.16]) - FTP no transfer timeout, disconnected. proftpd[13875]: hostname.dominio.com (lab2-21.dominio.com [192.168.2.21]) - FTP no transfer timeout, disconnected. PAM_pwdb[14075]: authentication failure; (uid=0) -> root for ssh service PAM_pwdb[14075]: (ssh) session opened for user root by (uid=0) sshd[14075]: log: ROOT LOGIN as root from dir-03.dominio.com sendmail[13610]: RAB13605: SAA13610: DSN: Host unknown (Name server: mail.internet.com: host not found)

En caso de haberse registrado algn evento que concuerde con alguna l u nea de logcheck.hacking, para que el reporte sea visto ms rpidamente por el administrador cambiarn los encabezados, quedando as a a a :
From root@hostname.dominio.com Wed Sep 27 21:52:58 2000 Date: Wed, 27 Sep 2000 21:00:05 -0500 From: root <root@hostname.dominio.com> To: root@hostname.dominio.com Subject: hostname.dominio.com 09/27/00:21.00 ACTIVE SYSTEM ATTACK!

Active System Attack Alerts =-=-=-=-=-=-=-=-=-=-=-=-=-= Sep 27 20:10:48 hostname portsentry[14722]: attackalert: SYN/Normal scan from host: ejemplo.dominio.com/192.168.0.111 to TCP port: 1019 Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Host 192.168.0.111 has been blocked via wrappers with string: "ALL: 192.168.0.111" Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Host 192.168.0.111 has been blocked via dropped route command: "/sbin/iptables -I input -s 192.168.0.111 -j DENY -l" (...) Security Violations =-=-=-=-=-=-=-=-=-= Sep 27 20:09:19 hostname PAM_pwdb[14589]: authentication failure; (uid=0) -> root for ssh service Sep 27 20:09:22 hostname PAM_pwdb[14589]: (ssh) session opened for user root by (uid=0) Sep 27 20:09:22 hostname sshd[14589]: log: Password authentication for root accepted. (...) Unusual System Events =-=-=-=-=-=-=-=-=-=-= Sep 27 20:10:47 hostname sshd[14624]: fatal: Did not receive ident string. Sep 27 20:19:43 hostname PAM_pwdb[14985]: authentication failure; (uid=0) -> llec for ssh service Sep 27 20:09:34 hostname in.telnetd[14610]: connect from 192.168.0.111 (...)

Interfaz web para Logchek


Podemos manejar gracamente este util programa desde nuestro Webmin. Para instalar: #apt-get install sentry El la gura se puede observar que la conguracin de la herramienta se vuelve un juego de nios. o n

13.10.

PortSentry: Detectar escaneos de puertos

Cuando un atacante decide probar suerte en nuestro sistema, lo primero que necesita es recopilar cuanta informacin le sea posible acerca de l. Todo puede serle util: Sistema operativo, versin, servicios que o e o ofrecemos, versin de los programas que tenemos... Cualquiera de estos datos puede ser suciente para que o su ataque sea exitoso. Basta con que el atacante vea, por ejemplo, que tenemos una versin vieja de un o programa, aunque no tenga ste ninguna vulnerabilidad importante, para que se d cuenta que no somos e e administradores muy cuidadosos y probablemente tengamos otros servicios descuidados. La manera ms comn en que un atacante va a intentar obtener informacin acerca de nosotros es a u o el barrido de puertos: Intentar conectarse a cada uno de los puertos que tiene abiertos nuestro servidor, anotando qu es lo que tiene activo y analizando dicha informacin. Una de las herramientas ms comunes e o a para realizar barridos de puertos es el Nmap (vase seccin 17.2). e o
Jose Antonio Escart Vigo, Junio 2005. n

242

Servidor Linux para conexiones seguras de una LAN a Internet

Figura 13.3: Mdulo Webmin para LogCheck o Tras haber hecho esta prueba, el atacante puede intentar entrar a cada uno de los puertos abiertos, revisando si encuentra alguna versin vieja o vulnerable. o Detectar un barrido de puertos es muy fcil: Muchas conexiones casi simultneas a una gran cantidad a a de puertos originadas desde la misma direccin. Si bien los programas barredores se han vuelto muy o sosticados y cada vez es ms dif detectarlos por diferentes estrategias que emplean (Nmap sabe hacer a cil desde una sencilla conexin TCP hasta un barrido silencioso con SYN, FIN, Xmas, Null, UDP, paquetes o fragmentados y barridos paralelos de diferentes tipos), el principio bsico es el mismo. a Hay un excelente programa dedicado precisamente a encontrar ste patrn y tomar la accin que le e o o indique el administrador del sistema: Portsentry. Para instalar el programa necesitaremos hacer un apt: #apt-get install portsentry Portsentry es un programa muy sencillo. Su misin es sentarse y escuchar en los puertos que le o indiquemos que deben permanecer siempre inactivos. En caso de llegar una conexin a uno de ellos puede o marcarlo en los logs del sistema, bloquear toda la comunicacin con la direccin identicada como agreo o sora, o ejecutar un comando externo. El archivo de conguracin de PortSentry es: o /etc/portsentry/portsentry.conf El programa tiene varios modos de operacin: o Modo clsico a Modo stealth Modo avanzado
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

243

Modo clsico a
En este modo, le especicamos a Portsentry que escuche determinados puertos TCP y UDP, especicados con las opciones UDP PORTS y TCP PORTS y por los cuales no estamos dando ningn servicio. u Por ejemplo, puede que nuestro servidor no est dando servicio de red SMB (Samba, red tipo Microsoft). e Sin embargo, es comn que las computadoras windows manden mensajes broadcast buscando a un sistema u en espec co, con lo que podr amos recibir una gran cantidad de alertas falsas. Vienen varios puertos predenidos en el archivo de conguracin, y es recomendable utilizarlos inicialmente. o

Modo stealth
En este modo Portsentry abre sockets crudos, lo que le permite detectar una mayor cantidad de barridos y ataques: Ataques de conexin normal, SYN/half-open, FIN, NULL y XMAS. Este modo es un tanto o experimental, por lo cual no funcionar en todos los sistemas. a

Modo avanzado
Este modo es tambin considerado hasta cierto punto perteneciente a la categor stealth. En ste modo, e a e Portsentry no abre ningn puerto, sino que le pide al kernel que le notique si llega alguna peticin a algn u o u puerto menor al especicado en las opciones ADVANCED PORTS TCP y ADVANCED PORTS UDP. Tendremos que excluir algunos puertos que sean particularmente ruidosos (como el comentado en la seccin anterior, SMB) y para ello tenemos las opciones ADVANCED EXCLUDE TCP y ADVANo CED EXCLUDE UDP. El modo avanzado es mucho ms sensible que el modo clsico, dado que escucha muchos ms puertos, a a a por lo que puede efectivamente causar una negacin de servicio si no es congurado con cuidado. o

Otras opciones de conguracin o


Tras haber especicado los puertos que deseamos escuchar, hay algunos parmetros adicionales que a debemos especicar: IGNORE FILE : Es el nombre del archivo que incluye la lista de direcciones en las que conamos y por tanto no queremos bloquear si intentan acceder a un puerto bloqueado. Por ejemplo, ser muy a molesto que quisiramos ejecutar Nmap contra uno de nuestros servidores para asegurarnos de que e no haya servicios abiertos que no requiramos y que nosotros mismos quedramos bloquedos. a a HISTORY FILE : Contiene la lista de direcciones que Portsentry ha detectado intentando acceder a puertos monitoreados. BLOCKED FILE : Es equivalente a HISTORY FILE, pero relevante unicamente a la sesin actual o de Portsentry. BLOCK TCP : Especica qu hacer cuando un barrido de puertos TCP es detectado. Tiene tres poe sibles valores: 0 (slo registrar el intento), 1 (bloquear la direccin que intent acceder a la mquina) o o o a y 2 (ejecutar un comando externo especicado en KILL RUN CMD). BLOCK UDP : Es equivalente a BLOCK TCP para barridos de puertos UDP. KILL ROUTE : Guarda el comando utilizado para descartar toda la comunicacin con una direccin. o o En un sistema que incluya un ltro de paquetes (por ejemplo, iptables en Linux o ipf en los *BSD) es muy preferible manejar una regla bloqueando la conexin. o KILL HOSTS DENY : Tiene la l nea que deber ser agregada a /etc/hosts.deny para que la direccin a o atacante sea bloqueada por TCPwrappers. Es conveniente activarlo, pues a diferencia de las reglas e a manejadas por KILL ROUTE ste archivo sobrevivir a la baja del sistema. Pero, no hay que conarse TCPwrappers slo maneja determinados servicios, y si slo nos protegemos con l, el sistema o o e podr seguir proporcionando informacin importante a nuestro atacante. a o
Jose Antonio Escart Vigo, Junio 2005. n

244

Servidor Linux para conexiones seguras de una LAN a Internet KILL RUN CMD: Puede guardar un comando a ser ejecutado de ser detectada una intrusin. No o se recomienda utilizar esta opcin, ya que puede fcilmente llevar a una negacin de servicio. Hay o a o administradores que sugieren utilizar esta opcin para lanzar un contraataque contra el atacante. o Nosotros categricamente les indicamos que esto es una muy mala idea La mejor defensa es tener o nuestro sistema seguro, no atacar al enemigo. Al atacar al enemigo, lo ms probable es que centre a ms su atencin en nosotros y, con el paso del tiempo, logre penetrar nuestra seguridad. Es mucho a o mejor aparentar que nada ocurri o simplemente tirar la conexin que atacarla. o o SCAN TRIGGER: Indica con cuantos intentos de conexin se deben realizar, para marcarla como o un ataque. Probablemente, si a la primera bloqueamos toda comunicacin con el presunto atacante, o dejaremos fuera a muchos usuarios leg timos que por casualidad hicieron la conexin equivocada. Sin o embargo, si ponemos un nmero muy alto nos exponemos a dar ms informacin de la que hubiramos u a o e querido. Un valor de 1 o 2 es recomendado, aunque los muy paranicos querrn mantenerlo en 0. o a

Inicializacin automtica o a
Hay que incluir la ejecucin en uno de los archivos que se ejecutan al iniciar la mquina. Las opciones o a que podemos establecer son las siguientes: Cuadro 13.9: Opciones de PortSentry Opcin o -tcp -udp -stcp -sudp -atcp -audp Descripcin o Iniciar en modo Iniciar en modo Iniciar en modo Iniciar en modo Iniciar en modo Iniciar en modo clsico, escuchar TCP a clsico, escuchar UDP a stealth, escuchar TCP stealth, escuchar UDP avanzado, escuchar TCP avanzado, escuchar UDP

T picamente levantaremos dos copias del programa en el mismo modo general, una escuchando UDP y la otra TCP.

Almacenamiento en los logs del sistema


El simple hecho de que Portsentry evite ciertos ataques al sistema es de por s muy bueno y deseable. Sin embargo, para que sto nos sea realmente util, tenemos que analizar nuestros logs y llevar registros de e quin y cundo intent se intentaron escanear nuestros puertos. Adems, slo leyendo los logs sabremos e a o a o si estamos limitando de ms, bloqueando el acceso de mquinas leg a a timas. Afortunadamente, Portsentry utiliza syslog para reportar toda la informacin que el administrador o debe saber, por lo cual todo lo que necesitamos estar t a picamente en el archivo /var/log/messages, o donde se lo hayamos especicado en el syslogd.conf. La deteccin de un barrido hecho por Nmap en un sistema Linux se ve as o :
Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: blocked via dropped route using command: "/sbin/iptables Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: Sep 27 20:10:48 hostname portsentry[14722]: attackalert: (...) SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP Host 192.168.1.3 has been blocked via wrappers with string: "ALL: Host 192.168.1.3 has been -I input -s 192.168.1.3 -j DENY -l" SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP Host: ejemplo.dominio.com/192.168.1.3 is already blocked Ignoring SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP Host: ejemplo.dominio.com/192.168.1.3 is already blocked Ignoring SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP Host: ejemplo.dominio.com/192.168.1.3 is already blocked Ignoring SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP Host: ejemplo.dominio.com/192.168.1.3 is already blocked Ignoring SYN/Normal scan from host: ejemplo.dominio.com/192.168.1.3 to TCP port: 1019 192.168.1.3"

port: 70 port: 934 port: 267 port: 202 port: 613

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

245

Readmitiendo hosts marcados como atacantes


Cuando conguremos Portsentry es muy comn que marquemos direcciones como atacantes por error. u Eliminarlos de la lista de bloqueo es afortunadamente muy sencillo. Si asumimos que queremos volver a permitir acceso a la direccin 192.168.1.3. Todo el proceso debeo remos realizarlo como root. Nuestro primer paso ser editar el archivo /etc/hosts.deny y buscar la direccin que queremos a o eliminar, en nuestro caso la tercera:
# # # # # # # # hosts.deny This file describes the names of the hosts which are *not* allowed to use the local INET services, as decided by the /usr/sbin/tcpd server. The portmap line is redundant, but it is left to remind you that the new secure portmap uses hosts.deny and hosts.allow. In particular you should know that NFS uses portmap! 216.98.66.42 210.124.182.137 192.168.1.3 200.36.163.106 202.111.97.171

ALL: ALL: ALL: ALL: ALL:

Consultamos la tabla de direcciones ltradas por iptables. El comando iptables-save es de gran utilidad para esa tarea, pues muestra las l neas con los comandos que ser necesarios para insertarlas. an
# /sbin/iptables-save :input ACCEPT :forward ACCEPT :output ACCEPT Saving input. -A input -s 216.98.66.42/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l -A input -s 210.124.182.137/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l -A input -s 192.168.1.3/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l -A input -s 200.36.163.106/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l -A input -s 202.111.97.171/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l

Una l nea es insertada en iptables con -A, y es eliminada con -D, por lo cual basta con que hagamos: #iptables -D input -s 192.168.1.3/255.255.255.255 -d 0.0.0.0/0.0.0.0 -j DENY -l Con esto, el host con la direccin 192.168.1.3 ya tendr de nuevo acceso a nuestro sistema. o a

Interfaz web para Portsentry


Podemos manejar gracamente este util programa desde nuestro Webmin. Para instalar: #apt-get install sentry El la gura se puede observar que la conguracin de la herramienta se vuelve un juego de nios. o n

13.11.

Detectores de sniers

Un grave problema de nuestra red son las escuchas clandestinas, como podemos estar seguros que no hay nadie escuchando nuestras conexiones? Disponemos de varias herramientas para la deteccin de o tarjetas de red en modo promiscuo (sniers), aqu mostraremos las siguientes: Neped Sentinel Estas herramientas, utilizan las siguientes tcnicas para descubrir sniers: e
Jose Antonio Escart Vigo, Junio 2005. n

246

Servidor Linux para conexiones seguras de una LAN a Internet

Figura 13.4: Mdulo Webmin para Portsentry o

El test DNS En este mtodo, la herramienta de deteccin en s misma est en modo promiscuo. Creamos numerosas e o a conexiones TCP falsas en nuestro segmento de red, esperando un snier pobremente escrito para atrapar estas conexiones y resolver la direccin IP de los inexistentes hosts. Algunos sniers realizan bsquedas o u inversas DNS en los paquetes que capturan. Cuando se realiza una bsqueda inversa DNS, una utilidad u de deteccin de sniers huele la peticin de las operaciones de bsqueda para ver si el objetivo es aquel o o u que realiza la peticin del host inexistente. o

El Test ICMP Etherping Este mtodo conf en un problema en el ncleo de la mquina receptora. Podemos construir una petie a u a cin tipo ICMP ECHO con la direccin IP de la mquina sospechosa de hospedar un snier. Enviamos o o a un un paquete ICMP ECHO al objetivo con la direccin IP correcta, pero con una direccin de MAC o o deliberadamente errnea. La mayor de los sistemas desatendern este paquete ya que su direccin MAC o a a o es incorrecta. Pero en algunos sistemas Linux, NetBSD y NT, puesto que el NIC est en modo promisa cuo, el snier identicara este paquete de la red como paquete leg timo y responder por consiguiente. a Si el blanco en cuestin responde a nuestra peticin, sabremos que est en modo promiscuo. Los sniers o o a avanzados ltran tales paquetes para que parezca que el NIC no hubiera estado en modo promiscuo.

El Test ICMP de latencia Ping de Latencia. En ste mtodo, hacemos ping al blanco y anotamos el Round Trip Time (RTT, e e retardo de ida y vuelta o tiempo de latencia) Creamos centenares de falsas conexiones TCP en nuestro segmento de red en un per odo de tiempo muy corto. Esperamos que el snier est procesando estos e paquetes a razn de que el tiempo de latencia incremente. Entonces hacemos ping otra vez, y comparamos o el RTT esta vez con el de la primera vez. Despus de una serie de tests y medias, podemos concluir o no e si un snier est realmente funcionando en el objetivo. a
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o El test ARP

247

Podemos enviar una peticin ARP a nuestro objetivo con toda la informacin rpida excepto con una o o a direccin hardware de destino errnea. Una mquina que no est en modo promiscuo nunca ver este o o a e a paquete, puesto que no era destinado a ellos, por lo tanto no contestar. Si una mquina est en modo a a a promiscuo, la peticin ARP ser considerada y el ncleo la procesar y contestar La mquina que o a u a a. a contesta est en modo promiscuo. a

13.11.1.

Neped

NePED es una herramienta imprescindible para cualquier administrador de redes. Al ejecutarlo, el programa nos informar de todos los equipos conectados a nuestra red local con la tarjeta ethernet en a modo promiscuo. Lo podemos descargar desde su pgina web: a http://apostols.org/projectz/neped/ La forma de uso es muy sencilla: #neped <dispositivo> Esto ser un ejemplo de su funcionamiento: a
#neped eth0 ---------------------------------------------------------> My HW Addr: 00:00:F4:C2:0E:2A > My IP Addr: 192.168.0.2 > My NETMASK: 255.255.255.0 > My BROADCAST: 192.168.0.255 ---------------------------------------------------------> Scanning .... *> Host 192.168.0.3, 00:60:08:64:06:FF **** Promiscuous mode detected !!! > End.

La tcnica empleada para la deteccin es sumamente sencilla. Se trata de realizar una simple peticin e o o ARP para cada una de las IPs de nuestra red, con la salvedad de que los paquetes no van destinados al broadcast (FF:FF:FF:FF:FF:FF), sino a una direccin arbitraria (cualquiera que no exista). Solo las o maquinas con la tarjeta ethernet en modo promiscuo son capaces de ver estos paquetes, y por lo tanto, solo ellas contestarn a nuestras peticiones. a

13.11.2.

Sentinel

Lo podemos descargar desde su pgina web: a http://www.packetfactory.net/Projects/sentinel/ Utiliza los mtodos de busqueda de snifers: e Test DNS, test ARP, test ICMP Etherping y test ICMP de latencia. La forma de uso es muy sencilla: #sentinel <metodo> [-t <ip>] <opciones> Como mtodo de uso podemos especicar uno o varios de los siguentes: e -a: test ARP -d: test DND -i: ICMP test ping de latencia -e: ICMP test etherpingt Las opciones ms comunes se detallan a continuacin: a o
Jose Antonio Escart Vigo, Junio 2005. n

248

Servidor Linux para conexiones seguras de una LAN a Internet -f <nombre>: Donde nombre representa, un chero o una IP -c <x.x.x>: Clase C a monitorizar -n <n\umero de paquetes a enviar> -I <dispositivo> Y estos ser algunos posibles ejemplos de uso de Sentinel: an Test ARP en el host 192.168.0.2 #sentinel -a -t 192.168.0.2 Test DNS en el host 192.168.0.2 #sentinel -d -f 1.1.1.1 -t 192.168.0.2 Escanear una red de Clase C (192.168.0) usando el test ARP, DNS y test etherping #sentinel -aed -c 192.168.0

13.12.

Chkrootkit: Detector de rootkits

Chkrootkit es un shell script que busca en nuestro sistema binarios modicados por RootKits, estos son usados por los piratas informticos para comprometer sistemas. a Para instalarlo solo hay que realizar un apt: #apt-get install chkrootkit Los piratas informaticos, suelen camuar o sustituir algunos cheros binarios del sistema por sus propios cheros, algunos de los ejemplos t picos son: login, su, telnet, netstat, ifcong, ls, nd, du, df, libc, sync, asi como los binarios listados en /etc/inetd.conf. Este programa nos ayuda a vericar que tenemos la versin original de estos cheros, en la ultima o versin disponible detecta troyanos en los siguientes cheros: o aliens, asp, bindshell, lkm, rexedcs, snier, wted, z2, amd, basename, bi, chfn, chsh, cron, date, du, dirname, echo, egrep, env, nd, ngerd, gpm, grep, hdparm, su, ifcong, inetd, inetdconf, identd, killall, login, ls, mail, mingetty, netstat, named, passwd, pidof, pop2, pop3, ps, pstree, rpcinfo, rlogind, rshd, slogin, sendmail, sshd, syslogd, tar, tcpd, top, telnetd, timed, traceroute, write. Tambin es capaz de detectar los siguientes RootKits: e Solaris rootkit, FreeBSD rootkit, lrk3, lrk4, lrk5, lrk6, t0rn (and t0rn v8), some lrk variants, Ambients Rootkit for Linux (ARK), Ramen Worm, rh[67]-shaper, RSHA, Romanian rootkit, RK17, Lion Worm, Adore Worm, LPD Worm, kenny-rk, LKM, ShitC Worm, Omega Worm, Wormkit Worm, dsc-rootkit. Al ser un shell scrip una vez compilados los programas (chkwtmp, chklastlog, chkproc, chkwtmp, ifpromisc) utilizarn el chkrootkit para realizar parte de su trabajo. a En el sistema que he utilizado para el proyecto provoca la siguiente salida:
# chkrootkit ROOTDIR is / Checking amd... not found Checking basename... not infected Checking biff... not infected Checking chfn... not infected Checking chsh... not infected Checking cron... not infected Checking date... not infected Checking du... not infected Checking dirname... not infected Checking echo... not infected

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

249

Checking egrep... not infected Checking env... not infected Checking find... not infected Checking fingerd... not found Checking gpm... not found Checking grep... not infected Checking hdparm... not infected Checking su... not infected Checking ifconfig... not infected Checking inetd... not infected Checking inetdconf... not infected Checking identd... not found Checking init... not infected Checking killall... not infected Checking ldsopreload... not infected Checking login... not infected Checking ls... not infected Checking lsof... not infected Checking mail... not infected Checking mingetty... not found Checking netstat... not infected Checking named... not found Checking passwd... not infected Checking pidof... not infected Checking pop2... not found Checking pop3... not found Checking ps... not infected Checking pstree... not infected Checking rpcinfo... not infected Checking rlogind... not found Checking rshd... not found Checking slogin... not infected Checking sendmail... not infected Checking sshd... not infected Checking syslogd... not infected Checking tar... not infected Checking tcpd... not infected Checking tcpdump... not infected Checking top... not infected Checking telnetd... not found Checking timed... not found Checking traceroute... not infected Checking vdir... not infected Checking w... not infected Checking write... not infected Checking aliens... no suspect files Searching for sniffers logs, it may take a while... nothing found Searching for HiDrootkits default dir... nothing found Searching for t0rns default files and dirs... nothing found Searching for t0rns v8 defaults... nothing found Searching for Lion Worm default files and dirs... nothing found Searching for RSHAs default files and dir... nothing found Searching for RH-Sharpes default files... nothing found Searching for Ambients rootkit (ark) default files and dirs... nothing found Searching for suspicious files and dirs, it may take a while... /usr/lib/mozilla-firefox/.autoreg /usr/lib/kaffe/.system Searching for LPD Worm files and dirs... nothing found Searching for Ramen Worm files and dirs... nothing found Searching for Maniac files and dirs... nothing found Searching for RK17 files and dirs... nothing found Searching for Ducoci rootkit... nothing found Searching for Adore Worm... nothing found Searching for ShitC Worm... nothing found Searching for Omega Worm... nothing found Searching for Sadmind/IIS Worm... nothing found Searching for MonKit... nothing found Searching for Showtee... nothing found Searching for OpticKit... nothing found Searching for T.R.K... nothing found Searching for Mithra... nothing found Searching for OBSD rk v1... nothing found Searching for LOC rootkit... nothing found Searching for Romanian rootkit... nothing found Searching for Suckit rootkit... nothing found Searching for Volc rootkit... nothing found Searching for Gold2 rootkit... nothing found Searching for TC2 Worm default files and dirs... nothing found Searching for Anonoying rootkit default files and dirs... nothing found Searching for ZK rootkit default files and dirs... nothing found Searching for ShKit rootkit default files and dirs... nothing found Searching for AjaKit rootkit default files and dirs... nothing found Searching for zaRwT rootkit default files and dirs... nothing found Searching for Madalin rootkit default files... nothing found Searching for anomalies in shell history files... nothing found Checking asp... not infected Checking bindshell... not infected Checking lkm... You have 2 process hidden for readdir command You have 2 process hidden for ps command Warning: Possible LKM Trojan installed Checking rexedcs... not found Checking sniffer... lo: not promisc and no packet sniffer sockets eth0: PACKET SNIFFER(/sbin/dhclient[3930], /usr/sbin/snort[4577]) Checking w55808... not infected Checking wted... nothing deleted Checking scalper... not infected Checking slapper... not infected Checking z2... nothing deleted

Vaya!, parece que ha detectado un archivo sospechoso, un posible troyano y que Snort est instalado. a
Jose Antonio Escart Vigo, Junio 2005. n

250

Servidor Linux para conexiones seguras de una LAN a Internet

13.13.

HoneyPots: Entretener a los atacantes

Informacin obtenida de la web: http://www.xombra.com o El papel de la tecnolog del sistema de deteccin de intrusos basado en seuelos (o honeypots) a o n est evolucionando. Los honeypots, que alguna vez fueron utilizados, principalmente por los investigaa dores, como una forma de atraer a los intrusos a un sistema de redes para estudiar sus movimientos y comportamiento, estn adquiriendo una importancia cada vez mayor en la seguridad empresarial. En efeca to, al brindar deteccin temprana de actividad no autorizada en las redes, los honeypots son ahora ms o a utiles que nunca para los profesionales de la seguridad informtica. Aqu se analiza el funcionamiento de a los honeypots y su tecnolog que se est convirtiendo en el componente clave del sistema de capas de a, a proteccin contra intrusos. o Los honeypots son una emocionante tecnolog nueva, con un enorme potencial para la comunidad a informtica. Los primeros conceptos fueron introducidos primeramente por varios iconos en la seguridad a informtica, especialmente por Cli Stoll en el libro The Cuckoos Egg y el trabajo de Bill Cheswick a An Evening with Berferd. Desde entonces, han estado en una continua evolucin, convirtiendose en la o poderosa herramienta de seguridad que es hoy en d En esta seccin se detalla exactamente: qu son los a. o e honeypots, sus ventajas y desventajas, y su importancia en la seguridad. Los Honeypots (o tarros de miel) Consisten en activar un servidor y llenarlo de archivos tentadores, hacer que sea dif cil, pero no imposible penetrarlo y sentarse a esperar que aparezcan los intrusos. Los honeynets (conjuntos de honeypots) dan a los crackers un gran espacio para recorrer. Presentan obstculos a que poseen el nivel de complejidad suciente para atraerlos, pero sin irse al extremo para no desalentarlos. . . Juegan con los archivos y conversan animadamente entre ellos sobre todos los fascinantes programas que encuentran, mientras el personal de seguridad observa con deleite cada movimiento que hacen. Francamente, siento una combinacin de sentimientos con respecto a espiar a la gente, aunque no sean buenas o personas. Dan Adams. Los honeynets son conjuntos de Honeypots, compuestos por servicios reales, as se abarca ms informa a cin para el estudio. Hacen ms fascinante el ataque al intruso, lo cual incrementa el nmero de ataques. o a u La funcin principal a parte de la de estudiar las herramientas de ataque, es la de desviar la atencin del o o atacante de la red real del sistema y la de capturar nuevos virus o gusanos para su posterior analisis. Una de las mltiples aplicaciones que tiene es la de poder formar perles de atacantes y ataques. u Son sistemas que deliberadamente se decide exponerlos a ser atacados o comprometidos. Estos, no solucionan ningn problema de seguridad, son una herramienta que nos sirve para conocer las estrategias u que se emplean a la hora de vulnerar un sistema. Son una herramienta muy util a la hora de conocer de forma precisa los ataques que se realizan contra la plataforma de trabajo que hemos elegido, o bien, las plataformas conguradas de la misma forma, con el claro objetivo de acceder a informacin sensible. o As mismo nos permiten conocer nuevas vulnerabilidades y riesgos de los distintos sistemas operativos, entornos y programas, los cuales an no se encuentren debidamente documentados. u En general, existen dos tipos de honeypots: Honeypots para la investigacin: Gran parte de la atencin actual se centra en este tipo. Los hoo o neypots para la investigacin, que se utilizan para recolectar informacin sobre las acciones de los o o intrusos. El proyecto Honeynet 1 , por ejemplo, es una organizacin para la investigacin sobre seguo o ridad voluntaria, sin nimo de lucro que utiliza los honeypots para recolectar informacin sobre las a o amenazas del ciberespacio. Honeypots para la produccin: Son los que se utilizan para proteger a las organizaciones. Sin embargo, o se les concede cada vez ms importancia debido a las herramientas de deteccin que pueden brindar a o y por la forma cmo pueden complementar la proteccin en la red y en los hosts. o o
1 Proyecto

Honeynet en castellano: http://his.sourceforge.net/trad/honeynet/


Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

251

13.13.1.

Cmo funcionan? o

Los honeypots tambin se pueden describir como de alta o baja interaccin, distincin que se basa en e o o el nivel de actividad que permiten al atacante. Un sistema de baja interaccin ofrece actividad limitada, o la mayor de las veces emula los servicios y sistemas operativos. Las principales ventajas de los honeypots a de baja interaccin es que son relativamente fciles de instalar y mantener; tambin implican un riesgo o a e m nimo porque el atacante nunca tiene acceso a un sistema operativo real para perjudicar a otros sistemas. Honeyd (vase seccin 13.13.7) es un ejemplo de honeypot de baja interaccin, cuya funcin principal e o o o es monitorear el espacio de direcciones IP no utilizado. Cuando Honeyd detecta un intento de conectarse a un sistema que no existe, intercepta la conexin, interacta con el atacante ngiendo ser la v o u ctima para captar y registrar al ataque. Por el contrario, los honeypots de alta interaccin utilizan sistemas operativos reales y aplicaciones reao les, no emulan nada. Al ofrecerles a los atacantes sistemas reales para que interacten, se puede aprender u mucho sobre su comportamiento. Los honeypots de alta interaccin no imaginan como se comportar un o a atacante y proporcionan un ambiente que rastrea todas las actividades, lo que permite conocer un comportamiento al que de otra manera no tendr acceso. an Los sistemas de alta interaccin tambin son exibles y los profesionales de la seguridad informtica o e a pueden implementarlos en la medida que quieran. Adems, este tipo de honeypot proporciona un objetivo a ms realista, capaz de detectar atacantes de mayor calibre. Pueden ser complejos de instalar, sin embargo, a requieren que se implementen tecnolog adicionales para evitar que los atacantes los utilicen para lanzar as ataques a otros sistemas.

13.13.2.

Ventajas y desventajas

Los honeypots son un concepto incre blemente simple, las cuales ofrecen una fortaleza muy poderosa. Podemos observar sus ventajas en los siguientes puntos: Obtienen un conjunto de datos pequeos, pero de gran importancia: Los Honeypots recolectan n pequeas cantidades de informacin. En lugar de logear 1 Gb por d logean slo 1 Mb de datos por n o a, o d En vez de generar 10.000 alertas por d pueden generar slo 10 alertas por d Recordemos a. a, o a. que los honeypots slo capturan actividad sospechosa ya que cualquier interaccin con un honeypot o o es muy probablemente actividad no autorizada o una actividad maliciosa. Propiamente dicho, los honeypots reducen el ruido recogiendo slo los datos indispensables y de gran valor, los producidos o unicamente por chicos malos. Esto signica que es mucho ms fcil (y barato) de analizar los datos a a que un honeypot recoge. Nuevas herramientas y tcticas: Los honeypots son diseados para capturar cualquier cosa que a n interacta con ellos, incluyendo herramientas o tcticas nunca vistas. u a M nimos recursos: Los honeypots requieren m nimos recursos, slo capturan actividad irregular. Esto o signica que un viejo Pentium con 128 mb de RAM puede manejar fcilmente una entera red de a clase B entera. Encriptacin en IPv6: A diferencia de la mayor de las tecnolog para la seguridad, como los o a as sistemas IDS, honeypots trabajan bien en entornos encriptados como IPv6. No importa lo que los chicos malos lancen hacia el honeypot, el honeypot lo detectar y lo capturar. a a Informacin: Los honeypots pueden recoger informacin en profundidad como pocos, si es que o o existen tecnolog que se le parezcan. as Simplicidad: Finalmente, los honeypots son conceptualmente simples. No hay por qu desarrollar e algoritmos raros, ni complejas tablas que mantener, o rmas que actualizar. Mientras ms simple a sea la tecnolog menos posibilidades de errores o desconguraciones habr. a, a

Jose Antonio Escart Vigo, Junio 2005. n

252

Servidor Linux para conexiones seguras de una LAN a Internet

Como en cualquier otra tecnolog los honeypots tambin tienen su debilidad. Esto es debido a que a, e no reemplaza a la actual tecnolog sino que trabaja con las existentes. a, Visin Limitada: Los honeypots pueden slo rastrear y capturar actividad que interacten directao o u mente con ellos. Los Honeypots no podrn capturar ataques a otros sistemas vecinos, al menos que a el atacante o la amenaza interacte con el honeypot al mismo tiempo. u Riesgo: Todas las tecnolog de seguridad tienen un riesgo. Los rewalls tienen el riesgo de que sean as penetrados, la encriptacin tiene el riesgo de que los algoritmos sean rotos, los sensores IDS tienen el o riesgo de que fallen al detectar ataques. Los Honeypots no son diferentes, tienen un riesgo tambin. e Espec camente, los honeypots tienen el riesgo de que sean apoderados y controlados por los chicos malos y que lo utilicen para daar otros sistemas. El riesgo es variado para los diferentes honeypots. n Dependiendo del tipo de honeypots puede haber un riesgo, equivalente a un fallo del sensor IDS, mientras que en otros honeypots puede que haya que enfrentarse a una situacin cr o tica.

13.13.3.

Utilidades de honeypots

Cuando son utilizados con propsitos productivos, los honeypots estn protegiendo la organizacin. o a o En este mundo se incluye, prevencin, deteccin y respuesta a un ataque. o o Cuando son utilizados con propsitos de investigacin, los honeypots son utilizados para recolectar o o informacin. La importancia de esta informacin depende segn las organizaciones. Algunas organizacioo o u nes querrn estudiar la tendencia de las actividades intrusivas, mientras otras estarn interesadas en la a a prediccin y prevencin anticipada, o las fuerzas legales. o o En general, honeypots de baja interaccin son utilizados con propsitos productivos, mientras hoo o neypots de alta interaccin son utilizados con propsitos de investigacin. Sin embargo, los dos tipos de o o o honeypots pueden funcionar para ambos propsitos. o Los honeypots pueden ayudar a prevenir ataques en varias formas. El primero es contra ataques automatizados, como los gusanos. Estos ataques son basados en herramientas que aleatoriamente escanean redes enteras buscando sistemas vulnerables. Si un sistema vulnerable es encontrado, estas herramientas automatizadas atacarn y tomarn el sistema (con gusanos que se replican en la v a a ctima). Uno de las mtodos para protejer de tales ataques es bajando la velocidad de su escaneo y potencialmente detenerlos. e Llamados sticky honeypots (Tarros de miel pegajosos), estas soluciones monitorean el espacio IP no utilizado. Cuando los sistemas son escaneados, estos honeypots interactan con l y disminuyen la velou e cidad del ataque. Hacen esto utilizando una variedad de trucos TCP, como poniendo el Window size a cero o poniendo al atacante en un estado de espera continua. Esto es excelente para bajar la velocidad o para prevenir la diseminacin de gusanos que han penetrado en la red interna. Un ejemplo de un sticky o honeypot es: LaBrea Tarpit. Los honeypots pegajosos son ms comunes encontrarlos entre soluciones de a baja interaccin (hasta podr llamrsele soluciones no interactivas, ya que reducen tanto la velocidad o a a que hacen gatear al atacante. Los Honeypots pueden tambin protejer nuestra organizacin de intrusos e o humanos. Este concepto se conoce como engao o disuacin. La idea es confundir al atacante, hacerle n o perder el tiempo y recursos interactuando con honeypots. Mientras tanto, detectaremos la actividad del atacante y tendrmos tiempo para reaccionar y detener el ataque. Hasta se puede dar un paso ms all: si e a a un atacante sabe que nuestra organizacin est utilizando honeypots pero no sabe cuales son los sistemas o a honeypots y cuales son sistemas leg timos, quizs tenga miedo de ser capturado por honeypots y decida a no atacarlo. Por lo tanto, honeypots disuaden al atacante. Un ejemplo de honeypot diseado para hacer n esto, es el Deception Toolkit, un honeypot de baja interaccin. o La segunda forma por la cual honeypots pueden ayudar a protejer una organizacin es por medio de o la deteccin. La deteccin es cr o o tica, su propsito es la identicacin de fallos para para la prevencin. No o o o importa cun segura sea nuestra organizacin, siempre habrn fallos si los hombres estn involucrados en a o a a el proceso... Detectando al atacante, podrn rpidamente reaccionar ante ellos, detenindolos, o mitigando a a e el dao que hicieron. Tradicionalmente, la deteccin ha sido extremadamente dicil de hacer. Tecnolog n o as como sensores IDS y sistemas de logueo han sido inefectivos por diversas razones: Generan muchos datos,
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

253

grandes porcentajes de falsos positivos, inhabilidad de detectar nuevos ataques, y la inhabilidad de trabajar en forma encriptada o en entornos IPv6. Los Honeypots son excelentes en deteccin, solventando o muchos de los problemas de la deteccin clsica. Los honeypots reducen los falsos positivos, capturando o a pequeas cantidades de datos de gran importancia, capturan ataques desconocidos como nuevos exploits n o shellcodes polimrcos, y trabajan en forma encriptada o en entornos IPv6. En general, honeypots de o baja interaccin son la mejor solucin para la deteccin y tienen un riesgo limitado. o o o La forma tercera y nal por la cual honeypots nos pueden ayudar a protejer una organizacin es en la o respuesta. Una vez que una organizacin detecta un fallo, cmo debe responder? Esto es a menudo uno o o de los grandes retos a los que nos debemos enfrentar. Hay por lo general poca informacin acerca de quin o e es el atacante, cmo ingres al sistema o cunto dao hizo. En estas situaciones, la informacin detallada o o a n o acerca a las actividades del atacante son cruciales. Hay dos problemas que afectan a la respuesta al incidente: el primero, a menudo los sistemas comprometidos no pueden ser desconectados de la red para ser analizados. Sistemas de produccin, como el o servidor de correo de una organizacin, son tan cr o ticos que aunque estn compremetidos los administrae dores no pueden desconectarlos y hacer un anlisis forense como corresponde. Estn limitados a analizar a a el sistema encendido mientras sigue proveyendo sus servicios productivos. Esto merma la habilidad para analizar qu sucedi, cunto dao hizo el atacante, e incluso si el atacante accedi a otros sistemas de la e o a n o red. El otro problema es que incluso en el caso de que este desconectado, hay tanta polucin de datos que o es muy dif determinar qu es lo que hizo el chico malo. Con polucin de datos me reero que hay cil e o tanta actividad (logeo de usuarios, lecturas de cuentas de mail, archivos escritos a bases de datos, etc. . . ) que puede ser dif determinar cul es la actividad normal del d a d y qu es lo que hizo el atacante. cil a a a e Los Honeypots pueden ayudar a solventar ambos problemas. Honeypots son un excelente herramienta de incidencias ya que pueden rpidamente y fcilmente ser sacados de la red para un anlisis forense complea a a to, sin el impacto en las operaciones empresariales de todos los d Recuerden que la unica actividad que as. guardan los honeypots son las relacionadas con el atacante, ya que no las utilizan nadie (son seuelos), n excepto los atacantes. La importancia de los honeypots aqu es la rpida entrega de la informacin, ana a o lizada en profundidad, para responder rpida y ecientemente a un incidente. En general, los honeypots a de alta interaccin son la mejor solucin para la respuesta. Para reaccionar ante un intruso, se necesita o o conocimientos en profundidad sobre qu hicieron, cmo ingresaron, y qu herramientas utilizaron. e o e

13.13.4.

Tipos de honeypots

Los honeypots vienen con diversidad de colores y gustos, haciendo dif su comprensin. Para ayudarcil o nos a entender mejor a los honeypots y a todos los diferentes tipos, dividiremos a dos categor generales: as honeypots de baja interaccin y de alta interaccin. Estas categor nos ayudan a entender con o o as qu tipo de honeypots estamos trabajando, sus fortalezas y debilidades. La interaccin dene el nivel e o de actividad que un honeypot le permite tener un atacante. Los honeypots de baja interaccin tienen o una interaccin limitada, normalmente trabajan unicamente emulando servicios y sistemas operativos. La o actividad del atacante se encuentra limitada al nivel de emulacin del honeypot. Por ejemplo, un servicio o FTP emulado escuchando en el puerto 21 probablemente estar emulando un login FTP o probablemente a suportar algnos comandos FTP adicionales. Las ventajas de un honeypot de baja interaccin es su a u o simplicidad, estos honeypots tienden a ser fciles de utilizar y mantener con un riesgo m a nimo. Por lo general es instalar un software, elegir el sistema operativo y el servicio a emular y monitorear, y dejar que el programa camine por s solo desde ah . . . Este proceso cercano al plug and play hace que la utilizacin de stos sea muy fcil. Incluso, los servicios emulados mitigan el riesgo conteniendo la o e a actividad del intruso, que nunca tiene acceso al sistema operativo real donde puede atacar o daar otros n sistemas. Las principales desventajas de los honeypots de baja interaccin es que registran unicamente o informacin limitada y son diseados para capturar actividad prevista, los servicios emulados slo pueden o n o llegar hasta ah Tambin es fcil para un atacante detectar un honeypot de baja interaccin, sin importar . e a o cun buena sea la emulacin. Un intruso hbil puede, con el debido tiempo, detectar su presencia. Ejemplos a o a de honeypots de baja interaccin se incluyen: Specter, Honeyd, y KFSensor. o Los honeypots de alta interaccin son diferentes, stos generalmente son soluciones complejas ya que o e implica la utilizacin de sistemas operativos y aplicaciones reales. Nada es emulado, le damos a los ino
Jose Antonio Escart Vigo, Junio 2005. n

254

Servidor Linux para conexiones seguras de una LAN a Internet

trusos algo real. Si queremos un honeypot Linux corriendo un servidor FTP, tendrmos que construir un e verdadero sistema Linux y montar un verdadero servidor FTP. Las ventajas de dicha solucin son dos: o Primero, usted capturarmos grandes cantidades de informacin dndoles a los intrusos algo sistemas a o a reales con la cual interactuar, podremos aprender la completa extensin de sus actividades, cualquier cosa o desde rootkits nuevos hasta sesiones internacionales de IRC. La segunda ventaja es que los honeypots de alta interaccin no asumen nada, acerca del posible comportamiento que tendr el atacante, en lugar de o a eso proveen un entorno abierto que captura todas las actividades realizadas. Esto permite a las soluciones de alta interaccin conocer comportamientos no esperados. Un excelente ejemplo de esto es cmo un o o honeypot captur comandos back door codicados en un protocolo IP no estandard (espec o camente protocolo IP 11, Network Voice Protocol). No obstante, esto tambin incrementa el riesgo de los honeye pots ya que los atacantes pueden utilizar estos sistemas operativos reales para lanzar ataques a sistemas internos que no forman parte de los honeypots. En consecuencia, se requiere la implementacin de una o tecnolog adicional que prevenga al atacante de daar otros sistemas que no son honeypots. En general, a n honeypots de alta interaccin pueden hacer todo lo que uno de baja interaccin puede hacer y mucho o o ms, pero pueden ser ms complejos de utilizar y mantener. Ejemplos de honeypots de alta interaccin a a o son Symantec Decoy Server y los Honeynets.

13.13.5.

Otras caracter sticas

Algunos honeypots, como Honeyd, no slo emulan servicios sino que tambin emulan el Sistema Opeo e rativo. En otras palabras, Honeyd puede aparentar ser un router Cisco, un webserver WinXP o un servidor DNS Linux. Existen varias ventajas al emular diferentes sistemas operativos. Primero, el honeypot puede encajar mejor con la red existente, si el honeypot tiene la misma apariencia y comportamiento que las computadoras productivas. Segundo, se puede apuntar a atacantes espec cos proveyndoles sistemas y e servicios sobre los que queremos aprender. Hay dos elementos en sistemas operativos emulados: El primero es el servicio emulado, cuando un atacante se conecta a ese servicio, este se comport como a si fuera legitimo y aparenta tener un sistema operativo determinado. Por ejemplo, si tiene un servicio emulando un webserver y quiere que su honeypot aparente ser un Win2000 servidor, entonces deber emular a el comportamiento de un IIS webserver, y para el caso de un Linux, deber emular el comportamiento a de un webserver Apache. La mayor de los honeypots emulan el SO de esta manera. Algunos honeypots a sosticados llevan la emulacin un paso adelante (como lo hace el Honeyd): No slo emulan en el nivel de o o servicio, sino que en el nivel del stack del IP. Si alguien realiza active ngerprinting para determinar el SO de su honeypot, muchos honeypots respondern al nivel del IP Stack del SO real en donde est instalado a e el honeypot. Honeyd falsea la respuesta, emulando no slo el servicio sino emulando tambin el stack del o e IP, comportndose como si fuera realmente otro sistema operativo. El nivel de emulacin y sosticacin a o o depende de la tecnolog del honeypot que elijamos. a Esto es un resumen de algunos de los HoneyPots que podemos utilizar: 1. De alta interaccin: No hay emulacin, suministra sistemas operativos y servicios reales. o o Honeynets Symantec Decoy Server 2. De baja interaccin: Emula sistema operativos y servicios. o Honeyd Specter KFSensor Deception Toolkit

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 13. Sistemas de deteccin de intrusiones o

255

13.13.6.

Honeynets: alta interaccin o

Los Honeynets son un ejemplo ideal de honeypots de alta interaccin. Honeynets no son un producto, o no son una solucin software que se instala en una computadora. En lugar de eso, los Honeynets son una o arquitectura, una red entera de mquinas diseados para ser atacadas. La idea es tener una arquitectura a n que sea una red altamente controlada, un lugar donde toda actividad sea controlada y capturada. En esta red nosotros ponemos a nuestras victimas en forma intencionada, computadoras reales corriendo aplicaciones reales. Los chicos malos encuentran, atacan, rompen estos sistemas en su propia iniciativa. Cuando hacen esto, ellos no saben que estn en un Honeynet. Toda su actividad, desde sesiones encriptadas a SSH hasta correos y archivos subidos son capturados sin que lo noten. Esto es realizado introduciento mdulos en el kernel de los sistemas v o ctima que capturan toda las acciones de los atacantes. Al mismo tiempo, el Honeynet controla la actividad del atacante. Los Honeynets hacen esto mediante la utilizacin de o un gateway Honeywall. Este gateway permite el trco de entrada a los sistemas v a ctima, pero controla el trco de salida usando tecnolog de prevencin contra instrusos. Esto le da al atacante la exibilidad a as o de interactuar con las sistemas v ctimas, pero previene al atacante de daar otros sistemas que no forman n parte del Honeynet.

13.13.7.

Honeyd: baja interaccin o

Honeyd es un honeypot de baja interaccin. Desarrollado por Niels Provos, Honeyd es OpenSource o y est diseado para correr principalmente en sistemas Unix/Linux (aunque fue portado a Windows). a n Honeyd trabaja con el concepto del monitoreo del espacio IP no utilizado. Cuando observa un intento de conexin a un IP no utilizado, intercepta la conexin e interacta con el atacante, pretendiendo ser la o o u v ctima. Por defecto, Honeyd detecta y logea cualquier conexin a puertos UDP o TCP. Como si fuera o poco, se pueden congurar los servicios emulados para que monitoreen puertos espec cos, como un servidor FTP emulado, monitoreando el puerto TCP 21. Cuando un atacante conecta el servicio emulado, el honeypot no slo detecta y logea la actividad, sino que captura tambin toda la actividad del atacante o e con el servicio emulado. En caso del servidor FTP emulado podemos potencialmente capturar el logins y passwords, los comandos que introduce y quizs tambin descubrir lo que est buscando o su identidad. a e a Todo depende del nivel de emulacin del honeypot. La mayor de los servicios emulados trabajan de la o a misma manera. Ellos esperan un tipo espec co de comportamiento, y estn programados para reaccionar a en una forma predeterminada. La limitacin est en que si el atacante hace algo que la emulacin no tiene o a o previsto, entonces no saben cmo responder. La mayor de los honeypots de baja interaccin, incluyendo o a o Honeyd, simplemente generar un mensaje de error. Podemos ver cuales son los comandos que soporta el a servidor FTP emulado de Honeyd viendo el cdigo fuente. o En nuestra instalacin Debian utilizaremos este paquete honeyd, ya que tiene licencia GPL y es grao tuito. Para instalarlo ejecutamos el siguiente apt: #apt-get install honeyd honeyd-common Tambin podemos encontrar un kit de herramientas Honeyd para Linux (Honeyd Linux Toolkit). e Mientras los posibles atacantes se entretienen intentando acceder a servicios que no existen, los IDS de nuestro sistema los detectarn y podremos tomar acciones preventivas contra sus IP, como ltrarlas en a el rewall. Una de sus grandes caracter sticas es que podemos asignar a cada una de nuestros dispositivos virtuales el SO que queramos. Esta personalidad tambin se especica con un chero normal de rmas de SO de e Nmap, permitindonos convertirnos en el SO que queramos. Si ejecutamos la conguracin que viene como e o ejemplo, veremos de lo que es capaz. Despus de instalarlo, hay un chero que se llama cong.localhost con un montn de dispositivos cone o gurados. Lo podemos encontrar en: /usr/share/doc/honeyd/examples/config.localhost

Jose Antonio Escart Vigo, Junio 2005. n

256

Servidor Linux para conexiones seguras de una LAN a Internet Si observamos la denicin del dispositivo 10.0.0.1 de ejemplo, veremos lo siguiente: o

#cat /usr/share/doc/honeyd/examples/config.localhost|more ... route entry 10.0.0.1 route 10.0.0.1 link 10.0.0.0/24 ... create routerone set routerone personality "Cisco 7206 running IOS 11.1(24)" set routerone default tcp action reset add routerone tcp port 23 "router-telnet.pl" ... bind 10.0.0.1 routerone ... La explicacin a grandes rasgos es que tenemos un dispositivo cuya direccin IP es 10.0.0.1, que se o o comportar como un Cisco 7206 ejecutando una IOS 11.1(24), resetear todas las conexiones TCP menos a a las que vayan al puerto 23, ya que entonces el script router-telnet.pl (una emulacin del demonio telnet) o ser ejecutado. a Ahora ejecutemos Nmap para comprobar el SO que se ejecuta en el dispositivo virtual que acabamos de crear: # nmap (V. 3.10ALPHA4) scan initiated: nmap -v -sS -oN nmap4. Warning: OS detection will be MUCH less reliable because we did not find at least Interesting ports on 10.0.0.1: (The 1604 ports scanned but not shown below are in state: filtered) Port State Service 23/tcp open telnet Remote OS guesses: Cisco 7206 running IOS 11.1(24), Cisco 7206 (IOS 11.1(17) TCP Sequence Prediction: Class=random positive increments Difficulty=26314 (Worthy challenge) IPID Sequence Generation: Incremental # Nmap run completed -- 1 IP address (1 host up) scanned in 178.847 s Cuando recibimos los paquetes de Nmap, honeyd responde con la personalidad que hemos escogido.

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14

Redes inalmbricas a
En el proyecto he habilitado una red wi, pero hoy los administradores de sistemas y conocen los peligros que esto entraa, seran muy reacios a implantar este tipo de redes, pero es muy probable que las n circunstancias lo obliguen a implantar este tipo de tecnolog a. Aunque no tengamos red inalmbrica, debemos auditar la red frecuentemente y asegurarnos que nadie a est ejecutando un punto de acceso ilegal. a Hasta hace muy poco los administradores de red slo ten que preocuparse de asegurar los bienes o an de la tecnolog de informacin f a o sicos y jos, incluyendo los servidores, los enrutadores y los cortafuegos: todo lo que congura sus redes de l nea de cable. Sin embargo, con el advenimiento del equipamiento de redes inalmbricas existe todo un espectro nuevo de problemas seguridad que tratar. a Esta nueva tecnolog ha ayudado a rebajar el coste del despliegue de redes, ha tra acceso a sitios a do a los que no se pod acceder antes y ha convertido el trmino informtica mvil en una realidad. a e a o Ha cambiado drsticamente el per a metro de seguridad de redes de las empresas de todos los tamaos. n Tradicionalmente, las redes corporativas se conectaban al mundo exterior en slo unos pocos lugares. As o , los administradores de redes se pod concentrar en proteger estos puntos de acceso limitados. Pod an an colocar cortafuegos o otras defensas en esos puntos de contencin cruciales. El interior de la red se trataba o como de conanza porque no hab forma de introducirse que no fuese a travs de los puntos protegidos. a e Ahora con una LAN inalmbrica desplegada, nuestro per a metro de seguridad se convierte literalmente en el aire que nos rodea. Los atacantes sin cables pueden provenir de cualquier direccin. Si tenemos o desplegado un acceso sin cables, cualquiera con una tarjeta de unos 50e puede escuchar potencialmente el cable de nuestra red sin poner un pie en nuestro local. Si estamos utilizando la tecnolog sin cables a para parte de nuestra red, nuestras amenazas de seguridad crecen considerablemente. Antes de asegurar correctamente nuestra red inalmbrica, tenemos que saber cmo funcionan las redes a o del rea local inalmbrica y cules son sus puntos dbiles. a a a e Los fabricantes del equipamiento LAN inalmbrico han reducido tanto los precios que ahora es una a alternativa muy viable para las redes domsticas. En lugar de cablear nuestra casa para conectar nuestros e PCs a Ethernet, podemos comprar un punto de acceso (AP, Access Point) y un par de tarjetas inalmbricas a y utilizar Internet desde cualquier habitacin de nuestra casa (o fuera de ella). El amplio despliegue de la o tecnolog LAN inalmbrica ha llegado denitivamente para quedarse y tarde o temprano tendremos que a a tratar con ella.

14.1.

Estndar 802.11 (Wi) a

El protocolo ms popular para la tecnolog LAN inalmbrica es actualmente la serie 802.11, conocido a a a comnmente como wi. Los estndares inalmbricos de 802.11 son bsicamente una extensin del protocolo u a a a o Ethernet, es la razn por la que funciona tambin con las redes Ethernet con cables. Utiliza las frecuencias o e de 2.4 GHz para 802.11b y 802.11g y 5 GHz para 802.11a para seales de transmisin de datos. Estas n o frecuencias son del espectro de uso general, por lo que no tendremos que pedir ninguna licencia para utilizarlas. El inconveniente es que otros dispositivos pueden utilizar tambin estas longitudes de onda. e Algunos telfonos inalmbricos y microondas se encuentran en la banda de los 2.4 GHz, por lo que si e a

258

Servidor Linux para conexiones seguras de una LAN a Internet

tenemos este tipo de dispositivos u otras redes wi en nuestro rea podemos encontrarnos con algunas a interferencias. Esta longitud de onda es perfecta para el corto rango deseado para wi. Sus parmetros de diseo a n permiten aproximadamente unos 45,72 metros interiores y unos 244 metros exteriores en condiciones normales. Sin embargo, con una antena de alta potencia y alcance, podemos tener hasta un rango de 32,19 Km., algo atractivo para las comunicaciones de ocina a ocina dentro de una ciudad. El cuadro 14.1 incluye una descripcin de los cuatro tipos de estndares inalmbricos 802.11 que han aparecido. o a a

Estndar a 802.11a

802.11b

802.11g

802.11i

Cuadro 14.1: Estndares de 802.11 inalmbricos a a Descripcin o Esta versin del estndar utiliza una logitud de onda de 5 GHz, un espectro menos abao a rrotado y menos propenso a tener problemas de interferencias. El potencial terico para o esta tecnolog es de 54 Mps, una gran cantidad de ancho de banda, pero la mayor de a a las aplicaciones en el sector no se acercan a esa cantidad. Utiliza una longitud de onda de 2.4 GHz, como Bluetooth y otros dispositivos. Ofrece hasta 11 Mps de ancho de banda, aunque las aplicaciones prcticas por debajo de las condiciones a ptimas trabajan a la mitad de dicha cantidad. o Actualmente es el estndar inalmbrico ms conocido. Proporciona hasta 54 Mps de ancho a a a de banda, pero en el mismo espectro de 2.4 GHz que 11b. Tambin es compatible hacia e atrs con el hardware de 11b. a Este nuevo protocolo es bsicamente una extensin de 802.11b que se adhiere al protocolo a o de cifrado para ser mucho ms seguro. El IEEE acaba de aprobarlo y ya podemos encontrar a productos que lo implementan.

Una red wi inalmbrica puede operar en uno de estos dos modos: a Modo adhoc: Nos permite conectar directamente dos nodos juntos. Este modo es util para conectar algunos PCs juntos que necesiten acceso a una LAN o a Internet. Modo de infraestructura: Nos permite establecer una estacin base, conocida como punto de acceso o (AP, Access Point), y conectarla a nuestra LAN. Todos los nodos sin cables se conectan a la LAN travs de este punto. Esta es la conguracin ms comn en redes corporativas ya que permite al e o a u administrador controlar el acceso sin cables a un punto. Cada punto de acceso y tarjeta inalmbricos a tiene un nmero asignado, es el ID del nodo cliente (BSSID, Basic Station System ID). Esta es u la direccin MAC para los clientes inalmbricos que se asocian al nodo servidor. Este nombre no o a es necesariamente unico a dicho punto de acceso. De hecho, la mayor de los fabricantes asignan a un SSID predeterminado a los AP para que puedan utilizarse inmediatamente. El SSID del punto de acceso es necesario para conectarse a la red. Algunas estaciones base tienen una funcionalidad adicional, incluyendo enrutadores y servidores DHCP incorporados. Existen incluso algunas unidades integradas que actan como puntos de acceso sin cables, cortafuegos y enrutador para usuarios u domsticos y de pequeos negocios. Yo dispongo de un router 3Com ADSL 11g de este tipo. e n Podemos congurar un nodo de red inalmbrica instalando una tarjeta de interfaz de red (NIC, Neta work Interface Card) en un ordenador. Una NIC inalmbrica puede ser de varios tipos: puede ser una a tarjeta que se introduce en la ranura del PC, una tarjeta PCMCIA, un dispositivo USB, etc. Una red inalmbrica 802.11 en un modo de infraestructura tiene un punto de acceso que acta como puente entre a u la LAN de Ethernet con cables y uno o ms puntos extremo sin cables. El punto de acceso env frecuena a temente transmisiones de seales luminosas para que cualquier nodo sin cables sepa que est ah Las n a . transmisiones de seales luminosas actan como un faro invitando a cualquier nodo sin cables del rea a n u a iniciar la sesin. Estas seales forman parte del problema con wi. es imposible desactivar completamente o n dichas seales, lo que diculta ocultar el hecho de que hay una red inalmbrica. Cualquiera que tenga n a una tarjeta inalmbrica puede, al menos, ver las seales luminosas si se encuentran dentro de un rango, a n aunque algunos receptores permiten limitar la cantidad de informacin que sale de dichas transmisiones. o Estas seales contienen informacin bsica sobre el punto de acceso inalmbrico, normalmente inclun o a a yendo su SSID. Si la red no est utilizando ningn cifrado ni ninguna otra proteccin, esto es todo lo que se a u o
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14. Redes inalmbricas a

259

requiere para que un intruso acceda a la red. Sin embargo, incluso en una red inalmbrica cifrada, el SSID a normalmente se transmite al descubierto y los paquetes cifrados pueden ser escuchados clandestinamente en el aire y estn sujetos a intentos de decodicacin. a o

14.2.

Peligros de las LAN inalmbricas a

Aunque ofrecen la misma exibilidad y funcionalidad que pueden ofrecer las LAN con cables, tambin e introducen algunos retos y peligros unicos para el administrador de redes preocupado por la seguridad. Estos son algunos de los que tenemos que tener en cuenta al aadir una LAN inalmbrica a nuestra n a infraestructura: Escuchas clandestinas: Lo ms cil para un intruso en una red inalmbrica es recopilar paquetes a a a utilizando un snier. Poco podemos hacer frente a ello, Los diseadores de las redes inalmbricas n a pensaron sobre ello e introdujeron en el diseo un cifrado estndar denominado Privacidad equivalen n a al cable (WEP, Wired Equivalente Privacy) para que los datos se pudieran cifrar. Lamentablemente, un fallo fundamental en cmo funcionan los algoritmos RC4 en los que esta basado hacen que los o datos se puedan descifrar. Por lo tanto, incluso aunque se ejecute WEP, cualquier dato que viaje por una red inalmbrica est potencialmente sujeto a su inspeccin por personas ajenas a la red. a a o Alguien podr escuchar sobre nuestro enlace sin cables para buscar los registros de inicio de sesin, a o las contraseas o cualquier otro dato. n Acceder a los PC sin cables: Un enlace inalmbrico proporciona a un atacante potencial un vector en a una mquina de nuestra red. Aparte de los puntos de acceso, las mquinas con tarjetas inalmbricas, a a a a veces, se pueden ver desde el exterior. Si utilizan este modo de acceso pueden lanzar ataques contra una mquina que probablemente no est protegida por el cortafuegos y puede que no se bloqueen a a como las defensas del per metro o los servidores pblicos. u Acceder a la LAN : Probablemente ste sea el mayor peligro que presentan las redes inalmbricas. e a Si los intrusos pueden obtener el acceso a nuestra LAN a travs de un punto de acceso inalmbrico, e a normalmente tienen las llaves de nuestro reino. La mayor de las LAN ejecutan un servidor DHCP a sin restringir, por lo que los intrusos pueden obtener una direccin IP vlida y empezar a explorar o a nuestra red. A continuacin pueden ejecutar un escner de vulnerabilidades (como Nesus) o un o a escner de puertos como Nmap (Vease seccin 17) para encontrar mquinas de su inters y buscar a o a e brechas que puedan aprovechar. Acceso annimo a Internet: Aunque los intrusos no estn interesados en lo que contienen nuestra o e LAN, pueden utilizar nuestro ancho de banda para otros usos. Al iniciar la sesin en nuestra red y o acceder despus a Internet, pueden piratear nuestra red y hacer el dao que quieran sin que podamos e n seguirles la pista. Cualquier ataque o dao perpetrado desde esta conexin se rastrear hacia nuestra n o a red. Las autoridades pueden llamar a nuestra puerta, no a la suya. Este mtodo de pirater se e a har cada vez ms comun a medida que los intrusos se den cuenta de lo dif que es rastrear a a cil los ataques que se originan de esta manera. Existen pocas posibilidades de capturar a alguien que proviene de una red inalmbrica a no ser que tenga un equipo de triangulacin situado de antemano, a o algo bastante caro y poco habitual. Las LAN inalmbricas no aseguradas ofrecen a los intrusos el a mejor acceso annimo que existe. o Vulnerabilidades espec cas de 802.11 : Adems de las inseguridades de las LAN inalmbricas, existen a a algunos problemas espec cos del estndar 802.11. Algunos de ellos se deben a un mal diseo del a n fabricante o a las conguraciones predeterminadas, otros problemas se deben al diseo general de n estndar. a SSID predeterminados: Cada estacin base wi tiene un identicador espec o co que debemos conocer para entrar en la red. Este identicador proporciona algn nivel de seguridad si se implanta correcu tamente. Lamentablemente, muchas personas no cambian el SSID predeterminado del fabricante, como linksys, default, etc. Cuando un intruso lo encuentra, puede suponer que el administrador no ha perdido mucho tiempo en congurar y asegurar la red inalmbrica. a
Jose Antonio Escart Vigo, Junio 2005. n

260

Servidor Linux para conexiones seguras de una LAN a Internet Transmisin de seales luminosas: La transmisin de seales luminosas son un problema inherente a o n o n las redes inalmbricas. La estacin base debe emitir regularmente su existencia para que los emisores a o del usuario nal puedan encontrar y negociar una sesin y como los dispositivos leg o timos del usuario no se han autenticado todav esta seal debe transmitirse al descubierto. Cualquiera puede capturar a, n esa seal y, como m n nimo saber que tenemos una LAN inalmbrica. Muchos modelos nos permiten a desactivar la parte SSID de la transmisin para que, al menos, sea ms dif de captar para las o a cil escuchas clandestinas de redes inalmbricas, pero SSID se sigue enviando cuando una estacin se a o conecta, por lo que sigue existiendo una pequea ventana de vulnerabilidad. n Comunicaciones sin cifrar de forma predeterminada: La mayor de los dispositivos LAN inalmbria a cos de hoy en d ofrecen la opcin de activar el cifrado WEP estndar . El problema es que normala o a mente se tiene que hacer manualmente. Muchos fabricantes comercializan su equipamiento con esta opcin desconectada de forma predeterminada. Muchos administradores tienen prisa por congurar o su red inalmbrica y no tienen mucho tiempo para activar esta importante funcin. Si una persona a o no tcnica congura la red, es muy probable que no se active el cifrado. Tambin existe el problema e e de la clave compartida por todos nuestros usuarios ya que WEP utiliza una sola clave entre todos ellos, lo que puede llegar a convertirse en una pesadilla si tenemos muchos usuarios conectndose sin a cables. Punto dbil de WEP : Incluso cuando se utiliza el cifrado incorporado, la seal sigue teniendo el riesgo e n de ser le da. Existen algunos puntos dbiles fundamentales en la implantacin del algoritmo RC4 e o utilizado para el cifrado en WEP que permiten que se descifren una vez interceptada una cantidad de trco. Estos puntos dbiles tienen que ver con la forma en que se programan las claves. WEP utiliza a e vectores de inicializacin dbiles con un porcentaje sucientemente alto como para que nalmente o e puedan descifrarse. Una vez roto el cifrado, no slo los atacantes pueden leer todo el trco de la red o a inalmbrica sino que probablemente puedan entrar en la red. Por lo tanto, aunque WEP ofrece una a proteccin bsica frente a escuchas clandestinas casuales, cualquier intruso serio tendr el software o a a como para descifrar potencialmente el cifrado.

14.3.

El fenmeno del Wardriving o

La bsqueda de LANs inalmbricas inseguras se ha convertido en un pasatiempo popular entre los u a piratas informticos. Esta prctica se conoce como wardrive o wardriving, funciona de la misma forma a a que el marcado telefnico en masa o guerra del marcado telefnico, de los primeros piratas informticos, o o a consiste en seleccionar de forma aleatoria bancos de nmeros de telfono para encontrar mdems activos. u e o En general, los piratas informticos conducen un automvil con una tarjeta inalmbrica y algn softa o a u ware buscando una seal de una red. El software puede registrar la ubicacin exacta de la red inalmbrica n o a a travs del GPS as como otra gran cantidad de informacin como: si est cifrada o no y que tipos de e o a protecciones se encuentran activas. Los que realizan el wardring pueden explorar Internet o la LAN local sobre el enlace sin cables. No se requiere un alto nivel de conocimientos para hacerlo, por lo que hay intrusos de todos los niveles. Las empresas que utilizan LAN en entornos densos alrededor de sus ocinas o cerca de carreteras principales y autopistas son los entornos ms propensos a este tipo de actividad, como ocinas en entornos a urbanos y reas del centro donde hay muchos edicios altos. Las redes inalmbricas que utilizan 802.11b a a tienen una distancia efectiva de un par de cientos de metros. Es fcil crear un puede entre el espacio a comprendido entre dos edicios o varias plantas en un edicio alto. En una zona del centro densa, es comn encontrar varias LAN inalmbricas sin proteccin dentro de un edicio. Desde el punto de vista de u a o la seguridad, los edicios altos suelen ser uno de los peores lugares para ejecutar una LAN inalmbrica. a el t pico edicio de cristal permite que las seales de su LAN viajen a mucha distancia. Si hay otros n edicios cerca, es casi seguro que podrn recoger algunas de sus seales. Incluso es peor los edicios altos a n que se encuentran junto a una zona residencial. Imaginemonos a los adolescentes y otros recin llegados e escaneando en busca de las LAN inalmbricas disponibles, desde la comodidad de sus habitaciones en las a afueras de una ciudad. Aproximadamente un 60 por ciento de las LAN inalmbricas son completamente inseguras. Los que a realizan los paseos de batalla han llegado incluso a anunciar puntos de acceso sin cables en bases de datos
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14. Redes inalmbricas a

261

online con mapas para que cualquiera pueda encontrar una LAN Inalmbrica bierta en cualquier parte. a Las catalogan por tipo de equipamiento, cifradas o no cifradas, etc. Si tenemos una LAN inalmbrica en a un rea metropolitana importante, es probable que est catalogada en uno de estos sistemas, esperando a e slo a que cualquier intruso oportunista de su zona al que le sobre algo de tiempo. Las siguientes son bases o de datos online que se pueden consultar para ver si nuestra LAN se encuentra ya catalogada: http://www.wimaps.com/ http://www.nodedb.com/europe/es http://www.cybergeography.org/spanish/wireless.html Existe hasta un catalogo de simbolos estandarizado para identicar redes wis urbanas:

Figura 14.1: S mbolos urbanos de redes wi


Jose Antonio Escart Vigo, Junio 2005. n

262

Servidor Linux para conexiones seguras de una LAN a Internet

Es tan grande este fenmeno que hace unos meses en las islas canarias, se organizo el primer campeonao to de Wardriving de Espaa (Canarias Wardrive05), podemos encontrar mas informacin en esta direccin: n o o http://www.canariaswardrive.org/ Estas son las curiosas bases del concurso: Solo necesitamos explorar nuestra propia ciudad empleando un simple porttil, pda o similar, a dotado de una tarjeta wi. La competicin se divide en tres categor territoriales: o as Competicin de Wardrive en Tenerife o Competicin de Wardrive en Gran Canaria o Competicin de Wardrive en toda Canarias o En estas competiciones se permite la participacin individual o por equipos. Trabajando en o equipo se cubre ms territorio y se encuentran los focos emisores ms rapidamente. Una coma a peticin sin carcter regional es la de los MiniGames, se celebrarn en Tenerife. En ellos se o a a plantearan a los competidores retos tales como intentar romper la seguridad de redes. Un sistema homologado de puntuacin asignar una cantidad de puntos dependiendo del tipo de red o a local. La participacin en este tipo de competicin exige inexorablemente un comportamiento o o deportivo intachable. Ha ms de un administrador de sistemas se le pondrn los pelos de punta al leer esto. a a

14.4.

Seguridad en redes inalmbricas a

Si tenemos la red inalmbrica sin cifrado, cualquier intruso podr leer los datos que mandemos o incluso a a entrar en nuestra red. Es necesario implantar una serie de medidas: cifrado de datos, concienciacin del o personal, auditorias, etc.

14.4.1.

Clave WEP (Wired Equivalente Privacy)

La clave WEP es una clave asimtrica, compartida por todos los usuarios inalmbricos. Est basada e a a en el algoritmo RC4 y tiene un nivel de seguridad dbil. Es debido a un fallo del algoritmo, crea una serie e de vectores de inicializacin dbiles que con un traco de red suciente, permiten deducir la clave. Fue o e introducida con el estndar 802.11a y actualmente ha quedado superado por WPA. a Si en vez de tener una red abierta, al menos, ciframos los datos con clave WEP, los intrusos tendrn a que perder tiempo y esfuerzo en obtenerlos. Esto desanimar a intrusos casuales, y har que los serios a a tengan que quedarse por nuestra zona varios d aumentando las posibilidades de que el personal de as, seguridad o los vigilantes noten su presencia. La clave WEP, no es recomendable, ya que WPA representa una mejor forma de proteccin. En o determinadas situaciones, puede ser suciente pero esto solo tiene lugar en entornos que no manejan datos sensibles y donde se produzca muy poco traco de red.

14.4.2.

Clave WPA (Wi Protected Access)

Esta destinada a garantizar la seguridad en las especicaciones IEEE 802.11a, 802.11b y 802.11g, mejorando las claves WEP; En abril de 2003 aparecieron en el mercado los primeros productos que incorporaban tecnolog de cifrado WPA. a En la gura 14.2 podemos ver una comparativa entre las claves WEP Y WPA.

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14. Redes inalmbricas a

263

Figura 14.2: Comparativa entre WEP y WPA Privacidad e integridad con TKIP TKIP (Temporal Key Integrity Protocol) ampl y mejora a WEP, solucionando sus vulnerabilidades. a Ampl la longitud de la clave de 40 a 128 bits y pasa de ser unica y esttica, a ser generada de forma a a dinmica, para cada usuario, para cada sesin (teniendo una duracin limitada) y para cada paquete a o o enviado. Conceptualmente el vector de inicializacin pasa de 24 a 48 bits, minimizando la reutilizacin de o o claves. Tambin utiliza claves para trco de difusin y multidifusin. e a o o Utiliza el algoritmo Michael para garantizar la integridad, generando un bloque de 4 bytes (denominado MIC) a partir de la direccin MAC de origen, de destino y de los datos, aadiendo el MIC calculado o n a la unidad de datos a enviar. Posteriormente los datos (que incluyen el MIC) se fragmentan y se les asigna un nmero de secuencia. La mezcla del nmero de secuencia con la clave temporal genera la clave que se u u utilizar para el cifrado de cada fragmento. a Autenticacin mediante 802.1X/EAP o El estndar IEEE 802.11x dene un protocolo para encapsular, protocolos de autenticacin sobre a o protocolos de enlace de datos. IEEE 802.11x permite utilizar diversos mtodos para autenticar al usuario e a travs del protocolo de autenticacin extensible (EAP). Se concibe como una ampliacin de la capa de e o o enlace de datos:

Figura 14.3: Funcionamiento WPA/EAP


Jose Antonio Escart Vigo, Junio 2005. n

264 IEEE 802.11x dene 3 entidades:

Servidor Linux para conexiones seguras de una LAN a Internet

El solicitante (supplicant), reside en la estacin inalmbrica o a El autenticador (authenticator), reside en el AP El servidor de autenticacin, reside en un servidor AAA (Authentication, Authorization, & Accouno ting), como los servidores Radius Utiliza un mtodo de control de acceso basado en el concepto de puerto (PAE, Port Acess Entity). El e autenticador crea un puerto lgico por cliente, existiendo dos caminos uno autorizado y otro no. Mientras o el cliente no se ha autenticado con xito unicamente se permite trco 802.11x/EAP hacia el servidor de e a autenticacin. o

Figura 14.4: Autenticacin mediante un servidor Radius o El solicitante cuando pasa a estar activo en el medio, selecciona y se asocia a un AP. El autenticador (situado en el AP) detecta la asociacin del cliente y habilita un puerto para ese solicitante, permitiendo o unicamente el trco 802.11x, el resto de trco se bloquea. El cliente env un mensaje EAP Start. El a a a autenticador responde con un mensaje EAP Request Identity para obtener la identidad del cliente, la respuesta del solicitante EAP Response contiene su identicador y es retransmitido por el autenticador hacia el servidor de autenticacin. A partir de ese momento el solicitante y el servidor de autenticacin o o se comunicarn directamente, utilizando un cierto algoritmo de autenticacin que pueden negociar. Si el a o servidor de autenticacin acepta la autenticacin, el autenticador pasa el puerto del cliente a un estado o o autorizado y el trco ser permitido. a a Los mtodos de autenticacin denidos en WPA son: EAP-TLS, EAP-TTLS y PEAP. Estos mtodos se e o e basan en la infraestructura de clave pblica (PKI) para autenticar al usuario y al servidor de autenticacin, u o utilizando certicados digitales. La premisa es la existencia de una Autoridad de Certicacin (CA) de o conanza para la corporacin, que emita certicados para los usuarios y el servidor de autenticacin. La o o CA puede ser privada (empresarial) o pblica (basada en CAs de Internet como Verisign). u EAP-TLS (TRANSPORT LAYER SECURITY) Los usuarios y el servidor de autenticacin deben tener un certicado digital. El solicitante, tras la o asociacin y la creacin del puerto de acceso por el autenticador, env su identicacin (nombre de o o a o usuario) hacia el autenticador y ste hacia servidor de autenticacin. Este ultimo env su certicado al e o a cliente, al validarlo el cliente responde con su certicado. El servidor de autenticacin comprueba si el o certicado es vlido y corresponde con el nombre de usuario antes enviado, si es as autentica al cliente. a Cliente y servidor generan la clave de cifrado para esa sesin, y el servidor de autenticacin la env al o o a punto de acceso, de forma que ya puede comunicarse el cliente de forma segura.
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14. Redes inalmbricas a PEAP y EAP-TTLS

265

EAP-TLS exige que todos los clientes dispongan de un certicado digital lo que puede ser, en muchos casos, un inconveniente tcnico y econmico. Para evitar esta necesidad aparecen 2 mtodos: Protected e o e EAP (PEAP) y EAP-Tunneled TLS (EAP-TTLS), que requieren unicamente del certicado en el servidor de autenticacin. o La idea subyacente es que si el servidor de autenticacin dispone de un certicado digital, el cliente o podr enviarle datos cifrados, crendose un tnel de seguridad por donde el cliente podr enviar sus a a u a datos de autenticacin. o PEAP fue diseado por Microsoft, Cisco y RSA. Cuando el cliente ha validado el certicado del n servidor de autenticacin y creado el tnel, usando TLS se inicia una nueva autenticacin donde negocian o u o un mtodo, por ejemplo MS-CHAP v2, tras autenticar el servidor al cliente, ambos generan la clave de e sesin. EAP-TTLS fue diseado por Funk Software. Tambin se basa en crear en primer lugar un tnel TLS o n e u pero los mensajes que intercambia son pares valor atributo (attribute-value pairs-AVPs) muy similares a los que utiliza Radius. TTLS soporta todos los mtodos EAP y se abre a nuevos mtodos. e e WPA y seguridad en peque as ocinas n Los mtodos soportados por EAP necesitan de una cierta infraestructura, fundamentalmente de un e servidor Radius, lo que puede limitar su implementacin en redes pequeas. Wi ofrece los benecios de o n WPA mediante el uso de una clave pre-compartida (PSK, pre-shared key) o contrasea. Esto posibilita el n uso de TKIP, pero congurando manualmente una clave en el cliente wireless y en el punto de acceso. WPA y el uso de AES Las directrices del estndar nal IEEE 802.11i (denominado RSN: Robust Security Network) marcan a como algoritmo de cifrado a AES (Advanced Encryption Standard), basado en el algoritmo Rijndael para proporcionar privacidad y en claves de 128 bits o ms. Parece que la implementacin ms probable es el a o a modo Cipher Block Chaining Counter Mode (CBC-CTR) con Cipher Block Chaining Message Authenticity Check (CBC-MAC), conocido el conjunto como CBC-CCM. AES ya ha sido adoptado como estndar para a cifrado en sistemas de computacin y comunicaciones. WPA indica el soporte de AES como opcional, o existiendo dispositivos que lo implementan. Implementacin de WPA o Para soportar WPA, en caso de que los productos no estn certicados por su uso, debemos actualizar e el rmware de los puntos de acceso y de los adaptadores de red inalmbricos de las estaciones. En las a estaciones se deber actualizar el sistema operativo para soportar 802.11x y el mtodo EAP elegido. Por a e ejemplo, Windows XP soporta WPA mediante una actualizacin. o Segn el mtodo EAP elegido habr que denir la conguracin del servidor Radius. Tambin es posible u e a o e que tengamos que utilizar o implementar los servicios de una Autoridad de certicacin. o Conclusiones sobre el uso de WPA La seguridad es una cuestin conjunta por lo que las directivas aplicables a los segmentos de redes o inalmbricas deben integrarse con el resto de directivas. Por ejemplo, el uso de cortafuegos para conectar la a red inalmbrica con la red corporativa, aadiendo capacidades de deteccin de intrusos e incluso de analizar a n o el trco inalmbrico y detectar puntos de acceso no autorizados son mecanismos de seguridad necesarios a a para garantizar los requerimientos de seguridad. Asimismo, tanto los clientes como servidores debern de a seguir las directivas de seguridad denidas que deben incluir, como m nimo, el uso de antivirus, cortafuegos personales, deteccin de intrusos, actualizacin de software, eliminacin de servicios innecesarios o o o A la espera de poder implementar el estndar nal sobre seguridad en redes inalmbricas (802.11i) a a la especicacin Wi Protected Access (WPA) ofrece una solucin able y robusta para garantizar la o o privacidad, integridad y autenticacin. Garantizando, adems, la interoperabilidad entre fabricantes y o a ofreciendo un modo natural de migrar hacia WPA2.
Jose Antonio Escart Vigo, Junio 2005. n

266

Servidor Linux para conexiones seguras de una LAN a Internet

14.4.3.

Clave WPA2 (Estndar 802.11i) a

Aunque hace ya varios aos que se desvelaron las vulnerabilidades del protocolo WEP (razn por n o la que fue sustituido por WPA basado en TKIP), esta tecnolog dej de ser un borrador a nales de a o junio de 2004, por lo que ya podemos referirnos a ella como un estndar aprobado por el IEEE. Esta a nueva especicacin utiliza el algoritmo de cifrado AES (Advanced Encryption Standard), un mecanismo o extremadamente seguro que mereci en su d la aprobacin del NIST (National Institute of Standards o a o and Technology). WPA2 se basa en 802.11i y es compatible con WPA. La llegada de 802.11i debe ser acogida con entusiasmo debido al elevado nivel de seguridad que ofrece. Aun as es necesario tener en cuenta que el , algoritmo de cifrado AES requiere unas condiciones y una exigencia al hardware bastante alta, lo que signica que algunas interfaces inalmbricas antiguas no sern capaces de satisfacer los requisitos de este a a estndar. a Dentro de algn tiempo WPA2 se convertir en el estndar de seguridad para las redes inalmbricas. u a a a

14.4.4.

Medidas preventivas

La implantacin de cualquier acceso inalmbrico tiene un riesgo, pero se puede reducir tomando una o a serie de medidas preventivas. Tratar la red inalmbrica como de no conanza a Como no se puede controlar el trco entrante por el aire, no se deber tratar de forma distinta a la a a parte pblica del cortafuegos. Si nos lo podemos permitir, es recomendable situar un cortafuegos entre su u red inalmbrica y la LAN privada o situarla en una DMZ (Zona desmilitarizada). Despus se puede ltrar a e determinados tipos de paquetes de ataque, limitar los tipos de trco y registrar cualquier actividad que a provenga de dicha interfaz. Auditar el per metro inalmbrico regularmente a Hay que probar la distancia de la seal, si la red est superpuesta sobre otras redes cercanas. n a Es necesario realizar una tarea peridica para localizar cualquier punto de acceso no controlado. o La tecnolog inalmbrica es ahora tan barata que cualquier usuario de nuestro sistema puede comprar, a a instalar y congurar una tarjeta wi para algn propsito licito o no, como puede ser una demostracin sin u o o cables en una sala de conferencias, abriendo as nuestra red para los ataques inalmbricos. Actualmente a podemos encontrar hasta tarjetas de red wi para USB. Asimismo, no hay que olvidar que muchos PCs nuevos, especialmente porttiles, tienen incorporadas a tarjetas wi y habilitarlas es cosa de nios. Podemos estar funcionando de forma inalmbrica en nuestra n a red sin darnos cuenta. Una auditor inalmbrica es la unica forma de descubrirlo. a a Congurar correctamente la red inalmbrica a Existen muchas opciones y conguraciones que podemos utilizar para aumentar considerablemente nuestra seguridad y aunque no todos los equipamientos admiten estas opciones, podemos intentarlas. Desactivar la transmisin de SSID: Esta tarea requiere que el usuario conozca el SSID para establecer o una sesin con la estacin base. Acta como una contrasea dbil. Sin embargo, si una escucha o o u n e clandestina descifra el cifrado, podr obtener el SSID fcilmente. a a Restringir el acceso por la direccin MAC: As es ms dif para alguien obtener acceso a nuestra o a cil red a travs de una estacin base inalmbrica. En la mayor de los puntos de acceso, podemos e o a a restringir el mismo a determinadas direcciones MAC hardware, un mtodo bastante slido para la e o autenticacin, ya que slo las personas con la tarjeta con un nmero de serie correcto pueden obtener o o u acceso. Sin embargo, puede ser incmodo para un administrador mantener el registro de las tarjetas o NIC autorizadas, eso si contar que no permite el acceso instantneo a un nuevo usuario en nuestra a ocina. As mismo, si el atacante conoce una de las direcciones MAC autorizadas, es posible falsicar esta direccin en su propia tarjeta y hacerse pasar por el propietario. o
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14. Redes inalmbricas a Formar al personal

267

Igual que sucede con todo lo referente a la seguridad informtica, el elemento humano puede ser el a punto ms dbil o el ms fuerte. Hay que asegrese de que los guardas de seguridad, los recepcionistas y a e a u otro tipo de personal sepan buscar un comportamiento sospechoso. Por ejemplo, si ven a alguien sentado en su aparcamiento durante mucho tiempo dentro del coche, posiblemente con una antena extraa en el n techo del mismo, es muy probable que se trate de alguien que busca entrar en nuestra red inalmbrica. a Asimismo, hay que desarrollar una pol tica a nivel de toda la empresa. Algunas veces una demostracin o es la mejor forma de mostrar este tipo de peligro. Un personal informado puede ser nuestra mejor defensa.

14.5.

Servidor Radius: FreeRadius

Lo que vamos a montar es un sistema EAP-TLS (Vease seccin 14.4.2) donde el servidor y los usuarios o necesitan tener un certicado digital para comunicarse. Es necesario que el servidor Radius se coloque en la misma mquina donde se encuentra el cortafuegos. a Para congurar el sistema hay que seguir el siguiente esquema (Vease gura 14.5): Instalamos FreeRadius: #apt-get install freeradius Conguramos FreeRadius para trabajar con EAP-TLS Generamos los certicados Comprobamos que FreeRadius funciona correctamente Conguramos el AP (Router 3Com) Conguramos los clientes Linux Conguramos los clientes Windows XP (Actualizado a Service Pak 2) La informacin utilizada se puede encontrar en los siguientes HowTos: o HowTo 802.1x: http://tldp.org/HOWTO/html single/8021X-HOWTO/ HowTo EAP-TLS: http://www.missl.cs.umd.edu/wireless/eaptls/ HowTo Radius en WindowsXP: http://www.dslreports.com/forum/remark,9286052mode=at

14.5.1.

Congurar FreeRadius con EAP-TLS

Los archivos de conguracin se encuentra en: /etc/freeradius/, los comentarios que llevan integrao dos en el cdigo ayudan bastante a la conguracin y es muy recomendable leerlos. o o Hay que realizar las siguientes modicaciones: /etc/freeradius/radiusd.conf : Fichero de conguracin general de Radius. Aqu denimos los sisteo mas de autenticacin. Hay muchas partes del chero que no he utilizado. o /etc/freeradius/eap.conf : Fichero de conguracin del servicio EAP del servidor radius. o /etc/freeradius/clients.conf : Aqu se conguran las IPs y las redes de sistemas que pueden ser clientes de radius, en nuestro caso el AP (router 3Com, con IP 172.16.1.253) client 172.16.1.253/32 { secret = clave_secreta shortname = localhost }
Jose Antonio Escart Vigo, Junio 2005. n

268

Servidor Linux para conexiones seguras de una LAN a Internet

Figura 14.5: Sistema con cortafuegos + servidor Radius /etc/freeradius/users.conf : Aadimos los usuarios a los que les vamos a permitir el acceso a la red n josan Auth-Type := Local, User-Password == "atitelovoyadecir" Service-Type = Framed-User, Framed-Protocol = PPP, Framed-IP-Address = 192.168.0.2, Framed-IP-Netmask = 255.255.255.0, Framed-Routing = Broadcast-Listen, Framed-Filter-Id = "std.ppp", Framed-MTU = 1500, Framed-Compression = Van-Jacobsen-TCP-IP Si no nos queremos complicar en exceso, para agregar ms usuarios, solo hay que cambiar User-Password a y la IP.

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14. Redes inalmbricas a

269

14.5.2.

Generar los certicados

Respecto a la generacin de certicados, obviamente la idea es que los emita una entidad certicadora o contrastada, pero tambin nos los podemos hacer nosotros. e Para ello utilizaremos OpenSSL, si todavia no lo hemos instalado realizamos el apt: #apt-get install openssl libssl-dev ca-certificates Ahora tenemos dos opciones: Aprendemos a utilizar la infraestructura PKI (bastante complicada por cierto) Utilizamos los scripts de generacin de certicados que vienen con FreeRadius y OpenSSL o Escogeremos la segunda opcin, usando los scripts predenidos, ya que, con muy pocas modicaciones o podemos crear los certicados que nos hacen falta para trabajar de forma segura con nuestro wi. Aqu nos encontramos con un problema, para generar los certicados necesitamos unos scripts que vienen con el cdigo fuente de freeradius, para obtenerlo: o #apt-get source freeradius, nos descargar los fuentes en el directorio actual. a En el directorio scripts encontraremos una serie de archivos entre los que se encuentran los siguientes: CA.certs, certs.sh y xpextensions. A estos tendremos que aadir otro archivo de OpenSSL: CA.pl, un script n Perl para crear Autoridades de Certicacin y cuyo path no suele estar en el $PATH del sistema. o Para buscarlo podemos ejecutar: #find / | grep CA.pl, y lo copiamos donde los otros archivos. Es preciso vericar las rutas de las ordenes de los scripts ya que puede ser que sino no funcionen bien. En mi caso he tenido que modicar el cert.sh. En el archivo CA.certs, siguiendo el ejemplo que all aparece, colocaremos nuestros datos en las variables del inicio del chero. Para generar los certicados lo unico que deberemos de hacer es: #apt-get install ./certs.sh Lo que se muestra por pantalla ser algo parecido a esto: a # ./certs.sh Generating DH parameters, 512 bit long safe prime, generator 2 This is going to take a long time ........................................................................................ .................................................+.+.........................+.......... +.........................+......................................+...................... ........+.................+......+.............+........................................ ...............+......+...................................+....+........................ ......+......................+..++*++*++*++*++*++* See the certs directory for the certificates. The certs directory should be copied to .../etc/raddb/ All passwords have been set to whatever Ahora tendremos un nuevo directorio llamado ./certs y donde se encuentran todos los certicados que nos harn falta para el cliente y el servidor. a Es recomendable colocar estos certicados en /etc/freeradius/certs, ya que los archivos de conguracin o de freeradius apuntan a ese directorio y tendremos menos cosas que modicar.

Jose Antonio Escart Vigo, Junio 2005. n

270

Servidor Linux para conexiones seguras de una LAN a Internet

14.5.3.

Comprobar el funcionamiento de FreeRadius

Hay que repasar los archivos: radiusd.conf, eap.conf, clients.conf y users.conf, los ajustaremos para que cojan los certicados que hemos generado. radiusd.conf : Hay que revisar las rutas de los certicados, para que apunten a los directorios donde los hemos colocado. eap.conf : Hay que asegurarse de colocar la contrasea elegida en private key password, si no lo n hiciramos nos pedir la clave al arrancar al demonio y no podr arrancarlo iniciar el sistema. e a a Ahora para ejecutar el servidor: #freeradius -X, y para lanzar el demonio: /etc/init.d/freeradius start Antes de pasar a congurar los usuarios es necesario congurar el AP, que ser el cliente de nuestro a servicio de Radius. La conguracin es realmente muy sencilla, yo lo tengo congurado como un router o entre dos redes la de usuarios (192.168.1.0/24) e Internet (en el grco la 172.16.1.253). a Revisamos el client.conf y asignamos a esa IP permisos para hacer peticiones al servidor Radius. Aqu aparece otra contrasea que utilizan el AP y el FreeRadius para cifrar sus comunicaciones. En el AP n deberemos colocar la misma clave (lo podemos observar en la gura 14.6).

14.5.4.

Congurar AP (Router 3Com)

El router 3Com que utilizo me permite introducir seguridad basada en WPA con soporte para un servidor Radius, como se puede observar en la gura 14.6. Hay que introducir la direccin IP de la mquina y el puerto de escucha del servicio Radius. o a Radius Key es la clave secreta que hemos elegido en /etc/freeradius/client.conf

Figura 14.6: Router 3Com con WPA y servidor radius

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14. Redes inalmbricas a

271

14.5.5.

Clientes Linux: WPA-Supplicant

Debemos asegurarnos que nuestra tarjeta wireless se puede utilizar en WPA con EAP-TLS, si en la documentacin no lo encontramos probablemente no ser compatible. o a Si lo soporta, necesitamos saber es como se llama la tarjeta en el sistema (en mi caso eth1):
#iwconfig lo no wireless extensions. eth0 eth1 no wireless extensions. IEEE 802.11g ESSID:"example" Mode:Managed Frequency:2.442 GHz Access Point: 00:12:17:B8:2E:12 Bit Rate:54 Mb/s Tx-Power:25 dBm RTS thr:2347 B Fragment thr:2346 B Encryption key:41ED-EE53-EE7C-84BF-005D-A8F7-C10F-0CE0-9E7D-A17F-A5FD-2ECD-7FF3-6A4C-4E73-BDC5 Power Management:off Link Quality:95/100 Signal level:-54 dBm Noise level:-256 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:1609 Invalid misc:6740 Missed beacon:0

Para tener acceso mediante los clientes Linux hay que instalar el siguiente programa: #apt-get install wpasupplicant Y crear el archivo de conguracin (/etc/wpa supplicant.conf) para pasar el certicado al servidor o Radius: network={ ssid="example" proto=WPA key_mgmt=WPA-EAP pairwise=TKIP group=TKIP eap=TLS identity="user@example.com" ca_cert="/etc/cert/cert-srv.pem" client_cert="/etc/cert/root.pem" private_key="/etc/cert/root.der" private_key_passwd="password"} Si utilizamos clave WPA sin servidor Radius se nos ofrece la posibilidad de encriptar la clave que se pasara por la red, esto se consigue mediante el comando: #/usr/sbin/wpa_passphrase <ssid> <passphrase> Despus solo queda lanzar el cliente: e #wpa_supplicant -B -i <ifname> -c <config_file> -D <driver> En mi caso, ifname es eth1, el cong le lo cre en /etc/wpa supplicant.conf y el driver ipw, esto e variar dependiendo de nuestra conguracin de hardware. a o Si ejecutamos: #wpa_supplicant -h, veremos que soporte y para que driver ha sido compilado. Y para comprobar si funciona correctamente la negociacin de los certicados ejecutamos: o #wpa_supplicant -dd -i eth1 -c /etc/wpa_supplicant.conf -D ipw

Jose Antonio Escart Vigo, Junio 2005. n

272

Servidor Linux para conexiones seguras de una LAN a Internet

14.5.6.

Clientes Windows: WindowsXP + SP2

Como con los clientes Linux, debemos asegurarnos que nuestra tarjeta wireless se puede utilizar en WPA con EAP-TLS. Para instalar los certicados generados por OpenSSL (root.der y root.p12) es suciente con hacer doble click sobre ellos. Instalamos el certicado de la entidad emisora: root.der Instalamos el certicado de cliente: root.p12, nos pedira la contrasea del certicado n Para comprobar que realmente ha sido instalado, ejecutamos el siguiente comando en la consola: mmc A travs del Microsoft Manegement Console (mmc) podemos comprobar el certicado, : e Elegimos la opcin agregar, certicados. Pulsando sobre l deber de aparecer: o e a En certicados personales, el certicado de cliente En entidades emisoras, el certicado del servidor Ahora falta asociarlos a una conexin, vamos a ver las conexiones de red inalmbricas disponibles. o a Pulsamos sobre cambiar el orden de las redes preferidas Seleccionamos nuestra red en el listado, podremos observar que tiene el WPA activado Apretamos al boton propiedades En esta ventana, establecemos como autenticacin de red WPA y como cifrado de datos TKIP o Despus cambiamos a la pestaa de autenticacin y establecemos como EAP tarjeta inteligente u e n o otro certicado y activamos la opcin Autenticar como equipo cuando la informacin del equipo o o este disponible Solo queda pulsar sobre propiedades de EAP Solo queda seleccionar las siguientes opciones y aceptar: usar un certicado en este equipo, utilizar seleccin simple de certicado, validar un certicado de servidor y elegir el certicado cliente que o hemos instalado. Ahora, si volvemos a la pantalla principal de seleccin de redes detectadas y si pulsamos sobre nuestra o red podremos observar que aparece al lado del reloj del sistema un icono que nos informa sobre el uso del certicado. Si presionamos sobre este icono aparecer una ventana emergente que nos avisa de que se a est validando el servidor y que presionemos aceptar si el certicado es correcto, una vez presionemos a ya no ser necesario volver a repetir el proceso y si todo va bien podremos conectarnos de forma segura a a nuestra red.

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14. Redes inalmbricas a

273

14.6.

Herramientas de seguridad

Las redes wi son inseguras por denicin, el hecho de comunicarse por un medio de libre acceso como o es el aire implica que la transmisin ser vulnerable. o a Si en nuestra red no permitimos estas conexiones o si queremos estar alerta sobre que hacen nuestros clientes wi (sean clientes autorizados o no), podremos utilizar Kismet Wireless herramienta que detallo a continuacin. Tambin comento la herramienta de auditor AirSnort que trata de descubrir la clave o e a WEP, si la utilizamos para el cifrado de datos.

14.6.1.

Descubrir redes ilegales e intrusos: Kismet Wireless

Kismet Wireless es uno de los sniers inalmbricos principales para Linux, pero existen otros programas a como AeroSni o Prism2Dump. He elegido Kismet debido a su creciente oferta de mdulos de soporte. o Es una herramienta cliente-servidor como Nessus (Vase apartado 17.1), que proporciona incluso ms e a exibilidad. Funciona con otros programas y puede disearse para recopilar claves de cifrado para los intentos n de descifrado por otros programas externos. Podemos incluso ejecutar Kismet en modo IDS para buscar intentos de intrusin que provengan de nuestra red inalmbrica. o a Instalar Kismet Se puede obtener la versin ms actualizada del programa en la direccin: o a o http://www.kismetwireless.net Los pasos a seguir son los siguientes: Instalar el programa: #apt-get install kismet Editar y congurar el archivo: /etc/kismet/kismet.conf, aqu se ha de congurar el inicio de sesin o y las preferencias de la interfaz wi (el cuadro 14.2 recoge los parmetros que se pueden congurar) a Editar y congurar el archivo: /etc/kismet/kismet ui.conf, aqu se han de establecer las preferencias de la interfaz grca de kismet (el cuadro 14.3 recoge los parmetros que se pueden congurar) a a Ya esta listo para auditar la red inalmbrica a

Kismet trabajando como snier de red Iniciamos Kismet desde la l nea de comandos. Se abre la interfaz principal y inmediatamente informa sobre cualquier red inalmbrica en el rea. a a La interfaz se divide en tres secciones principales: La seccin Network List (lista de redes) que se encuentra a la izquierda muestra todas las redes o inalmbricas activas que puede ver Kismet y alguna informacin bsica sobre ellas: el SSID de la red a o a (si est disponible), el tipo (punto de acceso frente a nodo), si est cifrada o no utilizando WEP, el a a canal en el que se est transmitiendo, el nmero de paquetes interceptados hasta el momento, cuala u quier indicador sobre los datos y la cantidad de datos que estn por la red. La pantalla est codicada a a con colores, apareciendo en color rojo las redes activas y en negro las que no estn activas. a El cuadro Info (informacin) que se encuentra a la derecha de la pantalla muestra las estad o sticas globales para esta sesin de captura (incluyendo el nmero total de redes detectadas, el nmero total o u u de paquetes, el nmero de paquetes cifrados, las redes dbiles percibidas, los paquetes con un alto u e nivel de ruido, los paquetes descartados y la media de paquetes por segundo.
Jose Antonio Escart Vigo, Junio 2005. n

274

Servidor Linux para conexiones seguras de una LAN a Internet

Cuadro 14.2: Archivo de conguracin de Kismet o Descripcin o Dene las interfaces que va a escuchar Kismet. Normalmente la interfaz inalmbrica principal (wlan0, eth1, etc.) ya deber estar congurada a a aqu Si desea aadir interfaces adicionales puede hacerlo en el formato: . n source=type, interface, name Fuzzy encryption Muestra cualquier paquete que hayamos identicado como sin descifrar (Cifrado confuso) para las estaciones que estn utilizando mtodos de cifrado sin denir o a e propietarios. Generalmente se deja desconectado a no ser que su tarjeta est informando sobre redes cifradas como sin descifrar. e Filtering packet logs Limita el paquete que se registra. Utilice la opcin noiselog para quitar o (Filtrar registros de pa- cualquier paquete que parezca que se va a desglosar o fragmentar por el quete) ruido. En una zona muy ocupada con mucha interferencia o cuando se utiliza una tarjeta que tiene una antena externa, puede mantener el tamao n de su registro reducido. La opcin beaconlog quita todos los paquetes de o seales luminosas, excepto el primero, de un punto de acceso determinan do. La conguracin phylog quita cualquier paquete de la capa f o sica que a veces se recogen. Tambin puede utilizar cualquier combinacin de estas e o conguraciones. Decrypt WEP keys Descifra los paquetes de datos interceptados al momento. Sin embargo, pri(Descifrar claves WEP) mero tiene que tener la clave que a veces, se obtiene utilizando AirSnort. Cada punto de acceso necesita una declaracin independiente en el formato o o bssid:key, siendo bssid la direccin MAC del punto de acceso y key la clave para dicho punto de acceso Using an external IDS Env paquetes a un IDS externo para un anlisis posterior a a (Utilizar un IDS externo) Parmetro a Capture source (Origen de captura) Cuadro 14.3: Conguracin de la la interfaz UI de Kismet o Descripcin o Cambia lo que aparece en las columnas de la interfaz Kismet y su orden. Cambiamos el valor de columns o clientcolumns incluyendo lo que desea ver. Un listado completo de columnas se encuentra disponible en las pginas del manual a de Kismet Cambia los colores de cualquiera de los elementos que se muestran. Cambiamos la conguracin con color xxx al cdigo de color que deseemos. Tendrmos o o e que jugar con esta conguracin un poco hasta obtener los colores correctos. o

Conguracin o Columns (Columnas)

Colors (Colores)

El cuadro Status (Estado) en la parte inferior de la pantalla contiene una vista de desplazamiento con los eventos producidos. Los mensajes se abren cuando aparecen nuevas redes o se producen otros eventos. Como Kismet es una herramienta de l nea de comandos, aunque con una GUI, utiliza comandos de teclas para controlar sus funciones. El cuadro 14.4 incluye una lista de las teclas disponibles desde la pantalla principal. Soporte GPS de Kismet Kismet tiene la capacidad de grabar datos GPS si tiene un receptor GPS conectado a la mquina. a Necesitamos el software demonio de GPS gpsd para que Kismet pueda leerlo. Lo podemos instalar con el comando: #apt-get install gpsd Para utilizarlo es parecido habilitar el uso de GPS en el archivo de conguracin de Kismet. Despus o e Kismet escoge automticamente las coordenadas de las redes detectadas y las registra. a Podemos ir un paso ms all y crear un mapa con estas coordenadas. Kismet incluye un programa a a
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14. Redes inalmbricas a

275

Tecla a c d e

f g h i l m n p r s t u w z

Cuadro 14.4: Comandos de tecla Kismet Descripcin o Muestra estad sticas sobre cuentas de paquetes y asignaciones de canal Abre una ventana emergente para mostrar los clientes en la red seleccionada Le indica al servidor que inicie la extraccin de cadenas imprimibles desde el ujo de paquetes o y que las muestre Abre una ventana emergenete en servidores Kismet, lo que permite supervisar simultneamente a dos o ms servidores Kismet en distintos antriones (hay que recordar que se trata de una a arquitectura cliente-servidor) Sigue el centro estimado de una red y muestra un comps a Agrupa las redes codicadas actualmente Obtiene una lista de todos los comandos posibles Muestra informacin detallada sobre la red o el grupo actual o Muestra los niveles de seal/capacidad/ruido si la tarjeta informa sobre ellos n Silencia el sonido y la voz, si estn activados (o los activa si estn silenciados) a a Renombra la red o el grupo seleccionado Muestra los tipos de paquetes tal y como se han recibido Muestra un grco de barra del porcentaje de los paquetes a Ordena la lista de redes de forma diferente Codica (o descodica) la red actual Desagrupa la red actual Muestra todas las alertas y avisos previos Ampl el nivel de zoom del panel de presentacin de la red a pantalla completa (o vuelve a su a o tamao normal si ya estaba en pantalla completa) n

denominado GPSMPA que traza automticamente los datos recopilados en mapas en formato .gps El a inconveniente es que tiene que proporcionar su propio mapa GPS calibrado. Existe un programa de trazado de mapas de libre distribucin para Linux denominado GPSDrive, lo o podemos instalar con: #apt-get install gpsdrive. IDS de Kismet Tambin podemos congurar Kismet como un IDS inalmbrico. Kismet interceptar todas las seales e a a n entrates y detectar el trco inalmbrico que se sabe est asociado con los ataques a redes wi o activia a a a dades inalmbricas sospechosas. a Detecta unos 10 tipos diferentes de trco, incluyendo sondeos del programa NetStumbler (herramienta a para Windows), la actividad de Airjack y otras herramientas de pirater inalmbrica. Y, como es de a a libre distribucin, siempre podemos ampliarlo mediante la escritura de nuestras propias alertas. Tambin o e podemos canalizar los datos de Kismet a travs de un IDS tradicional como Snort (Vase seccin 13.5) e e o para obtener un anlisis ms detallado. a a La opcin IDS se congura en /etc/kismet/kismet.conf y de forma predeterminada est deshabilitada. o a Tambin puede congurar Kismet para recopilar claves dbiles conocidas criptogrcamente para un e e a programa como AirSnort, que analiza paquetes inalmbricos e intenta descifrar el cifrado WEP. Pasemos a a describir el funcionamiento de este programa.

14.6.2.

Desencriptar claves inalmbricas WEP: Airsnort a

Si utilizamos criptograf por clave WEP, cosa que no recomiendo, podemos probar si nuestra clave se a puede deducir facilmente con esta herramienta. Actualmente la encriptacin WPA es ms segura y es una o a mejor solucin para servidores. o AirSnort se desarroll como una aplicacin prctica para demostrar la debilidad de WEP, el protocolo o o a bsico de cifrado inalmbrico. Una nota sobre las debilidades en el algoritmo de programacin de claves de a a o
Jose Antonio Escart Vigo, Junio 2005. n

276

Servidor Linux para conexiones seguras de una LAN a Internet

RC4, escrita por los expertos criptogrcos Fluhrer, Martin y Shamir, inclu detalles sobre una terica a a o debilidad en el algoritmo WEP, describiendo la debilidad de algunos vectores de inicializacin. Los paquetes o cifrados con estos vectores dbiles se pod coleccionar y al nal habr sucientes datos para extrapolar la e an a clave secreta compartida, lo que permitir descifrar fcilmente los paquetes. Poco despus, se lanzaron dos a a e herramientas, AirSnort y WEPCrack, que empleaban las debilidades descritas para recuperar claves WEP, descifrndolas con efectividad. Ambas son buenas herramientas, pero AirSnort tiene una funcionalidad a adicional como snier inalmbrico. a AirSnort es ahora un proyecto de libre distribucin que se encuentra en SourceForge.net y que se ha o extendido y mejorado considerablemente desde su lanzamiento. Usos de AirSnort Por qu utilizar AirSnort en una red inalmbrica? Alguien podr decir que no existe un uso leg e a a timo para el programa y su unico propsito es el de ser una herramienta para el asalto de redes. Creo que la o unica forma de saber lo expuesta que est nuestra red inalmbrica es hacer lo que har un intruso para a a a comprobar si nuestro cifrado se puede descifrar y la cantidad de tiempo que tardar en hacerlo. AirSnort a lleva a cabo precisamente esta tarea. Al intentar descifrar el cifrado inalmbrico, podemos ver si se puede hacer. Si se est utilizando un a a WEP estndar, entonces es simplemente cuestin de tiempo. Es una realidad matemtica que se puede a o a descifrar en algn punto utilizando esta herramienta. La cuestin es cuanto tardaremos en hacerlo. Si u o tardamos mucho tiempo, podemos suponer razonablemente que estamos bastante seguros. Si el nivel de trco de nuestra LAN es pequeo, puede ser cuestin de d o incluso de semanas, lo que sita a nuestra a n o as u red fuera del reino de lo prctico para la mayor de los piratas informticos casuales. Sin embargo, si es a a a una red ocupada, alguien podr recoger los paquetes sucientes para descifra nuestro cifrado en cuestin a o de horas o en un d Saber todo esto nos ayuda a proteger mejor nuestra red. Puede justicar incluir a. ms protecciones, como mejores controles f a sicos o limitar el trco en la red. Tambin puede justicar la a e actualizacin de nuestro equipamiento inalmbrico, como por ejemplo a un sistema WPA con un servidor o a Radius, como el que se propone en este proyecto. Una red inalmbrica que utiliza este protocolo puede a ser, actualmente (solo actualmente) indescifrable. Podemos descubrir que el nivel de trco no hace que a sea prctico descifrar el cifrado. De cualquier forma, dormiremos mucho mejor por la noche, si lo sabemos. a Ejecutar AirSnort Para instalarlo solo hay que ejecutar la siguiente instruccin: o #apt-get install airsnort Tiene tres archivos ejecutables principales: airsnort: Recopila los paquetes desde algn origen, normalmente la tarjeta de red inalmbrica u a gencases: Ordena los datos capturados en busca de claves dbiles e decrypt: Realiza los intentos en desconexin de descifrado para los archivos cargados desde otro o origen AirSnort acepta archivos de otros sniers inalmbricos siempre que se guarden en formato PCAP. Con a el tiempo, Kismet separar espec a camente los paquetes interesantes para AirSnort, ahorrndonos este a paso. No es necesario tener toda la coleccin de datos a la vez. AirSnort puede guardar una sesin y retomarla o o posteriormente para realizar adiciones, lo que convierte a AirSnort en una herramienta particularmente peligrosa para redes inalmbricas ya que nadie tiene que perder una sesin interrumpida cerca de nuestras a o instalaciones para recopilar los paquetes sucientes como para entrar en nuestra red. Puede dividir sus actividades de recopilacin en incrementos de tiempo ms pequeos y menos perceptibles, suponiendo que o a n la red controlada no cambie sus claves con frecuencia. Una vez instalado AirSnort, podemos empezar escribiendo airsnort en la l nea de comandos. Como puede verse en la gura 14.7, la interfaz es muy simple: es una sola pantalla que muestra los paquetes
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 14. Redes inalmbricas a

277

interesantes y el nmero total de paquetes cifrados y sin cifrar. La seccin superior muestra nuestras u o conguraciones, como el tipo de tarjeta NIC, etc. A la derecha podemos cambiar algunas conguraciones como breadth (nmero e intentos que tiene que realizar AirSnort por cada byte de clave) para intentos de u descifrado de 40 bits o 128 bits. El valor predeterminado es 3 para cifrados de 40 bits y 2 para cifrados de 128 bits. Si no tenemos muchos datos o tenemos mucha capacidad de procesamiento adicional, podemos intentar aumentar este valor ligeramente, pero no ms de 4 5. a o

Figura 14.7: Imagen de AirSnort A continuacin, es el momento de sentarnos a recopilar paquetes. No hay que esperar descifrar claves o WEP en un momento. Para que AirSnot funcione correctamente, necesita aproximadamente entre 1.500 y 4.500 paquetes con claves dbiles, es decir, aproximadamente entre 100MB y 500MB de datos. En una red e moderadamente ocupada, podemos tardar uno o ms d en recopilar esta cantidad de datos. En redes a as ms lentas, podemos tardar ms y en redes ocupadas mucho menos. Hay que esperar, al menos, tardar un a a par de horas, aunque seguramente sea ms. Evidentemente, todo se basa en tener un poco de suerte, por a lo que los resultados pueden variar entre una hora y nunca. Cuando un desciframiento de la clave WEP tiene xito, aparece tanto en texto normal como en hexae decimal en la parte izquierda de la pantalla y los extremos de la sesin de captura. o Qu pasar si encontrsemos las claves WEP? Bueno, hay que tranquilizarse, que no nos entre el e a a pnico ya que la mayor de los intrusos casuales no se molestarn lo ms m a a a a nimo. Sin embargo deber amos pensar en tomar medidas para aumentar la seguridad de nuestra red inalmbrica para que sea ms dif a a cil recopilar estos datos. Hay que seguir muchos pasos que var desde reemplazar el equipamiento hasta an volver a congurar y cambiar el AP (punto de acceso). Tendremos que tomar decisiones basndonos en la a condencialidad de los datos que tratamos en nuestra red.

Jose Antonio Escart Vigo, Junio 2005. n

You might also like