martes, 17 de julio de 2012

Service Relay: Exponer servicios desde mi empresa de forma segura

Normalmente las empresas tiene sitios web y servicios web para consumo interno que aunque deberían tener un esquema de seguridad, en muchos de los casos corren totalmente inseguros. Por otro lado, es común que las empresas tenga sitio web en donde el usuario pueda ver información de la empresa; estos comúnmente hosteados en datacenters de pago o en servicios de hosting en otros países como USA o Australia donde el costo es muy muy bajo –> alrededor de $5 al mes en su versión más básica.

Sin embargo, existe un escenario que siempre genera miedo entre las personas que componen un departamento de TI –> Necesitamos publicar nuestros servicios Web que acceden nuestros sistemas “core” de negocio, ya que requerimos que otros socios de negocio puedan consumirlos. Con ese escenario, aparecen diversas recomendaciones y soluciones – algunas efectivas otras no tanto – en donde por lo general hay que invertir una gran cantidad de dinero y esfuerzo.

Las soluciones varían en rango en temas tales como:

  • Uso de una DMZ
  • Uso del https
  • Uso de certificados digitales para autenticar el servicio o para evitar tampering del mensaje.
  • Poner varios servidores para evitar que el usuario ingrese directamente a los servicios y por ende a las capas inferiores

Todo esto sin duda puede ser efectivo [al menos retrasar el ataque] o disminuir la superficie de ataque, con lo cual vamos creando condiciones más incómodas para los posibles “hackers”. ¿Y a que viene todo esto y como lo relaciono con la nube?

Pues bien, resulta que Windows Azure tiene un componente que es muy relevante en estos ( y muchos otros ) escenarios. Este componente se llama el Service Bus. Este service bus nos permite exponer servicios utilizando una técnica conocida como “service relay”, en donde podemos exponer contratos de servicios en la nube que de forma privada consumen servicios que exponemos desde nuestra plataforma local, con lo cual obtenemos un nivel extra de aislamiento y además, estamos pasandole el primer nivel de protección a Windows Azure. En la siguiente figura se puede ver este escenario.

image

En este escenario, exponemos los servicios a través de Windows Azure y su Bus obteniendo así un nivel de abstracción que nos va a permitir asegurar el ingreso de consumidores a nuestros servicios ya que estos los podemos autenticar en la nube y autorizar de forma local. Igualmente, vamos a tener una conexión segura desde nuestra organización hasta la nube –> azure –> permitiendo no solo una conexión https si no también estableciendo que rango de dirección pueden interconectarse para exponer la implementación de los servicios. Con este escenario, lo que estamos pretendiendo es que para que un “hacker” pueda llegar a nuestro servidor, primero tenga que violentar la seguridad que vamos a establecer en el bus de Azure, con lo cuál no solo aumentamos la seguridad si no también reducimos costos ya que estamos trasladando parte del esfuerzo requerido a la nube. A este proceso de intermediación se le conoce como Service Relay.