Buscar en este blog

sábado, 29 de octubre de 2011

Entendiendo DPI: Wireshark & OpenDPI

En posteriores posts se irá analizando como trabaja "Deep Packet Inspection (DPI)" en aspectos tanto software como hardware. Antes de ello es interesante ver, aunque sea de modo simplificado, un ejemplo del análisis que ofrece esta tecnología. Para ello se emplean dos versiones 'open source' de las varias que hay disponibles, una es la herramienta de captura de tráfico Wireshark, y la otra el codigo OpenDPI de Ipoque. Con ellas se puede ver como distinguen entre diferentes tipos de tráficos y de flujos.

Se ha hecho una captura del tráfico generado en una sesión estándar de usuario, tráfico web, tráfico P2P, cliente de mensajería, etc mediante el propio Wireshark. El tráfico capturado corresponde al uso de estas aplicaciones durante unos 5 minutos. Veamos como muestran los protocolos las dos herramientas empleadas.

Wireshark es una herramienta de análisis y captura de tráfico que emplea DPI, aunque a un nivel superficial (podríamos hablar más bien de SPI). Se suele emplear en entornos educativos y a nivel de usuario ya que no soportaría un análisis masivo de tráfico. Ofrece un entorno gráfico con algunas opciones interesantes que facilitan la visualización de las particularidades de cada protocolo. En la siguiente imagen se muestra una de las visualizaciones que permite esta herramienta.



Por otro lado, OpenDPI es una versión limitda de la que el proveedor de soluciones de gestión de ancho de banda Ipoque ofrece en sus productos, el motor PACE (Protocol and Applicaton Classification Engine). Por ello, el número de protocolos que es capaz de detectar es considerablemente inferior al de la versión comercial, así como la velocidad y rendimiento del análisis. No emplea análisis heurístico o de comportamiento, por lo que no es capaz de detectar conexiones cifradas o enmascaradas. La misma captura realizada con esta herramienta da el siguiente resultado que se muestra a continuación.



Como se puede observar el número de paquetes que considera la herramienta OpenDPI son los paquetes IP, que suman 31.468. A diferencia de la visualización que ofrece Wireshark, OpenDPI solo muestra la capa L7, que es la que contiene la información sobre el tipo de aplicación. Se puede observar que existe una mayor precisión en el análisis realizado por OpenDPI, aunque como ya se preveía por ser una versión reducida no ha logrado identificar alrededor de un 15% de los paquetes (esta cifra en el análisis de Wireshark es notablemente superior). 

Este mismo ejercicio se realizará cuando se hable de "Deep Flow Inspection (DFI)", pero habilitando la opción de cifrar el tráfico que poseen la mayoría de clientes P2P. Así se mostrará como responde la herramienta OpenDPI ante este tráfico cifrado, que en principio no puede ser detectado solo con DPI.

domingo, 9 de octubre de 2011

Deep Packet Inspection (DPI)

Como se ha venido diciendo en el blog, la capacidad de acceder a Internet se está viendo desbordada. El crecimiento del consumo de datos es mayor que el de la tecnología que se empela para su tratamiento, dando lugar la necesidad de "La Gestión de Tráfico". Esta gestión se lleva a cabo para solventar o prevenir problemas de congestión mediante el análisis y posterior clasificación del tráfico que atraviesa las redes. En principio, si no se hiciese una "Violación de recomendaciones y normas en Internet", bastaría con analizar a que puerto se dirige un paquete o flujo de paquetes para saber de que tipo de tráfico se trata, ya que existen una serie de asignaciones sobre que protocolo o aplicación debería emplear dicho puerto. 

Pero la realidad es bien distinta, muchas aplicaciones pretenden no ser descubiertas para que así su tráfico no se vea afectado por las medidas de gestión de la congestión. Para ello hacen uso de puertos indebidos, abren varias conexiones en paralelo (ver "Cómo funciona Internet? (II)"), o en el caso más extremo encriptan u ofuscan su tráfico para dificultar la identificación. Por este motivo, empresas como Sandvine, Ipoque, Allot o Procera e incluso grandes fabricantes de equipos de red como Cisco o Ericsson, han desarrollado en los últimos años elementos capaces de identificar de forma muy precisa el tráfico que atraviesa la red. Estos equipos se basan en DPI (Deep Packet Inspection) y en DFI (Deep Flow Inspection) o análisis heurístico.

La tecnología DPI es capaz de analizar los datos que contiene un paquete más allá de las cabeceras del L3 (que es la única necesaria para transmitir los paquetes) y la del L4 (que aunque no es necesaria, es dónde se encuentra información sobre el flujo de datos y el puerto conexión). Para comprender algo mejor el tema de las cabeceras ver "Cómo funciona Internet?". Esto supone que la información de la capa de aplicación (L7) e incluso el contenido del usuario puede ser analizado para buscar ciertos patrones característicos de la aplicación o protocolo en uso, o también para prevenir ataques o malware.


El hecho de que se pueda analizar la información de usuario es uno de los aspectos más críticos en el debate de "La Neturalidad de Red" debido a que según los detractores de DPI, este viola la privacidad de los usuarios. En su defensa, fabricantes e ISPs alegan que para nada se lee o comprende la información del usuario ya que tan solo se buscan palabras en concreto. Como todo, la peligrosidad depende del uso que se le dé.

lunes, 26 de septiembre de 2011

Cómo funciona Internet? (II)

En el post "Cómo funciona Internet?" se explica a grandes rasgos el proceso que siguen los datos para ser enviados y recibidos. En esta ocasión veremos algunos matices más sobre el complejo funcionamiento de Internet. Los sistemas OSI y TCP/IP (que se explicaron en "Cómo funciona Internet?") definen los procesos y características que siguen los datos en su transmisión, aunque como bien se dijo son tan sólo modelos teóricos y la realidad es algo mas compleja. Los protocolos para comunicaciones existentes se pueden contar por miles y las funciones y responsabilidades de cada protocolo varían según las características para las que se ha desarrollado, entremezclándose a menudo. En este post se citan tres puntos que pretenden dar una muestra de la complejidad de los datos que viajan por Internet.

En primer lugar hablaremos del protocolo GTP (GPRS Tunneling Protocol) y las VPNs (Virtual Private Network), que ya vimos en el post "N00ter: una aplicación que detecta si hay Gestión de Tráfico" que interconectan a través de Internet dos redes LAN, se llevan a cabo mediante mecanismos de 'tunneling'. Esta técnica es un claro ejemplo de cómo se entremezclan los protocolos. El GTP se emplea en el transporte de las redes 3G móviles y se lleva a cabo encapsulando el paquete IP original en los protocolos UDP e IP . El resultado es bastante diferente de lo que el modelo OSI o TCP/IP, ya que en la pila de protocolos aparecen dos veces la capa IP y también dos veces la capa de L4 (TCP y UDP). El funcionamiento de VPN es algo mas complejo aunque el principio es similar.


Por otro lado, resulta interesante ver cómo las aplicaciones emplean los protocolos y como generan conexiones. Como conexión se debe entender el flujo de paquetes que van desde una dirección IP y puerto origen a una dirección IP y puerto destino, y según un protocolo de transporte (TCP o UDP). Esto, como ya se ha dicho en anteriores ocasiones, se conoce cómo 5-tuple y es empleado en varios dispositivos de red. El caso es que no existen limitaciones para el número de conexiones que se pueden dar sobre una máquina, y este es uno de los puntos donde se hace fuerte el P2P (ver "El tráfico P2P"), junto con la "Violación de recomendaciones y normas en Internet". Lo que se hace es simple, imaginemos dos clientes que abren varias conexiones en paralelo entre ellos para lograr mayores tasas de transferencia. La matemática es simple: la apertura de diez conexiones en paralelo ofrece una conexión global con una velocidad de transferencia de diez veces mayor que su cuota justa. Si se abren cien...

Por último, es de destacar también la complejidad que se añade al usar infinidad de protocolos entremezclados. Una aplicación no tiene porqué emplear tan sólo un protocolo en concreto, y el número de protocolos existentes es muy elevado (los equipos de análisis actuales reconocen del orden de 1000). Los motivos son varios, aunque generalmente suele deberse a que muchas aplicaciones empelan código de terceros o varios servicios que requieren varios protocolos. Un ejemplo claro de este hecho es Skype, por ejemplo, que emplea protocolos de VoIP, de mensajería instantánea, de video, etc.



martes, 30 de agosto de 2011

LTE, 4G y tratamiento de QoS

Muchas veces se habla sobre si tenemos o no cobertura 3G o 2G y sobre si el Iphone4 es 4G o no (la respuesta es que NO). Estos términos hacen referencia a la generación de la red móvil sobre la que nos estamos conectando. Como ya se ha dicho en este blog, el acceso móvil es uno de los mas críticos debido a que existen unas limitaciones físicas que son difíciles de combatir, además de tratarse de un medio compartido por varios usuarios. Por ello exige un trabajo de diseño e ingeniería muy complejo ofrecer mejoras en la velocidad de transferencia. En gran medida el debate de la Net Neutrality esta latente debido a la revolución que ha supuesto el creciente éxito de los dispositivos móviles y del consumo de datos que generan y generarán.

Estos factores han llevado al diseño de la red 4G que utiliza la tecnología LTE (Long Term Evolution) desarrollada por la 3GPP y que es interesante desde el punto de vista de "La Gestión de Tráfico" ya que este nuevo paradigma de red incluye mecanismos de gestión de QoS (Quality of Service) de modo intrínseco, además de por mejorar la capacidad en el acceso mediante el uso de OFDMA (Orthogonal Frecuency Divison Multiple Acces) en el uplink y técnicas MIMO (Multiple Input Multiple Output).


En las versiones anteriores de 3G (UMTS) y 2G (GPRS) ya se incluían algunas formas de gestión, aunque no de forma tan desarrollada y con una visión extremo a extremo (los datos atraviesan varias redes diferentes para alcanzar su destino) cómo lo hace LTE. En primer lugar hay que saber que en LTE todos los datos que atravesaran la red del operador serán IP, lo cual quiere decir que el servicio de voz tradicional ahora se hará sobre VoIP. Esto tiene de positivo que se converge hacia el modelo IP de Internet haciendo todo mas compatible y reduciendo costes. Todo este proceso forma parte de lo que se conoce como FMC (Fixed Mobile Convergence), que tiende a aproximar las diferentes arquitecturas de red hacia el modelo IMS (IP Multimedia Subsystem) derivado también de la 3GPP.

La voz tradicional se ha venido ofreciendo mediante conexión de circuitos y garantizando una cierta QoS. Esto quiere decir que cuando efectuamos una llamada primero de todo se reserva un enlace entre el emisor y el receptor que solo será empleado para la llamada, y si no hay enlaces disponibles no será posible llamar. Esta forma de proceder tiene de positivo que la QoS es garantizada, no obstante resulta muy poco óptima ya que dicho enlace no aprovecha su capacidad total. Con VoIP lo que se hace con nuestra llamada es enviarla en paquetes a través de una red IP (ver "Cómo funciona Internet?"), y así todos los paquetes viajan por el mismo canal, de forma que se aprovecha mejor el medio. Por contra, en este caso hay que garantizar algunos parámetros de calidad (sobre un tipo de red que no esta diseñada para ello) ya que la voz es sensible a algunos factores como la latencia (ver "Ancho de banda, latencia y jitter").

En cuanto a la Gestión de Tráfico, LTE incorpora un mecanismo conocido como PCC (Policy and Charging Control) que se ha posicionado como referente en las diferentes especificaciones en desarrollo (redes de cable y fijas) conocidas como NGN (New Generation Networks). Esta arquitectura se encarga de proporcionar de forma dinámica hasta 9 QCI (QoS Class Indentifier) con diferentes parámetros de ancho de banda, latencia, jitter y tasa de error PER (Packet Error Rate). Además de para la voz, esta asignación de QCIs aplica también para otros servicios (VoD, IPTV, streaming, P2P). El control y administración de la asignación se hace desde el núcleo de la red y se separa el plano de datos del plano de control (viajando en diferentes caminos). Para ello emplea dos elementos fundamentales:

  • PCRF (Policy and Charging Rules Function): Se trata de un elemento que se encarga de proporcionar las reglas especificas del operador. Su función se sitúa en el plano de control y aprovisiona la información necesaria a aplicar en función de unas ciertas reglas y previa identificación del tipo de tráfico o previa petición de QoS de una aplicación concreta.
  • PCEF (Policy and Charging Enforcement Function): Es la entidad situada en el plano de datos y lleva a cabo la aplicación de las políticas definidas en el PCRF. Al situarse en el plano de datos es el punto idóneo para llevar a cabo "Deep Packet Inspection (DPI)" para así identificar el tipo de tráfico en el caso de que no sea posible de otro modo (ver "Violación de recomendaciones y normas en Internet"). Para mas detalle comentar que se suele ubicar junto con el P-GW (Packet Data Network Gateway) que es el punto donde la red móvil se conecta con otras redes IP (como Internet) o no (como la RTC - Red Telefónica Conmutada- ).


Además de estos dos elementos básicos existen otros de facturación que en tiempo real pueden controlar los créditos y tarifas del suscriptor y aplicar los cargos correspondientes, todo de forma muy integrada. Toda esta arquitectura dota a los operadores de un poder de control exhaustivo sobre el consumo de los clientes, lo cual esta muy en contraposición con "La Neutralidad de Red" aunque bien aplicado puede repercutir en una gran QoE (Quality of Experience).

jueves, 18 de agosto de 2011

Violación de recomendaciones y normas en Internet

En anteriores posts se ha hablado sobre "La Gestión de Tráfico" y sobre que se debería considerar un "Uso razonable de Gestión de Tráfico". Para llevarse a cabo esta dicha gestión, los administradores de red deben conocer que tipo de aplicación se está empelando para darle sus características necesarias, cómo por ejemplo el "Ancho de banda, latencia y jitter". Para conocer el tipo de aplicación debería bastar en la mayoría de ocasiones, en un escenario ideal, con conocer los números de puerto a los que se va a realizar la conexión, pero en la realidad esta información no es ni mucho menos suficiente. Recordemos que el puerto no es más un identificador que se emplea en la L4 (capa de transporte, ver "Cómo funciona Internet?") para identificar las diferentes aplicaciones que se pueden conectar a un equipo. 


Existe un listado de los números de puerto que se deberían utilizar para cada aplicación definidos por la  IANA (Internet Assigned Numbers Autority). Son llamados 'well-kwnon port' y su uso está en principio delimitado para procesos conocidos. En total suman 1024 y se pueden ver las asignaciones desde aquí. Además de los 'well-knwon port" existen más asignaciones entre los puertos 1024 y 49.151, aunque estos pueden ser utilizados por cualquier usuario. Del 49.152 al 65.535 son puertos dinámicos o privados.



Lo que es relevante es que muchas aplicaciones no respetan dichas asignaciones y emplean puertos que no son los que están especificados para tal efecto. Existen aplicaciones que utilizan estos 'well-known port' para poder colarse a través de firewalls sin más problemas ya que estos por norma general analizan el 5-tuple (dir. IP origen, dir. IP destino, puerto origen, puerto destino, protocolo) y según sus reglas deja o no pasar el paquete. Esto es lo que hacen muchas aplicaciones del tipo P2P (ver "El tráfico P2P"), emplean estos puertos para que no sean descubiertas. Los avances en técnicas de control ha llevado a los desarrolladores de este tipo de aplicaciones a realizar una asignación dinámica y al parecer aleatoria de puertos para así burlar estos firewall y evitar que un flujo de datos sea detectado. 


Para solventar este uso incorrecto de las numeraciones de puertos, además de para otras aplicaciones, la industria ha desarrollado los equipos de "Deep Packet Inspection (DPI)" y análisi heurístico que son capaces de desgranar en tiempo real hasta el último detalle no sólo de un paquete (que contiene una parte de la información), si no de todo un flujo de datos. Esto permite a los gestores de red identificar correctamente los datos de aplicación como lo que son para entonces decidir que hacer con ellos. 


Dicho todo esto cabe remarcar que en esta argumentación se apoyan los defensores de "La Gestión de Tráfico", entre muchas otras, de las que seguiremos hablando. El uso indebido de los 'well-known port' nos llevan a un modelo de Internet anárquico que se va al extremo del concepto de que Internet debe ser una red abierta y libre, y los extremos no son buenos.