Telecomunicaciones

Simuladores Diameter

  • admin 

Simuladores Diameter

Sobre el tema de simuladores de los diferentes interfaces diameter y nodos empleados en LTE/IMS hay diversas opciones disponibles, y muchas de ellas son open source.

El simulador diameter más utilizado es Seagull:

http://gull.sourceforge.net/doc/diameter.html

http://www.linkedin.com/groups/Can-some-one-suggest-Diameter-4056876.S.74026186

Después hay otros componentes que implementan/simulan las diferentes cajas e interfaces de una red LTE, como el freePCRF:

http://freepcrf.com/2013/11/01/pcrf-experience-from-functional-testing-to-performance-monsters-or-how-did-we-climb-the-testing-hill/

También existen varias cajas hechas utilizando la librería jDiameter (hecha en java):

http://blog.morethanspec.com/2011/11/diameter-seagull-and-jdiameter-test.html

https://code.google.com/p/mobicents/wiki/MobicentsDiameterRA

O el simulador del HSS:

https://developer.opencloud.com/devportal/display/OCDEV/HSS+Simulator+%28Diameter+connectivity+pack+2.0%29

Sin olvidarnos de la parte radio (el eNodeB), que ahí le está metiendo caña Fabrice Bellard:

http://bellard.org/lte/

Otros proyectos sobre la parte radio se pueden ver en este blog:

http://hokietux.net/blog/blog/2013/07/07/lte/

Sin olvidarnos de OpenBTS, que es uno de los proyectos respaldados por la gente de Yate:

http://openbts.org/

A mi me llama bastante el tema de las librerías de diameter existentes en el proyecto erlang/OTP, bastante actualizadas, por cierto, para programar los servidores e interfaces diameter como necesites para cada caja:

http://www.erlang.org/doc/apps/diameter/users_guide.html

http://www.erlang.org/doc/apps/diameter/index.html

http://www.erlang-factory.com/upload/presentations/432/DiameterStack.pdf

http://www.erlang.org/doc/man/diameter.html

Sistemas Opensource para MVNOs

  • admin 

Sistemas Opensource para MVNOs

He estado buscando un poco posibles soluciones alternativas para montar un Full MVNO con LTE, y aparecen algunos proyectos alternativos:

Este es un proyecto de GGSN, que tiene desarrollo activo y muy reciente:

http://cgit.osmocom.org/openggsn/

Dentro del proyecto osmocom, hay otras soluciones, mas orientadas a la parte de radio:

http://openbsc.osmocom.org/trac/

En el proyecto openSS7 hay un HLR, y otros elementos relacionados:

http://www.openss7.org/map_design.html

En el proyecto ss7ware, también hay los elementos para montar un MVNO LTE, con la ventaja de que los elementos también sirven para la red 3G actual.

Esto es para el HLR/HSS:

ss7ware.com/products.php?product=openhss

Esto es para la MSC/VLR:

http://ss7ware.com/products.php?product=openvolte

Esto es para el GGSNy SGSN:

http://ss7ware.com/products.php?product=opensae

Y aquí describe el sistema en general:

http://ss7ware.com/solutions.php?product=unified_core_network

Aquí también hay un proyecto para un HSS abierto:

http://code.google.com/p/hss/

Y aquí un blog sobre el tema de una solución open source para montar una red LTE:

http://telecom.ashishbanerjee.com

Aquí también hay un proyecto de una red opensource, pero con fines de investigación y pruebas:

http://www.openimscore.org/

En la parte de radio, está el proyecto de openLTE lanzado por Fabrice Bellard (el genio del proyecto FFMPEG, QEMU, la máquina virtual de Linux sobre javascript, y otras cosas increíbles):

http://myriadrf.org/open-source-lte/

http://www.bellard.org/lte/

En la documentación de Yate, viene una explicación y diagrama de los elementos de una red GSM, tal y como yo la conocía cuando estaba en Amena:

http://docs.yate.ro/wiki/Mobile_networks

Esto está relacionado con el proyecto de BTS que están desarrollando los de Yate, para integrarlo con los de ss7ware en un sistema LTE completo:

http://www.yatebts.com/

Como veis hay material y proyectos de sobra. Además hay soluciones con soporte comercial (como en el caso de ss7ware) para montar una red que sirva para 3G y 4G/LTE.

 

En cuanto a la documentación de LTE, hay de sobra y todo está disponible públicamente:

http://www.sharetechnote.com/

http://www.3gpp.org/DynaReport/36-series.htm

http://en.wikipedia.org/wiki/LTE_%28telecommunication%29

http://en.wikipedia.org/wiki/List_of_LTE_networks

http://en.wikipedia.org/wiki/VoLTE

Alternativas y Estrategias de Seguridad en Redes

Los firewalls pueden ser configurados de diferentes formas, utilizando diferentes componentes, logrando varios niveles de seguridad a diferentes costos de instalación y mantenimiento. Esta decisión dependerá de las necesidades y de la evaluación de costo/beneficio de llevar a cabo tal implementación.

Las tecnologías de filtrado de paquetes y gateways a nivel de circuito y aplicación son los principales componentes de una solución firewall.

El filtrado de paquete permite controlar de forma eficiente y transparente el tráfico de una red. El impacto que produce su introducción en una arquitectura de red es mínimo, ya que no requiere grandes cambios en la configuración de los dispositivos de la red. Ofrecen protección a nivel de transporte y red.

Los gateways a nivel de aplicación y circuitos amplían la protección de los filtros de paquetes ya que tienen conocimiento de los protocolos que trabajan sobre la capa de transporte por lo que pueden implementar mecanismos a un nivel más detallado.

A continuación se presentan las principales arquitecturas de un enfoque perimetral y algunas variaciones de las mismas [Chap-Zwi] [secinf.net 5]

Arquitectura Screening Router

En esta configuración, el firewall consiste de un único router que realiza la función de filtrado de paquetes (ver Figura 24). Es una de las estrategias más simples de implementar. El router posee dos interfaces de red, una conectada a la red interna y la otra conectada a la red externa. Intercepta todo el tráfico (de entrada y salida) y lo redirige a su destinatario dependiendo de las reglas del filtro.

Arquitectura Screening Router

Figura 24: Arquitectura Screening Router

Los hosts de la red interna se comunican entre sí directamente, mientras que la comunicación entre hosts de la red privada y la red publica está restringido a aquellos paquetes que sean permitidos por el router (según el conjunto de reglas de control que reflejan la política de seguridad).

Es una buena configuración para una primer línea de defensa para un firewall, pero para una solución definitiva. En esta configuración, la seguridad de toda la red depende por completo de las reglas definidas en el router. Si un atacante logra atravesar este sistema, tendrá acceso a toda la red interna. Además, esta estrategia no permite ocultar las direcciones IP de la red interna y las capacidades de monitoreo y registro no son muy buenas.

Arquitectura Dual-Homed Host

En esta arquitectura el firewall consiste de un único hosts bastión dual-homed que implementará funciones de filtrado tanto de red como de aplicación (ver Figura 25). Este sistema posee dos interfaces de red, donde cada interfaz se conecta lógica y físicamente a segmentos de red separados y diferentes. Una interfaz de red se conecta a una red externa, no confiable (como Internet), la otra se conecta a la red privada.

Un principio clave de seguridad de esta arquitectura es no permitir que el tráfico de red desde la red externa sea ruteado directamente a la red interna. El firewall deberá, en todos los casos, actuar como un intermediario. Es por esto que en este sistema, la función de ruteo está deshabilitada por lo que el host aísla las dos redes entre ellas al bloquear todo paquete IP que capture. Los sistemas conectados a cada lado del host no pueden comunicarse directamente sino a través de éste.

Arquitectura Dual-Homed Host

Figura 25: Arquitectura Dual-Homed Host

La forma de proveer servicios por parte del host bastión puede ser realizada de dos formas

  1. Si los usuarios de la red local poseen cuentas en el host bastión, las mismas le permiten iniciar sesiones (logearse) para poder utilizar los servicios de Internet. Este aspecto presenta un serio riesgo de seguridad ya que la protección depende de que el usuario haya elegido bien su contraseña. Si un usuario externo puede iniciar una sesión, logra tener acceso a la red local completa.
  2. La alternativa es que el host ejecute servicios proxy para cada servicio que se desee permitir, de esta forma el usuario se desliga de la responsabilidad de la seguridad de la red.

Este host puede proveer un alto nivel de control al permitir que los hosts internos deban comunicarse sólo con este host. Es posible que el dual-homed host rechace conexiones en base a los datos que contenga. Aunque se requiere de mucho trabajo para lograr el máximo potencial de esta configuración.

En esta arquitectura, este dispositivo es critico para la seguridad de la red ya que es el único sistema que puede ser accedido (y atacado) desde Internet, por lo que debe poseer un alto nivel de protección a diferencia de un host común de la red interna. Es por esto que a estos host suele llamárseles bastión. Debe instalarse en este host la mínima cantidad necesaria de software para reducir el riesgo de que sea vulnerado.

Implementar servicios proxies ofrece una ventaja sobre el filtrado de paquetes, pero puede no estar disponible para todos que se deseen.

Esta arquitectura es mucho mas segura que la anterior, pero aún si el bastión es traspasado, la red local completa queda sin protección.

Arquitectura Screened Host

La arquitectura Screened Host posee un firewall compuesto por un router para el filtrado de paquetes y un host bastión para el filtrado de conexiones a nivel de circuito y aplicación (ver Figura 26). La primer línea de protección corresponde al router con filtrado de paquetes, el host bastión se encuentra conectado a la red interna como un host más.

El router está configurado para dirigir todo el trafico proveniente de la red externa al host bastión por lo que es el único que puede ser accedido directamente desde fuera de la red local, por esto, el bastión debe estar altamente protegido. Así mismo, éste último dirige todo el tráfico proveniente de la red interna al router por lo que es el único que puede establecer una conexión con el exterior. Adicionalmente, el bastión solo permite ciertos tipos de conexiones y protocolos.

Figura 26: Arquitectura Screened Host

El router de filtrado de paquetes puede ser configurado de diferentes formas

  • Permitir que ciertos hosts internos puedan abrir conexiones a Internet para ciertos servicios;
  • Deshabilitar todas las conexiones desde los hosts internos habilitando solo al host bastión para establecer estas conexiones;
  • También es posible que algunos paquetes sean dirigidos, por el router, directamente a los hosts internos.

Estos aspectos dependen de la política de seguridad elegida.

Gracias a esta posibilidad, esta arquitectura es mas flexible ya que permite que algunos servicios no soportados por el proxy puedan se dirigidos a los hosts internos directamente por el router.

Ya que el bastión bloquea todo el tráfico entre la red externa y la red local, esta se mantiene oculta para cualquier host externo.

Como en la arquitectura anterior, el bastión administra las conexiones mediante una aplicación proxy, Los hosts de la red local están configurados para dirigir todas las solicitudes al servidor proxy, en el host bastión, para poder comunicarse con la red externa.

Esta arquitectura es más segura ya que agrega una capa de seguridad a la arquitectura anterior: un atacante tiene que pasar primero por el router y luego por el host bastión (por supuesto, esto depende siempre del uso de una política de seguridad correctamente diseñada)

Por otro lado, esta arquitectura presenta una desventaja: si un atacante logra vulnerar al host bastión, podrá tener acceso a toda la red interna.

En el modelo presentado, el host bastión se conecta a la red como otro host más. Es posible configurar a éste host para que se conecte al router y a la red interna por medio de interfaces de red diferentes; de esta forma se crea una división física entre la red interna y el router.

Arquitectura Screened Subnet

El riesgo presente en las arquitecturas anteriores de que el host bastión sea comprometido puede ser reducido configurando una red de perímetro a la cual se conecte el mismo. Esta red suele ser llamada Zona Desmilitarizada.

Para lograr esta arquitectura se introduce un router de filtrado de paquetes entre el host bastión y la red interna, por lo que el host bastión se encontrará entre los dos routers (interno y externo, uno se encuentra entre la red perimetral y la red externa y el otro entre la red perimetral y la red interna) y estará conectado a un segmento de red diferente al que están conectados los hosts de la red privada. Con esta configuración no existe un único punto vulnerable que ponga en riesgo toda la red interna (ver Figura 27)

Con esta arquitectura se agrega una nueva capa de seguridad a la arquitectura anterior que aísla la red local de Internet. Aislando al host bastión en una red de perímetro, es posible reducir el impacto de que el bastión sea vulnerado por algún ataque.

Arquitectura Sceened Subnet

Figura 27: Arquitectura Sceened Subnet

Si un atacante logra vencer la protección del host bastión, solo podrá acceder a la red perimetral ya que la red interna sigue protegida por el router interno. De esta forma el atacante solo tendrá acceso a la red perimetral, ocultando todo el trafico de la red local.

Esta arquitectura es la más segura de las presentadas hasta ahora ya que la red perimetral soporta aspectos de seguridad a nivel de red y de aplicación y provee un sitio seguro para conectar servidores públicos. Ésta red establece una capa de seguridad adicional, entre la red externa y la red interna protegida. Si un atacante penetra el host bastión de la red perimetral, solo será capaz de ver el tráfico en dicha red. Todo el tráfico en esta red deberá ser desde o hacia el host bastión, o desde y hacia la red externa. Ya que el tráfico de la red interna no pasa por la red perimetral, estará a salvo de ser “escuchado” por un intruso, inclusive si el host bastión es vulnerado.

El router externo ofrece protección contra ataques provenientes de la red externa y administra el acceso de Internet a la red perimetral. De esta forma, protege tanto a la red perimetral como a la red interna

En la practica, estos routers permiten casi todo el tráfico que provenga de la red perimetral y realizan pocas tareas de filtrado de paquetes. Las reglas más importantes de este router son aquellas que protegen a los dispositivos situados en la red perimetral, aunque estos estén protegidos a sí mismos pero la redundancia es importante al momento de proteger un sistema. Una de las tareas mas importantes del router externo es bloquear todo paquete que provenga de la red externa “diciendo” que proviene de la red interna.

Para soportar servicios proxy el router externo permitirá el paso de los protocolos si provienen del host bastión. Estas reglas proveen un nivel extra de seguridad, aunque en situaciones normales, estos paquetes ya habrán sido bloqueados por el router interno.

El router interno protege la red interna de la red externa y de la perimetral administrando el acceso de ésta a la red interna; provee una segunda línea de defensa si el router externo es comprometido.

Realiza la mayor parte del filtrado de paquetes del firewall. Permite que ciertos servicios salgan de la red interna hacia Internet. Estos servicios son aquellos que el sitio puede soportar y proveer de forma segura usando filtrado de paquetes en lugar de servicios proxy (por ejemplo, Telnet, FTP, etc).

Los servicios que permite entre el host bastión y la red interna no son necesariamente los mismos que permite entre la red externa y la red interna. La idea es reducir el número de máquinas que puedan ser atacadas desde el host bastión.

Los servicios permitidos entre el host bastión y la red interna deberían limitarse solo a aquellos que sean necesarios (como por Ej. SMTP, para que el bastión pueda reenviar correo entrante). Inclusive sería apropiado que solo sean permitidos a algunos hosts de la red interna (para el mismo ejemplo, servidores de mail internos)

El host bastión conectado a la red perimetral es el principal punto de contacto para conexiones de entrada desde la red externa, por ejemplo, sesiones de correo electrónico (SMTP), conexiones FTP al servidor anónimo del sitio, consultas DNS al sitio, etc.

Los servicios externos son administrados por el host bastión de la misma forma que en la arquitectura anterior, solo que en este caso existe un router más que configurar. En cualquier caso, el host bastión solo se comunicará directamente con los routers que delimitan a red perimetral.

Además del host bastión que actúa como servicio proxy, la red perimetral también podrá contener servidores para distintas aplicaciones (HTTP, Correo electrónico). Inclusive es posible agregar un sistema de detección de intrusos y así poder detectar los problemas antes de que se conviertan en un riesgo para la red.

El host bastión podría ser configurado de tal forma que divida físicamente la red perimetral en dos subredes si se conecta a los router interno y externo mediante dos interfaces de red diferentes (dual-homed) con lo que se obtiene un nivel más de seguridad.

Variaciones de Arquitecturas Firewall

Hasta aquí se han presentado las arquitecturas básicas y principales que pueden ser encontradas en un firewall. Existen diversas configuraciones partiendo de estas arquitecturas que permiten cubrir las necesidades básicas de una organización que desee proteger su red privada de los ataques provenientes de la red externa (en muchos casos pública) a la cual están conectadas.

Una de las posibles variaciones es utilizar más de un host bastión ya sea para mejorar el desempeño de los servicios de la red ampliando la capacidad de procesamiento paralelo de distintos servicios, introducir redundancia para obtener un soporte de apoyo (ya sea de servicios o de datos) o separar servicios por razones de seguridad.

También es posible crear una red perimetral utilizando un solo router que cumpla las funciones de un router externo y otro interno. Para esto, el router debe ser lo suficientemente capaz de procesar todo el tráfico que reciba. Esta configuración tiene la misma desventaja de la arquitectura screened host ya que existen un único punto de falla.

El host bastión puede ser utilizado como router externo si se conecta a dos redes mediante dos interfaces de red diferentes. De esta forma, el filtrado de paquetes y los servicios proxy son ejecutados en el mismo host. Esta decisión involucra un costo en el desempeño de estos servicios aunque las tareas de filtrado de un router externo son mínimas. Esta configuración no introduce vulnerabilidades pero sí queda más expuesto en host bastión por lo que deben considerarse medidas de seguridad mayores para tal host. La alternativa opuesta sería aquella que utilice un host con dos interfaces de red para actuar como bastión (servidor proxy) y router interno pero de esta forma se está eliminando el nivel de seguridad provisto por el router interno si los niveles de seguridad más expuestos fallan.

Si la red privada se conectará a más de una red externa, puede utilizarse para cada una un router externo diferente, de esta forma se mantendrá el desempeño de cada router independientemente agregando conectividad.

Una alternativa a este enfoque es utilizar una red perimetral (un firewall) para cada red externa a la cual se conecte la red privada.

Si la red interna es de una dimensión importante tal que pueda sobrecargar al router interno (el más importante), es posible utilizar múltiples routers internos conectados a dos subredes, es decir, a segmentos diferentes correspondientes a la red interna.