acceso a web de Grupo SIA
Necesidades de Seguridad en entornos Web Services y Web 2.0: Nuevas Arquitecturas y Retos
 

La industria está entusiasmada por el gran potencial que aporta la arquitectura SOA, los Web Services y el procesamiento XML. Con el nivel de seguridad apropiado, las tecnologías XML pueden facilitar la interoperabilidad entre aplicaciones y por tanto, ofrecer funciones de negocio como nunca antes.

Sin embargo, los departamentos de Seguridad están preocupados, razón no les falta, ante los problemas potenciales de seguridad. Los flujos de datos XML están atravesando, de forma inadvertida, las rutas y protocolos existentes. Los Firewalls se muestran desarmados frente a posibles ataques sobre XML, que llegarían directamente a las aplicaciones, representando así nuevos ataques a la seguridad, disponibilidad y rendimiento de los sistemas.

Para poder sacar provecho a las indudables ventajas que ofrecen los Web Services y evitar sus amenazas, es necesario un nuevo tipo de servicio, los gateways o Firewalls de XML, que permitan los nuevos procesos de negocio sin cambiar o re-inventar las infraestructuras disponibles de seguridad.

Situación de partida

El secreto del rápido crecimiento de los Servicios Web está en el uso de estándares abiertos, libres y muy probados (HTTP, XML, SOAP). Estos estándares suponen independencia de plataforma en las comunicaciones, ya que se pueden montar en cualquier máquina, sistema operativo, servidor web y lenguaje de programación. Lo único que tiene que saber hacer un servicio web es entender XML (porque el HTTP ya lo gestiona el servidor web).

También debe su crecimiento a la existencia de herramientas (librerías y programas) que convierten otras librerías ya existentes en un servicio web.

Con la madurez del lenguaje ECMAScript (o JavaScript) y la aparición de formas de realizar peticiones XML al servidor web sin abandonar la página HTML actual, ha surgido una nueva forma de dinamizar el contenido de las páginas web, el llamado Web 2.0.

Tanto los Servicios Web como los Web 2.0 envían peticiones XML al servidor web, peticiones que resultan opacas a los sistemas tradicionales de seguridad, por ejemplo el cortafuegos IP está configurado para dejarlas pasar. En el caso de no existir algún filtro en el trayecto de las peticiones al servidor web, y se produce alguna vulnerabilidad en el trayecto, se podría dejar escapar información sin control o incluso, incorporarse información no controlada. Además se requieren más funciones de seguridad, derivadas del hecho de que la gran mayoría de esas peticiones incluyen transacciones (de negocio) que tiene que estar autenticadas, o que conforma parte de procesos más complejos que hay que desglosar y enrutar de diversas formas.


Seguridad, ¿falta algo?

Controlar la seguridad de los Servicios Web publicados en Internet no es tarea sencilla. Los cortafuegos IP más avanzados que filtran la capa de aplicación no son de gran ayuda, las peticiones HTTP correctas las tiene que dejar pasar.

Con otros protocolos TCP/IP es más fácil, ya que o utiliza el protocolo adecuado o se frenan, pero en caso de SOAP sobre HTTP, aunque se utilice el protocolo adecuado, la validez de los datos XML no la filtra el cortafuegos.

Siempre hay que tener en cuenta todas las facetas de la seguridad a la hora de publicar un Servicio Web en Internet, ya que los atacantes utilizarán el punto más débil de todo el proceso e infraestructura para colarse y dañar.

Se puede conseguir la confidencialidad en las comunicaciones utilizando la variante cifrada del HTTP, el HTTPS, pero ésto incluye una sobrecarga a los servidores web. También es factible la alternativa XML del cifrado XML.

Igualmente, se puede lograr la acreditación de los participantes utilizando los métodos de acreditación de HTTP (cabeceras Basic o Digest authentication) o HTTPS (requerir certificado de cliente) o emplear la alternativa XML, token SAML (Security Assertion Markup Language) dentro de sistemas de Federación.

El control de acceso a los recursos se puede realizar de la forma tradicional con los medios para controlar permisos del servidor web o mediante la alternativa XML, conocida como XACML (eXtensible Access Control Markup Language), controlando el acceso mediante políticas definidas
Todavía faltan diversos aspectos de la seguridad como la aplicación de políticas, virtualización, enrutamiento, aplicación de firma digital y verificación/ validación por campos, sin olvidar, por otra parte, las vulnerabilidades relativas a la disponibilidad y contenidos.

¿Cómo podemos evitar los siguientes aspectos?

  • Denegaciones de servicio: es necesario confiar en que el servidor web soporte toda la carga posible, o multiplicar los servidores según sea necesario. Recordemos que el cortafuegos IP debe dejar pasar todo el tráfico al servidor web
  • Inyecciones de SQL: hay que programar correctamente, y hacer las comprobaciones en todas las partes implicadas.
  • Introducción de virus en los ficheros adjuntos posibles en HTTP con MIME, se requiere la configuración del servidor web para que los omita, o utilizar un antivirus.
  • Desbordamiento de pila del traductor XML: habrá que limitar los tamaños de los XML aceptados, la profundidad del árbol y la longitud de los nombres de los elementos en el traductor XML.
  • Inyecciones de XPATH: Se recomienda programar correctamente, y hacer las comprobaciones en todas las partes implicadas.

Para descartar problemas de esquema (peticiones que no tienen la forma esperada), el traductor XML tiene que comprobar el esquema de cada petición XML.

A todo ésto, hay que añadir que XML es un protocolo pesado dado que esta pensado para integrarse con facilidad pero no para optimizar comunicaciones, por lo que requiere ancho de banda y capacidad de proceso.

Alternativas y Arquitecturas

De la misma manera que sucedió en los inicios de Internet, cuando las funciones de seguridad se delegaban primero en la aplicación y luego en el servidor ahora se ha impuesto la solución madura de los dispositivos de red dedicados. Con los Servicios Web sucede algo similar. La opción de implementar las capas de seguridad en las aplicaciones está prácticamente descartada, debido a la complejidad, al conocimiento específico del que no disponen la mayoría de los programadores y por la dificultad en su mantenimiento. En cambio, se ha popularizado el uso de librerías que se instalan en servidores y que aportan las funciones de seguridad, motivado por el sentimiento de comodidad por parte de los programadores ante este tipo de alternativa.

Todas las mejoras en seguridad son posibles utilizando estas librerías, pero con grandes inconvenientes: la seguridad está distribuida en múltiples componentes, cada parte se administra de un modo diferente, incluye sobrecarga en el desarrollo y en los servidores web, además resulta más difícil consolidar las trazas de funcionamiento o perseguir los errores, también es más costoso en caso de cambio en los estándares, políticas o simplemente versiones de software (tanto aplicativo como librerías de seguridad).

Todos estos inconvenientes unido a la fuerte necesidad de proceso de XML, han favorecido las soluciones basadas en dispositivos de red (donde se pueden utilizar procesadores especializados ASIC) con la función de Pasarelas (especializados) Web Services. Es una solución que entienden bien los responsables de Comunicaciones, acostumbrados a trabajar con Proxy y Firewalls, para los responsables de Arquitectura y Tecnología es la alternativa más lógica, dado que los Web Services permiten una separación clara de comunicaciones y lógica de aplicación, con lo que resulta muy sencillo establecer arquitecturas con capas de servicios, consolidando los servicios de seguridad. Para los responsables de Operación, la ventaja fundamental es que una arquitectura más simple facilita todos los trabajos de mantenimiento. Y por último, para los responsables de Seguridad la ventaja principal está en la posibilidad de controlar tanto las políticas que se tienen que aplicar como la obtención de las trazas para auditoria o análisis forenses en caso de problemas en un único punto.

Con arquitecturas SOA, Web Services y Web 2.0 estamos ante un nuevo ciclo en la evolución de las tecnologías de Información. Las posibilidades son enormes y las ventajas muy atractivas: interoperabilidad y flexibilidad para desplegar nuevas relaciones y servicios. Pero, por lo mismo, los retos de seguridad son importantes.

Afortunadamente la industria mediante el desarrollo de estándares, guías de buenas prácticas y tecnologías, ya en plena madurez, está aportando soluciones que permiten andar con confianza este nuevo camino de progreso tecnológico. Dentro de estás Tecnologías y buenas prácticas, las pasarelas de seguridad Web Services como dispositivos de red se están convirtiendo en una pieza clave para arquitectos, responsables de sistemas y de seguridad. Pronto sus ventajas también convencerán a los desarrolladores.


Jaime Roca
Business Sales Consultant
Security Area
Grupo SIA

Jaime Torres
Consultor Técnico. CISA
Security Area
Grupo SIA

 

GRUPO SIA
delivering value