4/9/08

NetworkMiner - Analizador de trafico de red

Agradezco a los lectores que se tomaron el tiempo de responder a la encuesta anterior, luego de una cerrada votacion, un voto de ultima hora favorecio que este post sea relacionado con herramientas de soporte, asi que para agradecer a estos amables lectores, este post esta relacionado con una herramienta relativamente nueva, pero que definitivamente es una excelente adicion al arsenal de soporte, espero que este post sea de utilidad.

NetworkMiner es un analizador pasivo de trafico de red, como Wireshark puede capturar trafico, pero su enfoque y su mayor potencial no es tanto la captura sino más bien al análisis, especificamente al análisis forense del tráfico de red, a que me refiero con esto, quedara más claro luego que veamos ejemplos prácticos del uso de esta herramienta. Por lo pronto y a manera de introducción y motivación para continuar leyendo este post, puedo decirte que es un excelente complemento de Wireshark, esta basado en Windows y es Open Source por lo que no hay nada que te impida bajarla y ejecutarla en tu red. Sin más, entramos en materia...

A continuación se enumeran algunas caracteristicas de este software:

  • Permite la identificación de sistemas operativos y alguna información adicional sobre los hosts que detecta (OS Fingerprinting)
  • Reconstrucción de archivos - Supongamos que tenemos un archivo capturado en wireshark (con extensión pcap) al abrirlo en NetworkMiner, reconstruira los archivos que se encuentren presentes en la captura.
  • Extracción de imagenes - Como en el caso anterior, si tenemos una captura y la abrimos en NetworkMiner, reconstruira todas las imagenes presente que hay en la captura.
  • Identificación de credenciales - Identificara usuarios y passwords dentro de una captura.
Las anteriores son algunas de las caracteristicas más sobresalientes, aunque hay algunas más que no se discuten en este post, puede que te parezca que lo anterior no tiene mucha utilidad, espero con algunos ejemplos prácticos demostrar que no es asi, manos a la obra.

Para instalar el software unicamente lo baje del sitio, venia en un archivo .zip, luego de descomprimirlo, en el directorio que se crea, se ejecuta NetworkMiner.exe, y entramos a la interface principal, en la figura abajo, se muestra la pantalla principal en el momento en que se esta abriendo un archivo pcap (capturado previamente con Wireshark), como comente anteriormente, la parte de captura no es el principal fuerte de este software, de hecho no me funciono en Windows Vista, si vas a usar este software, quizas sea buena idea hacer las capturas con Wireshark en el formato pcap.



En Wireshark bajo el menu statistics, es posible observar una lista de los hosts detectados en una captura (llamados Endpoints), en NetworkMiner también, pero con mayor riqueza de información gracias a sus caracteristicas de identificación de sistemas operativos, por ejemplo en la figura abajo, muestra un host detectado, pero no solo muestra la dirección IP, sino también nos informa que esta PC esta ejecutando Windows, que el puerto 80 esta a la escucha y además que esta ejecutando el servidor web apache, esto nos puede ser de utilidad entre otras cosas, para detectar PCs o servicios no autorizados en nuestra red.



En el post Nanspy Worm en mi Laptop, describi el uso de Wireshark para detectar y eliminar un gusano, un aspecto clave en ese análisis fue detectar la presencia de algunos archivos que habían sido transferidos a ma laptop, con NetworkMiner es posible ver que archivos han sido transferidos, esto desde la pestaña Files, en ella muestra todos los archivos que han sido transferidos en una captura dada, a continuacion se muestra una captura en la que se detectaron algunos archivos sospechosos.


NetworkMiner también permite reconstruir las imagenes que detecta en una captura, supongamos que por ejemplo has hecho una captura en wireshark del tráfico de tu conexión a internet, en la pestaña images mostrara que imagenes han estado viendo los usuarios de la red, podrias descubrir contenido no permitido.



Para terminar con los ejemplos prácticos, NetworkMiner también es capaz de detectar credenciales que han sido utilizadas, si durante una captura, un usario establecio una conexión a telnet a un router, en la pestaña credentials, veras el usuario y password que se uso y te daras cuenta que es de suma importancia utilizar métodos más seguros para conectarte a tus equipos de red (como SSH, aunque ese, es otro tema).

Espero que con los ejemplos anteriores, este más que claro que este software tiene mucho potencial, hay algunas otras características que no se han discutido acá, y por ser este un software open source en constante evolución, con toda seguridad en el futuro tendrá aun cosas más interesantes que mostrar, por lo pronto es importante mantenerlo en perspectiva, no es un sustituto de Wireshark, a mi modo de ver, es un excelente complemento para facilitar el análisis forense del tráfico de tu red.

Finalmente, no esta de más mencionar que estos son mis primeros pasos con esta herramienta, en realidad la descubri hace unos poco días, asi que no ofrezco dar soporte, si en algo puedo ayudar con gusto, pero apenas estoy conociendo esta herramienta. Favor también tomar en cuenta la advertencia del siguiente parrafo.

Advertencia: Asegurate de contar con el permiso para análizar el trafico de tu red, la información que despliega NetworkMiner puede ser reveladora y atentar contra políticas de privacidad, asi que no utilices esta herramienta indiscriminadamente.

21/8/08

Nueva Encuesta

Este es otro micropost, para solicitar retroalimentacion de los lectores, ya seas usuario nuevo, o regular de este blog, nuevamente he tenido el tiempo limitado para poder dedicarlo al blog, pero se que algunos usuarios han encontrado informacion de utilidad y no pienso abandonar este esfuerzo.

Es por esto que estoy solicitando el apoyo para llenar la encuesta de la izquierda, indicando que tema te interesaria para un nuevo post, mi tiempo es limitado y me gustaria enfocarlo en lo que genere mas interes. Agradezco de antemano esta retroalimentacion y de paso pido disculpas a algunos lectores a los que no he respondido sus mails o comentarios, si todavia tienes algun tema que te interesa resolver, favor deja nuevamente tu comentario o enviame un correo a lmunguia@soportederedes.com

1/5/08

Nanspy Worm analizado con Wireshark

Los lectores mas fieles del blog recordaran que en septiembre del 2007, mi laptop fue infectada por el gusano Nanspy, un usuario me pidio colocar algunas pantallas del proceso de deteccion del gusano utilizando Wireshark y eso es lo que ha motivado este post, el cual ademas de ilustrar los pasos que me permitieron detectar la presencia de actividad anomala en mi laptop, tambien permite ver al Wireshark en accion y el uso de Follow TCP Stream una de las funciones muy utiles para en analisis de capturas en Wireshark.

Como se describe en el post original a finales de Agosto del 2007 empeze a obsever un comportamiento extraño en mi laptop (actividad en la tarjeta de red sin tener ninguna conexion a internet abierta), lo que me motivo a ejecutar Wireshark, tratando de encontrar las causas de este comportamiento extraño, practicamente con solo iniciar la captura pude darme cuenta que algo anomalo estaba ocurriendo, ya que se observo el siguiente trafico. Nota: con un click sobre la figura puedes verla en tamaño normal

Lo que se observa en la figura anterior, es el tipico comportamiento de un gusano tratando de encontrar victimas para infectar, la ip 192.168.0.148 es la direccion de la laptop y esta intentando establecer conexion con otros host que pertenecen al mismo rango (asumiendo que la mascara es 255.255.0.0), como se puede observar en la columna info, la laptop esta enviando paquetes con el bit SYN activado, en TCP es la primera accion para establecer contacto con el host de destino, algo mas que se observa en esta figura es que estos intentos son hacia el puerto 135, por la configuracion de mi red, ninguna de estas direcciones era alcanzable, de haberlo sido, se podria haber observado los siguientes pasos del gusano para tratar de infectar a otros hosts. Si esta hubiera sido una red corporativa, la probabilidad de infectar otros hosts hubiera sido muy alta, digo, si infecto a una maquina es muy probable que haya muchas maquinas mas vulnerables en la red. Habiendo visto esto, sabia que la maquina estaba infectada, en un tiempo posterior realize una nueva captura, pero esta vez con la intencion de ver el comportamiento desde el momento que se iniciaba la pc, para ello encendi la maquina sin conexion a la red, ejecute Wireshark y luego conecte el cable de red, de esta manera pude capturar lo que ocurria desde el inicio, vale recordar que esta pc ya estaba infectada, es decir lo que aqui esta ilustrado es el comportamiento de la maquina infectada no el proceso de infeccion. A continuacion se muestra la siguiente captura.


En esta captura se pueden observar al gusano en accion, los paquetes 3, 6 y 7 corresponden al TCP Hand-shake entre la laptop y la direccion 87.118.110.78 (en adelante la direccion sospechosa), es el procedimiento normal de cualquier conexion TCP, no voy a entrar en detalle ya que no es el proposito de este post, en el paquete 7 la conexion ya esta establecida y a continuacion en el 8 se observa algo inquietante, la laptop hace una peticion http HEAD y en el paquete 13 se observa la peticion http GET, esta tratando de obtener de la direccion sospechosa el archivo gate.exe, esto no suena nada bien, para observar con mayor detalle selecciono el paquete trece y a continuacion en el menu de Wireshark selecciono Analyze Follow TCP Stream, con este comando se despliega la data que finalmente es observable por la capa de aplicacion de la pila TCP/IP en un stream en particular, en este caso estoy interesado precisamente en observar que paso con esta peticion GET (y de paso tener mas detalles de la misma), el resultado del Follow TCP Stream se observa a continuacion


Lo que puedo deducir de este seguimiento es que la laptop esta tratando de bajar una actualizacion del archivo gate.exe ya que se trata de un GET condicional, otra pista se observa en la cuarta linea donde se ve User-Agent: mmsvc32.exe, finalmente observo que mi maquina ya tiene instalado este archivo, porque la respuesta al GET fue un HTTP/1.1 304 Not Modified, que es gate.exe y mmsvc32.exe, en estos momentos no tengo ni idea, hay que seguir investigando. Bajando un poco mas en el archivo de captura, encuentro otros GET sospechosos, a continuacion esta la figura que muestra el resultado de ejecutar nuevamente Follow TCP Stream sobre los paquetes que muestran nuevas peticiones GET.


Aqui se observa algo muy similar, nuevamente la laptop reviso para ver si hay alguna actualizacion de los archivos bbot.exe y psvc.exe, nuevamente aparece la linea mmsvc32.exe, como en el caso anterior, los archivos ya existen en la pec porque la respuesta es 304 Not Modified. Poco despues de estas interacciones, la laptop inicia nuevamente un SYN Scan, solo que esta vez ya no es es sobre un rango de direcciones locales sino un rango de direcciones publicas, mmm, este gusano en realidad esta tratando de propagarse, a continuacion la figura de estos intentos (afortunadamente fallidos) de infectar otro rango de direcciones


Ahora cuento con informacion suficiente para investigar que esta pasando, una busqueda de bbot.exe en google, me lleva hasta una pagina que me permite concluir que se trata de Nanspy, en la documentacion encontrada se hace referencia a mmsvc32.exe (mm, donde habia oido de este archivo?, por supuesto, lo vi en Wireshark), mi maquina esta infectada!. Esta fue la forma como utilize Wireshark para encontrar que estaba pasando con mi maquina, tal vez no sea la mejor manera, pero me sirvio, si observas un escaneo SYN como el de la figura reciente, investiga mas a fondo, lo mas seguro es que un gusano infecto tu PC.

13/3/08

Las funciones básicas de un switch

El artículo más leído de este blog, es el de Vale la pena un switch administrable? Algunos lectores están interesados en saber las diferencias entre un switch administrable y otro que no lo es, las diferencias de precio son importantes y por eso surge la curiosidad, que ventajas tiene uno sobre el otro? Otros lectores ya cuentan con un switch administrable, pero no saben que hacer con él, como aprovechar esas características que costaron muchos dólares de más.

No es posible describir en un solo post todo lo que es posible hacer con un switch administrable, por lo que en el futuro espero dedicar al menos un post al mes para describir con más detalle algunas características de los switches, con ejemplos prácticos de implementación, por lo pronto quiero empezar con los fundamentos, en realidad como funciona un switch?, Esto nos ayudará a sentar las bases para más adelante discutir prestaciones más avanzadas de los switches.

Un Switch es un dispositivo de red que funciona en la capa 2 del modelo OSI, para los lectores que no están familiarizados con el modelo OSI, los invito a leer la definición de la wikipedia, para los propósitos de este post lo importante es saber que la capa 2 tiene que ver con la dirección física de la tarjeta de red, esto es la dirección MAC, que es un número único asignado por el fabricante a la tarjeta de red, cada fabricante tiene su propio rango de direcciones MAC, lo que asegura que no se repitan, en la práctica es posible modificarlo mediante software, pero en lo que respecta al proceso de fabricación, si es un número único asignado a cada tarjeta de red.

De paso también menciono que hay switches de capa 3 e incluso de capa 4, pero aun estos switches más avanzados, deben cumplir con las funciones de un switch capa 2, que es las que explicaremos en este post.

Un switch debe realizar tres tareas básicas, las cuales se describen a continuación.

1. Aprender direcciones (address learning)

Todo switch tiene una tabla de direcciones MAC con el puerto asociado, cuando el switch se enciende por primera vez, esta tabla esta vacía, ahora con relación a la figura 1, supongamos que A, desea comunicarse con B, para esto, A tiene preparado un frame, en el que entre otras cosas, esta expresadas los direcciones de origen y destino. El siwtch recibe este paquete y toma nota de la dirección de origen y la anota en la tabla de direcciones MAC, esto es la línea 1 de la tabla MAC ilustrada en la figura 1. Inicialmente el switch no conoce donde esta ubicado B, por lo que reenvia el frame a través de todos los puertos excepto en el puerto donde lo recibió, de esta manera B recibe el frame y lo responde nuevamente con un paquete que tiene como origen la dirección MAC de B, por lo que de esta manera, el switch ahora puede determinar donde esta ubicado B y agrega la segunda línea de la pequeña tabla MAC ilustrada en la figura 1. Para la siguiente comunicación entre A y B, el switch conoce la ubicación exacta de ambos y reenvia los frames directamente entre A y B.




2. Reenviar y Filtrar

Cuando el switch recibe un frame, examina el destino y busca en la tabla el puerto de salida y lo envía únicamente a través de este puerto, esta es la función de filtro, limita el envió del frame al puerto específico en el que se encuentra el destino. Por otra parte, como ya vimos al inicio, si la tabla MAC aun no tiene la información el paquete es reenviado a todos los puertos excepto al puerto en el que se recibió el paquete originalmente, lo mismo pasa cuando ocurre un broadcast (en breves palabras, un broadcast es un frame cuya dirección de destino es todos los del segmento) es decir, cuando una PC envía un frame de broadcast, este es recibido por todas las PCs en el mismo segmento de red, en el caso de los broadcast, el switch los reenvia por todos los puertos, excepto en el puerto que lo recibió originalmente.

3. Evitar Loops

Una tercera función básica e importante de un switch es evitar loops (uso el ingles, porque me parece más apropiado que bucle, o lazo). Para entender que es un loop, y lo dañino que es para cualquier red, observemos la situación ilustrada en la figura 2. Supongamos que por conveniencia alguien decide que desea tener dos enlaces a un mismo switch, de tal forma que si uno falla el otro funcione, o supongamos que alguien inadvertidamente ve un cable colgando y con la mejor de las intenciones decide conectarlo al switch sin percatarse que ese mismo cable ya estaba conectado en otro puerto del mismo switch, lo que ocurre a continuación es desastroso.


Imaginemos que la PC envía un broadcast, este es recibido por el switch 01 y reenviado a todos los puertos excepto el puerto F0/3 (porque por ahí fue recibido originalmente), el switch 02 recibe uno de los broadcast en el puerto F0/1 y lo reenvia a todos los demás puertos excepto por supuesto el puerto F0/1, el problema es que el broadcast también llego por el puerto F0/2 y reenviado a todos los puertos, así que el resultado es que tanto en F0/1 como en F0/2 del switch 02, tendremos nuevamente un paquete de broadcast enviado al switch 01 que nuevamente repite la acción y de esta forma tenemos un loop infinito, en la práctica lo que ocurre es que esto deja inutilizada la red, ya que los recursos en el switch están totalmente consumidos enviando y recibiendo broadcast. He vivido experiencias de estas y créanme que no es nada agradable.

Por lo anterior, un switch debe proveer de mecanismos que eviten la formación de estos loops, y la solución es el Spanning Tree Protocol o STP, este protocolo evita la formación de loops en los switches

De las tres características antes mencionadas, las primeras dos están presentes en cualquier switch sea o no administrable, sin embargo, la tercera, la posibilidad de evitar loops únicamente esta disponible en switches administrables, no solo eso, usualmente requieren poca o ninguna configuración, por lo que a mi entender, este simple hecho es una buena razón para utilizar switches administrables.

Una de las preguntas que me han hecho algunos lectores es la siguiente, acabo de comprar un switch administrable, que debo configurarle para que mi red funcione? en principio nada, el switch tan pronto se conecte a la energía eléctrica y tenga PCs conectadas en sus puertos intentando comunicarse unas con otras, empezara a construir su tabla de direcciones, reenviara y filtrara frames y también evitara loops, por supuesto en el caso de los switches administrables.

También una palabra de advertencia, el hecho de tener algunos switches administrables no evitara la formación de loops en los switches no administrables, he visto redes de miles de dólares venirse abajo porque alguien conecta en algún punto de la red, un switch no administrable e inadvertidamente forma un loop. Por supuesto, la presencia de switches administrables permitirá diagnosticar y resolver el problema de manera más rápida.

Ahora, supongo que no invertiste miles de dólares, para que tu switch aprenda direcciones, reenvie/filtre frames y evite loops, por supuesto que deseas hacer muchas cosas más con tu switch, te invito a dejar un comentario con tus inquietudes, experiencias y espero más adelante estar publicando otros artículos para que puedas desquitar cada dólar de tu inversión.

7/3/08

El comando netstat en Windows

Netstat es una herramienta disponible desde la línea de comando de la mayoría de sistemas operativos importantes (Windows, Linux, Unix, etc), es otra de esas herramientas disponibles gratuitamente, pero a mi parecer bastante subutilizada. Entre otras cosas, esta herramienta permite dar un vistazo a las conexiones que tiene establecida la PC, también permite ver algunas estadísticas de red y la tabla de ruteo (esto ultimo también esta disponible con el comando route print)

En este post me voy a concentrar en la versión para Windows, particularmente en XP, puedo suponer que las mismas opciones también aplicarían a Windows Vista, pero de momento no tengo como comprobarlo. Ahora, sin más preámbulos, veamos algunos usos prácticos de este comando.

Para utilizar esta herramienta, únicamente tienes que abrir una línea de comando y escribir netstat al presionar enter, se desplegara un listado de conexiones activas en tu PC, como puede verse en la siguiente figura, la primera columna muestra el protocolo (puede ser tcp o udp), la siguiente muestra la dirección local junto con el puerto local, a continuación esta la dirección y puerto remoto y finalmente se muestra el estado de la conexión, en la figura puede verse que hay conexiones establecidas y otras en estado TIME_WAIT, esto indica que son conexiones tcp que ya se están cerrando. Esta información se captura en un instante de tiempo (constante se están creando y cerrando conexiones, así que aquí viene el primer tip, si deseas que la lista se este refrescando cada x tiempo, puedes agregar el numero de segundos de intervalo al final del comando, por ejm. netstat 10 refrescara la estadística cada 10 segundos.


Si el uso anterior fuera el único de este comando, sería interesante, pero quedaría en deuda, la clave esta en usar las opciones, si deseas verlas basta con escribir el comando netstat help, hay varias opciones y te animo a experimentarlas, se pueden utilizar solas o combinadas, en lo particular me resultan útiles algunas opciones especificas que describo a continuación.

Utilizando el comando con las opciones a (que despliega todas las conexiones y puertos que están abiertos, es decir esperando conexiones o en listening state) y o que despliega el PID del proceso que esta utilizando la conexión, el comando sería netstat -ao y el resultado puede verse en la siguiente figura.


Saber que puertos están abiertos es importante ya que permite detectar algunos procesos que no deberían estar en este estado, esto puede ayudar a descubrir spywares en tu PC, o protocolos que están corriendo y no deberían, por ejemplo en la figura anterior observo que el puerto 1025 en mi PC esta en estado LISTENING, la pregunta obvia es que programa o servicio esta abriendo el puerto 1025?, aquí es donde entra la opción o del comando, ya que muestra el PID (process ID),que en este caso en particular es esl 120, sabiendo este número, podemos utilizar el comando tasklist, que muestra el servicio o programa que esta abriendo este puerto, en la siguiente figura puede verse el resultado del comando tasklist, ahí observo que el programa asociado al proceso 120 es alg.exe nunca he oído hablar de alg.exe así que esto me genera curiosidad después de investigar un poco en internet, me doy cuenta que es un proceso normal de Windows utilizado por Internet Connection Sharing, uff, menos mal, sin embargo, utilizando esta misma lógica, se pueden encontrar programas maliciosos en tu PC (en mi caso, el siguiente paso sería abrir Wireshark y capturar tráfico para tener aun más detalles de lo que esta pasando).


La otra opción que puede resultar muy útil de este comando, es la opción de ver estadísticas de la conexión, el comando sería netstat -es que desglosa las estadísticas por protocolo, un análisis de estas estadísticas puede revelar problemas de cableado, o con la interface (por ejemplo si se observa un número alto de errores), o también ayudar a aislar mejor la causa del problema, te animo a experimentar con esta opción y ver que estadísticas te pueden resultar útiles.

Finalmente un consejo, es una buen práctica utilizar regularmente este comando en tu PC, si lo haces cuando todo esta funcionando bien, puedes identificar que procesos son normales, que puertos están abiertos, etc, esto te puede servir de base, en el futuro, si tu PC empieza a dar problemas, un rápido vistazo con netstat -ao puede ayudarte a identificar la raíz del problema, no digo que es un método infalible pero vale la pena considerarlo.

29/2/08

Las 12 verdades fundamentales de las redes

Si llevas cierto tiempo en el mundo de las redes, con toda seguridad has oído hablar de las RFC, estos son los documentos que dan vida a los protocolos de red, no es el propósito de este post hablar sobre los RFC en general, por lo que únicamente mencionare que si quieres encontrar más información al respecto, puedes ver la definición dada por la wikipedia, también puedes ir al sitio oficial de las RFC.

Lo que si es el propósito de este post, es discutir la RFC 1925, esta pertenece a un tipo especial de documento. Como muchos de ustedes probablemente saben, en Estados Unidos y en muchos otros países, se celebra el 1 de abril, algo equivalente a lo que en latinoamerica celebramos el día de los inocentes el 28 de diciembre. Pues bien, desde hace muchos años, es costumbre publicar algunas RFCs el 1 de abril, con algunas notas humorísticas, por ejemplo la RFC 2324 describe detalladamente el protocolo HTCPCP (Hyper Text Coffee Pot Control Protocol), un protocolo para el control, monitoreo y diagnostico de una cafetera! La RFC 1925 pertenece a este tipo especial de RFCs, consideradas humorística. Sin embargo aunque si tiene su lado humorístico, esta RFC presenta las 12 verdades fundamentales de las redes, que si las analizamos una por una, en realidad nos dejan lecciones dignas de reflexión en cuanto al que hacer de las redes, así que me he tomado la molestia de traducirlas y las pueden ver a continuación.

Antes de continuar, aclaro que esta es una traducción que hice tratando de ser fiel a la original, igual los invito a ver la versión original, puede ser que la entiendas mejor en su idioma original, además, todos los créditos son para Ross Callon, el autor que inspiradamente escribió estas 12 verdades fundamentales y las documento en la RFC 1925, a continuación las verdades:

Las 12 verdades Fundamentales de las redes

(1) Tiene que trabajar

(2) Por mas esfuerzo que se haga, y sin importar la prioridad que se establezca, no se puede incrementar la velocidad de la luz.

(2a) (corolario). Por mas esfuerzo que se haga, no se puede hacer un bebe en un periodo mucho menor a 9 meses. Tratar de acelerarlo podría hacerlo mas despacio, pero no hará que pase mas rápido.

(3) Con la suficiente fe, los cerdos pueden volar muy bien. Sin embargo no necesariamente es buena idea. Es peligroso estar sentado en el espacio en el que están volando, porque no se puede predecir donde van a aterrizar.

(4) Algunas cosas en la vida nunca pueden ser completamente entendidas o apreciadas a menos que sean experimentadas de primera mano. Algunas cosas en las redes nunca pueden ser completamente entendidas o apreciadas por alguien que no construye redes comerciales ni esta involucrado en el día a día de la operación de una red.

(5) Siempre es posible consolidar diferentes problemas que no tienen relación entre si, en una sola solución compleja e interdependiente. En la mayoría de los casos es una mala idea.

(6) Es más fácil mover un problema que resolverlo (por ejemplo moviendo el problema a otro segmento de la arquitectura de la red).

(6a) (corolario). Siempre es posible agregar otro nivel de desorientación.

(7) Siempre hay algo

(7a) (corolario). Bueno, rápido, barato: Seleccione dos (no se pueden tener los tres al mismo tiempo)

(8) Es más complicado de lo que parece

(9) Para todos los recursos, sean los que sean, se necesitan más

(9a) (corolario) Cada problema de la red toma más tiempo para resolver de lo que uno supone que debería tomar.

(10) Una solución nunca resolverá todos los problemas (one size never fits all).

(11) Todas las viejas ideas serán propuestas de nuevo, con un nombre y presentación diferentes sin importar si funcionan o no.

(11a) (corolario). Vea la regla 6a.

(12) Sabemos que se ha alcanzado la perfección en el diseño de protocolos, no cuando ya no queda nada más que añadir, sino cuando no queda nada que quitar.

Como les mencione tiene un poco de humor, pero también encierra muchas verdades, en particular creo que todos en algún momento nos hemos dado cuenta de la cruda realidad de la verdad fundamental 7 y el corolario 7a, esto para mencionar dos, en general creo que todas tienen algo que en una u otra oportunidad hemos experimentado.

Si estas interesado en más RFCs humorísticas, puedes verlas aquí, tal vez más adelante analicemos alguna otra, si tienes comentarios sobre las 12 verdades fundamentales de las redes, no dudes en hacerlo, podrían ser útiles para otros.

23/2/08

Un nuevo año

Este saludo de año nuevo, tal vez llega un poco tarde, ya casi estamos terminando el segundo mes del año, pero bueno, para mi actividad en el blog, si es como año nuevo, finalmente estoy de regreso en lo que espero sea un horario más regular de publicaciones en este post.

No les voy a quitar mucho el tiempo, solo quiero solicitarles su apoyo participando en la encuesta a la derecha, periodicamente estaran apareciendo nuevas encuestas y su colaboración es apreciada, ya que permitira orientar mejor los contenidos del blog, esta encuesta inicial es un poco un beta test y de paso me interesa conocer el uso que actualmente le estan dando a Wireshark, es para resolver problemas en el trabajo? o quizas estas estudiando y utilizas Wireshark como una herramienta de aprendizaje primariamente?, o unicamente en tu casa como hobbie? para participar basta un click y de antemano gracias por hacerlo, Feliz y Prospero 2008 para todos.

22/2/08

Wireshark 101 - IO Graphing

Una de las características deseadas en un analizador de paquetes, es la capacidad de visualizar los datos de manera gráfica, esto es especialmente crítico a la hora de presentar un reporte con los hallazgos de un análisis a personas cuya especialidad no son las redes. Una gráfica puede explicar mucho mejor una situación que una serie de números sin sentido.

En este aspecto, mi opinion, es que Wireshark se queda un poco atrás, analizadores comerciales como el sniffer pro de Network General, tiene muy buenas opciones de gráficos para generar reportes que se ven muy bien y que dicen mucho, sin embargo, las opciones para gráficar que tiene Wireshark, si bien no son muy vistosas, si son utiles y vale la pena hecharles un vistazo ya que pueden ayudar, tanto para el análisis, como para el momento de presentar un reporte sobre los hallazgos.

Existen diferentes tipos de gráficos en Wireshark, como el flow graph que permite visualizar gráficamente el flujo de una conexión tcp/ip (como la muestran en los libros), o el TCP Stream Graph, que cuenta con algunos tipos de gráficos orientados más al análisis, pero que también pueden ser utilizados para reportes, sin embargo, en esta oportunidad, como el titulo lo indica, nos concentraremos en las graficas de entrada y salida (IO Graphs), estas nos permiten visualizar, el tráfico total que esta pasando por nuestro punto de medición en un momento dado.

Para activar esta gráfica, es necesario ir al menu statistics -> IO Graphs, como lo muestra la figura abajo, esto por supuesto una vez que hemos realizado una captura, es decir, la gráfica se generara a partir de paquetes previamente capturados.


En la siguiente figura, puede verse el resultado, sobre esta gráfica quiero hacer varias observaciones, en primer lugar, como pueden observar, esta el área de la gráfica, en esta en el eje x se muestra el tiempo, en este caso, la captura fue por aproximadamente dos horas, por lo que para ver la gráfica como esta aca, se modifico el campo tick interval a 1 Min (el default es 1 seg), en general este parametro se puede modificar de acuerdo al nivel de detalle que se desea tener. En el caso del eje Y, también se modifico la unidad, del default (que es Packets/tick) a Bytes/Tick. En el caso del eje Y, también esta una opción avanzada que permite unas opciones de análisis más potentes y que probablemente analizemos en una segunda parte.


Además de poder ajustar los ejes X y Y, para tener una mejor representación del tráfico, el verdadero potencial de estas gráficas, esta en la posibilidad de aplicar filtros, por ejemplo en el caso ilustrado en la figura anterior, se ha aplicado un filtro para ver cuanto del tráfico ilustrado en dicha gráfica es http, como se puede ver a la derecha de la pantalla, la gráfica 2 tiene aplicado el filtro http, los filtros que se utilizan acá, son filtros de visualización, aqui http es un filtro muy sencillo, pero en general se pueden utilizar filtros muy elaborados que permitan una mejor comprensión del problema que se esta analizando, para activar el filtro se presiona el boton correspondiente (Graph 2, en este caso) y como se puede ver en la figura, aparece con color rojo el tráfico http, la Graph 1, muestra el tráfico total en color negro. Se pueden generar hasta 5 gráficas, para activar/desactivar una gráfica, basta con presionar el boton correspondiente a dicha gráfica.

Finalmente menciono el boton Save, este esta disponible a partir de la versión 0.99.7 (la más reciente, que dicho de paso, si aun no has bajado, hazlo ya, puedes encontrala en el sitio de wireshark. Esta opción permite salvar la gráfica, en varios formatos gráficos, en una prueba que hice me dio un error, pero igual salvo la gráfica.

Este no es ni por mucho un tutorial avanzado de gráficas de Wireshark, el propósito es dar a conocer esta opción (para aquellos que aun no la conocian), en futuros post se estara haciendo referencias a las gráficas IO, por lo que vale la pena conocerlas, por lo demás te animo a experimentar con ellas.

Para los que quieren ver aplicaciones de esta gráficas en acción, hay un par de recursos interesantes, lamentablemente en Ingles, para los que lo entienen, perfecto, los invito a revisarlos, para los que no, también los invito a ver este par de videos, veran que las gráficas IO de Wireshark, tienen mucho potencial, estos son videos de Laura Chappel, la fundadora de WiresharkU, asi que insisto, vale la pena verlos, a continuación los enlaces:

IO Graphing

Advanced IO Graphing

Eso es todo por el momento, gracias a los estimados lectores que han permanecio fieles al blog pese a la larga ausencia y espero encontrarlos por acá en futuros posts, como siempre, los comentarios son bienvenidos.