sábado, 26 de noviembre de 2011

Sniffers o analizadores de protocolo

Los sniffers o analizadores de protocolo son aplicaciones que operan en la capa de enlace del modelo OSI y permiten capturar todos los paquetes de datos en un proceso de comunicación determinado. Este tipo de herramientas nos permiten, entre otras cosas, entender mejor lo que está ocurriendo en la red.

De manera general, un sniffer ejecuta tres fases:
  • Captura: En esta etapa se realiza la recolección de paquetes.
  • Conversión: Luego, se toman los datos binarios y se les da formato para facilitar su lectura.
  • Análisis: Como su nombre lo indica, en esta fase se analiza la información obtenida.

En este caso comentaremos el funcionamiento básico de un sniffer llamado Wireshark , el cual es libre y multiplataforma.

Su instalación suele ser bastante sencilla, por ejemplo, para instalarlo en sistemas Linux basados en Debian, basta usar el comando apt-get install wireshark

Captura de Paquetes

Los pasos a seguir para empezar a capturar paquetes son:

  • Una vez abierto el programa se selecciona desde el menú principal la opción capture y luego interfaces, lo cual hará aparecer una ventana de selección con las interfaces de red disponibles en el sistema.
  • Escoger la interfaz de la cual se quieren capturar paquetes y hacer click en start.
  • Cuando estemos satisfechos con la cantidad de paquetes capturados seleccionamos el menú capture y la opción stop para detener la captura.



Esto nos deja en la pantalla principal de la aplicación con todos los paquetes que hemos capturado. Esta pantalla tiene tres partes principales:

  • Lista de paquetes capturados: Es una tabla que contiene todos los paquetes capturados e indica, entre otras cosas, la información de origen y destino del paquete, el protocolo, etc.
  • Detalles del paquete: Este contiene la información detallada del paquete seleccionado de la lista anterior.
  • Bytes del paquete: Esta parte contiene los bytes correspondientes a la parte del paquete seleccionada en la sección de detalles.

Estos paquetes pueden ser analizados en el momento o ser almacenados para su posterior análisis.

Búsqueda y marcado de paquetes

Dada la gran cantidad de paquetes que se puede obtener de una captura, Wireshark permite buscar sólo los paquetes que pueden ser de interés, para acceder al panel de búsqueda basta seleccionar en el menú edit la opción find o se pueden utilizar las teclas ctrl + F. La aplicación cuenta con distintos tipos de búsqueda:

  • Filtros: Mediante este método se pueden aislar paquetes mediante una expresión lógica, de modo que los paquetes que cumplan dicha expresión serán seleccionados.
  • Valor hexadecimal: Se realiza la búsqueda especificando un valor hexadecimal que debe contener el paquete.
  • Cadena de caracteres: La búsqueda se basa en una cadena de caracteres específica.

Una vez seleccionados los paquetes de interés, es posible refinar un poco más la selección mediante el marcado de paquetes. Para esto basta selección el paquete y mediante el click derecho del ratón seleccionar mark packet o mediante las teclas ctrl + M.

Para terminar, aunque queda mucho más por ver de esta aplicación, dejo este video que me encontré en la web con lo básico que se ha mencionado en este post.


domingo, 20 de noviembre de 2011

El Modelo OSI

Para continuar veremos rápidamente lo más básico del modelo de comunicaciones OSI (Open Systems Interconnection). Este modelo separa las comunicaciones de una red en siete capas, lo que, entre otras cosas, permite entender más fácilmente el proceso que siguen los datos cuando se realiza una comunicación entre dispositivos.

Cada capa del modelo se ocupa de procesar los datos y agregar información específica según sus funciones y pasarlos a la siguiente capa, a este proceso se le denomina encapsulamiento. El nombre que reciben los datos de la capa una vez procesados es unidad de datos de protocolo o PDU (Protocol Data Unit). Las capas definidas en el modelo son las siguientes:

  • Física: Especifica los propiedades físicas y eléctricas que se deben tener para transmitir información a través de un medio ya sea cableado o inalámbrico. En esta capa operan en general los dispositivos hardware que intervienen en la comunicación.

  • Enlace: Es la responsable de mantener el enlace entre los dispositivos que se comunican. Su PDU es denominada frame y los protocolos de esta capa se encargan de procesar los datos de éstos. Aquí se definen las direcciones físicas de los dispositivos, conocidas como direcciones MAC en el conjunto de protocolos TCP/IP. Esta capa además se subdivide dos: La capa de enlace lógico LLC y la capa de acceso al medio MAC.

  • Red: Esta se encarga del direccionamiento lógico de los dispositivos mediante los protocolos enrutados (IP, IPX, etc.) y de buscar la mejor ruta para que los datos lleguen a su destino usando los protocolos de enrutamiento (RIP, OSPF, etc.). La PDU de la capa de red es llamada paquete.

  • Transporte: Se ocupa de proporcionar servicios de transporte confiables a las capas inferiores, su PDU se denomina segmento. Los dos protocolos más utilizados en este caso son TCP y UDP. TCP (Transmission Control Protocol) es un protocolo orientado a la conexión que proporciona transmisión confiable de datos mediante mecanismos de gestión de la conexión, control de flujo y corrección de errores. UDP (User Datagram Protocol) por otro lado, es un protocolo no orientado a la conexión por lo que permite realizar conexiones no confiables.

  • Sesión: Se ocupa de establecer, mantener y terminar adecuadamente las comunicaciones entre los dispositivos participantes. En esta capa funcionan protocolos tales como RPC (Remote Procedure Call).

  • Presentación: Esta se encarga de dar formato a los datos de modo que la capa de aplicación los pueda interpretar correctamente. Entre otras cosas se encarga de la serialización y la encriptación.

  • Aplicación: Esta es la capa más alta de la jerarquía y proporciona una interfaz para que los usuarios puedan acceder a los recursos de red. Son protocolos de esta capa HTTP (Hypertext Tranfer Protocol), FTP (File Transmission Protocol), SMTP (Simple Mail Transfer Protocol), etc.

miércoles, 9 de noviembre de 2011

Algunas Distribuciones Linux

Como primer post pensé que sería apropiado comentar un poco algunas de las principales distribuciones del sistema operativo Linux y sus usos más frecuentes.

Para empezar, como saben, una distribución Linux es un software que funciona sobre el kernel de Linux y que incluye aplicaciones que buscan satisfacer las necesidades de un grupo específico de usuarios. Dichas aplicaciones suelen ser de “software libre”, aunque en ocasiones se agrega “software propietario” ya sea en aplicaciones o controladores.

Existen una gran cantidad de distribuciones, en este caso, sólo haré una pequeña descripción de las distribuciones que he tenido la oportunidad de probar personalmente, que en realidad son muy pocas.


Debian: Esta distribución es muy fácil de instalar y utilizar, su gestor de paquetes es APT el cual encuentro muy útil y fácil de utilizar. Su política de software libre es bastante estricta, haciendo que las aplicaciones oficialmente aceptadas en sus repositorios pasen muchas pruebas de calidad antes de ser aceptadas, lo que hace que en ocasiones el software no esté muy actualizado, aunque por otro lado, aseguran una gran estabilidad.
Se suele utilizar en servidores debido a su estabilidad, aunque también se suele utilizar como sistema de propósito general.

Ubuntu: Esta distribución, basada en Debian, es una de las utilizadas. Al estar basada en Debian posee el mismo gestor de paquetes, además que sus repositorios contienen más aplicaciones disponibles debido a que implementan un política más relajada para el softwate que incluyen, lo que permite tener aplicaciones más actualizadas.
Ubuntu es una distribución de propósito general orientada al usuario promedio y que pone especial énfasis en la facilidad de uso.

Backtrack: Anteriormente esta distribución estaba basada en Slax, aunque en sus últimas versiones se ha basado en Ubuntu. Es una distribución pensada y diseñada para aplicaciones de seguridad informática en general, por lo que contiene una muy buena compilación de herramientas de seguridad listas para usar, lo que la hace muy recomendable para estos entornos. Se suele distribuir en formato Live CD.

Fedora: Esta distribución es también ampliamente utilizada, su sistema de gestión de paquetes es RPM el cual es también bastante práctico, aunque personalmente prefiero APT. Aunque se trata de un sistema de propósito general, sus desarrolladores suelen dar prioridad a características más orientadas a la empresa.

Gentoo: Esta distribución está orientada desarrolladores y profesionales de redes por lo que su instalación y uso requieren un poco más de conocimientos. Su sistema de gestión de paquetes es llamado “portage” y permite compilar cada aplicación específicamente para el sistema en el cual se va a utilizar, lo que permite alcanzar un máximo de eficiencia.