| @ed0 | brevemente, mi charla de hoy tendr? la siguiente estructura: |
|---|---|
| @ed0 | comenzar? hablando nuestra estrategia fundamental a la hora de detectar gusanos |
| @ed0 | desde ese punto hablar? de los conceptos de m?s alto nivel |
| @ed0 | como el an?lisis del tr?fico |
| @ed0 | all? analizaremos los datos para distinguir las tendencias que se ven cunado los gusanos comienzan a trabajar |
| @ed0 | denominadas "tasas de tr?fico" y caracter?sticas |
| @ed0 | desde ese punto hablaremos de los nuevos tipos de an?lisia que no he visto a otros realizar |
| @ed0 | y que estoy actualmente desarrollando bajo el t?tulo de "an?lisis de correlaci?n" |
| @ed0 | creo que se trata de una t?cnica muy potente y muy prometedora |
| @ed0 | despu?s hablar? sobre an?lisis que podemos realizar actualmente de los gusanos como tales, una t?cnica muy interesante para comprender su capacidad de expansi?n |
| @ed0 | por ?ltimo hablar? de los honeynets y los monitores "ciegos", algunos de mis mecanismos favoritos para examinar la actividad de los gusanos |
| @ed0 | no creo que tengamos tiempo para hablar de t?cnicas basadas en firmas tipo snort o prelude |
| @ed0 | jfs ya dio una buena charla de estos temas y os sugiero que mir?is en los logs de su charla y sus transparencias |
| @ed0 | Voy a intentar focalizarme m?s en las t?cnicas de detecci?nd e guasnos hol?sticas ??? |
| @ed0 | e incluso en la detecci?n inmediata de gusanos |
| @ed0 | snort y otros tipos de detecci?n similares requieren conocimiento previo del tipo de ataque |
| @ed0 | An?lisis de tr?fico |
| @ed0 | Lo m?s importante en la detecci?n de gusanos en una red es el an?lisis del tr?fico |
| @ed0 | aqu? capturamos tr?fico y analizamos sus propiedades para intentar deducir sus tendencias |
| @ed0 | esto es un indicador t?pico de algo raro en la red, y un an?lisis m?s profundo puede llevarnos a detectar un gusano |
| @ed0 | por supuesto, antes de detectar un comportamiento extrano en la red debemos conocerla perfectamente |
| @ed0 | este conocimiento implica una ?nlisis previo de protocolos, puertos y niveles de carga |
| @ed0 | pero esta t?cnica se aplica con mejores resultados cuando el gusano busca activamente sus objetivos por medio de barridos aleatorios |
| @ed0 | estas t?cnicas pueden aplicarse a gusanos que tienen listas predefinidas de objetivos o utilizan m?todos pasivos, pero eso requiere un mayor an?lisis |
| @ed0 | cuando un nuevo gusano se detecta en una red, el nivel de tr?fico para un determinado servicio se incrementar? en una forma que aparecer? como exponencial |
| @ed0 | esto se muestra m?s abajo en un gusano que afect? a los sistemas windows |
| @ed0 | los datos fueron capturados en una red con un patr?n de tr?fico destinado al puerto UDp 137, utilizado para la compartici?n de ficheros en windows |
| @ed0 | este gusano usaba t?cnicas de barrido activo para identificar los objetivos a los que atacar, provocando un incremento en la actividad de red asociada a este servicio |
| @ed0 | en esta imagen puede verse la fase previa al gusano, donde se aprecian tasas bajas de este tipo de tr?fico |
| @ed0 | y entonces, cuando el gusano comenza a expandirse, el nivel crece de forma muy apreciable |
| @ed0 | es un patr?n t?pico. |
| @ed0 | se puede ver mucha variabilidad en estos datos, incluso entre unos d?as y otros (estos datos se han obtebido desde un firewall durante un perido concreto de tiempo) |
| @ed0 | puede ser analizado con esta simple ecuaci?n para determinar su nivel de expansi?n y el n?mero de hosts afectados |
| @ed0 | P(t) = (KP0)/(P0-(K-P0)e^-rt) |
| @ed0 | podemos ajustar esta ecuaci?n a varios valores de r, que define la tasa de crecimiento |
| @ed0 | en la siguiente figura podemos ver representada esta ecuaci?n con diversos valores de e |
| @ed0 | percibiendo que a menudo que r crece, la tasa de creciemiento la sigue |
| @ed0 | (en este gr?fico el valor se muestra como k) |
| @ed0 | http://monkey.org/~jose/presentations/worms-infosec03/figs/growth1.png |
| @ed0 | obviamente, cuando "r" crece y crece la tasa en la que nos acercamos al valor "plateau" se incrementa |
| @ed0 | el valor de "r" para el code-red fue significativamente m?s bajo que el correspondiente al gusano sapphire |
| @ed0 | este modelo conformar? la base central de nuestra estrategia de detecci?n |
| @EMPEROR | un analisis de conducta de la red |
| @ed0 | / fuentes de datos // |
| @EMPEROR | capturas de paquete crudo es hecho normalmente por herramientas como tcpdump y etereas. |
| @EMPEROR | aqui un servidor escucha libertinamente a todos trafico de otro y paquetes de capturas para analysis. estos poder ser pre filtrado, por ejemplo "mostrarme solo tcp trafico a y desde esta red," |
| @EMPEROR | o el puede ser todo y el puede ser ordenado fuera en una fecha mas tarde. captura de paquete crudo es rapidamente mostrando sus limitaciones de velocidad como alcance de redes gigabit red de eter al escritorio. sin embargo, si usted desea examinar la carga util del trafico, |
| @EMPEROR | usted tendra a captura los paquetes crudos. una estrategia alternativa es a captura de empleo |
| @EMPEROR | caro/analysis hardware en su infrastructure equipo, tal como una rmon2 cuchilla en un cisco catalyst enchufe. |
| @EMPEROR | tambien, porque tantos paquetes son capturas, ellos son el mejor analyzed en tiempo real como opuesto a corpulencia analysis en una fecha mas tarde. |
| @EMPEROR | flujo (red)neto es una abstractocion del trafico de capa de paquete. en flujo (red)neto, usted obtiene los resumenes de las IP cabeceras |
| @EMPEROR | este es hecho tipicamente por el infrastructure equipo, tal como un enchufe o un mas mandar. unos aspectos de representacion de flujo (red)neto tipico como el siguiente: |
| @EMPEROR | Start End Sif SrcIPaddress SrcP DIf DstIPaddress DstP P Fl Pkts Octets |
| @EMPEROR | <jose_n> 1030.22:56:34.0 1030.22:56:34.0 0 10.10.32.1 44262 0 203.36.198.97 80 6 0 1 66 |
| @EMPEROR | en algunos caminos usted obtiene un lote mas informacion, por ejemplo usted puede ver que interfaces eran implicados en su trafico. |
| @EMPEROR | sin embargo, usted perde toda informacion sobre la carga util de sus paquetes aparte desde el tamagno. |
| @ed0 | netflow escala incre?blemente bien en redes grandes y puede ser utilizado para detectar gusanos adem?s de |
| @ed0 | otros tipos de ataques en la red. |
| @ed0 | Netflow tambi?n escala en redes muy r?pidas |
| @EMPEROR | (red)neto tambien basculas muy bien a redes mas rapidas, con el routers realizando "muestra" en los datos. en este scenario 1 de cadas 1000 paquetes o asi pueden ser muestras (esta proporcion es variable). |
| @ed0 | con los routers "muestrando" datos |
| @ed0 | en este escenario uno de cada 1000 paquetes puede ser muestreado (este ratio es variable) |
| @ed0 | Cisco dispone de soporte netflow |
| @ed0 | al igual que caida (en su kit de herramientas cflowd) |
| @ed0 | adem?s el kit "flow-tool" de la universidad de Ohio es muy ?til |
| @ed0 | por ?ltimo, los ficheros de logs tambi?n pueden ser analizados |
| @ed0 | por ejemplo, los gusanos que atacan los servidores web pueden dejar huellas en los ficheros de logs |
| @ed0 | por ejemplo, Code-Red y Nimda dejaban en los ficheros de logs rastros como estos: |
| @ed0 | 192.168.37.175 - - [05/Aug/2001:07:53:40 -0400] "GET /default.ida?XXX ... HTTP/1.0" 404 205 |
| @ed0 | simplemente analizando los ficheros de log en un sistema o en varios pod?a medirse la actividad del gusano |
| @ed0 | / an?lisis de correlaci?n // |
| @ed0 | Ahora que ya estamos capturando datos vamos a analizarlos |
| @ed0 | recordad que mientras que estos gusanos buscan activamente equipos para comprometer, |
| @ed0 | contactar?n aleatoriamente con equipos contra los que intentar?n su ataque |
| @ed0 | adem?s, esta lista de ataques est? normalmente bien definida |
| @ed0 | si sabemos esto podremos cruzar esta informaci?n para detectar gusanos incluso sin conocer todos sus detalles |
| @ed0 | El an?lisis de correlaci?n presupone que cualesquiera dos eventos que est?n vinculados de alg?n modo (por ejemplo vinculados al mismo origen o evento) suceder?n el el mismo intervalo de tiempo |
| @ed0 | este an?lisis ha sido muy popular en el an?lisis de mol?culas, donde dos eventos o m?todos de detecci?n son realizados para ver si las mol?culas interact?an. |
| @ed0 | si las se?ales muestran muchos enlaces temporales, las dos mol?culas est?n probablemente enlazadas |
| @ed0 | aqu? hacemos el mismo tipo de an?lisia pero para eventos en la red |
| @ed0 | el primer tipo de an?lisis de correlaci?n de eventos que he estado divulgando se denomina "correlaci?n de eventos cruzado" |
| @ed0 | en el caso de un gusano como slapper, que afectaba a los servidores con el m?dulo mod_ssl |
| @ed0 | el ataque del gusano estaba precedido por un barrido en la red para detectar los servidores web a los que atacar |
| @ed0 | por este motivo hab?a un peque?o intervalo de tiempo entre ek barrido de la red para identificar los servidores web y el atque |
| @ed0 | en las redes normales puede observarse este mismo patr?n, pero cuando interviene un gusano los tiempos entre unso y otros son menores |
| @ed0 | la siguiente figura muestra una peque?a muestra del gusano slapper en una red de pruebas |
| @ed0 | http://monkey.org/~jose/presentations/worms-infosec03/figs/cross-correlation.png |
| @ed0 | <jose_n> the y axis shows the number of events and the x axis shows the time interval bet |
| @ed0 | el eje de las "y" refleja el n?mero de eventos y el de las "x" el intervalo de tiempo entre el barrido y el ataque del gusano |
| @ed0 | l?gicamente, este tipo de datos es muy dif?cil de obtener cuando se trata de una amenaza nueva (de d?a 0) |
| @ed0 | puesto que es muy dif?cil conocer el comportamiento del gusano para poder vincular ambos eventos |
| @ed0 | Sin embargo pueden establecerse filtros gen?ricos que intenten detectar barridos en una red para un host y un puerto concreto que luego son seguidos por un ataque en dicho puerto |
| @ed0 | estos ataques pueden ser detectados por los IDS o por el an?lisis de los logs que muestra actividad anormal en un servicio concreto |
| @ed0 | Una m?s poderosa (y f?cil de calcular) correlaci?n es la "auto-correlaci?n" |
| @ed0 | En este tipo de an?lisis, el intervalo de tiempo entre dos muestras de la misma actividad |
| @ed0 | Se caracteriza como m?s potente porque es m?s f?cil de detectar en tiempo real |
| @ed0 | ??? |
| @ed0 | En este caso veremos distintos intentos contra el servidor SSL ??? |
| @ed0 | http://monkey.org/~jose/presentations/worms-infosec03/figs/auto-correlation.png |
| @ed0 | En el eje de las "y" tenemos el n?mero de detecciones y en las "x" el tiempo entre dos del mismo gusano. |
| @ed0 | aqu? puede apreciarse una tendencia fuerte para que el intervalo entre dos ataques sucesivos de un gusano sea muy breve (en este caso peticiones del fichero "root.exe") |
| @ed0 | Bajo condiciones normales el intervalo entre estos sucesos ser?a aleatorio. |
| @ed0 | Este an?lisis tiene un problema con dos tipos de eventos |
| @ed0 | el primero es el efecto "slashdot" (barrapunto.com para los de aqu?) |
| @ed0 | por el cual un servidor web se convierte en algo muy popular muy r?pidamente |
| @ed0 | y el tr?fico se ve incrementado de forma muy significativa |
| @ed0 | El segundo es un DDOS (denegaci?n de servicio distribuida) |
| @ed0 | durante el cual un servidor es atacado por muchos otros sitios |
| @ed0 | en cada caso el an?lisis b?sico reflejar? como si las peticiones se produjeran en un per?odo muy corto |
| @ed0 | sin embargo un an?lisis posterior revelar?a que no se trataba de un gusano sino de otra "anomal?a" |
| @ed0 | / analizando el motor de an?lisis // |
| @ed0 | El an?lisis del tr?fico puede estar asistido por el an?lisis aislado de un engine que genera direcciones de red aleatorias para que el gusano ataque. |
| @ed0 | En este caso se requiere acceso al c?digo fuente del gusano o descompilarlo |
| @ed0 | en las siguientes figuras podemos ver el resultado de este an?lisis en los generadores de "objetivos" de dos gusanos distintos |
| @ed0 | El primero es el SQLsnake que usa una lista de redes predefinidas a las que atacar |
| @ed0 | el gusano estaba codificado en javascript y enfocado a barrer unos segmentos de red m?s que otros, basandose precisamente en el n?mero de hosts que encontraba en cada segmento |
| @ed0 | sin embargo terminaba buscando e direcciones aleatorias para encontrar m?s equipos por los que expandirse |
| @ed0 | http://monkey.org/~jose/presentations/worms-infosec03/figs/SQLsnake.png |
| @ed0 | Esta tendencia de afectar a unas redes frente a otras se puede observar inmediatemante en el siguiente diagrama de direcciones de red frente a muestras |
| @ed0 | esto significa que determinadas redes, como la de cable de USA (64/8) ser? m?s atacada que la 50/8 |
| @ed0 | otro gusano que fue analizado es el Slapper |
| @ed0 | podemos ver 1000 muestras en las que se aprecia que algunas redes son aleatorias pero otras no |
| @ed0 | http://monkey.org/~jose/presentations/worms-infosec03/figs/Slapper.png |
| @ed0 | Lo que podemos aprender de esto es c?mo el gusano puede extenderse y c?mo podemos detectarlo y defendernos de el |
| @ed0 | usando esta informaci?n podemos instalar sistemas de detecci?n en los sitios correctos y monitorizar su actividad algo mejor que si estuvi?ramos a ciegas. |
| @ed0 | /blackhole detectors and honeypots// |
| @ed0 | / trampas, para que nos entendamos // |
| @ed0 | La siguiente es una de mis t?cnicas favoritas de detacci?n, la red "agujero negro" |
| @ed0 | estas redes son aquellas que no se usan pero que son enrutadas (es decir, reciben tr?fico) |
| @ed0 | su valor consiste en el hecho de que un gusano que intenta propagarse activamente intantar? contactar con equipos en esta red, con la ventaja que ning?nj otro tr?fico ir? destinado all? normalmente |
| @ed0 | mientras que el gusano ser? incapaz de propagarse por esa red, podr? ser detectado y correlado como un evento an?malo |
| @ed0 | un simple filtro de tcpdump para 3 subredes "agujero negro" podr?a ser: |
| @ed0 | tcpdump -ni fxp1 net 10.11.12.32/27 or 10.11.12.96/27 or 10.11.12.128/27 -w /var/log/blackhole.pcap |
| @ed0 | as? capturar?amos la informaci?n en el fichero /var/log/blackhole.pcap que podr?amos analizar despu?s |
| @ed0 | tambi?n puedes "pillar" a los que escanean tu red, pero si comienzas a ver un creciemiento exponencial en el n?mero de equipos que intentan conectarse con este rango de direcciones lo m?s posible es que tengas un gusano en tu red |
| @ed0 | un script sencillo que puede usarse para analizar estos datos puede encontrarse en: |
| @ed0 | http://monkey.org/~jose/wiki/wiki.php?page=DetectingsWorms |
| @ed0 | no es algo tan eficiente como podr?a ser (estar?a mejor en C, python o perl), pero muestra c?mo puedes totalizar la informaci?n |
| @ed0 | Sin esto, la b?squeda de tendencias ser?a muy dif?cil |
| @ed0 | [omito el script, es muy grande] |
| @ed0 | puedes incluso intentar sacar un gr?fico con los datos de tal modo que te permitir? ver las tendencias. |
| @ed0 | Por ejemplo puedes dibujar los puertos destino en el tiempo contra las direcciones IP origen, y cualquier incremento en la densidad de puntos te permitir? identificar un evento |
| @ed0 | la representaci?n visual de gran cantidad de informaci?n resulta muy ?til en estos casos |
| @ed0 | ahora, cuando ejecut?is el programa contra nuestra captura de datos ver?is el resultado de la actividad en la red "agujero negro" |
| @ed0 | $ tcpdump -ntttr /var/log/blackhole.pcap | ./process.sh |
| @ed0 | packet logs from Nov 03 18:11:48.527192 to Nov 04 13:01:56.111967 |
| @ed0 | top ten source addresses are: |
| @ed0 | 45 65.4.18.253 |
| @ed0 | [el resto se omite] |
| @ed0 | aqu? tenemos unos cuantos datos, y si los comparamos con la actividad del per?odo previo podemos empezar a ver una tendencia |
| @ed0 | este es el motivo por el cual hay veces que es mejor sacar gr?ficos de las cosas |
| @ed0 | tales como el n?mero de or?genes y destino en determinados per?dos de tiempo |
| @ed0 | una t?cnica muy buena para identificar este tipo de actividad es montar un honeypot (trampa) dentro de la red "agujero negro" |
| @ed0 | en ella se usar? un demonio arpd para aceptar tr?fico de una subred completa y as? resp?nder a las solicitudes de conexi?n (pero a nada m?s) |
| @ed0 | el primer paquete de datos contendr? suficiente informaci?n como para identificar a la mayor?a de los gusanos (pero no a todos) |
| @ed0 | las "honeypots" (trampas) pueden usarse como mecanismo de respuesta ante yun nuevo gusano, tal como el del UDP 137 que hemos comentado antes |
| @ed0 | aqu? se pueden observar el tr?fico de la red y detectar incrementos de indicar?an un gusano |
| @xpato | ok |
| @ed0 | tambi?n puede instalarse un honeypot (trampa) y dejar que sea atacado e infectado para poder desconectarlo posteriormente e investigar el gusano con detalle. |
| @ed0 | puedes obtener mucha informaci?n del gusano , y normalmente binarios / ejecutables, pero normelmente no conseguir?s gran cobertura. ??? |
| @ed0 | Herramientas como "honeyd" de Niels Provos son muy buenas |
| @ed0 | pero por el simple hecho de que no pueden ser infectadas como un equipo normal |
| @xpato | requerda que los "honyepots" pueden admeas atacarte, lo que significa que debes controlar su comportamiento para ser un buen ciudadano |
| @ed0 | no te ayudar?n a capturar algunos de los ejecutables de los gusanos |
| @xpato | un "honeypot" es una labor intensta, ssignifica que tienes que identificar cual es el tipo ataque, construir y desplegar un sistema para imitarlo y permitir que sea comprometido |
| @xpato | para alguno operadores de seguridad, esto puede no valer el tiempo, todos ellos quieren saber en que host apagar el firewall y en que servicios |
| @xpato | aun asi, para el investigador o alguien quien construya sus propias firmas para su IDS, proxy scanner, o sistemas retroactivos, este es un paso necesario |
| @xpato | conclusiones: |
| @ed0 | / conclusiones // |
| @xpato | este es solo un breve paso sobre las tecnicas para detectar gusanos |
| @ed0 | Es importante detectar r?pidamente y de forma precisa los gusanos |
| @ed0 | tales como el siguiente code-red o e sapphire |
| @ed0 | si quieres proteger tu red |
| @xpato | la premisa basica aqui es observar tu red y detectar fallas, tipicamente cuando mas y mas host empiezan a actuar en forma anomala |
| @ed0 | la premisa b?sica aqu? es inspeccionar tu red y detectar tendencias |
| @xpato | si esta informacion es dificil desplegar defensas para la red |
| @xpato | estas tecnicas se ha mostrado utiles para un numero creciente de gente, pero todavia estan en su infancia |
| @xpato | gracias por su tiempo y atencion, espero que les halla resultado interesante |
| @xpato | APLAUSOS!! |
| @MJesus | clap clap clap clap clap clap clap clap clap clap |