sábado, agosto 23, 2008

Seguridad en la Web 2.0

Posted on 1:32 p.m. by Javier Vargas

Por: Diego A. Spahn (CISSP, LPT, ECSA, CEH)*
Senior Penetration Testing Engineer
Global Crossing





El impacto en la seguridad de las tecnologías Web 2.0 incluye todos los problemas existentes en Web 1.0, así como también una expansión de los mismos. Esto ocurre porque las tecnologías que antes se utilizaban para dar efectos visuales (flash y javascript, entre otras) actualmente se transformaron en el corazón o motor principal de la aplicación Web.

Otro riesgo asociado a Web 2.0 es la habilidad de descubrir y enumerar superficies de ataque en una manera mucho más sencilla que en la Web 1.0. En la Web 2.0 a menudo se utilizan entornos Ajax, que contienen cantidades de información que se descargan hacia el navegador del usuario. Y esta información hace posible que un atacante pueda fácilmente enumerar la superficie de ataque.

La existencia de server APIs (Aplication Programming Interface) también incrementa la superficie de ataque de la aplicación. Esta superficie viene dada por cada una de las partes en las que un atacante podría potencialmente penetrar. Y las partes más comunes para penetrar son las entradas inputs, query strings, http cookies y headers, entre otras.

Si bien no todas las APIs deberían ser consideradas como parte de la superficie de ataque, es muy posible que un programador olvide una técnica de validación en alguno de los parámetros. Esto se debe a que muchas veces dicho parámetro no es vulnerable en relación a que el código del lado del cliente no permite evitar ciertas reglas (como cantidad de caracteres). Sin embargo, un atacante no se rige por las reglas del cliente, pudiendo interactuar directamente con el servidor de una manera totalmente inesperada.


¿Que es Ajax?

Normalmente cuando un navegador hace una consulta a un servidor por una página Web dinámica, se hace una petición por la página completa. El servidor de aplicación responde creando un documento HTML y lo devuelve al navegador. El navegador completa la secuencia descartando la página actualmente cargada y renderizando la nueva para que el usuario pueda interactuar con ella.

Si bien el proceso es sencillo consume también muchos recursos. El servidor consume gran potencial creando una página prácticamente idéntica a la recientemente descargada por el explorador, además de crearse gran cantidad de tráfico a raíz de páginas enteras pasando desde el servidor al cliente.

Ajax es una colección de tecnologías que le permite al cliente la actualización constante de porciones de sí mismo desde el servidor de aplicación. El cliente nunca realiza un "submit" de la página actual, o incluso, deja la actual.

El código del lado del cliente (usualmente javascript) realiza de forma autónoma peticiones asíncronas por fragmentos de páginas Web.

Esta metodología no solo satisface la necesidad de velocidad sino que al hacerse cada petición de manera asíncrona, el usuario puede seguir trabajando mientras dichas peticiones están en progreso.

Cuando decimos que las aplicaciones Ajax son más trasparentes nos referimos a que más información acerca de como funciona la aplicación son expuestas directamente al cliente. Esto es lo que posibilita a un atacante realizar una ingeniería reversa de la lógica de la aplicación con el fin de detectar posibles puntos de inflexión y generar futuros ataques.

Si bien la utilización de Ajax representa una ventaja para el usuario porque optimiza la utilización de los recursos (ancho de banda, procesamiento), como contracara implica una mayor exposición y un incremento en el riesgo tanto para el desarrollador como para el propio usuario.


* Diego A. Spahn actualmente se desempeña como Senior Penetration Testing Engineer, y tiene a cargo el área de Servicios Profesionales de Global Crossing, brindando servicio a todo Latinoamérica y el Caribe. Posee más de 6 años de experiencia en el campo de la seguridad de la información, prestando todo tipo de servicios tales como penetration tests, vulnerability assessments, entre otros. Tiene las siguientes certificaciones internacionales: CEH (Certified Ethical Hacker), ECSA (Ec-council Certified Security Analyst), LPT (Licensed Penetration Tester), CISSP (Certified Information Systems Security Professional), entre otras. En cargos anteriores se ha desempeñado como especialista en sistemas de detección y prevención de intrusos, así como también, administrador de seguridad de redes.


.

No Response to "Seguridad en la Web 2.0"